Bannière publicitaire

Les bannières publicitaires sont des publicités illustrées ou textuelles rectangulaires qui occupent une place à l'écran. Ils restent à l'écran pendant que les utilisateurs interagissent avec l'application et peuvent s'actualiser automatiquement après un certain temps. Si vous débutez dans la publicité mobile, c'est un excellent point de départ. Etude de cas .

Ce guide vous montre comment intégrer des bannières publicitaires d'AdMob dans une application Unity. En plus des extraits de code et des instructions, il comprend également des informations sur le dimensionnement correct des bannières et des liens vers des ressources supplémentaires.

Conditions préalables

Complete Commencez . Votre application Unity doit déjà avoir importé le plug-in Google Mobile Ads Unity.

Créer un BannerView

La première étape vers l' affichage d' une bannière est de créer un BannerView objet dans un script C # attaché à un GameObject .

Pour une intégration simplifiée des annonces en utilisant l'éditeur Unity, essayez la nouvelle Beta Placements annonce .

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'une BannerView a les paramètres suivants:

  • adUnitId - L'unité ad AdMob à partir de laquelle le BannerView devrait charger des annonces.
  • AdSize - La taille de l' annonce AdMob que vous souhaitez utiliser (consulter bannière tailles pour plus de détails).
  • AdPosition de l' AdPosition - La position où doit être placé l'annonce de la bannière. La AdPosition de l' AdPosition ENUM répertorie les valeurs de position d'annonce valides.

Il est important de noter comment différents blocs d'annonces sont utilisés, selon la plate-forme. Vous devrez utiliser un bloc d'annonces iOS pour faire des demandes d'annonces sur iOS et un bloc d'annonces Android pour faire des demandes sur Android.

(Facultatif) Position d'annonce personnalisée

Pour un meilleur contrôle sur l' endroit où un BannerView est placé sur l' écran que ce qui est offert par AdPosition valeurs, utilisez le BannerView constructeur qui a x et y coordonnées comme paramètres:

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

Le coin supérieur gauche de la BannerView sera positionné à l'valeurs x et y transmis au constructeur, dont l'origine est le coin 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);

Testez toujours avec des annonces de test

L'exemple de code ci-dessus contient un ID de bloc d'annonces et vous êtes libre de demander des annonces avec celui-ci. Il a été spécialement configuré pour renvoyer des annonces de test plutôt que des annonces de production pour chaque demande, ce qui le rend sûr à utiliser.

Cependant, une fois que vous enregistrez une application dans l'interface utilisateur AdMob et de créer vos propres identifiants d'unité d'annonce pour une utilisation dans votre application, vous devez explicitement configurer votre appareil en tant que dispositif de test lorsque vous développez. C'est extrêmement important. Tester avec de vraies publicités (même si vous n'appuyez jamais dessus) est contraire au règlement AdMob et peut entraîner la suspension de votre compte. Lire test annonces pour des informations sur la façon dont vous pouvez vous assurer que vous obtenez toujours des annonces de test lors du développement.

Charger une annonce

Une fois que le BannerView est instancié, l'étape suivante consiste à charger une annonce. Cela se fait avec le loadAd() méthode dans la BannerView classe. Il faut un AdRequest argument, qui contient des informations d' exécution (tels que le ciblage d' informations) sur une seule demande d'annonce.

Voici un exemple qui montre 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);
    }
...

C'est ça! Votre application est maintenant prête à afficher des bannières publicitaires à partir d'AdMob.

Événements publicitaires

Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous accrocher à un certain nombre d'événements dans le cycle de vie de l'annonce : chargement, ouverture, fermeture, etc. Écouter ces événements en enregistrant un délégué pour le approprié EventHandler , 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");
    }
}

Le OnAdFailedToLoad événement contient des arguments d'événements spéciaux. Il passe une instance de HandleAdFailedToLoadEventArgs avec un 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 publicitaire La description
OnAdLoaded Le OnAdLoaded événement est exécuté lorsqu'une annonce a terminé le chargement.
OnAdFailedToLoad Le OnAdFailedToLoad événement est invoquée lorsqu'une annonce ne parvient pas à la charge. Le Message paramètre décrit le type de défaillance qui a eu lieu.
OnAdOpening Cette méthode est invoquée lorsque l'utilisateur appuie sur une annonce. Si vous utilisez un package d'analyse pour suivre les clics, c'est un bon endroit pour en enregistrer un.
OnAdClosed Lorsqu'un utilisateur revient à l'application après avoir consulté l'URL de destination d'une annonce, cette méthode est invoquée. Votre application peut l'utiliser pour reprendre les activités suspendues ou effectuer tout autre travail nécessaire pour se préparer à l'interaction.
OnAdLeavingApplication Cette méthode est appelée après onAdOpened , lorsqu'un utilisateur clique ouvre une autre application (comme le magasin Google Play), l'application actuelle de semi- finition.

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

Taille en dp (LxH) La description Disponibilité Constante Taille de l'annonce
320x50 Bannière standard Téléphones et tablettes BANNER
320x100 Grande bannière Téléphones et tablettes LARGE_BANNER
300 x 250 IAB Moyen Rectangle Téléphones et tablettes MEDIUM_RECTANGLE
468x60 Bannière IAB pleine grandeur Comprimés FULL_BANNER
728x90 Classement IAB Comprimés LEADERBOARD
Fourni largeur x hauteur Adaptive 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 bannières adaptatives , destiné à remplacer les bannières intelligentes .

Nettoyer les bannières publicitaires

Lorsque vous avez terminé avec un BannerView , assurez - vous d'appeler la Destroy() méthode avant de laisser tomber votre référence à elle:

bannerView.Destroy();

Cela informe le plugin que l'objet n'est plus utilisé et que la mémoire qu'il occupait peut être récupérée. Ne pas appeler cette méthode entraîne des fuites de mémoire.

Ressources additionnelles

Échantillons

Réussites