Opções de anúncios nativos

Os anúncios nativos têm muitos recursos avançados que permitem fazer outras personalizações e ter 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

Controles de proporção de mídia preferidos

Com os controles de proporção da mídia, 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 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 preferido.

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Controle de download de imagens

Com o controle de download de imagens, você decide se os recursos de imagem ou apenas URIs são retornados pelo SDK.

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ê faça o download das imagens reais.

O exemplo a seguir instrui o SDK a retornar apenas o URI.

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .forNativeAd(nativeAd -> {
                                List<Uri> imageUris = new ArrayList<>();
                                for (Image image : nativeAd.getImages()) {
                                  imageUris.add(image.getUri());
                                }
                              })
                              .build();

Controles de payload de imagem

Alguns anúncios apresentam uma série de imagens em vez de apenas uma. Use esse recurso para indicar se o app está preparado para exibir 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 desativada, o app instrui o SDK a fornecer apenas a primeira imagem dos 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.

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

Posições das Opções de anúncios

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

Os controles de posição das Opções de anúncios permitem escolher em qual canto renderizar o ícone das Opções de anúncios.

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

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

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

O exemplo a seguir demonstra como definir uma posição de imagem personalizada do AdChoices.

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

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

O recurso de visualização personalizada das Opções de anúncios permite posicionar o ícone em um local personalizado. Isso é diferente dos controles de posição do AdChoices, que permitem apenas a especificação de 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.


public void onNativeAdLoaded(NativeAd ad) {
    NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
    AdChoicesView adChoicesView = new AdChoicesView(this);
    nativeAdView.setAdChoicesView(adChoicesView);
}

Controles de vídeo

Comportamento de desativação do som

Com esse comportamento, você pode desativar ou ativar o áudio inicial de um vídeo.

Chame VideoOptions.Builder.setStartMuted() com um valor boolean.
  • O comportamento de início sem som é ativado por padrão.

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

  • Quando ativada, o 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.

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

Controles de mídia personalizados

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

Chame VideoOptions.Builder.setCustomControlsRequested() com um valor boolean.
  • O controle de reprodução personalizado fica desativado por padrão.

  • Quando desativado, o vídeo mostra os controles de entrada renderizados pelo SDK.

  • Se o anúncio tiver conteúdo de vídeo e os controles personalizados estiverem ativados, mostre seus controles personalizados com o anúncio, já que ele não mostra nenhum controle. 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.

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).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

@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
  MediaContent mediaContent = nativeAd.getMediaContent();
  if (mediaContent != null) {
    VideoController videoController = mediaContent.getVideoController();
    boolean canShowCustomControls = videoController.isCustomControlsEnabled();
  }
}

Kotlin

NativeAd.OnNativeAdLoadedListener { ad ->
  val mediaContent = ad.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. Processa a visualização dos controles personalizados como filha da visualização do anúncio nativo. Essa abordagem garante que os cálculos de visibilidade do Open Measurement considerem os controles personalizados como uma obstrução amigável.
  2. Evite renderizar uma sobreposição invisível sobre toda a visualização de mídia. As sobreposições bloqueiam os cliques na visualização de mídia, o que afeta negativamente a performance dos anúncios nativos. Em vez disso, crie uma sobreposição pequena 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 o gesto de deslizar em visualizações de anúncios seja registrado 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.

  • Os gestos de clique personalizados são desativados por padrão.

  • Quando desativado, o app vai oferecer suporte ao comportamento normal de cliques.

  • Quando ativado, o app oferece 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.

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

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
AdLoader.Builder builder = new AdLoader
    .Builder(this, '/21775744923/example/native')
    .withNativeAdOptions(adOptions);

Ouvir 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().

AdLoader adLoader = builder
    .withAdListener(
      new AdListener() {
        // Called when a swipe gesture click is recorded.
        @Override
        public void onAdSwipeGestureClicked() {
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        // Called when a swipe gesture click or a tap click is recorded, as
        // configured in NativeAdOptions.
        @Override
        public void onAdClicked() {
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      })
    .build();

Mediação

Os 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 rotas de cliques personalizadas.