Opções de anúncios nativos

Selecione a plataforma: Android iOS

Os anúncios nativos têm muitos recursos avançados que permitem fazer outras personalizações e criar a melhor experiência de anúncio possível. Este guia mostra como usar os recursos avançados dos anúncios nativos.

Pré-requisitos

Controles de recursos

Configure os controles de recursos de anúncios nativos.

Controles de proporção de mídia preferida

Com os controles de proporção de mídia, você pode especificar uma preferência para a proporção dos criativos de anúncio.

Chame NativeAdOptions.Builder.setMediaAspectRatio() com um valor NativeAdOptions.MediaAspectRatio.

  • Quando não definido, o anúncio retornado pode ter qualquer proporção de mídia.

  • Quando definido, você pode melhorar a experiência do usuário especificando o tipo de proporção da tela preferido.

O exemplo a seguir instrui o SDK a preferir uma imagem ou um vídeo de retorno com uma proporção específica.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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 de download de imagens 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

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

Controles de payload de imagem

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 imagem ficam desativados por padrão.

  • Quando desativado, o app instrui o SDK a fornecer apenas a primeira imagem de recursos que contêm uma série.

  • Quando ativado, 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

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Posicionamentos das Opções de anúncios

Personalize a exibição do ícone "Opções de anúncios".

Controles de posição das Opções de anúncios

Com os controles de posição das Opções de anúncios, você escolhe em qual canto renderizar o ícone.

Chame NativeAdOptions.Builder.setAdChoicesPlacement() com um valor NativeAdOption.AdChoicesPlacement.

  • Se não for definido, a posição do ícone "Opções de anúncios" será definida como canto superior direito.

  • Se definido, o AdChoices será colocado na posição personalizada conforme solicitado.

O exemplo a seguir demonstra como definir uma posição personalizada para a imagem das Escolhas de anúncios.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Visualização personalizada das Opções de anúncios

Com o recurso de visualização personalizada "Opções de anúncios", é possível posicionar o ícone em um local personalizado. Isso é diferente dos controles de posição do AdChoices, que permitem especificar apenas um dos quatro cantos.

Chame NativeAdView.setAdChoicesView() com um valor AdChoicesView.

O exemplo a seguir demonstra como definir uma visualização personalizada do AdChoices, com o ícone do AdChoices 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

Configure o comportamento do recurso de vídeo.

Iniciar comportamento de desativação do som

Com o comportamento de início 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 com o som desativado está ativado por padrão.

  • Quando desativado, o app solicita que o vídeo comece com áudio.

  • Quando ativado, seu app solicita que o vídeo comece com o áudio desativado.

O exemplo a seguir mostra como iniciar o vídeo com o áudio ativado.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Controles de mídia personalizados

Isso permite solicitar controles personalizados de entrada de vídeo para reproduzir, pausar ou silenciar o vídeo.

Chame VideoOptions.Builder.setCustomControlsRequested() com um valor boolean.

  • Os controles personalizados de reprodução ficam desativados por padrão.

  • Quando desativada, seu vídeo vai mostrar controles de entrada renderizados pelo SDK.

Se o anúncio tiver conteúdo de vídeo e os controles personalizados estiverem ativados, mostre-os junto com o anúncio, já que ele não vai mostrar nenhum controle por conta própria. Em seguida, os controles podem chamar os métodos relevantes no

VideoController.

O exemplo a seguir mostra como solicitar um vídeo com controles de reprodução personalizados.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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, é necessário verificar 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 as seguintes práticas recomendadas:

  1. Renderize a visualização de controles personalizados como um elemento filho da visualização de anúncio nativo. Essa abordagem permite que os cálculos de visibilidade da medição aberta considerem os controles personalizados como uma obstrução amigável.
  2. Evite renderizar uma sobreposição invisível em toda a visualização de mídia. As sobreposições bloqueiam os cliques na visualização de mídia, afetando negativamente a performance dos anúncios nativos. Em vez disso, crie uma pequena sobreposição que seja grande o suficiente para caber nos controles.

Gestos de clique personalizados

Os gestos de clique personalizados são um recurso de anúncios nativos que permite que deslizes nas visualizações de anúncios sejam registrados como cliques. Ele foi projetado para funcionar com apps que usam gestos de deslizar para navegar pelo conteúdo. 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 permitidos como cliques.

O exemplo a seguir implementa um gesto de deslizar para a direita personalizado 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 para a direita personalizado e preserva o comportamento normal da guia.

Java

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

Detectar eventos de gestos de deslizar

Quando um clique de 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().

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 à configuração de instruções de clique personalizadas.