การติดตั้งใช้งาน AFS ที่มาพร้อมเครื่องสำหรับ iOS

นอกจากนี้ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ยังรองรับสไตล์โฆษณาที่กำหนดเองในเครือข่ายการค้นหาอีกด้วย หากแอปของคุณ ใช้ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google อยู่แล้ว เราขอแนะนำให้ใช้ เวอร์ชัน AFSMA SDK แทน

ข้อกำหนดเบื้องต้น

  • ใช้ Xcode 8.0 ขึ้นไป
  • กำหนดเป้าหมาย iOS 8.0 ขึ้นไป
  • รหัสเว็บพร็อพเพอร์ตี้ของผู้เผยแพร่โฆษณาที่ถูกต้อง (เช่น vert-ppa-test1-srp)
  • CocoaPods

นำเข้า SDK เนทีฟของ AFS

CocoaPods

นำเข้า Google-AFSNative SDK ลงในโปรเจ็กต์ iOS โดยใช้ CocoaPods เปิด Podfile และเพิ่มบรรทัดนี้ลงในเป้าหมายของแอป:

pod 'Google-AFSNative'

จากนั้นให้เรียกใช้คำสั่งดังนี้

pod install --repo-update

หากคุณเพิ่งเคยใช้ CocoaPods โปรดดู เอกสารอย่างเป็นทางการเพื่อดูข้อมูล เกี่ยวกับวิธีสร้างและใช้ Podfiles

ภาพรวม

หากคุณกำลังอัปเกรดเป็นรุ่น 4.0 หรือใหม่กว่าจาก 2.0.8 หรือเก่ากว่า โปรดดูที่ คำแนะนำในการย้ายข้อมูล

เอกสารนี้สรุปกระบวนการผสานรวมโฆษณาเนทีฟ AFS ในแอปบนอุปกรณ์เคลื่อนที่ iOS

GANSearchAdController

  • ตัวสร้าง GANSearchAdController จำเป็นต้องมีฟิลด์ รหัสเว็บพร็อพเพอร์ตี้ของผู้เผยแพร่โฆษณา รหัสการตั้งค่าที่ต้องการและ GANSearchAdControllerOptions ออบเจ็กต์
  • การเรียกไปยัง loadAds() แต่ละครั้งหมายถึงการค้นหาใหม่ และจะทำให้เกิดการค้นหาปัจจุบัน โฆษณาอีกชุดที่จะยกเลิกและใช้งานไม่ได้
  • ครีเอทีฟโฆษณาจัดเก็บอยู่ใน GANAdView
  • ระบบจะแทรกโฆษณาลงในโฆษณา GANAdView โดยใช้เมธอด populateAdView ใน นอกเหนือจาก GANAdView ที่จะเติม ผู้โทรจะระบุ adIdentifier ซึ่งเป็นสตริงที่กำหนดเองที่ควรใช้ระบุโฆษณาได้โดยไม่ซ้ำกัน ใน API จะมีการกำหนดโฆษณาที่เฉพาะเจาะจงให้กับ adIdentifier แต่ละรายการที่ส่งผ่าน นิ้ว จากนั้น เมื่อใดก็ตามที่ adKey ถูกส่งอีกครั้งในอนาคต โฆษณาเดิม ส่งคืนแล้ว ตัวอย่างเช่น หากมีการเรียก populateAdView เป็นครั้งแรกด้วย adIdentifier "keyA" การเรียกครั้งต่อๆ ไปไปยัง populateAdView ขณะส่ง "คีย์A" เนื่องจาก adIdentifier จะส่งผลให้มีการแสดงโฆษณาเดียวกัน

GANAdView

  • ซึ่งจะเป็น UIView ที่มีครีเอทีฟโฆษณานั้น
  • สร้างมุมมองนี้ด้วยโฆษณาโดยใช้เมธอด populateAdView ใน GANSearchAdController

GANSearchAdControllerOptions

  • ส่งออบเจ็กต์นี้ไปยังตัวสร้าง GANSearchAdController เพื่อระบุ การทำงานของวิธีขอและแสดงโฆษณา

GANSearchAdRequest

  • เรียกใช้เมธอด loadAds บนอินสแตนซ์ GANSearchAdController ด้วยเมธอดนี้ เพื่อสร้างคำขอโฆษณา

GANSearchAdControllerDelegate

  • ใช้อินเทอร์เฟซนี้และส่งให้ GANSearchAdController เพื่อ ลงทะเบียน Callback สำหรับหลายๆ รัฐ

ตัวอย่างการใช้งาน

ตัวอย่างด้านล่างแสดงการสร้าง GANSearchAdController และ GANView เพื่อแสดงโฆษณาใน ViewController ตัวอย่าง

// SampleAppViewController.m implementation

#import <AFSNative/AFSNative.h>

@interface GBannerViewController () {
  // The Ad Controller used by the sample application.
  GANSearchAdController *_adController;

  // The Ad View to display the loaded ad.
  GANAdView *_adView;
}
// scrollView will be where we place our ads in this example.
@property(nonatomic, strong) UIScrollView *scrollView;
@end
...

- (void)viewDidLoad {
  [super viewDidLoad];

  // Create the scroll view.
  ...
  [self.view addSubview:scrollView];

  // Create a test button and link the ad request to its action.
  UIButton *loadBannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
  ...
  [loadBannerButton addTarget:self
                       action:@selector(loadAd:)
             forControlEvents:UIControlEventTouchUpInside];
  [self.scrollView addSubview:loadBannerButton];

  // Construct the Ad Controller.
  GANSearchAdControllerOptions *options = [[GANSearchAdControllerOptions alloc] init];
  options.prefetchEnabled = YES;
  options.adType = GANSearchAdTypeSPA;
  options.adFetchCount = 3;

  _adController = [[GANSearchAdController alloc]
                     initWithPublisherID: @"your-client-id"
                                 styleID: @"your-settings-id"
                                 options: options
                                delegate: self];

  _adView = [_adController adView];
  [self.scrollView addSubview:_adView];
}

// Request ads when the test button is pressed.
- (void)loadAd:(id)sender {
  // Construct the Ad Request.
  GANSearchAdRequest *adRequest = [[GANSearchAdRequest alloc] init];
  adRequest.query =  @"some-query";
  // Start loading ads. Note that the loading is asynchronous.
  [_adController loadAds: adRequest];
}

// Insert ads into GANAdView if the request returns successfully.
- (void)searchAdController:(GANSearchAdController *)adController  
                didLoadAds:(NSInteger)numberOfAds {
  if (numberOfAds <= 0) {
    NSLog(@"No ads found on the server");
  } else {
    [_adController populateAdView:_adView identifier:@"demoAd"];
  }
}
...