Anúncios nativos

Os anúncios nativos são recursos apresentados aos usuários por meio de componentes de IU nativos da plataforma. Eles são exibidos usando as mesmas classes que você já usa nos seus storyboards e podem ser formatados para combinar com o design visual do seu app.

Quando um anúncio nativo é carregado, seu app recebe um objeto de anúncio que contém os recursos dele. Em vez do SDK dos anúncios para dispositivos móveis do Google, o app é responsável por exibi-los.

Em termos gerais, há duas partes para implementar anúncios nativos com sucesso: carregar um anúncio usando o SDK e, em seguida, exibir o conteúdo dele no app.

Nesta página, mostramos como usar o SDK para carregar anúncios nativos.

Pré-requisitos

Sempre faça testes com anúncios de teste

Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos.

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

ca-app-pub-3940256099942544/3986624511

Ele foi configurado especialmente para retornar anúncios de teste para cada solicitação e você pode usá-lo nos seus próprios apps durante a programação, teste e depuração. Basta substituí-lo pelo seu próprio ID do bloco de anúncios antes de publicar o app.

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

Carregar anúncios

Os anúncios nativos são carregados com a classe GADAdLoader, que envia 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 abaixo 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 de bloco de anúncios (é possível usar o ID de teste), constantes para transmitir na matriz adTypes para especificar quais formatos nativos você quer solicitar e todas as opções que quiser definir no parâmetro options. A lista de valores possíveis para o parâmetro options pode ser encontrada na página Como definir opções de anúncio nativo.

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, o protocolo GADNativeAdLoaderDelegate 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 anúncios

Depois que o GADAdLoader for inicializado, chame o método loadRequest: 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.

Carregar vários anúncios (opcional)

Para carregar vários anúncios em uma única solicitação, defina o objeto GADMultipleAdsAdLoaderOptions ao inicializar um GADAdLoader.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

O número máximo de anúncios por solicitação é de cinco, e não é garantido que o SDK retorne o número exato de anúncios solicitados.

Os anúncios retornados do Google serão diferentes entre si, embora não haja garantia de que os anúncios de inventário reservado ou de compradores de terceiros sejam exclusivos.

Não use a classe GADMultipleAdsAdLoaderOptions se você estiver usando a mediação, já que as solicitações para vários anúncios nativos não funcionam para IDs de blocos de anúncios que foram configurados para mediação.

Determinar quando o carregamento foi concluído

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

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

Uma solicitação de 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 indica que um carregador de anúncios terminou de carregar anúncios e nenhum outro anúncio ou erro será relatado 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 multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        rootViewController: self,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    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:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:rootViewController
                 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

Tratamento de 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 de eventos de anúncios nativos

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

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Em seguida, implemente GADNativeAdDelegate para receber estas 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 app to become inactive and
  // open a new app.
}

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 app to become inactive and
  // open a new app.
}

Práticas recomendadas

Siga estas regras ao carregar anúncios.

  • Os apps que usam anúncios nativos em uma lista precisam armazenar essa lista previamente em cache.

  • Ao armazenar anúncios em cache, limpe o cache e atualize após uma hora.

  • Não chame loadRequest: novamente em um GADAdLoader até que a solicitação anterior conclua o carregamento, conforme indicado por adLoaderDidFinishLoading:.

Exiba seu anúncio

Depois de carregar um anúncio, resta apenas exibi-lo aos usuários. Acesse o guia de anúncios nativos avançados para saber como fazer isso.