Annonces interstitielles


Les annonces interstitielles s'affichent en plein écran et recouvrent l'interface d'une application jusqu'à ce que l'utilisateur les ferme. Elles s'affichent généralement à des points de transition naturels dans une application, par exemple entre deux activités ou pendant la pause entre deux niveaux de jeu. Lorsqu'une application affiche une annonce interstitielle, l'utilisateur a le choix de cliquer dessus et de continuer vers sa destination, ou de la fermer et de revenir à l'application. Étude de cas

Ce guide vous explique comment intégrer des annonces interstitielles dans des applications Android et iOS à l'aide du SDK Google Mobile Ads C++.

Prérequis

Toujours effectuer des tests avec des annonces tests

Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. À défaut, votre compte risque d'être suspendu.

Le moyen le plus simple de tester les annonces consiste à utiliser notre ID de bloc d'annonces test dédié pour les interstitiels, qui varie selon la plate-forme de l'appareil :

  • Android : ca-app-pub-3940256099942544/1033173712
  • iOS : ca-app-pub-3940256099942544/4411468910

Il a été spécialement configuré pour renvoyer des annonces tests pour chaque demande. Vous pouvez l'utiliser librement dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.

Pour en savoir plus sur le fonctionnement des annonces tests du SDK Mobile Ads, consultez Annonces tests.

Implémentation

Voici les principales étapes à suivre pour intégrer des annonces interstitielles :

  1. Chargez une annonce.
  2. Enregistrez-vous pour les rappels.
  3. Afficher l'annonce et gérer ses événements de cycle de vie.

Configurer un InterstitialAd

Les annonces interstitielles sont affichées dans des objets InterstitialAd. La première étape pour intégrer des annonces interstitielles dans votre application consiste donc à créer et initialiser un objet InterstitialAd.

  1. Ajoutez l'en-tête suivant au code C++ de votre application :

     #include "firebase/gma/interstial_ad.h"

  2. Déclarez et instanciez un objet InterstitialAd :

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();

  3. Initialisez l'instance InterstitialAd à l'aide de votre vue parente castée en type AdParent. La vue parente est une référence JNI jobject à un Activity Android ou un pointeur vers un UIView iOS.

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
    
  4. Au lieu de conserver l'avenir en tant que variable, vous pouvez vérifier régulièrement l'état de l'opération d'initialisation en appelant InitializeLastResult() sur l'objet InterstitialAd. Cela peut être utile pour suivre le processus d'initialisation dans votre boucle de jeu globale.

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = interstitial_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

Pour en savoir plus sur l'utilisation de firebase::Future, consultez Utiliser des Futures pour surveiller l'état d'exécution des appels de méthode.

Charger une annonce

Pour charger une annonce, la méthode LoadAd() doit être utilisée sur l'objet InterstitialAd. La méthode de chargement nécessite que vous ayez initialisé l'objet InterstitialAd, et que vous disposiez de votre ID de bloc d'annonces et d'un objet AdRequest. Un firebase::Future est renvoyé. Vous pouvez l'utiliser pour surveiller l'état et le résultat de l'opération de chargement.

Le code suivant montre comment charger une annonce une fois que InterstitialAd a été initialisé avec succès :

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);

S'inscrire aux rappels

Vous devez étendre la classe FullScreenContentListener pour recevoir des notifications concernant la présentation des annonces interstitielles et les événements de cycle de vie. Votre sous-classe FullScreenContentListener personnalisée peut être enregistrée via la méthode InterstitialAd::SetFullScreenContentListener(). Elle recevra des rappels lorsque l'annonce sera présentée avec succès ou non, ainsi que lorsqu'elle sera fermée.

Le code suivant montre comment étendre la classe et l'attribuer à l'annonce :

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* full_screen_content_listener =
    new ExampleFullScreenContentListener();
  interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);

InterstitialAd est un objet à usage unique. Cela signifie qu'une fois qu'une annonce interstitielle a été diffusée, elle ne peut plus l'être. Une bonne pratique consiste à charger une autre annonce interstitielle dans la méthode OnAdDismissedFullScreenContent() de votre FullScreenContentListener afin que la prochaine annonce interstitielle commence à se charger dès que la précédente est fermée.

Afficher l'annonce

Les annonces interstitielles doivent s'afficher lors des pauses naturelles dans le flux d'une application, par exemple entre deux niveaux d'un jeu ou après que l'utilisateur a terminé une tâche. Bien que FullScreenContentListener puisse être utilisé pour déterminer quand une annonce a affiché son contenu en plein écran, le futur renvoyé par Show() indiquera également quand l'annonce a été diffusée avec succès.

  firebase::Future<void> result = interstitial_ad->Show();

Bonnes pratiques

Déterminez si les annonces interstitielles sont le type d'annonce adapté à votre application.
Les annonces interstitielles fonctionnent mieux dans les applications comportant des points de transition naturels. La finalisation d'une tâche dans une application (partager une image, terminer un niveau dans un jeu, etc.) constitue un point de transition. Comme l'utilisateur s'attend à une pause dans l'action, il est facile de lui présenter une annonce interstitielle sans perturber son expérience. Réfléchissez aux points du workflow de votre application où vous afficherez des annonces interstitielles et à la façon dont l'utilisateur est susceptible de réagir.
N'oubliez pas de mettre l'action en pause lorsque vous affichez une annonce interstitielle.
Il existe plusieurs types d'annonces interstitielles : textuelles, illustrées, vidéo, etc. Il est important de s'assurer que lorsque votre application affiche une annonce interstitielle, elle suspend également l'utilisation de certaines ressources pour permettre à l'annonce d'en profiter. Par exemple, lorsque vous appelez la méthode pour afficher un interstitiel, veillez à mettre en pause toute sortie audio produite par votre application. Vous pouvez reprendre la lecture des sons dans la méthode OnAdDismissedFullScreenContent de votre FullScreenContentListener installé, qui sera appelée lorsque l'utilisateur aura fini d'interagir avec l'annonce. En outre, envisagez d'interrompre temporairement les tâches de calcul intensives (comme une boucle de jeu) pendant l'affichage de l'annonce. Cela permet de s'assurer que l'utilisateur ne rencontre pas de problèmes de lenteur ou d'absence de réponse des graphismes, ni de saccades vidéo.
Prévoyez un temps de chargement suffisant.
Il est important de s'assurer que les annonces interstitielles sont diffusées au bon moment, mais aussi que l'utilisateur n'a pas à attendre qu'elles se chargent. Le chargement de l'annonce à l'avance, avant de la diffuser, permet de s'assurer que votre application dispose d'une annonce interstitielle entièrement chargée et prête à être affichée le moment venu.
Ne submergez pas l'utilisateur avec des annonces.
Augmenter la fréquence des annonces interstitielles dans votre application peut sembler être un excellent moyen d'accroître vos revenus, mais cela peut également nuire à l'expérience utilisateur et réduire les taux de clics. Assurez-vous que les utilisateurs ne sont pas interrompus trop souvent au point de ne plus pouvoir profiter de votre application.
N'utilisez pas le futur d'achèvement du chargement pour afficher l'interstitiel.
Cela peut nuire à l'expérience utilisateur. Au lieu de cela, préchargez l'annonce avant de devoir la diffuser.

Ressources supplémentaires

Exemple dans GitHub

Tutoriels vidéo Mobile Ads Garage

Témoignages

Étapes suivantes