Os anúncios nativos são recursos apresentados aos usuários por meio de componentes da interface que são nativos da plataforma. Elas são mostradas usando os mesmos tipos de visualização, que você já está criando em seus layouts e pode ser formatado para corresponder a seus 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 dos anúncios para dispositivos móveis do Google) é responsável por exibi-los.
A implementação de anúncios nativos tem duas partes: Carregar um anúncio usando o SDK e exibir o conteúdo do anúncio no app.
Esta página mostra como usar o SDK para carregar anúncios nativos. Dica: saiba mais sobre os anúncios nativos em Anúncios nativos manual.
Você também pode conferir algumas histórias de sucesso de clientes: estudo de caso 1, estudo de caso 2.
Pré-requisitos
- Leia o Guia explicativo.
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 Android:
ca-app-pub-3940256099942544/2247696110
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. Apenas certifique-se de e substitua-o pelo seu próprio ID do bloco de anúncios antes de publicar o app.
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
AdLoader
,
que tem sua própria
Builder
para personalizá-la durante a criação. Adicionando listeners ao AdLoader
ao criá-lo, um aplicativo especifica para quais tipos de anúncios nativos ele está pronto
receber. Em seguida, o AdLoader
solicita apenas esses tipos.
Criar um AdLoader
O código a seguir demonstra como criar um AdLoader
que pode carregar dados nativos
anúncios:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
Kotlin
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
O
forNativeAd()
é responsável por preparar o AdLoader
para o formato NativeAd
.
Quando um anúncio é carregado, o objeto onNativeAdLoaded()
do listener
é chamado.
Configurar um AdListener com o AdLoader (opcional)
Ao criar a AdLoader
, a
withAdListener
define um
AdListener
para o
carregador. O método usa um AdListener
como parâmetro único, que recebe
callbacks do AdLoader
quando ocorrerem eventos de ciclo de vida do anúncio:
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
Solicitar anúncios
Depois de criar um AdLoader
, é hora de usá-lo para solicitar anúncios.
Há dois métodos disponíveis para isso: loadAd()
e loadAds()
.
loadAd()
Esse método envia uma solicitação para um único anúncio.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
Esse método envia uma solicitação para vários anúncios (até cinco):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Ambos os métodos têm uma
AdRequest
como o primeiro parâmetro. Isto é igual
Classe AdRequest
usada por banners e intersticiais,
e você pode usar métodos da classe AdRequest
para
adicione informações de segmentação, assim como
que você faria com outros formatos de anúncio.
Carregar vários anúncios (opcional)
O método loadAds()
usa um parâmetro adicional: o número de anúncios que o SDK
deve tentar carregar para a solicitação. Esse número é limitado a cinco e é
não há garantia de que o SDK retornará o número exato de anúncios solicitados.
Os anúncios retornados do Google serão diferentes entre si, embora os anúncios de inventário reservado ou compradores de terceiros não têm garantia de serem exclusivos.
Não use o método loadAds()
se você estiver usando 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.
Callbacks
Após uma chamada para loadAd()
, um único callback é feito para o objeto definido anteriormente
listener disponíveis para exibir o objeto do anúncio nativo ou relatar um erro.
Após uma chamada para loadAds()
, são feitos vários callbacks (pelo menos um,
e não mais do que o número de anúncios solicitados). Apps que solicitam vários anúncios
precisa chamar AdLoader.isLoading()
nas implementações de callback para
determinar se o processo de carregamento foi concluído.
Este é um exemplo de como verificar o isLoading()
no
Callback onNativeAdLoaded()
:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
Liberar recursos
Use o método destroy()
nos anúncios nativos carregados. Este lançamento
usou recursos e evita vazamentos de memória.
Verifique se todas as referências a NativeAd
são destruídas no
onDestroy()
.
No callback onNativeAdLoaded
, destrua todos os objetos existentes
anúncios nativos que terão a referência removida.
Outra verificação importante é se a atividade foi destruída e, em caso afirmativo, chame destroy()
no
o anúncio retornado e retornar imediatamente:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
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
loadAd()
ouloadAds()
em umaAdLoader
até a primeira solicitação termina de carregar.
Aceleração de hardware para anúncios em vídeo
Para que os anúncios em vídeo sejam exibidos corretamente nas visualizações de anúncios nativos, hardware aceleração precisa ser ativada.
A aceleração de hardware é ativada por padrão, mas alguns apps podem optar por desativá-la. Caso isso se aplique ao seu app, recomendamos ativar o hardware aceleração de classes de atividade que usam anúncios.
Como ativar a aceleração de hardware
Se o app não se comportar corretamente com a aceleração de hardware ativada
globalmente, também é possível controlá-lo para atividades individuais. Para ativar ou
desativar a aceleração de hardware, use o atributo android:hardwareAccelerated
para o
<application>
e
<activity>
elementos em AndroidManifest.xml
. O exemplo abaixo ativa
para todo o app, mas a desativa para uma atividade:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Consulte a página sobre aceleração guia para mais informações sobre opções para controlar a aceleração de hardware. Observação que visualizações de anúncios individuais não possam ser ativadas para aceleração de hardware se o A atividade está desativada, portanto, ela precisa ter aceleração de hardware. ativado.
Exiba seu anúncio
Depois de carregar um anúncio, resta apenas exibi-lo aos usuários. Acesse o módulo Nativo para saber como.