Annonces interstitielles

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 une 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 à sa destination, ou la fermer pour revenir à l'application. Étude de cas

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

Prerequisites

Suivez la procédure Commencer. Le plug-in Google Mobile Ads doit déjà être importé pour votre application Unity.

Créer une annonce interstitielle

La première étape pour afficher un interstitiel consiste à créer un objet InterstitialAd dans un script associé à un GameObject.

Pour intégrer plus facilement des annonces à l'aide de l'éditeur Unity, testez la nouvelle version bêta des emplacements pour annonces.

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 InterstitialAd doit charger les annonces.

Il est important de noter la façon dont les différents blocs d'annonces sont utilisés, en fonction de la plate-forme. Vous devrez utiliser un bloc d'annonces iOS pour les 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 et vous pouvez demander des annonces contenant ce bloc. Elle a été spécialement configurée pour renvoyer des annonces tests plutôt que pour chaque demande, ce qui permet de les 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 pour votre application, vous devez configurer explicitement votre appareil en tant qu'appareil de test lors de votre développement. C'est extrêmement important. Effectuer des tests avec des annonces réelles (même si vous ne les utilisez jamais) va à l'encontre du règlement AdMob et peut entraîner la suspension de votre compte. Pour en savoir plus sur la façon de vous assurer de toujours bénéficier d'annonces tests lors du développement, consultez la page Tester les annonces.

Charger une annonce

Une fois l'instanciation de InterstitialAd, l'étape suivante consiste à charger une annonce. Cette opération est effectuée à l'aide de la méthode loadAd() dans la classe InterstitialAd. Elle utilise un argument AdRequest, qui contient les informations d'exécution (telles que les informations de ciblage) concernant 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 être diffusées pendant des pauses naturelles dans le flux d'une application. Entre les niveaux d'un jeu, une fois qu'un utilisateur a terminé une tâche, Pour diffuser un interstitiel, utilisez la méthode isLoaded() afin de vérifier qu'elle est chargée, 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 publicitaires

Pour personnaliser davantage le comportement de votre annonce, vous pouvez intégrer un certain nombre d'événements dans le cycle de vie de celle-ci: chargement, ouverture, fermeture, etc. Pour écouter ces événements, enregistrez un délégué pour l'objet 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. Il transmet une instance de HandleAdFailedToLoadEventArgs avec un élément 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 publicitaireDescription
OnAdLoaded L'événement OnAdLoaded est exécuté lorsque le chargement de l'annonce est terminé.
OnAdFailedToLoad L'événement OnAdFailedToLoad est appelé lorsqu'une annonce ne se charge pas. Le paramètre Message décrit le type d'échec survenu.
OnAdOpening Cette méthode est appelée lorsque l'annonce s'affiche sur l'écran de l'appareil.
OnAdClosed Cette méthode est appelée lorsque l'annonce interstitielle est fermée, car l'utilisateur a appuyé sur l'icône de fermeture ou a appuyé sur le bouton "Retour". Si votre application met en pause la sortie audio ou la boucle de jeu, vous pouvez la réactiver.

Nettoyer les annonces interstitielles

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

interstitial.Destroy();

Cela informe 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.

Bonnes pratiques

Déterminez si les annonces interstitielles sont le type d'annonce le mieux adapté à votre application.
Les annonces interstitielles sont plus performantes dans les applications avec 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 ce point. L'internaute s'attend à une pause, il est donc facile de présenter une annonce interstitielle sans perturber son expérience. Prenez en compte les étapes de votre workflow d'application qui vous permettront d'afficher des annonces interstitielles et la manière dont l'utilisateur est susceptible de répondre.
N'oubliez pas de mettre en veille l'action lors de la diffusion d'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 affichera une annonce interstitielle, son utilisation de certaines ressources sera également suspendue afin que l'annonce puisse en profiter. Par exemple, lorsque vous appelez l'affichage d'une annonce interstitielle, veillez à mettre en pause toute sortie audio générée par votre application. Vous pouvez reprendre la lecture des sons dans le gestionnaire d'événements onAdClosed(), qui sera appelé lorsque l'utilisateur aura fini d'interagir avec l'annonce. En outre, pensez à arrêter temporairement toutes les tâches de calcul intenses (comme une boucle de jeu) pendant l'affichage de l'annonce. Cela évite les images et les vidéos saccadées ni lentes.
Laissez un temps de chargement suffisant.
Il est important d'afficher les annonces interstitielles au moment opportun, mais également d'attendre que l'utilisateur se charge. En chargeant l'annonce à l'avance en appelant loadAd() avant d'appeler show(), vous pouvez vous assurer que votre application dispose d'une annonce interstitielle entièrement chargée au moment où elle s'affichera.
N'inondez pas l'utilisateur d'annonces.
Même si l'augmentation de la fréquence des annonces interstitielles dans votre application peut vous permettre d'accroître vos revenus, cela peut également nuire à l'expérience utilisateur et réduire les taux de clics. Assurez-vous que les utilisateurs ne sont pas souvent interrompus dans leur utilisation pour ne plus pouvoir utiliser votre application.

Autres ressources

Exemples

Témoignages