Annonces interstitielles

Les annonces interstitielles s'affichent en plein écran et recouvrent l'interface de l'application hôte. Elles s'affichent généralement à des points de transition naturels dans une application, par exemple pendant 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.

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

Conditions préalables

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 est spécialement configuré pour renvoyer des annonces tests plutôt que des annonces de production pour chaque demande, ce qui permet de l'utiliser en toute sécurité.

Toutefois, après avoir enregistré une application dans l'interface WebAd Manager et créé vos propres ID de bloc d'annonces à utiliser dans votre application, configurez explicitement votre appareil en tant qu'appareil de test lors du développement.

/6499/example/interstitial

Initialiser le SDK Mobile Ads

Avant de charger des 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 se produise avant de charger les annonces, car cela garantit que tous les adaptateurs de médiation sont initialisés.

Implémentation

Voici les principales étapes à suivre pour intégrer des annonces interstitielles:

  1. Charger l'annonce interstitielle
  2. Diffuser l'annonce interstitielle
  3. Écouter des événements d'annonces interstitielles
  4. Nettoyer l'annonce interstitielle
  5. Précharger l'annonce interstitielle suivante

Charger l'annonce interstitielle

Pour charger une annonce interstitielle, vous devez utiliser la méthode statique Load() sur la classe InterstitialAd. La méthode de chargement nécessite un ID de bloc d'annonces, un objet AdManagerAdRequest et un gestionnaire d'achèvement qui est appelé lorsque le chargement de l'annonce réussit ou échoue. L'objet AdManagerInterstitialAd chargé 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 = "/6499/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() sur l'instance AdManagerInterstitialAd. Les annonces ne peuvent s'afficher qu'une seule 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 des événements d'annonces interstitielles

Pour personnaliser davantage le comportement de votre annonce, vous pouvez intégrer un certain nombre d'événements au cours de son cycle de vie. É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é avec un AdManagerInterstitialAd, veillez à appeler la méthode Destroy() avant d'y déposer votre référence:

_interstitialAd.Destroy();

Cela avertit le plug-in que l'objet n'est plus utilisé et que la mémoire qu'il occupe 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 est diffusée, l'objet ne peut plus être utilisé. Pour demander une autre annonce interstitielle, créez un objet AdManagerInterstitialAd.

Afin de préparer une annonce interstitielle pour la prochaine opportunité d'impression, préchargez-la une fois l'événement d'annonce OnAdFullScreenContentClosed ou OnAdFullScreenContentFailed 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();
    };
}

É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 effectuer des actions en fonction de ces messages.

Vous pouvez écouter des événements d'application spécifiques à Ad Manager à l'aide de AppEvent. Ces événements peuvent se produire à tout moment du cycle de vie de l'annonce, même avant l'appel du chargement.

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 un exemple de gestion de 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;
    }
  }
};

Voici la création correspondante qui envoie l'événement d'application de 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, comme partager une image ou terminer un niveau de jeu, constitue un tel point de départ. Veillez à identifier les étapes du parcours de votre application permettant d'afficher les meilleures annonces 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 plusieurs types d'annonces interstitielles, qu'il s'agisse d'annonces 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 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 l'événement OnAdFullScreenContentClosed(), qui peut être appelé lorsque l'utilisateur a 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 la diffusion de l'annonce. Cela garantit que l'utilisateur ne verra pas de graphiques lents ou qui ne répondent pas, ni de vidéo saccadée.
N'inondez pas les utilisateurs d'annonces.
Même 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.

Autres ressources