AFS Native Implementation برای iOS

Google Mobile Ads SDK همچنین از سبک های جستجوی سفارشی پشتیبانی می کند. اگر برنامه شما قبلاً از Google Mobile Ads SDK استفاده می‌کند، توصیه می‌کنیم به جای آن از نسخه AFSMA SDK استفاده کنید.

پیش نیازها

  • از Xcode 8.0 یا بالاتر استفاده کنید
  • iOS 8.0 یا بالاتر را هدف قرار دهید
  • کد دارایی وب ناشر معتبر (به عنوان مثال vert-ppa-test1-srp)
  • CocoaPods

AFS Native SDK را وارد کنید

CocoaPods

Google-AFSNative SDK را با استفاده از CocoaPods به پروژه iOS وارد کنید. Podfile پروژه خود را باز کنید و این خط را به هدف برنامه خود اضافه کنید:

pod 'Google-AFSNative'

سپس از خط فرمان اجرا کنید:

pod install --repo-update

اگر با CocoaPods تازه کار هستید، برای اطلاعات در مورد نحوه ایجاد و استفاده از Podfiles به اسناد رسمی آنها مراجعه کنید.

بررسی اجمالی

اگر از نسخه 2.0.8 یا قبل از آن به نسخه 4.0 یا بالاتر ارتقا می دهید، لطفاً راهنمای مهاجرت ما را ببینید.

این سند روند ادغام تبلیغات AFS Native را در برنامه موبایل iOS شما شرح می دهد.

GANSearchAdController

  • سازنده GANSearchAdController باید کد ویژگی وب ناشر، شناسه تنظیمات دلخواه و شی GANSearchAdControllerOptions مربوطه را ارائه کند.
  • هر فراخوانی به loadAds() یک جستجوی جدید را نشان می‌دهد و باعث می‌شود مجموعه فعلی تبلیغات کنار گذاشته شود و نامعتبر شود.
  • خلاقیت های تبلیغاتی در GANAdView ذخیره می شوند.
  • تبلیغات با روش populateAdView در آگهی GANAdView درج می شود. علاوه بر GANAdView که قرار است پر شود، تماس‌گیرنده یک adIdentifier ارائه می‌کند که یک رشته دلخواه است که باید آگهی را به‌طور منحصربه‌فرد شناسایی کند. در داخل API، یک تبلیغ خاص به هر adIdentifier ارسال شده اختصاص داده می شود. سپس، هر زمان که adKey دوباره در آینده ارسال شود، همان تبلیغ بازگردانده می شود. به عنوان مثال، اگر populateAdView برای اولین بار با adIdentifier "keyA" فراخوانی شود، هر تماس بعدی با populateAdView در حالی که "keyA" را به عنوان adIdentifier ارسال می کند، منجر به نمایش همان تبلیغ می شود.

GANAdView

  • این UIView است که حاوی آن خلاقیت تبلیغاتی است.
  • با استفاده از روش populateAdView در GANSearchAdController این نمای را با یک تبلیغ پر کنید.

GANSearchAdControllerOptions

  • این شی را به سازنده GANSearchAdController ارسال کنید تا رفتار نحوه درخواست و نمایش تبلیغات را مشخص کنید.

GANSearchAdRequest

  • متد loadAds را در نمونه GANSearchAdController با این شیء فراخوانی کنید تا یک درخواست تبلیغ ایجاد کنید.

GANSearchAdControllerDelegate

  • این رابط را پیاده سازی کنید و آن را در اختیار GANSearchAdController قرار دهید تا تماس های چند حالته را ثبت کند.

اجرای نمونه

مثال زیر ایجاد یک 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"];
  }
}
...