Implementação nativa do AFS para iOS

O SDK dos anúncios para dispositivos móveis do Google também oferece suporte a estilos de pesquisa personalizados. Caso seu aplicativo já use o SDK dos anúncios para dispositivos móveis do Google, recomendamos que você use a versão do SDK do AFSMA.

Pré-requisitos

  • Use o Xcode 8.0 ou versão mais recente
  • Segmentar o iOS 8.0 ou versões mais recentes
  • 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 Google-AFSNative para um projeto iOS usando o CocoaPods. Abra o Podfile do projeto e adicione esta linha ao destino do app:

pod 'Google-AFSNative'

Em seguida, na linha de comando, execute:

pod install --repo-update

Se você não conhece o CocoaPods, consulte a documentação oficial (em inglês) para informações sobre como criar e usar Podfiles.

Informações gerais

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

Este documento descreve o processo para integrar anúncios nativos do AFS no seu app para dispositivos móveis iOS.

GANSearchAdController

  • O construtor GANSearchAdController precisa receber o código da propriedade da Web do editor, o ID das configurações desejadas e o objeto GANSearchAdControllerOptions associado.
  • Cada chamada para loadAds() indica uma nova pesquisa e faz com que o conjunto atual de anúncios seja descartado e invalidado.
  • Os criativos dos anúncios são armazenados em GANAdView.
  • Os anúncios são inseridos no anúncio GANAdView com o método populateAdView. Além de GANAdView, que precisa ser preenchido, o autor da chamada fornece um adIdentifier, que é uma string arbitrária que precisa identificar exclusivamente o anúncio. Na API, um anúncio específico é atribuído a cada adIdentifier que é transmitido. Então, sempre que essa adKey for transmitida novamente no futuro, o mesmo anúncio será retornado. Por exemplo, se populateAdView for chamado pela primeira vez com o adIdentifier "keyA", cada chamada subsequente para populateAdView ao transmitir "keyA" como adIdentifier vai resultar na exibição do mesmo anúncio.

GANAdView

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

GANSearchAdControllerOptions

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

GANSearchAdRequest

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

GANSearchAdControllerDelegate

  • Implemente essa interface e a forneç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 amostra de 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"];
  }
}
...