Les annonces interstitielles s'affichent en plein écran et recouvrent l'interface de l'application hôte. Elles sont généralement diffusées lors de points de transition naturels, par exemple pendant la pause entre les niveaux d'un jeu. Lorsqu'une application affiche une annonce interstitielle, l'utilisateur peut choisir d'appuyer sur l'annonce et de continuer vers sa destination, ou de la fermer et de revenir à l'application. Étude de cas
Ce guide explique comment intégrer des annonces interstitielles dans une application Unity.
Prérequis
- Suivez le guide de démarrage.
Toujours effectuer des tests avec des annonces tests
L'exemple de code suivant contient un ID de bloc d'annonces que vous pouvez utiliser pour demander des annonces tests. Il a été spécialement configuré pour renvoyer des annonces tests plutôt que des annonces de production pour chaque demande, ce qui le rend sûr à utiliser.
Toutefois, après avoir enregistré une application dans l'interface Web AdMob et créé vos propres ID de bloc d'annonces à utiliser dans votre application, configurez explicitement votre appareil en tant qu'appareil de test pendant le développement.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Initialiser le SDK Mobile Ads
Avant de charger des annonces, faites en sorte que votre application initialise le SDK Mobile Ads en appelant MobileAds.Initialize()
. Cette opération ne doit être effectuée qu'une seule fois, idéalement au lancement de l'application.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Si vous utilisez la médiation, attendez que le rappel se produise avant de charger les annonces. Cela garantira que tous les adaptateurs de médiation sont initialisés.
Implémentation
Voici les principales étapes à suivre pour intégrer des annonces interstitielles :
- Charger l'annonce interstitielle
- Afficher l'annonce interstitielle
- Écouter les événements d'annonces interstitielles
- Nettoyer l'annonce interstitielle
- Précharger la prochaine annonce interstitielle
Charger l'annonce interstitielle
Pour charger une annonce interstitielle, la méthode statique Load()
doit être utilisée sur la classe InterstitialAd
. La méthode de chargement nécessite un ID de bloc d'annonces, un objet AdRequest
et un gestionnaire d'achèvement appelé lorsque le chargement de l'annonce réussit ou échoue. L'objet InterstitialAd
chargé est fourni en tant que paramètre dans le gestionnaire d'achèvement. L'exemple ci-dessous montre comment charger un InterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private InterstitialAd _interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_interstitialAd != null)
{
_interstitialAd.Destroy();
_interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_interstitialAd = ad;
});
}
Afficher l'annonce interstitielle
Pour afficher une annonce interstitielle chargée, appelez la méthode Show()
sur l'instance InterstitialAd
. Les annonces peuvent être diffusées une fois par chargement. Utilisez la méthode CanShowAd()
pour vérifier que l'annonce est prête à être diffusée.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Écouter les événements d'annonces interstitielles
Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous connecter à un certain nombre d'événements du cycle de vie de l'annonce. Écoutez ces événements en enregistrant un délégué comme indiqué ci-dessous.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Nettoyer l'annonce interstitielle
Lorsque vous avez terminé d'utiliser un InterstitialAd
, veillez à appeler la méthode Destroy()
avant de supprimer votre référence à celui-ci :
_interstitialAd.Destroy();
Cela indique au plug-in que l'objet n'est plus utilisé et que la mémoire qu'il occupe peut être récupérée. Si vous n'appelez pas cette méthode, vous risquez de provoquer des fuites de mémoire.
Précharger la prochaine annonce interstitielle
Les annonces interstitielles sont des objets à usage unique. Cela signifie qu'une fois qu'une annonce interstitielle est affichée, l'objet ne peut plus être utilisé. Pour demander une autre annonce interstitielle, créez un objet InterstitialAd
.
Pour préparer une annonce interstitielle pour la prochaine opportunité d'impression, préchargez-la une fois que l'événement d'annonce OnAdFullScreenContentClosed
ou OnAdFullScreenContentFailed
est déclenché.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
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.) crée un tel point. Veillez à déterminer les points du flux de votre application où il est le plus judicieux d'afficher des annonces interstitielles et à anticiper la réaction des utilisateurs.
- Mettez l'action en pause lorsque vous affichez une annonce interstitielle.
- Il existe plusieurs types d'annonces interstitielles : textuelles, illustrées ou vidéo. 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 l'affichage d'une annonce interstitielle, veillez à mettre en pause toute sortie audio produite par votre application. Vous pouvez reprendre la lecture des sons dans l'événement
OnAdFullScreenContentClosed()
, qui peut être invoqué lorsque l'utilisateur a fini d'interagir avec l'annonce. De plus, envisagez d'interrompre temporairement les tâches de calcul intensives, telles qu'une boucle de jeu, pendant la diffusion 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 graphiques, ni de saccades vidéo. - 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 dégrader 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.
Ressources supplémentaires
- Exemple HelloWorld : Implémentation minimale de tous les formats d'annonces.