Os anúncios nativos são recursos apresentados aos usuários por meio de componentes de IU nativos da plataforma. Eles são mostrados com as mesmas classes que você já usa nos seus 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 que contém os recursos dele, que é responsável por exibi-los, e não o SDK dos anúncios para dispositivos móveis do Google.
Em termos gerais, a implementação de anúncios nativos tem duas partes: carregar um anúncio usando o SDK e, em seguida, 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 explicativo.
Sempre teste 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 pode ser usado nos seus próprios apps durante a programação, o teste e a depuração. Basta substituí-lo pelo seu próprio ID do bloco de anúncios antes de publicar o aplicativo.
Para mais informações sobre como funcionam os anúncios de teste do SDK dos anúncios para dispositivos móveis do Google, 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ê vai 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 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 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, 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 de inicializar o GADAdLoader
, 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:
no
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 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 de anúncios por solicitação é limitado a cinco, e não é possível garantir que o SDK retorne o número exato de anúncios solicitados.
Os anúncios retornados do Google serão todos diferentes uns dos outros, embora não seja garantido que os anúncios de inventário reservado ou de compradores de terceiros sejam exclusivos.
Não use a classe GADMultipleAdsAdLoaderOptions
se você estiver utilizando a mediação,
já que as solicitações de 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:
adLoader:didFailToReceiveAdWithError:
emGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
emGADNativeAdLoaderDelegate
Uma 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 retorno de chamada para os métodos acima, mas não mais que o número máximo de anúncios solicitados.
Além disso, o 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á 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
Como lidar com solicitações com falha
Os protocolos acima estendem o protocolo GADAdLoaderDelegate
, que define uma mensagem enviada quando há falha no 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 sobre eventos relacionados a interações com anúncios nativos, defina a propriedade delegada desse anúncio:
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 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 em cache a lista.
Ao armazenar anúncios previamente em cache, limpe seu cache e recarregue após uma hora.
Não chame
loadRequest:
novamente em umGADAdLoader
até que a solicitação anterior termine o carregamento, conforme indicado poradLoaderDidFinishLoading:
.
Exiba seu anúncio
Depois de carregar um anúncio, só falta exibi-lo aos usuários. Consulte o Guia de anúncios nativos avançados para saber como fazer isso.