Emplacements d'annonce

Ce guide explique comment utiliser la fonctionnalité "Emplacements d'annonces" du plug-in Google Mobile Ads Unity pour créer et diffuser des annonces dans votre application.

Prérequis

Initialiser Google Mobile Ads Unity Plugin

Avant de charger les annonces, initialisez Google Mobile Ads Unity Plugin en appelant MobileAds.Initialize(), avec un Action<InitializationStatus> rappel. Cette opération ne doit être effectuée qu'une seule fois, idéalement au lancement de l'application.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize Google Mobile Ads Unity Plugin.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Créer des emplacements d'annonces

Pour diffuser une bannière avec Google Mobile Ads, vous devez d'abord créer et configurer un emplacement d'annonce. Vous pouvez sélectionner un emplacement d'annonce au format bannière, interstitiel ou avec récompense dans Assets > Google Mobile Ads > Ad Placements (Ressources > Google Mobile Ads > Emplacements d'annonces) dans l'éditeur Unity. Trois emplacements d'annonces de démonstration sont ensuite configurés et prêts à être utilisés.

Pour ajouter un emplacement d'annonce, cliquez sur le bouton Add New Placement (Ajouter un emplacement) à la fin de la liste. Vous pouvez configurer l'emplacement d'annonce dans la vue Inspector.

Configuration de l'emplacement d'annonce

Chaque emplacement possède les propriétés suivantes :

Nom de l'emplacement
Nom de l'emplacement. Permet d'identifier les emplacements lors de la configuration des annonces dans une scène.
Format d'annonce
Bannière, avec récompense, interstitiel. Type d'annonce.
ID du bloc d'annonces
Fournissez l'ID de votre bloc d'annonces bannières pour Android et iOS. Vous devez fournir au moins un ID de bloc d'annonces.
Persistant d'une scène à l'autre
Lorsque cette option est cochée, la bannière reste à l'écran, quelles que soient les modifications apportées à la scène (même comportement que DontDestroyOnLoad).
Chargement automatique activé
Lorsque cette option est cochée, une annonce est chargée automatiquement lorsqu'une scène associée à l'emplacement d'annonce est chargée.

La capture d'écran suivante montre un exemple d'emplacement d'annonce nommé My Awesome Banner (Ma superbe bannière).

Ajouter un AdGameObject à la scène

Vous pouvez ajouter un AdGameObject pour les formats bannière, interstitiel ou avec récompense à votre scène à l'aide de GameObject > Google Mobile Ads (GameObject > Google Mobile Ads) dans l'éditeur Unity. Sélectionnez le format pour ajouter un emplacement à la scène active.

Une fois que vous avez ajouté un AdGameObject à la scène, un GameObject représentant l'annonce s'affiche dans la vue Hierarchy (Hiérarchie) de l'éditeur Unity.

Vous pouvez modifier le nom de l'emplacement en modifiant le nom du GameObject lui-même. La capture d'écran suivante montre un exemple d'AdGameObject nommé Banner Ad (Annonce bannière).

Paramètres d'AdGameObject

Vous pouvez configurer l'AdGameObject dans votre scène à partir de la vue Inspector dans les paramètres du composant Ad Game Object (Script) (Objet de jeu d'annonce (script)).

Emplacement d'annonce

Sélectionnez l'emplacement d'annonce dans la liste déroulante des emplacements configurés. La liste ne contient que des blocs d'annonces au format approprié. Par exemple, pour les objets de jeu d'annonces bannières, la liste déroulante n'affiche que les emplacements d'annonces bannières configurés.

Configuration de BannerAdGameObject (bannière uniquement)

  • Size (Taille) : sélectionnez la taille de la bannière que vous souhaitez utiliser.
    • Anchored Adaptive Banner (Bannière adaptative ancrée) offre quelques options supplémentaires :
      • Orientation : sélectionnez l'orientation de l'appareil utilisée pour calculer la hauteur de l'annonce.
      • _Use full screen width_ (Utiliser la largeur plein écran) : lorsque cette option est cochée, la bannière occupe toute la largeur de l'écran. Vous pouvez ajuster le pourcentage de la largeur de l'écran (50 à 99 %) si vous décochez l'option Use full screen width (Utiliser la largeur plein écran).
    • Custom (Personnalisée) vous permet de fournir la largeur et la hauteur de la bannière.
  • Ad Position (Position de l'annonce) : sélectionnez la position où la bannière doit être placée.

Rappels

Vous pouvez implémenter des fonctions qui correspondent aux rappels d'annonces. Par exemple, si vous souhaitez gérer le cas où une annonce bannière ne parvient pas à se charger :

  1. Créez une fonction compatible avec le rappel d'annonce.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Associez le script contenant la fonction ci-dessus à n'importe quel GameObject de la scène.

  3. Cliquez sur le bouton +, puis faites glisser le GameObject auquel vous avez associé le script.

  4. Sélectionnez la fonction que vous souhaitez associer au rappel d'annonce. Pour les rappels d'annonces paramétrés, sélectionnez la fonction qui accepte la variable dynamique afin de pouvoir obtenir la valeur du paramètre à partir du SDK.

Utiliser AdGameObject à partir d'un script

Obtenir l'instance AdGameObject à partir du script

Tous les objets AdGameObject disposent de la méthode pratique LoadAd(). Cela chargera une annonce avec une AdRequest simple et non ciblée. Pour appliquer le ciblage, vous devez utiliser LoadAd(AdRequest adRequest) avec votre propre demande d'annonce configurée.

Pour obtenir l'instance d'un AdGameObject, utilisez la méthode suivante pour chaque format :

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

L'objet BannerAdGameObject renvoyé comporte également les méthodes pratiques Hide() et Show().

Interstitiel

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

L'objet InterstitialAdGameObject renvoyé comporte une méthode pratique ShowIfLoaded().

Avec récompense

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

L'objet RewardedAdGameObject renvoyé comporte une méthode pratique ShowIfLoaded().

Par exemple, vous pouvez obtenir une instance d'un BannerAdGameObject et la charger comme suit :

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

S'il existe un BannerAdGameObject nommé BannerAd, vous pouvez en obtenir une instance de celui-ci comme suit :

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

Accéder à l'objet d'annonce sous-jacent dans AdGameObject

Ces extraits montrent comment accéder à l'objet d'annonce sous-jacent associé à l'AdGameObject.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Interstitiel

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Avec récompense

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Exemples

Afficher une annonce interstitielle

Voici un exemple de configuration d'un jeu pour charger et afficher une annonce interstitielle à l'aide d'un AdGameObject.

Ajoutez un InterstitialAdGameObject à la scène et activez la fonctionnalité Auto Load Enabled (Chargement automatique activé) afin que l'annonce soit chargée automatiquement lorsque la scène est chargée.

Ensuite, assurez-vous d'avoir initialisé le SDK comme suit. Notez que la fonctionnalité Auto Load (Chargement automatique) dans AdGameObject ne fonctionnera pas si vous oubliez d'initialiser le SDK.

Affichez ensuite une annonce interstitielle entre une transition d'écran en appelant la fonction InterstitialAdGameObject.ShowIfLoaded(). Le code suivant montre un exemple d'affichage d'une annonce interstitielle entre une transition de scène.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

Comme vous avez activé la fonctionnalité Auto Load (Chargement automatique) dans l'emplacement d'annonce, vous n'avez pas besoin de demander explicitement une annonce. Lorsque la scène change, une annonce interstitielle s'affiche si elle est prête.

Si vous souhaitez demander manuellement une annonce, désactivez la fonctionnalité Auto Load (Chargement automatique) dans l'inspecteur des emplacements d'annonces et appelez plutôt la fonction InterstitialAdGameObject.LoadAd(). L'extrait de code suivant montre comment demander manuellement une annonce.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

Gérer l'état du bouton "Regarder une annonce avec récompense"

Voici un exemple d'activation d'un bouton "Regarder une annonce avec récompense" à l'aide d'emplacements d'annonces.

Ajoutez un GameObject de bouton (nommé Button dans cet exemple) à la scène, qui sera utilisé pour afficher une annonce avec récompense. Nous ne rendrons ce bouton disponible que lorsqu'une annonce avec récompense sera disponible.

Dans la méthode Start(), remplacez l'état actif du bouton par false. Le bouton disparaîtra alors de la scène.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Ajoutez un RewardedAdGameObject à la scène et sélectionnez l'emplacement d'annonce AdMob Demo Rewarded Ad (Annonce avec récompense de démonstration AdMob) dans la liste déroulante.

Dans la section "Callbacks" (Rappels) de l'inspecteur RewardedAdGameObject, cliquez sur le bouton + de On Ad Loaded() (Lors du chargement de l'annonce) pour activer l'appel de la fonction lorsqu'une annonce avec récompense est chargée.

Faites glisser le GameObject de bouton que vous avez ajouté à l'étape précédente dans le champ None (Object) (Aucun (objet)). Sélectionnez une fonction à appeler dans la liste déroulante. Cliquez sur No Function > GameObject > SetActive(bool) (Aucune fonction > GameObject > SetActive(bool)), puis cochez la case pour que true soit envoyé en tant que paramètre (appelle SetActive(true)).

Dans cette section "Callbacks" (Rappels), vous pouvez également associer un événement qui sera appelé lorsque l'événement RewardedAd.OnUserEarnedReward est déclenché. Pour en savoir plus, consultez cette section.

Ensuite, faites en sorte que le bouton affiche une annonce avec récompense lorsque l'utilisateur clique dessus. Dans la section "Callbacks" (Rappels) On Click() (Au clic) de l'inspecteur de boutons, cliquez sur le bouton + , puis faites glisser le GameObject de l'emplacement d'annonce avec récompense (nommé Rewarded Ad (Annonce avec récompense) dans cet exemple) dans le champ None (Object) (Aucun (objet)).

Associez ensuite la fonction RewardedAdGameObject.ShowIfLoaded() au rappel On Click() (Au clic) du bouton.

Enfin, n'oubliez pas d'initialiser le SDK. L'extrait de code suivant correspond au code complet de la scène utilisée dans cet exemple :

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Une fois le projet exécuté, le bouton s'affiche sur la scène lorsqu'une annonce avec récompense est chargée et prête à être diffusée.

Configurer un rappel de récompense pour un RewardedAdGameObject

Voici un exemple de configuration d'un rappel de récompense pour un emplacement d'annonce avec récompense, afin que vous puissiez offrir une récompense à un utilisateur lorsqu'une fonction de rappel est appelée.

Créez un script et définissez une fonction qui accepte Reward comme paramètre, comme suit.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

Associez le script RewardedTestScript à n'importe quel GameObject de la scène (à l'exception du GameObject de l'emplacement d'annonce). Dans cet exemple, il est associé au GameObject de la caméra principale.

Ajoutez un RewardedAdGameObject à la scène. Ensuite, dans la section "Callbacks" (Rappels) de l'inspecteur RewardedAdGameObject, cliquez sur le bouton + de On User Earned Reward (Reward) (Lorsque l'utilisateur a gagné une récompense (récompense)) pour activer l'appel de la fonction lorsqu'une récompense est accordée à un utilisateur.

Faites glisser le GameObject de la caméra principale que vous avez ajouté à l'étape précédente dans le champ None (Object) (Aucun (objet)). Sélectionnez une fonction à appeler dans la liste déroulante. Cliquez sur No Function > RewardedTestScript > OnUserEarnedReward (Aucune fonction > RewardedTestScript > OnUserEarnedReward).

Une fois que vous avez exécuté le projet et regardé une annonce avec récompense, RewardedTestScript.OnUserEarnedReward() est appelé lorsque vous devez être récompensé pour votre interaction avec l'annonce.