Opzioni per gli annunci nativi

Seleziona la piattaforma:Android iOS

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

Prerequisiti

Controlli degli asset

Configura i controlli degli asset annuncio nativo.

Controlli delle proporzioni dei contenuti multimediali preferiti

I controlli delle proporzioni dei contenuti multimediali ti consentono di specificare una preferenza per le proporzioni 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 proporzioni preferito.

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

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 restituisce 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 disattivata, l'SDK Google Mobile Ads compila sia l'immagine sia l'URI.

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

Il seguente esempio 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 dell'immagine

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 dell'immagine sono disattivati per impostazione predefinita.

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

  • Se attivata, la tua app indica di essere 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!

Personalizza la visualizzazione dell'icona Scegli Tu!.

Controlli della posizione di Scegli Tu!

I controlli della posizione di Scegli Tu! ti consentono di scegliere l'angolo in cui visualizzare l'icona Scegli Tu!.

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

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

  • Se impostato, AdChoices viene posizionato nella posizione personalizzata come richiesto.

Il seguente esempio mostra come impostare una posizione personalizzata per l'immagine AdChoices.

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 Scegli Tu! ti consente di posizionare l'icona Scegli Tu! in una posizione personalizzata. Questi controlli sono diversi da quelli per la posizione di AdChoices, 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! visualizzata 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

Configura il comportamento degli asset video.

Avvia comportamento di disattivazione

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 è attivo per impostazione predefinita.

  • Se disattivata, l'app richiede che il video inizi con l'audio.

  • Se attivata, la tua app richiede che l'audio del video sia disattivato all'inizio.

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

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

In questo modo, puoi 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 disattivata, il video mostrerà i controlli di input visualizzati dall'SDK.

Se l'annuncio include contenuti video e i controlli personalizzati sono attivati, devi visualizzare i controlli personalizzati insieme all'annuncio, in quanto l'annuncio non mostra alcun controllo. I controlli possono quindi chiamare i metodi pertinenti sul

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

Controllare se i controlli personalizzati sono attivi

Poiché al momento della richiesta non è noto se l'annuncio restituito consentirà controlli video personalizzati, devi verificare se questi 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
}

Visualizzare i controlli video personalizzati

Visualizza i controlli video personalizzati utilizzando le seguenti best practice:

  1. Esegui il rendering della visualizzazione dei controlli personalizzati come elemento secondario della visualizzazione dell'annuncio nativo. Questo approccio consente ai calcoli della visibilità di Open Measurement di considerare i controlli personalizzati come un'ostruzione amichevole.
  2. Evita di eseguire il rendering di una sovrapposizione invisibile sull'intera visualizzazione dei contenuti multimediali. Le overlay bloccano i clic sulla visualizzazione dei contenuti multimediali, influendo negativamente sul rendimento degli annunci nativi. Crea invece una piccola sovrapposizione abbastanza grande da contenere i controlli.

Gesti di clic personalizzati

I gesti di clic personalizzati sono una funzionalità degli annunci nativi che consente di registrare gli scorrimenti sulle visualizzazioni degli annunci come clic sugli annunci. È progettato per funzionare con le app che utilizzano i gesti di scorrimento per la navigazione dei contenuti. Questa guida mostra come attivare i gesti di clic personalizzati sui tuoi annunci nativi.

Chiama NativeAdOptions.Builder.enableCustomClickGestureDirection() con un NativeAdOptions.SwipeGestureDirection e un boolean per indicare se vuoi che i tocchi siano consentiti come clic.

L'esempio seguente implementa un gesto di scorrimento personalizzato verso destra e mantiene il normale comportamento delle schede.

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

  • Se disattivata, l'app supporterà il normale comportamento di clic.

  • Se abilitata, la tua app supporterà i gesti di scorrimento personalizzati.

L'esempio seguente implementa un gesto di scorrimento personalizzato verso destra e mantiene il normale comportamento delle schede.

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)

Ascolta gli eventi di scorrimento

Quando viene registrato un clic con scorrimento, l'SDK Google Mobile Ads richiama il metodo onAdSwipeGestureClicked() 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 esegue il rendering l'SDK Google Mobile Ads. Le origini annuncio che richiedono SDK di terze parti per il rendering non rispondono all'impostazione delle indicazioni personalizzate per i clic.