Собственная реализация AFS для iOS

Google Mobile Ads SDK также поддерживает пользовательские стили поиска. Если в вашем приложении уже используется Google Mobile Ads SDK, мы рекомендуем вместо этого использовать версию AFSMA SDK .

Предварительные условия

  • Используйте Xcode 8.0 или выше.
  • Целевая iOS 8.0 или более поздняя версия
  • Действительный код веб-ресурса издателя (например, vert-ppa-test1-srp).
  • Какао-стручки

Импортируйте собственный SDK AFS.

Какао-стручки

Импортируйте Google-AFSNative SDK в проект iOS с помощью CocoaPods . Откройте подфайл вашего проекта и добавьте эту строку в цель вашего приложения:

pod 'Google-AFSNative'

Затем из командной строки выполните:

pod install --repo-update

Если вы новичок в CocoaPods, ознакомьтесь с их официальной документацией , чтобы узнать, как создавать и использовать подфайлы.

Обзор

Если вы обновляете версию 4.0 или более позднюю с версии 2.0.8 или более ранней, ознакомьтесь с нашим руководством по миграции .

В этом документе описан процесс интеграции нативной рекламы AFS в ваше мобильное приложение iOS.

GANSearchAdController

  • Конструктору GANSearchAdController необходимо предоставить код веб-ресурса издателя, идентификатор желаемых настроек и связанный объект GANSearchAdControllerOptions .
  • Каждый вызов метода loadAds() указывает на новый поиск и приводит к тому, что текущий набор объявлений будет отброшен и признан недействительным.
  • Рекламные креативы хранятся в GANAdView .
  • Объявления вставляются в рекламный GANAdView с помощью метода populateAdView . В дополнение к 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"];
  }
}
...