Os anúncios nativos têm muitos recursos avançados, e com eles você pode criar personalizações e oferecer a melhor experiência possível. Este guia mostra como usar esses recursos.
Pré-requisitos
- Integre o formato de anúncio nativo.
Controles de recursos
Esta seção detalha como personalizar os recursos de criativo nos seus anúncios nativos. Você pode especificar uma proporção preferida para recursos de mídia e como os recursos de imagem são baixados e mostrados.
Controles de proporção de mídia preferencial
Com a API Media Aspect Ratio Controls, você pode especificar uma preferência para a proporção dos criativos de anúncios.
Chame NativeAdOptions.Builder.setMediaAspectRatio()
com um valor NativeAdOptions.MediaAspectRatio
.
Quando essa propriedade não é definida, o anúncio retornado pode ter qualquer proporção.
Quando definida, você pode aprimorar a experiência do usuário especificando o tipo de proporção desejado.
O exemplo a seguir instrui o SDK a escolher uma imagem ou um vídeo com uma proporção específica.
Java
Kotlin
Substitua AD_UNIT_ID pelo ID do seu bloco de anúncios.
Controle de download de imagens
Com o controle de download de imagens, você decide se o SDK vai retornar recursos de imagem ou apenas URIs.
Chame NativeAdOptions.Builder.setReturnUrlsForImageAssets()
com um valor boolean
.
O controle fica desativado por padrão.
Quando desativado, o SDK dos anúncios para dispositivos móveis do Google preenche a imagem e o URI para você.
Quando ativado, o SDK preenche apenas o URI, permitindo que você baixe as imagens reais a seu critério.
O exemplo a seguir instrui o SDK a retornar apenas o URI.
Java
Kotlin
Controles de payload de imagens
Alguns anúncios têm uma série de imagens em vez de apenas uma. Use esse recurso para indicar se o app está preparado para mostrar todas as imagens ou apenas uma.
Chame NativeAdOptions.Builder.setRequestMultipleImages()
com um valor boolean
.
Os controles de payload de imagens ficam desativados por padrão.
Quando desativados, o app instrui o SDK a fornecer apenas a primeira imagem de qualquer recurso que tiver uma série.
Quando ativados, o app indica que está preparado para mostrar todas as imagens de recursos que têm mais de uma.
O exemplo a seguir instrui o SDK a retornar vários recursos de imagem.
Java
Kotlin
Posições das Opções de anúncios
Esta seção detalha como posicionar a sobreposição do AdChoices. Você pode definir a posição em um dos quatro cantos ou renderizar em uma visualização personalizada.
Controles de posição das Opções de Anúncios
Com os controles de posição das AdChoices, você escolhe em qual canto renderizar o ícone.
Chame NativeAdOptions.Builder.setAdChoicesPlacement()
com um valor NativeAdOption.AdChoicesPlacement
.
Se isso não for feito, o ícone vai ficar no canto superior direito.
Se você definir uma posição, o ícone será colocado no local escolhido.
O exemplo a seguir mostra como definir uma posição personalizada para a imagem das Opções de Anúncios.
Java
Kotlin
Visualização personalizada das Opções de anúncios
O recurso de visualização personalizada das Opções de Anúncios permite colocar esse ícone no local que você escolher. Esse recurso é diferente dos controles de posição das Opções de Anúncios, que permitem especificar apenas um dos quatro cantos da imagem.
Chame NativeAdView.setAdChoicesView()
com um valor AdChoicesView
.
O exemplo a seguir demonstra como definir uma visualização personalizada das Opções de Anúncios, com o
ícone renderizado dentro do AdChoicesView
.
Java
NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);
Kotlin
val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView
Controles de vídeo
Esta seção detalha como personalizar a experiência de reprodução dos anúncios em vídeo. Você pode definir o estado inicial de mudo e implementar controles de reprodução personalizados.
Comportamento de iniciar sem som
Com o comportamento de iniciar sem som, você pode ativar ou desativar o áudio inicial de um vídeo.
Chame VideoOptions.Builder.setStartMuted()
com um valor boolean
.
O comportamento de iniciar sem som fica ativado por padrão.
Quando desativado, o app solicita que o vídeo comece com áudio.
Quando ativado, o app solicita que o vídeo comece sem áudio.
O exemplo a seguir mostra como iniciar o vídeo com o áudio ativado.
Java
Kotlin
Controles de mídia personalizados
Esse recurso permite solicitar controles personalizados para reproduzir, pausar ou silenciar o vídeo.
Chame VideoOptions.Builder.setCustomControlsRequested()
com um valor boolean
.
Os controles personalizados de mídia ficam desativados por padrão.
Quando desativados, seu vídeo vai mostrar controles de reprodução renderizados pelo SDK.
Se o anúncio tiver conteúdo de vídeo e os controles personalizados estiverem ativados, mostre-os, já que o anúncio não vai exibir nenhum controle por conta própria. Em seguida, os controles podem chamar os métodos relevantes no
O exemplo a seguir mostra como solicitar um vídeo com controles de mídia personalizados.
Java
Kotlin
Verificar se os controles personalizados estão ativados
Como não se sabe no momento da solicitação se o anúncio retornado vai permitir controles de vídeo personalizados, verifique se eles estão ativados.
Java
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
Kotlin
val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
Renderizar controles de vídeo personalizados
Renderize controles de vídeo personalizados usando estas práticas recomendadas:
- Renderize a visualização de controles personalizados como um elemento filho da visualização de anúncio nativo. Com essa abordagem, os cálculos de visibilidade da medição aberta consideram os controles personalizados como uma obstrução amigável.
- Evite renderizar uma sobreposição invisível por cima de toda a visualização de mídia. As sobreposições bloqueiam os cliques na visualização, afetando negativamente a performance dos anúncios nativos. Crie uma sobreposição com tamanho suficiente para apenas caber os controles.
Gestos de clique personalizados
Com esse recurso dos anúncios nativos, gestos de deslizar em visualizações de anúncio podem ser registrados como cliques. Ele foi projetado para funcionar com apps que usam esses gestos na navegação. Este guia mostra como ativar gestos de clique personalizados nos seus anúncios nativos.
Chame NativeAdOptions.Builder.enableCustomClickGestureDirection()
com um NativeAdOptions.SwipeGestureDirection
e um boolean
para indicar se você quer que os toques sejam entendidos como cliques.
O exemplo a seguir implementa um gesto de deslizar personalizado para a direita e preserva o comportamento normal da guia.
Os gestos de clique personalizados ficam desativados por padrão.
Quando desativado, o app vai oferecer suporte ao comportamento normal de cliques.
Quando ativado, seu app vai oferecer suporte a gestos de deslizar personalizados.
O exemplo a seguir implementa um gesto de deslizar personalizado para a direita e preserva o comportamento normal da guia.
Java
Kotlin
Detectar eventos relacionados a gestos de deslizar
Quando um clique do tipo "gesto de deslizar" é registrado, o SDK dos anúncios para dispositivos móveis do Google invoca o
método onAdSwipeGestureClicked()
em AdListener
, além do
método onAdClicked()
atual.
Java
AdLoader adLoader =
new AdLoader.Builder(context, AD_UNIT_ID)
.withAdListener(
new AdListener() {
// Called when a swipe gesture click is recorded.
@Override
public void onAdSwipeGestureClicked() {
// Called when a swipe gesture click is recorded.
Log.d(TAG, "A swipe gesture click has occurred.");
}
@Override
public void onAdClicked() {
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
}
})
.build();
Kotlin
val adLoader =
AdLoader.Builder(context, AD_UNIT_ID)
.withAdListener(
object : AdListener() {
override fun onAdSwipeGestureClicked() {
// Called when a swipe gesture click is recorded.
Log.d(TAG, "A swipe gesture click has occurred.")
}
override fun onAdClicked() {
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
}
}
)
.build()
Mediação
Gestos de clique personalizados só funcionam em anúncios nativos renderizados pelo SDK dos anúncios para dispositivos móveis do Google. As origens de anúncios que exigem SDKs de terceiros para renderização não respondem a essa configuração.