Anúncios nativos

Os anúncios nativos são recursos de publicidade apresentados aos usuários por meio de componentes de IU nativos da plataforma. Eles são exibidos com as mesmas classes que você já usa nos storyboards e podem ser formatados de acordo com o design visual do seu app. Quando um anúncio nativo é carregado, seu app recebe um objeto de anúncio com os recursos dele, e o app (em vez do SDK) é responsável por exibi-los. Isso difere de outros formatos de anúncio, que não permitem personalizar a aparência do anúncio.

Este guia mostra como usar o SDK de anúncios para dispositivos móveis do Google para implementar anúncios nativos em um app iOS, além de alguns aspectos importantes a serem considerados ao longo do caminho.

De modo geral, há duas partes na implementação de anúncios nativos: o carregamento de um anúncio pelo SDK e a exibição do conteúdo dele no app. Nesta página, abordaremos o carregamento de anúncios usando o SDK.

Se você já está carregando anúncios nativos e só precisa saber como exibi-los, pule para os guias de modelos nativos ou nativos avançados.

Prerequisites

Sempre usar anúncios de teste

Antes de começar, lembre-se de que, ao criar e testar os apps, verifique se você está usando anúncios de teste em vez de anúncios de produção publicados. Testar com anúncios de produção pode levar à suspensão da sua conta.

A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado para todos os anúncios avançados nativos no iOS:

ca-app-pub-3940256099942544/3986624511

Ela foi configurada especialmente para retornar anúncios de teste para todas as solicitações, e você pode usá-la nos seus próprios apps durante a programação, teste e depuração. Basta substituí-lo pelo seu próprio ID de bloco de anúncios antes de publicar o aplicativo.

Para ver mais informações sobre como os anúncios de teste do SDK de anúncios para dispositivos móveis funcionam, consulte Anúncios de teste.

Carregando anúncios

Os anúncios nativos são carregados por objetos GADAdLoader, que enviam mensagens aos delegados de acordo com o protocolo GADAdLoaderDelegate.

Inicializar o carregador de anúncios

Antes de carregar um anúncio, você precisa inicializar o carregador de anúncios. O código a seguir demonstra como inicializar um GADAdLoader.

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Você precisará de um ID do bloco de anúncios (pode usar o ID de teste), de constantes a serem passadas na matriz adTypes para especificar os formatos nativos que você quer solicitar e as opções que você quer definir no parâmetro options. Veja a lista de valores possíveis para o parâmetro options na página Como definir opções de anúncios nativos.

A matriz adTypes precisa conter essa constante:

Implementar o delegado do carregador de anúncios

O delegado do carregador de anúncios precisa implementar protocolos específicos para seu tipo de anúncio. Para anúncios nativos:

  • GADNativeAdLoaderDelegate Esse protocolo inclui uma mensagem que é enviada ao delegado quando um anúncio nativo é carregado:

    Swift

    public func adLoader(_ adLoader: GADAdLoader,
        didReceive nativeAd: GADNativeAd)
    

    Objective-C

    - (void)adLoader:(GADAdLoader *)adLoader
        didReceiveNativeAd:(GADNativeAd *)nativeAd;
    

Solicitar o anúncio

Depois que o GADAdLoader for inicializado, chame o método loadRequest: dele para solicitar um anúncio:

Swift

adLoader.load(GADRequest())

Objective-C

[self.adLoader loadRequest:[GADRequest request]];

O método loadRequest: em GADAdLoader aceita os mesmos objetos GADRequest que os banners e intersticiais. É possível usar objetos de solicitação para adicionar informações de segmentação, assim como você faria com outros tipos de anúncios.

Quando solicitar anúncios

Os aplicativos que exibem anúncios nativos podem solicitá-los antes de serem exibidos. Em muitos casos, essa é a prática recomendada. Um app que exibe uma lista de itens com anúncios nativos mistos, por exemplo, pode carregar anúncios nativos para a lista inteira, sabendo que alguns serão exibidos somente depois que o usuário rolar a visualização e que alguns talvez não sejam exibidos.

A pré-busca de anúncios é uma ótima técnica, mas é importante que você não mantenha anúncios antigos para sempre sem exibi-los. Todos os objetos de anúncios nativos que estiverem retidos sem exibição por mais de uma hora precisam ser descartados e substituídos por novos anúncios de uma nova solicitação.

Como determinar quando o carregamento foi concluído

Depois que um app chamar loadRequest:, ele poderá receber os resultados da solicitação por chamadas a:

Uma solicitação para um único anúncio resultará em uma chamada para um desses métodos.

Uma solicitação para vários anúncios resultará em pelo menos um callback para os métodos acima, mas não mais do que o número máximo de anúncios solicitados.

Além disso, GADAdLoaderDelegate oferece o callback adLoaderDidFinishLoading. Esse método delegado indica que um carregador de anúncios terminou de carregar anúncios, e nenhum outro anúncio ou erro será informado para a solicitação. Veja um exemplo de como usá-lo ao carregar vários anúncios nativos de uma só vez:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
                didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
      // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;

  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:YOUR_AD_UNIT_ID
          rootViewController:self
                     adTypes:@[GADAdLoaderAdTypeNative]
                     options:@[multipleAdsOptions]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
   // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Como processar solicitações com falha

Os protocolos acima estendem o protocolo GADAdLoaderDelegate, que define uma mensagem enviada quando os anúncios não são carregados.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Receber notificações sobre eventos de anúncios nativos

Para receber notificações sobre eventos relacionados às interações com anúncios nativos, defina a propriedade delegada do anúncio nativo:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Em seguida, implemente GADNativeAdDelegate para receber as seguintes chamadas delegadas:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the application to become inactive and
  // open a new application.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the application to become inactive and
  // open a new application.
}

Exiba seu anúncio

Após carregar um anúncio, falta que ele seja exibido aos usuários. Consulte nosso Guia nativo avançado para ver como.