Impostare le funzionalità native avanzate

Seleziona la piattaforma: Android Nuovo Android iOS

Gli annunci nativi hanno molte funzionalità avanzate che ti consentono di apportare personalizzazioni aggiuntive e offrire la migliore esperienza pubblicitaria possibile. Questa guida mostra come utilizzare le funzionalità avanzate degli annunci nativi.

Prerequisiti

  • Integra il formato di annuncio nativo.

Controlli degli asset

Questa sezione descrive in dettaglio come personalizzare gli asset delle creatività negli annunci nativi. Hai la possibilità di specificare un formato preferito per gli asset multimediali e la modalità di download e visualizzazione degli asset immagine.

Controlli del formato multimediale preferito

I controlli del formato multimediale ti consentono di specificare una preferenza per il formato delle creatività pubblicitarie.

Chiama NativeAdOptions.Builder.setMediaAspectRatio() con un valore NativeAdOptions.MediaAspectRatio.

  • Se non è impostato, l'annuncio restituito può avere qualsiasi formato multimediale.

  • Se è impostato, potrai migliorare l'esperienza utente specificando il tipo di formato preferito.

L'esempio seguente indica all'SDK di preferire un'immagine o un video di ritorno con un formato specifico.

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

Sostituisci AD_UNIT_ID con l'ID unità pubblicitaria.

Controllo del download delle immagini

Il controllo del download delle immagini ti consente di decidere se l'SDK deve restituire gli asset immagine o solo gli URI.

Chiama NativeAdOptions.Builder.setReturnUrlsForImageAssets() con un valore boolean.

  • Il controllo del download delle immagini è disattivato per impostazione predefinita.

  • Se disattivato, Google Mobile Ads SDK compila sia l'immagine sia l'URI.

  • Se attivato, l'SDK compila solo l'URI, consentendoti di scaricare le immagini effettive a tua discrezione.

L'esempio seguente indica all'SDK di restituire solo l'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()

Controlli del payload delle immagini

Alcuni annunci hanno una serie di immagini anziché una sola. Utilizza questa funzionalità per indicare se la tua app è pronta a visualizzare tutte le immagini o solo una.

Chiama NativeAdOptions.Builder.setRequestMultipleImages() con un valore boolean.

  • I controlli del payload delle immagini sono disattivati per impostazione predefinita.

  • Se disattivata, la tua app indica all'SDK di fornire solo la prima immagine per gli asset che contengono una serie.

  • Se attivata, la tua app indica che è pronta a visualizzare tutte le immagini per gli asset che ne hanno più di una.

L'esempio seguente indica all'SDK di restituire più asset immagine.

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

Posizionamenti di Scegli Tu!

Questa sezione descrive in dettaglio come posizionare l'overlay Scegli Tu! Puoi impostare il posizionamento in uno dei quattro angoli o eseguirne il rendering in una visualizzazione personalizzata.

Controlli della posizione di Scegli Tu!

I controlli della posizione di Scegli Tu! ti consentono di scegliere l'angolo in cui eseguire il rendering dell'icona Scegli Tu!

Chiama NativeAdOptions.Builder.setAdChoicesPlacement() con un valore NativeAdOption.AdChoicesPlacement.

  • Se non è impostata, la posizione dell'icona Scegli Tu! è impostata in alto a destra.

  • Se è impostata, Scegli Tu! viene posizionata nella posizione personalizzata richiesta.

L'esempio seguente mostra come impostare una posizione personalizzata per l'immagine Scegli Tu!

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

Visualizzazione personalizzata di Scegli Tu!

La funzionalità di visualizzazione personalizzata di Scegli Tu! ti consente di posizionare l'icona Scegli Tu! in una posizione personalizzata. Questa funzionalità è diversa dai controlli della posizione di Scegli Tu!, che consentono di specificare solo uno dei quattro angoli.

Chiama NativeAdView.setAdChoicesView() con un valore AdChoicesView.

L'esempio seguente mostra come impostare una visualizzazione personalizzata di Scegli Tu!, con l'icona Scegli Tu! di cui è stato eseguito il rendering all'interno di 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

Comandi video

Questa sezione descrive in dettaglio come personalizzare l'esperienza di riproduzione degli annunci video. Puoi impostare lo stato di disattivazione audio iniziale e implementare controlli di riproduzione personalizzati.

Comportamento di avvio con audio disattivato

Il comportamento di avvio con audio disattivato ti consente di disattivare o attivare l'audio iniziale di un video.

Chiama VideoOptions.Builder.setStartMuted() con un valore boolean.

  • Il comportamento di avvio con audio disattivato è attivato per impostazione predefinita.

  • Se disattivato, la tua app richiede che il video inizi con l'audio.

  • Se attivato, la tua app richiede che il video inizi con l'audio disattivato.

L'esempio seguente mostra come avviare il video con l'audio attivato.

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

Controlli di riproduzione personalizzati

Questa funzionalità ti consente di richiedere controlli di input video personalizzati per riprodurre, mettere in pausa o disattivare l'audio del video.

Chiama VideoOptions.Builder.setCustomControlsRequested() con un valore boolean.

  • I controlli di riproduzione personalizzati sono disattivati per impostazione predefinita.

  • Se disattivato, il video mostrerà i controlli di input di cui è stato eseguito il rendering dall'SDK.

Se l'annuncio contiene contenuti video e i controlli personalizzati sono attivati, devi visualizzare i controlli personalizzati insieme all'annuncio, perché l'annuncio non mostrerà alcun controllo. I controlli possono quindi chiamare i metodi pertinenti su

VideoController.

L'esempio seguente mostra come richiedere un video con controlli di riproduzione personalizzati.

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

Verificare se i controlli personalizzati sono attivati

Poiché non è noto al momento della richiesta se l'annuncio restituito consentirà i controlli video personalizzati, devi verificare se i controlli personalizzati sono attivati.

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
}

Eseguire il rendering dei controlli video personalizzati

Esegui il rendering dei controlli video personalizzati utilizzando le seguenti best practice:

  1. Esegui il rendering della visualizzazione dei controlli personalizzati come elemento secondario della visualizzazione di annuncio nativo. Questo approccio consente ai calcoli della visibilità della misurazione aperta di considerare i controlli personalizzati come un'ostruzione amichevole.
  2. Evita di eseguire il rendering di un overlay invisibile sull'intero pannello multimediale. Gli overlay bloccano i clic sul pannello multimediale, influendo negativamente sul rendimento degli annunci nativi. Crea invece un piccolo overlay sufficiente a contenere i controlli.

Gesti di clic personalizzati

I gesti di clic personalizzati sono una funzionalità degli annunci nativi che ti consente di registrare gli swipe sulle visualizzazioni degli annunci come clic sugli annunci. Funziona con le app che utilizzano i gesti di swipe per la navigazione dei contenuti. Questa guida mostra come attivare i gesti di clic personalizzati sugli annunci nativi.

Chiama NativeAdOptions.Builder.enableCustomClickGestureDirection() con un valore NativeAdOptions.SwipeGestureDirection e un valore boolean per indicare se consentire i tocchi come clic.

  • I gesti di clic personalizzati sono disattivati per impostazione predefinita.

  • Se disattivata, la tua app supporta il normale comportamento di clic.

  • Se attivata, la tua app supporta i gesti di swipe personalizzati.

L'esempio seguente implementa un gesto di swipe personalizzato verso destra e mantiene il normale comportamento di tocco.

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)

Ascoltare gli eventi dei gesti di swipe

Quando viene registrato un clic con gesto di swipe, Google Mobile Ads SDK richiama il onAdSwipeGestureClicked() metodo su AdListener, oltre al metodo onAdClicked() esistente.

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

Mediazione

I gesti di clic personalizzati funzionano solo sugli annunci nativi di cui l'SDK Google Mobile Ads esegue il rendering. Le origini annuncio che richiedono SDK di terze parti per il rendering non rispondono all'impostazione delle direzioni di clic personalizzate.