Options d'annonces natives

Sélectionnez une plate-forme : Android iOS

Les annonces natives offrent de nombreuses fonctionnalités avancées qui vous permettent de personnaliser davantage vos annonces et d'offrir la meilleure expérience publicitaire possible. Ce guide vous explique comment utiliser les fonctionnalités avancées des annonces natives.

Prérequis

Options des composants

Configurez les contrôles des composants d'annonces natives.

Commandes de format multimédia préféré

Les commandes de format du média vous permettent de spécifier une préférence pour le format des créations publicitaires.

Appelez NativeAdOptions.Builder.setMediaAspectRatio() avec une valeur NativeAdOptions.MediaAspectRatio.

  • Si cette valeur n'est pas définie, l'annonce renvoyée peut avoir n'importe quel format média.

  • Si vous le définissez, vous pourrez améliorer l'expérience utilisateur en spécifiant le type de format préféré.

L'exemple suivant indique au SDK de privilégier une image ou une vidéo de retour avec un format spécifique.

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

Remplacez AD_UNIT_ID par l'ID de votre bloc d'annonces.

Contrôle du téléchargement d'images

Le contrôle du téléchargement d'images vous permet de choisir si le SDK renvoie des composants Image ou uniquement des URI.

Appelez NativeAdOptions.Builder.setReturnUrlsForImageAssets() avec une valeur boolean.

  • Les commandes de téléchargement d'images sont désactivées par défaut.

  • Lorsqu'il est désactivé, le SDK Google Mobile Ads renseigne l'image et l'URI pour vous.

  • Lorsqu'il est activé, le SDK ne renseigne que l'URI, ce qui vous permet de télécharger les images réelles à votre discrétion.

L'exemple suivant indique au SDK de ne renvoyer que 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()

Commandes de charge utile d'image

Certaines annonces comportent une série d'images plutôt qu'une seule. Utilisez cette fonctionnalité pour indiquer si votre application est prête à afficher toutes les images ou une seule.

Appelez NativeAdOptions.Builder.setRequestMultipleImages() avec une valeur boolean.

  • Les commandes de charge utile d'image sont désactivées par défaut.

  • Lorsqu'il est désactivé, votre application demande au SDK de ne fournir que la première image pour les composants qui contiennent une série.

  • Lorsque ce paramètre est activé, votre application indique qu'elle est prête à afficher toutes les images pour les composants qui en comportent plusieurs.

L'exemple suivant indique au SDK de renvoyer plusieurs composants d'image.

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

Emplacements Choisir sa pub

Personnalisez l'affichage de l'icône Choisir sa pub.

Contrôles de la position du badge "Choisir sa pub"

Les commandes de positionnement de l'icône "Choisir sa pub" vous permettent de choisir dans quel coin l'afficher.

Appelez NativeAdOptions.Builder.setAdChoicesPlacement() avec une valeur NativeAdOption.AdChoicesPlacement.

  • Si elle n'est pas définie, la position de l'icône Choisir sa pub est définie sur "en haut à droite".

  • Si cette option est définie, le badge "Choix de pub" est placé à la position personnalisée demandée.

L'exemple suivant montre comment définir une position personnalisée pour l'image 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()

Vue personnalisée "Choisir sa pub"

La fonctionnalité de vue personnalisée Choisir sa pub vous permet de positionner l'icône Choisir sa pub à un emplacement personnalisé. Cela diffère des contrôles de position du badge Vos choix de pub, qui ne permettent de spécifier que l'un des quatre angles.

Appelez NativeAdView.setAdChoicesView() avec une valeur AdChoicesView.

L'exemple suivant montre comment définir une vue AdChoices personnalisée, avec l'icône AdChoices affichée dans 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

Commandes vidéo

Configurez le comportement des composants vidéo.

Ignorer un comportement

Le comportement de démarrage avec le son désactivé vous permet de désactiver ou d'activer le son d'une vidéo au démarrage.

Appelez VideoOptions.Builder.setStartMuted() avec une valeur boolean.

  • Le comportement "Démarrer en mode silencieux" est activé par défaut.

  • Lorsqu'il est désactivé, votre application demande que la vidéo commence avec le son.

  • Lorsque cette option est activée, votre application demande que la vidéo commence sans le son.

L'exemple suivant montre comment démarrer la vidéo avec le son activé.

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

Commandes de lecture personnalisées

Cela vous permet de demander des commandes d'entrée vidéo personnalisées pour lire, mettre en pause ou couper le son de la vidéo.

Appelez VideoOptions.Builder.setCustomControlsRequested() avec une valeur boolean.

  • Les commandes de lecture personnalisées sont désactivées par défaut.

  • Si cette option est désactivée, les commandes d'entrée rendues par le SDK s'affichent dans votre vidéo.

Si l'annonce contient du contenu vidéo et que les commandes personnalisées sont activées, vous devez afficher vos commandes personnalisées avec l'annonce, car l'annonce n'affichera aucune commande. Les contrôles peuvent ensuite appeler les méthodes appropriées sur le

VideoController.

L'exemple suivant montre comment demander une vidéo avec des commandes de lecture personnalisées.

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

Vérifier si les commandes personnalisées sont activées

Étant donné qu'il n'est pas possible de savoir au moment de la demande si l'annonce renvoyée autorisera les commandes vidéo personnalisées, vous devez vérifier si les commandes personnalisées sont activées.

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
}

Afficher des commandes vidéo personnalisées

Affichez des commandes vidéo personnalisées en suivant les bonnes pratiques suivantes :

  1. Affichez la vue des commandes personnalisées en tant qu'enfant de la vue de l'annonce native. Cette approche permet aux calculs de la visibilité Open Measurement de considérer les commandes personnalisées comme une obstruction conviviale.
  2. Évitez d'afficher une superposition invisible sur l'intégralité de la vue du contenu multimédia. Les calques bloquent les clics sur la vue du contenu multimédia, ce qui a un impact négatif sur les performances des annonces natives. Créez plutôt un petit calque qui est juste assez grand pour contenir les commandes.

Gestes de clic personnalisés

Les gestes de clic personnalisés sont une fonctionnalité des annonces natives qui permet d'enregistrer les balayages sur les vues d'annonces comme des clics sur les annonces. Il est conçu pour fonctionner avec les applications qui utilisent des gestes de balayage pour parcourir le contenu. Ce guide vous explique comment activer les gestes de clic personnalisés sur vos annonces natives.

Appelez NativeAdOptions.Builder.enableCustomClickGestureDirection() avec un NativeAdOptions.SwipeGestureDirection et un boolean pour indiquer si vous souhaitez que les appuis soient autorisés en tant que clics.

L'exemple suivant implémente un geste de balayage personnalisé vers la droite et préserve le comportement normal des onglets.

  • Les gestes de clic personnalisés sont désactivés par défaut.

  • Lorsqu'il est désactivé, votre application prend en charge le comportement de clic normal.

  • Si cette option est activée, votre application accepte les gestes de balayage personnalisés.

L'exemple suivant implémente un geste de balayage personnalisé vers la droite et préserve le comportement normal des onglets.

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)

Écouter les événements de balayage

Lorsqu'un clic par balayage est enregistré, le SDK Google Mobile Ads appelle la méthode onAdSwipeGestureClicked() sur AdListener, en plus de la méthode onAdClicked() existante.

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

Médiation

Les gestes de clic personnalisés ne fonctionnent que sur les annonces natives affichées par le SDK Google Mobile Ads. Les sources d'annonces qui nécessitent des SDK tiers pour le rendu ne répondent pas au paramètre d'instructions de clic personnalisées.