Opções de anúncios nativos

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

Pré-requisitos

Controles de recursos

Controles de proporção de mídia preferidos

Os controles de proporção da mídia permitem especificar uma preferência para a proporção do criativos de anúncios.

Chamar NativeAdOptions.Builder.setMediaAspectRatio() com uma NativeAdOptions.MediaAspectRatio .

  • Se não for definido, o anúncio retornado poderá ter qualquer proporção de mídia.

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

O exemplo a seguir instrui o SDK a dar preferência a uma imagem ou um vídeo de retorno com um 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

O controle de download de imagens permite decidir se os recursos de imagem ou somente URIs retornados pelo SDK.

Chamar 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 as imagens reais a seu critério.

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 indique se o app está preparado para exibir todas as imagens ou apenas uma.

Chamar NativeAdOptions.Builder.setRequestMultipleImages() com um valor boolean.
  • Os controles de payload de imagem estão desativados por padrão.

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

  • Quando ativado, o app indica que está preparado para exibir todas as imagens para qualquer recurso que tenha mais de um.

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();

Canais das 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 Ícone "Opções de anúncios".

Chamar NativeAdOptions.Builder.setAdChoicesPlacement() com uma NativeAdOption.AdChoicesPlacement .

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

  • Se definidas, as Opções de anúncios são colocadas na posição personalizada conforme solicitado.

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

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 das Opções de anúncios

O recurso de visualização personalizada "Opções de anúncios" permite posicionar o ícone "Opções de anúncios" local personalizado. Isso é diferente dos controles de posição das Opções de anúncios, que só permite a especificação de um dos quatro cantos.

Chamar NativeAdView.setAdChoicesView() com uma AdChoicesView .

O exemplo a seguir demonstra como definir uma visualização das Opções de anúncios com o parâmetro Ícone das Opções de anúncios renderizado no AdChoicesView.


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

Controles de vídeo

Iniciar comportamento silenciado

O comportamento de início sem som permite desativar ou ativar o áudio inicial de um vídeo.

Chamar 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 ativado, 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 que você solicite controles de entrada de vídeo personalizados para reproduzir, pausar ou silenciar o vídeo.

Chamar 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 controles personalizados estiverem ativados, você deverá exiba seus controles personalizados junto com o anúncio, já que ele não exibirá controla por conta própria. 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 permitirá controles de vídeo personalizados, você precisa verificar se os controles personalizados 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
  }
}

Gestos de clique personalizados

Os gestos de clique personalizados são um recurso de anúncios nativos que permite deslizar nas visualizações de anúncios para ser registrados como cliques no anúncio. Ele foi projetado para funcionar com apps que usam o recurso de deslizar e gestos para navegação de conteúdo. Este guia mostra como ativar o clique personalizado gestos nos anúncios nativos.

Chamar NativeAdOptions.Builder.enableCustomClickGestureDirection() com uma NativeAdOptions.SwipeGestureDirection e um boolean para indicar se você quer que toques sejam permitidos como cliques.

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

  • Quando desativado, o app é compatível com o comportamento de clique normal.

  • Quando ativado, o app é compatível com gestos de deslizar personalizados.

O exemplo a seguir implementa um gesto de deslizar personalizado para a direita e preserva o comportamento normal das guias.

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 onAdSwipeGestureClicked() no AdListener, além do método existente 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 que o Google Mobile O SDK de anúncios é renderizado. Origens de anúncios que exigem SDKs de terceiros para renderização, não respondem à configuração de rotas de clique personalizadas.