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 le flux d'une application, par exemple entre des activités ou pendant la pause entre les niveaux d'un jeu. Lorsqu'une application affiche une annonce interstitielle, l'utilisateur a le choix d'appuyer sur l'annonce et de continuer jusqu'à 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 C++ Google Mobile Ads.

Conditions préalables

  • Suivez la procédure Commencer.
  • (Android uniquement) Vous maîtrisez l'utilisation des références JNI jobject (consultez les conseils JNI Android).

Toujours tester avec des annonces tests

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

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

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

Elles ont été spécialement configurées pour renvoyer des annonces tests pour chaque requête. Vous êtes libre de les utiliser 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. Demandez à recevoir des rappels.
  3. afficher l'annonce et gérer les événements de son cycle de vie ;

Configurer un InterstitialAd

Les annonces interstitielles étant affichées dans des objets InterstitialAd, la première étape pour les intégrer dans votre application consiste à 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 la conversion de votre vue parent en un type AdParent. La vue parent est une référence jobject JNI à 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 le futur 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 la section Utiliser des objets Future pour surveiller l'état d'avancement des appels de méthode.

Charger une annonce

Le chargement d'une annonce s'effectue à l'aide de la méthode LoadAd() sur l'objet InterstitialAd. La méthode de chargement nécessite que vous ayez initialisé l'objet InterstitialAd, et que vous disposiez de l'ID de votre 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 du chargement.

Le code suivant montre comment charger une annonce une fois que l'InterstitialAd a bien été initialisée:

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 pour recevoir des rappels

Vous devez étendre la classe FullScreenContentListener afin de 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() et recevra des rappels lorsque l'annonce sera présentée avec succès ou non, ainsi que lorsqu'elle sera ignoré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 l'annonce interstitielle suivante se charge dès que l'ancienne est ignorée.

Afficher l'annonce

Les interstitiels doivent être affichés lors de pauses naturelles dans le flux d'une application. C'est le cas entre les niveaux d'un jeu ou après que l'utilisateur a terminé une tâche. Bien que FullScreenContentListener puisse être utilisé pour déterminer à quel moment le contenu d'une annonce s'est affiché en plein écran, l'expression future renvoyée par Show() indique également quand l'annonce s'est affichée avec succès.

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

Bonnes pratiques

Déterminez si les annonces interstitielles sont adaptées à votre application.
Les annonces interstitielles sont plus efficaces dans les applications avec des points de transition naturels. La conclusion d'une tâche dans une application, comme partager une image ou terminer un niveau de jeu, crée un tel point. Comme l'utilisateur s'attend à ce qu'une pause soit interrompue, il est facile de diffuser une annonce interstitielle sans perturber son expérience. Veillez à déterminer à quels moments du flux de travail de votre application vous diffuserez des annonces interstitielles, ainsi que la manière dont l'utilisateur est susceptible d'y répondre.
N'oubliez pas de mettre en veille l'action lorsque vous diffusez 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 effectuez l'appel pour afficher une annonce interstitielle, 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é lorsque l'utilisateur aura fini d'interagir avec l'annonce. En outre, envisagez d'interrompre temporairement toutes les tâches de calcul intenses (telles qu'une boucle de jeu) pendant l'affichage de l'annonce. Ainsi, l'utilisateur ne verra pas de graphiques lents ou qui ne répondent pas, ni de vidéos saccadées.
Prévoyez un temps de chargement adéquat.
Tout comme il est important de vous assurer que vos annonces interstitielles s'affichent au bon moment, il est important de veiller à ce que l'utilisateur n'ait pas à attendre qu'elles se chargent. En chargeant l'annonce avant son intention de diffusion, vous vous assurez que votre application dispose d'une annonce interstitielle entièrement chargée au moment de sa diffusion.
N'inondez pas les utilisateurs d'annonces.
Si augmenter la fréquence des annonces interstitielles dans votre application peut sembler être un excellent moyen d'accroître vos revenus, cela peut également nuire à l'expérience utilisateur et aux taux de clics. Assurez-vous que les utilisateurs ne sont pas interrompus si souvent qu'ils ne peuvent plus profiter de votre application.
Pour afficher l'interstitiel, n'utilisez pas le terme "achèvement du chargement" à l'avenir.
Cela peut nuire à l'expérience utilisateur. Préchargez plutôt l'annonce avant que vous n'ayez besoin de la diffuser.

Autres ressources

Exemple dans GitHub

Tutoriels vidéo "The Mobile Ads Garage"

Témoignages

Étapes suivantes