Implementação nativa do AFS para iOS

O SDK dos anúncios para dispositivos móveis do Google também é compatível com estilos de pesquisa personalizados. Se o seu app já usa o SDK dos anúncios para dispositivos móveis do Google, recomendamos que você use o Versão do SDK do AFSMA como alternativa.

Pré-requisitos

  • Usar o Xcode 8.0 ou uma versão mais recente
  • Segmentar o iOS 8.0 ou uma versão mais recente
  • Um código de propriedade da Web do editor válido (por exemplo, vert-ppa-test1-srp)
  • CocoaPods

Importar o SDK nativo do AFS

CocoaPods

Importe o SDK do Google-AFSNative para um projeto iOS usando CocoaPods (em inglês). Abra o Podfile e adicione esta linha ao destino do app:

pod 'Google-AFSNative'

Na linha de comando, execute:

pod install --repo-update

Se você ainda não conhece o CocoaPods, consulte a documentação oficial para mais informações sobre como criar e usar Podfiles.

Visão geral

Se estiver fazendo upgrade da versão 2.0.8 ou anterior para a versão 4.0, consulte as nosso guia de migração.

Este documento descreve o processo de integração dos anúncios nativos do AFS no seu app para dispositivos móveis iOS.

GANSearchAdController

  • O construtor GANSearchAdController precisa receber o o código de propriedade da Web do editor, o ID das configurações desejadas e o código objeto GANSearchAdControllerOptions.
  • Cada chamada para loadAds() indica uma nova pesquisa e faz com que a conjunto de anúncios a ser descartado e invalidado.
  • Os criativos são armazenados em GANAdView.
  • Os anúncios são inseridos no anúncio GANAdView com o método populateAdView. Em Além do GANAdView que será preenchido, o autor da chamada fornece um adIdentifier, que é uma string arbitrária que identifica o anúncio de maneira exclusiva. Dentro da API, um anúncio específico é atribuído a cada adIdentifier que é passado Então, sempre que a adKey for passada novamente no futuro, o mesmo anúncio será retornados. Por exemplo, se populateAdView for chamado pela primeira vez com adIdentifier "keyA", cada chamada subsequente para populateAdView enquanto transmite "chaveA" porque adIdentifier vai resultar na exibição do mesmo anúncio.

GANAdView

  • Esse é o UIView que contém o criativo do anúncio.
  • Preencha essa visualização com um anúncio usando o método populateAdView no GANSearchAdController.

GANSearchAdControllerOptions

  • Transmita esse objeto ao construtor GANSearchAdController para especificar o de como os anúncios são solicitados e exibidos.

GANSearchAdRequest

  • Chame o método loadAds na instância GANSearchAdController com este para fazer uma solicitação de anúncio.

GANSearchAdControllerDelegate

  • Implemente essa interface e forneça-a ao GANSearchAdController para registrar callbacks para vários estados.

Implementação de exemplo

O exemplo abaixo demonstra a criação de um GANSearchAdController e um GANView para mostrar um anúncio em uma ViewController de amostra.

// 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"];
  }
}
...