Les annonces interstitielles s'affichent en plein écran et recouvrent l'interface d'une application jusqu'à ce que l'utilisateur les ferme. Elles sont généralement diffusées lors de points de transition naturels, par exemple entre deux activités ou pendant la pause entre les niveaux du jeu. Lorsqu'une application affiche une annonce interstitielle, l'utilisateur a le choix entre appuyer sur l'annonce et continuer vers sa destination ou la fermer et 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++.
Conditions préalables
- Suivez les instructions de la section Premiers pas.
- (Android uniquement) Connaissance des références
jobject
JNI (voir les conseils JNI Android).
Effectuez toujours 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 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
Ils ont été spécialement configurés pour renvoyer des annonces de test pour chaque requête. Vous pouvez 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 :
- Chargez une annonce.
- Demandez à recevoir les rappels.
- Affichez l'annonce et gérez ses événements de cycle de vie.
Configurer un InterstitialAd
Les annonces interstitielles sont affichées dans des objets InterstitialAd
. La première étape de l'intégration des annonces interstitielles dans votre application consiste donc à créer et à initialiser un objet InterstitialAd
.
Ajoutez l'en-tête suivant au code C++ de votre application :
#include "firebase/gma/interstial_ad.h"
Déclarez et instanciez un objet
InterstitialAd
:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Initialisez l'instance
InterstitialAd
à l'aide de votre vue parente castée en typeAdParent
. La vue parente est une référencejobject
JNI à unActivity
Android ou un pointeur vers unUIView
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);
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'objetInterstitialAd
. 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 futures pour surveiller l'état d'achèvement 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
, que vous disposiez de l'ID de votre bloc d'annonces et d'un objet AdRequest
. Un firebase::Future
est renvoyé, que vous pouvez 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é correctement initialisé :
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);
Demander à recevoir des rappels
Vous devez étendre la classe FullScreenContentListener
pour recevoir des notifications de présentation d'annonces interstitielles et d'é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 diffusé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 est diffusée, elle ne peut plus être diffusée à nouveau. Il est recommandé de 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 les niveaux d'un jeu ou après qu'un 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()
signale également que l'annonce s'est bien affichée.
firebase::Future<void> result = interstitial_ad->Show();
Bonnes pratiques
- Déterminez si les annonces interstitielles sont adaptées à 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 ou terminer un niveau dans un jeu, par exemple) crée un tel point. Comme l'utilisateur s'attend à une interruption de l'action, il est facile de présenter une annonce interstitielle sans perturber son expérience. Veillez à déterminer à quel moment du workflow de votre application vous allez afficher des annonces interstitielles et comment l'utilisateur est susceptible de réagir.
- 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 de les utiliser. 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 votreFullScreenContentListener
installé, qui sera appelée lorsque l'utilisateur aura terminé d'interagir avec l'annonce. En outre, envisagez de suspendre temporairement toutes les tâches de calcul intenses (telles qu'une boucle de jeu) pendant l'affichage de l'annonce. Cela garantit que l'utilisateur ne rencontre pas de graphiques lents ou non réactifs, 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 à l'avance avant de l'afficher, vous pouvez vous assurer que votre application dispose d'une annonce interstitielle entièrement chargée lorsqu'il est temps de l'afficher.
- 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 de devoir la diffuser.
Autres ressources
Exemple dans GitHub
- Consultez le code source de notre exemple d'application de démarrage rapide sur GitHub.
Tutoriels vidéo Mobile Ads Garage
Témoignages
Étapes suivantes
- Si vous ne l'avez pas déjà fait, créez votre propre bloc d'annonces interstitielles dans l'UI AdMob.
- En savoir plus sur le ciblage publicitaire et les consignes concernant les annonces interstitielles