Os anúncios nativos são ativos de publicidade apresentados aos usuários por componentes da interface nativos da plataforma. Eles aparecem com base nas mesmas classes que você já usa nos storyboards e podem ser formatados para combinar com o design visual do app.
Quando um anúncio nativo é carregado, o app recebe um objeto de anúncio que contém os ativos, e o app, e não o SDK dos anúncios para dispositivos móveis do Google, é responsável por exibi-los.
De modo geral, há duas partes para implementar anúncios nativos: carregar um anúncio usando o SDK e mostrar o conteúdo do anúncio no app.
Esta página mostra como usar o SDK para carregar anúncios nativos.
Pré-requisitos
- Concluir o Guia para iniciantes.
Sempre teste com anúncios de teste
Ao criar e testar seus apps, use anúncios de teste em vez de publicidade de produção ativa.
A maneira mais fácil de carregar anúncios de teste é usar o ID do 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, o teste e a depuração. Basta substituí-lo pelo seu ID de bloco de anúncios antes de publicar o app.
Para mais informações sobre como os anúncios de teste do SDK 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, é necessário 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",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Você vai precisar de um ID do bloco de anúncios (pode 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 você quer definir no parâmetro options
. A lista de valores possíveis
para o parâmetro options
pode ser encontrada na página Configurar opções de
anúncios nativos.
A matriz adTypes
precisa conter
esta constante :
Implementar o delegado do carregador de anúncios
O representante 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
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:
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 banners e intersticiais. É possível usar objetos de solicitação para adicionar
informações de segmentação, assim
como 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",
// The UIViewController parameter is optional.
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"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
O número de anúncios por solicitação é limitado a cinco, e não há garantia de que o SDK vai retornar o número exato de anúncios solicitados.
Os anúncios do Google retornados serão diferentes uns dos outros, mas não há garantia de que os anúncios de inventário reservado ou de compradores terceirizados sejam exclusivos.
Não use a classe GADMultipleAdsAdLoaderOptions
se você estiver usando a mediação,
porque as solicitações de vários anúncios nativos não funcionam atualmente para IDs de blocos de anúncios
configurados para mediação.
Como 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:
emGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
emGADNativeAdLoaderDelegate
Uma solicitação de um único anúncio resultará em uma chamada para um desses métodos.
Uma solicitação de vários anúncios vai resultar em pelo menos uma 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. Confira 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",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
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"
// The UIViewController parameter is nullable.
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
Como lidar com solicitações com falha
Os protocolos acima estendem o protocolo GADAdLoaderDelegate
, que define uma
mensagem enviada quando há falha de carregamento dos anúncios.
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 de eventos relacionados às interações com anúncios nativos, defina a propriedade de delegação do anúncio nativo:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Em seguida, implemente
GADNativeAdDelegate
para receber as seguintes chamadas de delegação:
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 pré-cachear a lista de anúncios.
Ao pré-armazenar anúncios, limpe o cache e recarregue após uma hora.
Não chame
loadRequest:
novamente em umGADAdLoader
até que a solicitação anterior termine de carregar, conforme indicado poradLoaderDidFinishLoading:
.Limite o armazenamento em cache de anúncios nativos apenas ao necessário. Por exemplo, ao fazer a pré-cache, armazene em cache apenas os anúncios que estão imediatamente visíveis na tela. Os anúncios nativos têm uma grande pegada de memória, e o armazenamento em cache deles sem a destruição resulta em uso excessivo de memória.
Destrua os anúncios nativos quando eles não estiverem mais em uso.
Mostrar seu anúncio
Depois de carregar um anúncio, basta exibi-lo aos usuários. Confira nosso guia avançado de nativas para saber como.