Bannières

Les bannières sont des annonces rectangulaires ou illustrées qui occupent une place à l'écran. Elles restent à l'écran lorsque les utilisateurs interagissent avec l'application et peuvent s'actualiser automatiquement au bout d'un certain temps. Si vous n'avez jamais utilisé la publicité mobile, cela représente un bon point de départ. Étude de cas :

Ce guide vous explique comment intégrer des bannières à partir d'AdMob dans une application Unity. Outre les extraits de code et les instructions, il contient des informations sur la taille des bannières et des liens vers des ressources supplémentaires.

Prerequisites

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

Créer une bannière

La première étape pour afficher une bannière consiste à créer un objet BannerView dans un script C# 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 System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

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

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

Le constructeur d'un BannerView comporte les paramètres suivants:

  • adUnitId : ID du bloc d'annonces AdMob à partir duquel BannerView doit charger les annonces.
  • AdSize : taille de l'annonce AdMob que vous souhaitez utiliser. Pour en savoir plus, consultez la section Tailles des bannières.
  • AdPosition : position de la bannière. L'énumération AdPosition répertorie les valeurs de position d'annonce valides.

Il est important de noter que différents blocs d'annonces sont utilisés selon la plate-forme utilisée. 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.

(Facultatif) Position personnalisée de l'annonce

Pour mieux contrôler où un BannerView est placé à l'écran par rapport à ce que propose les valeurs AdPosition, utilisez le constructeur BannerView avec des coordonnées x-y et y comme paramètres:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

L'angle supérieur gauche de BannerView est positionné aux valeurs x et y transmises au constructeur, où l'origine est l'angle supérieur gauche de l'écran.

(Facultatif) Tailles d'annonces personnalisées

En plus d'utiliser une constante AdSize, vous pouvez également spécifier une taille personnalisée pour votre annonce:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

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 à utiliser dans votre application, vous devez configurer explicitement votre appareil en tant qu'appareil de test lors de votre développement. C'est extrêmement important. Le test avec des annonces réelles (même si vous ne les utilisez jamais) est contraire au règlement AdMob et peut entraîner la suspension de votre compte. Consultez la page Tester les annonces pour savoir comment obtenir des annonces tests lors de leur développement.

Charger une annonce

Une fois l'instanciation de BannerView, l'étape suivante consiste à charger une annonce. Cette opération est effectuée à l'aide de la méthode loadAd() dans la classe BannerView. Elle utilise un argument AdRequest, qui contient les informations d'exécution (telles que les informations de ciblage) sur une seule demande d'annonce.

Voici un exemple illustrant comment charger une annonce:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

Et voilà ! Votre application est désormais prête à diffuser des bannières AdMob.

É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 System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.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 HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

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

    public void HandleOnAdLeavingApplication(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication 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)
{
  MonoBehaviour.print("Banner 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'utilisateur appuie sur une annonce. Si vous utilisez un package d'analyse pour effectuer le suivi des clics, cet emplacement est idéal pour en enregistrer un.
OnAdClosed Cette méthode est appelée lorsqu'un utilisateur revient dans l'application après avoir consulté l'URL de destination d'une annonce. Votre application peut l'utiliser pour reprendre des activités suspendues ou effectuer d'autres tâches nécessaires pour se préparer à interagir.
OnAdLeavingApplication Cette méthode est appelée après onAdOpened lorsqu'un utilisateur ouvre une autre application (comme le Google Play Store), en arrière-plan.

Le tableau ci-dessous répertorie les tailles de bannière standards.

Taille en dp (LxH) Description Disponibilité Constante AdSize
320 x 50 Bannière standard Téléphones et tablettes BANNER
320 x 100 Grande bannière Téléphones et tablettes LARGE_BANNER
300 x 250 Rectangle moyen IAB Téléphones et tablettes MEDIUM_RECTANGLE
468 x 60 Bannière intégrale de IAB Tablettes FULL_BANNER
728 x 90 Classement de l'IAB Tablettes LEADERBOARD
Largeur fournie x Hauteur adaptative Bannière adaptative Téléphones et tablettes N/A
Largeur de l'écran x 32|50|90 Bannière intelligente Téléphones et tablettes SMART_BANNER
Découvrez les bannières adaptatives, qui ont pour but de remplacer les bannières intelligentes.

Nettoyer les bannières

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

bannerView.Destroy();

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

Autres ressources

Exemples

Témoignages