Annonces interstitielles (anciennes)

Les annonces interstitielles s'affichent en plein écran et couvrent l'interface de l'application hôte. Elles sont généralement diffusées à des points de transition naturels dans l'application, par exemple lors de la pause entre les niveaux d'un jeu. Lorsqu'une application affiche une annonce interstitielle, l'utilisateur peut appuyer sur l'annonce et continuer vers sa destination, ou la fermer et revenir à l'application. Étude de cas

Ce guide explique comment intégrer des annonces interstitielles à une application Unity.

Prérequis

Créer une annonce interstitielle

Pour afficher un interstitiel, la première étape consiste à créer un objet InterstitialAd dans un script associé à un élément GameObject.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

Le constructeur de InterstitialAd comporte le paramètre suivant:

  • adUnitId : ID du bloc d'annonces AdMob à partir duquel le InterstitialAd doit charger les annonces.

Il est important de noter comment les différents blocs d'annonces sont utilisés en fonction de la plate-forme. Vous devez utiliser un bloc d'annonces iOS pour envoyer des demandes d'annonces sur iOS et un bloc d'annonces Android pour les demandes sur Android.

Toujours tester avec des annonces tests

L'exemple de code ci-dessus contient un ID de bloc d'annonces. Vous pouvez demander des annonces en utilisant cet ID. Il est spécialement configuré pour renvoyer des annonces tests plutôt que des annonces de production pour chaque requête, ce qui permet de l'utiliser en toute sécurité.

Toutefois, une fois que vous avez enregistré une application dans l'interface utilisateur AdMob et créé vos propres ID de bloc d'annonces à utiliser dans votre application, vous devez configurer explicitement votre appareil en tant qu'appareil de test au moment du développement. C'est extrêmement important. Les tests avec des annonces réelles (même si vous n'appuyez jamais dessus) vont à l'encontre du règlement AdMob et peuvent entraîner la suspension de votre compte. Consultez Annonces tests pour savoir comment vous assurer de toujours recevoir des annonces tests lorsque vous développez.

Charger une annonce

Une fois l'élément InterstitialAd instancié, l'étape suivante consiste à charger une annonce. Pour ce faire, utilisez la méthode loadAd() de la classe InterstitialAd. Il utilise un argument AdRequest, qui contient des informations d'exécution (telles que les informations de ciblage) sur une seule demande d'annonce.

Voici un exemple illustrant comment charger une annonce:

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Diffuser l'annonce

Les annonces interstitielles doivent s'afficher lors de pauses naturelles dans le flux d'une application. Par exemple, entre les niveaux d'un jeu, ou après que l'utilisateur a terminé une tâche. Pour afficher un interstitiel, utilisez la méthode isLoaded() afin de vérifier que le chargement est terminé, puis appelez show().

L'annonce interstitielle de l'exemple de code précédent peut être diffusée à la fin d'un jeu, comme illustré ci-dessous.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Événements d'annonce

Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous connecter à plusieurs événements au cours de son cycle de vie: chargement, ouverture, fermeture, etc. Écoutez ces événements en enregistrant un délégué pour le EventHandler approprié, comme indiqué ci-dessous.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

L'événement OnAdFailedToLoad contient des arguments d'événement spéciaux. Elle transmet une instance de HandleAdFailedToLoadEventArgs avec un Message décrivant l'erreur:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Événement d'annonceDescription
OnAdLoaded L'événement OnAdLoaded est exécuté lorsque le chargement d'une annonce est terminé.
OnAdFailedToLoad L'événement OnAdFailedToLoad est appelé en cas d'échec du chargement d'une annonce. Le paramètre Message décrit le type d'échec qui s'est produit.
OnAdOpening Cette méthode est appelée lorsque l'annonce est diffusée et recouvre l'écran de l'appareil.
OnAdClosed Cette méthode est invoquée lorsque l'annonce interstitielle est fermée, car l'utilisateur appuie sur l'icône de fermeture ou sur le bouton "Retour". Si votre application a mis en pause sa sortie audio ou sa boucle de jeu, nous vous recommandons de les reprendre à cet endroit.

Nettoyer les annonces interstitielles

Lorsque vous avez terminé avec une InterstitialAd, veillez à appeler la méthode Destroy() avant de supprimer votre référence à celle-ci:

interstitial.Destroy();

Cela informe le plug-in que l'objet n'est plus utilisé et que la mémoire occupée peut être récupérée. L'échec de l'appel de cette méthode entraîne des fuites de mémoire.

Quelques bonnes pratiques

Déterminez si les annonces interstitielles sont le bon type d'annonce pour votre application.
Les annonces interstitielles sont plus efficaces dans les applications qui présentent des points de transition naturels. La conclusion d'une tâche dans une application, comme le partage d'une image ou la fin d'un niveau de jeu, crée un tel point. Étant donné que l'utilisateur s'attend à une interruption de l'action, il est facile de lui présenter une annonce interstitielle sans perturber son expérience. Réfléchissez à à quels stades du workflow de votre application vous diffuserez des annonces interstitielles, et à la manière dont l'utilisateur est susceptible de réagir.
N'oubliez pas de mettre en veille l'action lors de l'affichage d'une annonce interstitielle.
Il existe plusieurs types d'annonces interstitielles: textuelles, illustrées, vidéo, etc. Lorsque votre application affiche une annonce interstitielle, vous devez vous assurer que l'utilisation de certaines ressources est également suspendue pour que l'annonce puisse 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 le gestionnaire d'événements onAdClosed(), qui sera invoqué lorsque l'utilisateur aura fini d'interagir avec l'annonce. En outre, envisagez d'interrompre temporairement les tâches de calcul intenses (telles qu'une boucle de jeu) pendant l'affichage de l'annonce. Vous éviterez ainsi que des graphismes lents ou qui ne répondent pas, ou que la vidéo soit saccadée.
Prévoyez un temps de chargement adéquat.
Tout comme il est important de vous assurer que vous diffusez des annonces interstitielles au moment opportun, il est également important que l'utilisateur n'ait pas à attendre que leur chargement soit terminé. Le chargement de l'annonce à l'avance en appelant loadAd() avant d'avoir l'intention d'appeler show() permet de s'assurer que votre application dispose d'une annonce interstitielle entièrement chargée et prête le moment venu d'en afficher une.
N'inondez pas l'utilisateur d'annonces.
L'augmentation de la fréquence des annonces interstitielles dans votre application peut sembler être un excellent moyen d'augmenter vos revenus, mais cela peut également avoir un impact négatif sur l'expérience utilisateur et réduire les taux de clics. Assurez-vous que les utilisateurs ne soient pas interrompus trop souvent au point qu'ils ne puissent plus profiter de votre application.

Ressources supplémentaires

Exemples

Témoignages