Os anúncios nativos são recursos de publicidade mostrados aos usuários por componentes de interface nativos da plataforma. Eles são exibidos com base nas mesmas classes usadas nos seus storyboards e podem ser formatados de modo compatível com o design visual do seu aplicativo.
Quando um anúncio nativo é carregado, seu app recebe um objeto de anúncio que contém os recursos dele. O aplicativo é o elemento responsável por mostrar esses recursos, não o SDK dos Anúncios para Dispositivos Móveis do Google.
De modo geral, a implementação dos anúncios nativos é feita em duas etapas: carregar um anúncio usando o SDK e exibir o conteúdo do anúncio no app.
Nesta página, mostramos como usar o SDK para carregar anúncios nativos.
Pré-requisitos
- Leia o guia para iniciantes.
Sempre usar 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 carregá-los é usando nosso ID de bloco de anúncios dedicado para testes com anúncios nativos no iOS:
ca-app-pub-3940256099942544/3986624511
Ele foi configurado especialmente para retornar anúncios de teste em todas as solicitações e pode ser usado nos seus próprios apps durante a programação, os testes e a depuração. Não se esqueça de substituí-lo pelo ID do seu bloco de anúncios antes de publicar o app.
Para detalhes sobre os anúncios de teste do SDK dos Anúncios para Dispositivos Móveis do Google, consulte Ativar anúncios de teste.
Carregar anúncios
Os anúncios nativos são carregados com a classe GADAdLoader, que envia mensagens aos delegados conforme o protocolo GADAdLoaderDelegate.
Inicializar o carregador de anúncios
Antes de carregar um anúncio, você precisa inicializar o carregador.
O código a seguir demonstra como inicializar um GADAdLoader:
Swift
Substitua nativeAdUnitID pelo ID do seu bloco de anúncios.
Objective-C
Substitua kNativeAdUnitID pelo ID do seu bloco de anúncios.
Você vai precisar de um ID de bloco de anúncios (que pode ser o de teste), de constantes para transmitir na matriz adTypes com o intuito de especificar quais formatos nativos você quer solicitar e das opções que pretende definir no parâmetro options. A lista de valores possíveis para o parâmetro options pode ser encontrada na página Definir opções de anúncios nativos.
A matriz adTypes precisa ter esta constante:
Implementar o delegado do carregador de anúncios
O delegado do carregador de anúncios precisa implementar protocolos específicos no seu tipo de anúncio.
Para anúncios nativos, o protocolo GADNativeAdLoaderDelegate inclui uma mensagem enviada ao delegado quando eles são carregados.
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
// To be notified of events related to the native ad interactions, set the delegate property
// of the native ad
nativeAd.delegate = self
// TODO: Display the native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
// To be notified of events related to the native ad interactions, set the delegate property
// of the native ad
nativeAd.delegate = self;
// TODO: Display the native ad.
}
Solicitar anúncios
Depois que GADAdLoader for inicializado, chame o método loadRequest: dele para solicitar um anúncio:
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
O método loadRequest: em GADAdLoader aceita os mesmos objetos GADRequest que anúncios de banner e intersticiais. É possível usar os objetos da solicitação para adicionar informações de segmentação do mesmo modo que 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
Objective-C
O limite por solicitação é de cinco, e não há garantia de que o SDK vai retornar o número exato de anúncios solicitados.
Todos os anúncios do Google retornados serão diferentes entre si, mas não há garantia de que os anúncios de inventário reservado ou compradores terceirizados sejam únicos.
Não use a classe GADMultipleAdsAdLoaderOptions se você tiver optado pela mediação, porque as solicitações de vários anúncios nativos não funcionam para IDs de bloco de anúncios que foram configurados para mediação.
Determinar quando o carregamento foi concluído
Depois que um app chama loadRequest:, ele pode receber os resultados da solicitação usando chamadas para:
adLoader:didFailToReceiveAdWithError:emGADAdLoaderDelegateadLoader:didReceiveNativeAd:emGADNativeAdLoaderDelegate
A solicitação de um único anúncio resulta em uma chamada para um desses métodos.
A solicitação de vários anúncios resulta 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 a publicidade e que nenhum outro anúncio ou erro será informado para a solicitação. Confira um exemplo de como usar esse método ao carregar vários anúncios nativos de uma só vez:
Swift
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// The adLoader has finished loading ads.
}
Objective-C
- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
// The adLoader has finished loading ads.
}
Lidar com solicitações com falha
Os protocolos acima estendem o GADAdLoaderDelegate, que define uma mensagem enviada quando ocorre uma falha no carregamento dos anúncios.
Swift
func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
// The adLoader failed to receive an ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
// The adLoader failed to receive an ad.
}
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
// Set the delegate before making an ad request.
adLoader.delegate = self
Objective-C
// Set the delegate before making an ad request.
self.adLoader.delegate = self;
Em seguida, implemente GADNativeAdDelegate para receber as seguintes chamadas via delegado:
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// 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 pré-armazenar a lista de anúncios em cache.
Quando usar o pré-armazenamento de anúncios em cache, limpe e recarregue o cache depois de uma hora.
Não chame
loadRequest:novamente em umGADAdLoaderaté que a solicitação anterior termine de carregar, conforme indicado poradLoaderDidFinishLoading:.Limite o armazenamento em cache de anúncios nativos apenas ao que é necessário. Por exemplo, ao usar o pré-cache, armazene apenas os anúncios que estão imediatamente visíveis na tela. Os anúncios nativos têm um grande consumo de memória, e o armazenamento em cache sem destruição resulta em uso excessivo de memória.
Destrua os anúncios nativos quando não estiverem mais em uso.
Mostrar seu anúncio
Depois de carregar um anúncio, basta mostrá-lo aos usuários. Acesse nosso guia de anúncios nativos avançados para saber como fazer isso.