Les annonces interstitielles s'affichent en plein écran, recouvrant 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 du jeu. Lorsqu'une application affiche un l'utilisateur a le choix d'appuyer sur l'annonce sa destination ou le fermer et revenir à l’application.
Ce guide explique comment intégrer des annonces interstitielles dans une application Unity.
Prérequis
- Suivez le guide de démarrage.
Toujours tester 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 des annonces de production pour chaque requête, ce qui vous permet de les utiliser en toute sécurité.
Cependant, une fois que vous avez enregistré une application dans de l'interface Web Ad Manager et créé votre propre bloc d'annonces ID à utiliser dans votre application, configurez explicitement votre appareil en tant que test de l'appareil développement d'applications.
/21775744923/example/interstitial
Initialiser le SDK Mobile Ads
Avant de charger les annonces, demandez à votre application d'initialiser 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 ait lieu avant de charger les annonces en tant que afin de garantir 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
- Diffuser l'annonce interstitielle
- Écouter des événements d'annonces interstitielles
- Nettoyer l'annonce interstitielle
- Précharger l'annonce interstitielle suivante
Charger l'annonce interstitielle
Pour charger une annonce interstitielle, vous devez utiliser la méthode statique Load()
au niveau de la
InterstitialAd
. La méthode de chargement requiert un ID de bloc d'annonces, un
un objet AdManagerAdRequest
et un gestionnaire d'achèvement
est appelé lorsque le chargement de l'annonce réussit ou échoue. L'objet chargé
L'objet AdManagerInterstitialAd
est fourni en tant que paramètre dans
le gestionnaire d'achèvement. L'exemple ci-dessous montre comment charger un
AdManagerInterstitialAd
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/interstitial";
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 AdManagerAdRequest();
// send the request to load the ad.
AdManagerInterstitialAd.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;
});
}
Diffuser l'annonce interstitielle
Pour diffuser une annonce interstitielle chargée, appelez la méthode Show()
au niveau de la
AdManagerInterstitialAd
instance. Les annonces peuvent être diffusées une fois par
charge. 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 des événements d'annonces interstitielles
Pour personnaliser davantage le comportement de votre annonce, vous pouvez intégrer un certain nombre les événements du cycle de vie de l'annonce. Écouter 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é un AdManagerInterstitialAd
,
veillez à appeler la méthode Destroy()
avant d'y déposer votre référence:
_interstitialAd.Destroy();
Cela indique au plug-in que l'objet n'est plus utilisé et la mémoire qu'il occupée peut être récupérée. L'échec de l'appel de cette méthode entraîne des fuites de mémoire.
Précharger l'annonce interstitielle suivante
Les annonces interstitielles sont un objet à usage unique. Cela signifie qu'une fois qu'une annonce interstitielle
s'affiche, l'objet ne peut pas être réutilisé. Pour demander une autre annonce interstitielle,
Créez un objet AdManagerInterstitialAd
.
Pour préparer une annonce interstitielle pour la prochaine opportunité d'impression, préchargez l'annonce interstitielle une fois l'événement d'annonce OnAdFullScreenContentClosed
ou OnAdFullScreenContentFailed
généré.
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();
};
}
Événements d'application
Les événements d'application vous permettent de créer des annonces qui peuvent envoyer des messages au code de l'application. L'application peut ensuite prendre des mesures en fonction de ces messages.
Vous pouvez écouter les événements d'application spécifiques à Ad Manager à l'aide de AppEvent
. Ces événements peuvent se produire à tout moment pendant le cycle de vie de l'annonce, même avant l'appel de la charge.
namespace GoogleMobileAds.Api.AdManager;
/// The App event message sent from the ad.
public class AppEvent
{
// Name of the app event.
string Name;
// Argument passed from the app event.
string Value;
}
OnAppEventReceived
est déclenché lorsqu'un événement d'application se produit dans une annonce. Voici une
Exemple illustrant comment gérer cet événement dans votre code:
_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};
Voici un exemple montrant comment modifier la couleur d'arrière-plan de votre application. en fonction d'un événement d'application avec un nom de couleur:
_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
if (args.Name == "color")
{
Color color;
if (ColorUtility.TryParseColor(arg.Value, out color))
{
gameObject.GetComponent<Renderer>().material.color = color;
}
}
};
Et voici la création correspondante qui envoie un événement d'application couleur:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
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, telle que le partage d'une image ou la réalisation d'une au niveau du jeu, crée un tel point. Veillez à déterminer à quels moments de votre le parcours de l'application pour optimiser les annonces display interstitielles et la façon dont l'utilisateur est susceptible de réagir.
- Mettre en veille l'action lors de la diffusion d'une annonce interstitielle.
- Il existe de nombreux types d'annonces interstitielles, telles que les annonces textuelles,
une image ou une vidéo. Il est important de vous assurer que lorsque votre application affiche un
l'utilisation de certaines ressources pour permettre à l'annonce
pour en tirer parti. Par exemple, lorsque vous effectuez l'appel pour afficher une
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 appelée lorsque l'utilisateur a fini d'interagir avec l'annonce. Dans envisagez d'interrompre temporairement toute tâche de calcul intense, comme boucle de jeu pendant l'affichage de l'annonce. Cela garantit que l'utilisateur n'a pas les graphiques sont lents ou ne répondent pas, ou la vidéo est saccadée. - N'inondez pas les utilisateurs d'annonces.
- Même si augmenter la fréquence des annonces interstitielles dans votre application peut sembler est un excellent moyen d'augmenter vos revenus, mais il peut aussi nuire à l'expérience utilisateur et des taux de clics plus faibles. Assurez-vous que les utilisateurs interrompu et il ne pourra plus profiter de votre application.
Ressources supplémentaires
- Exemple HelloWorld: Une implémentation minimale de tous les formats d'annonces.