Bannières

Les vues de bannière sont des annonces textuelles ou illustrées rectangulaires qui occupent une place à l'écran. Elles restent à l'écran lorsque les utilisateurs interagissent avec l'application et peuvent s'actualiser automatiquement après un certain temps. Si vous débutez dans la publicité sur mobile, c'est un excellent point de départ.

Ce guide explique comment intégrer des vues de bannière dans une application Unity. En plus des extraits de code et des instructions, il inclut des informations sur le dimensionnement correct des bannières et des liens vers des ressources supplémentaires.

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/banner

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.

Exemple d'utilisation de BannerView

L'exemple de code ci-dessous explique comment utiliser l'affichage sous forme de bannière. Dans cet exemple, vous créez une instance de vue de bannière, utilisez un AdManagerAdRequest pour charger une annonce dans la vue de bannière, puis étendez ses capacités en gérant les événements de cycle de vie.

Créer une vue de bannière

La première étape de l'utilisation d'une vue de bannière consiste à créer une instance d'une vue de bannière dans un script C# associé à un GameObject.


  // This ad unit is configured to always serve test ads.
  private string _adUnitId = "/6499/example/banner";

  AdManagerBannerView _bannerView;

  /// <summary>
  /// Creates a 320x50 banner view at top of the screen.
  /// </summary>
  public void CreateBannerView()
  {
      Debug.Log("Creating banner view");

      // If we already have a banner, destroy the old one.
      if (_bannerView != null)
      {
          DestroyAd();
      }

      // Create a 320x50 banner at top of the screen
      _bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
  }

Le constructeur d'une AdManagerBannerView comporte les paramètres suivants:

  • adUnitId: ID du bloc d'annonces à partir duquel le AdManagerBannerView doit charger les annonces.
  • AdSize: taille d'annonce que vous souhaitez utiliser. Pour en savoir plus, consultez la page Tailles des bannières.
  • AdPosition: position à laquelle les vues de la bannière doivent être placées. L'énumération AdPosition répertorie les valeurs de position d'annonce valides.

Notez la façon dont les blocs d'annonces sont utilisés selon la plate-forme. Vous devez utiliser un bloc d'annonces iOS pour effectuer des demandes d'annonces sur iOS et un bloc d'annonces Android pour envoyer des demandes sur Android.

(Facultatif) Créer un affichage de bannière avec une position personnalisée

Pour mieux contrôler l'emplacement à l'écran d'un élément AdManagerBannerView par rapport à celui proposé par les valeurs AdPosition, utilisez le constructeur ayant des coordonnées x et y comme paramètres:

// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, 0, 50);

L'angle supérieur gauche de AdManagerBannerView est positionné au niveau des valeurs x et y transmises au constructeur, l'origine étant l'angle supérieur gauche de l'écran.

(Facultatif) Créer un affichage de bannière avec une taille personnalisée

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

// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new AdManagerBannerView(_adUnitId, adSize, AdPosition.Bottom);

(Facultatif) Plusieurs tailles d'annonces

Ad Manager vous permet de spécifier plusieurs tailles d'annonces pouvant être diffusées dans un AdManagerBannerView. Avant de mettre en œuvre cette fonctionnalité dans le SDK, créez un élément de campagne ciblant les mêmes blocs d'annonces associés à des créations de différentes tailles.

Dans votre application, transmettez plusieurs paramètres AdSize à ValidAdSizes:

var adView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
adView.ValidAdSizes = new List<AdSize>
{
    AdSize.Banner, new AdSize(120, 20), new AdSize(250, 250),
};

Si AdManagerAdView change de taille au moment de l'actualisation, votre mise en page doit pouvoir s'adapter automatiquement à la nouvelle taille. AdManagerAdView est défini par défaut sur la taille transmise au premier paramètre jusqu'au renvoi de l'annonce suivante.

Charger une bannière

Une fois AdManagerBannerView en place, chargez une annonce avec la méthode LoadAd() dans la classe AdManagerBannerView. Elle utilise un paramètre AdManagerAdRequest qui contient des informations d'exécution, telles que les informations de ciblage, les libellés d'exclusion et l'ID fourni par l'éditeur.

/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
    // create an instance of a banner view first.
    if(_bannerView == null)
    {
        CreateAdManagerBannerView();
    }

    // create our request used to load the ad.
    var adRequest = new AdManagerAdRequest();

    // send the request to load the ad.
    Debug.Log("Loading banner ad.");
    _bannerView.LoadAd(adRequest);
}

Écouter les événements d'affichage de la bannière

Pour personnaliser le comportement de votre annonce, vous pouvez intégrer un certain nombre d'événements au cours de son cycle de vie, tels que le chargement, l'ouverture ou la fermeture. Pour écouter ces événements, inscrivez un délégué:

/// <summary>
/// listen to events the banner view may raise.
/// </summary>
private void ListenToAdEvents()
{
    // Raised when an ad is loaded into the banner view.
    _bannerView.OnBannerAdLoaded += () =>
    {
        Debug.Log("Banner view loaded an ad with response : "
            + _bannerView.GetResponseInfo());
    };
    // Raised when an ad fails to load into the banner view.
    _bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
    {
        Debug.LogError("Banner view failed to load an ad with error : "
            + error);
    };
    // Raised when the ad is estimated to have earned money.
    _bannerView.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Banner view paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    _bannerView.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Banner view recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    _bannerView.OnAdClicked += () =>
    {
        Debug.Log("Banner view was clicked.");
    };
    // Raised when an ad opened full screen content.
    _bannerView.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Banner view full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    _bannerView.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Banner view full screen content closed.");
    };
}

Détruire l'affichage de la bannière

Lorsque vous avez terminé d'utiliser la bannière, veillez à appeler Destroy() pour libérer les ressources.

/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyBannerView()
{
    if (_bannerView != null)
    {
        Debug.Log("Destroying banner view.");
        _bannerView.Destroy();
        _bannerView = null;
    }
}

Et voilà ! Votre application est maintenant prête à diffuser des bannières.

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

Taille en dp (LxH) Description Garantie de 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 IAB Rectangle moyen Téléphones et tablettes MEDIUM_RECTANGLE
468 x 60 Bannière IAB en taille réelle Tablettes FULL_BANNER
728 x 90 Leaderboard 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
En savoir plus sur les bannières adaptatives, destinées à remplacer les bannières intelligentes.

É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:

_bannerview.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:

_bannerview.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>

Autres ressources