Utilisation des emplacements d'annonce

Ce guide vous explique comment utiliser la fonctionnalité Emplacements d'annonce Google Mobile Ads Unity pour créer et afficher des annonces pour votre application.

Prerequisites

Initialiser le SDK Google Mobile Ads

Avant de charger les annonces, initialisez le SDK Mobile Ads en appelant MobileAds.Initialize() et d'un rappel Action<InitializationStatus>. Cette opération n'est à effectuer qu'une seule fois, idéalement lors du lancement de l'application.

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

Créer des emplacements d'annonces

Pour afficher une bannière avec des annonces Google pour mobile, la première étape consiste à créer et à configurer un emplacement d'annonce. Dans l'éditeur Unity, vous pouvez sélectionner un emplacement d'annonce de type "Bannière", "Interstitiel" ou "Annonce avec récompense" dans Assets &gt ; Google Mobile Ads &gt ; Ad Placement. 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 Ajouter un emplacement à la fin de la liste. Vous pouvez configurer l'emplacement de l'annonce dans la vue "Inspecteur".

Configuration de l'emplacement des annonces

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, récompense, interstitiel. Type de l'annonce.
ID du bloc d'annonces
Indiquez l'ID du bloc d'annonces de type bannière pour Android et iOS. Vous devez fournir au moins un ID de bloc d'annonces.
Persistant dans les scènes
Lorsque cette case est cochée, la bannière persiste à l'écran quelle que soit la modification de scène (même comportement que dans DontDestroyOnLoad).
Chargement automatique activé
Lorsque cette case est cochée, une annonce est chargée automatiquement lorsqu'une scène est associée à l'emplacement de l'annonce.

La capture d'écran suivante montre un exemple d'emplacement d'annonce nommé My Awesome Band.

Ajouter un AdGameObject à la scène

Vous pouvez ajouter un format AdGameObject pour les bannières, les interstitiels ou les annonces avec récompense à votre scène à l'aide de 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 objet GameObject s'affiche dans la vue "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 vous montre un exemple de bannière publicitaire appelée Banner Ad.

Paramètres de AdGameObject

Vous pouvez configurer AdGameObject dans votre scène depuis la vue de l'inspecteur dans les paramètres du composant Ad GameObject (Script).

Emplacement d'annonce

Sélectionnez l'emplacement de l'annonce dans la liste déroulante des emplacements configurés. La liste ne comporte que des blocs d'annonces au bon format. Par exemple, pour les objets de type bannière, le menu déroulant n'affiche que les emplacements de type bannière.

Configuration BannerAdGameObject (bannière uniquement)

  • Taille : sélectionnez la taille de la bannière que vous souhaitez utiliser.
    • La 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.
      • Utiliser la largeur plein écran : si vous cochez cette case, la bannière occupera toute la largeur de l'écran. Vous pouvez ajuster la largeur de l'écran en % (50~99%) si vous décochez l'option Utiliser la largeur plein écran.
    • L'option Personnalisée vous permet d'indiquer la largeur et la hauteur de la bannière.
  • Position de l'annonce : sélectionnez l'emplacement de la bannière.

Rappels

Vous pouvez implémenter les fonctions correspondant aux rappels d'annonce. Par exemple, si vous souhaitez gérer le chargement d'une bannière:

  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 à un objet GameObject de la scène.

  3. Cliquez sur le bouton +, puis faites glisser le composant "ObjectObject" auquel vous avez joint le script.

  4. Sélectionnez la fonction que vous souhaitez associer au rappel de l'annonce. Pour les rappels d'annonces paramétrés, sélectionnez la fonction permettant d'accepter la variable dynamique afin d'obtenir la valeur du paramètre depuis le SDK.

Utiliser AdGameObject à partir du script

Obtenir l'instance AdGameObject à partir du script

Tous les objets AdGameObject disposent de la méthode pratique LoadAd(). Cette opération charge une annonce avec un élément AdRequest simple, non ciblé. Pour appliquer le ciblage, vous devez utiliser LoadAd(AdRequest adRequest) à l'aide de votre propre demande d'annonce configurée.

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

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

L'objet BannerAdGameObject renvoyé possède également des méthodes pratiques Hide() et Show().

Interstitiel

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

L'objet InterstitialAdGameObject renvoyé possède une méthode pratique ShowIfLoaded().

Avec récompense

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

L'objet RewardedAdGameObject renvoyé possède une méthode pratique ShowIfLoaded().

Par exemple, vous pouvez obtenir une instance de 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 obtenir une instance de ce type:

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;

Examples

Diffuser une annonce interstitielle

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

Ajoutez une InterstitialAdGameObject à la scène et activez la fonctionnalité Auto Load Enabled (Activation automatique du chargement) pour que l'annonce soit chargée automatiquement lors du chargement de la scène.

Ensuite, assurez-vous d'avoir initialisé le SDK comme suit. Notez que la fonctionnalité de chargement automatique d'AdGameObject ne fonctionne 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 présente 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");
    }
}

Puisque vous avez activé la fonctionnalité 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é Chargement automatique dans l'inspecteur d'emplacements d'annonces, puis appelez la fonction InterstitialAdGameObject.LoadAd() à la place. 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 objet GameButton (nommé Button dans cet exemple) à la scène, qui sera utilisé pour afficher une annonce avec récompense. Ce bouton n'est disponible que lorsqu'une annonce avec récompense est disponible.

Dans la méthode Start(), définissez l'état actif du bouton sur false. et le bouton disparaîtra de la scène.

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

Ajoutez un RewardedAdGameObject à la scène, puis sélectionnez l'emplacement d'annonce Avec récompense d'AdMob dans le menu déroulant.

Dans la section des rappels de l'inspecteur RewardedAdGameObject, cliquez sur le bouton + dans On Ad Loaded() pour activer l'appel de la fonction lorsqu'une annonce avec récompense est chargée.

Glissez-déposez le champ "GameObject" que vous avez ajouté à l'étape précédente dans le champ None (Object) (Aucun (Objet). Dans le menu déroulant, sélectionnez une fonction à appeler. Cliquez sur Aucune fonction > GameObject > SetActive(bool), puis cochez la case pour envoyer true en tant que paramètre (appele SetActive(true)).

Dans cette section des rappels, vous pouvez également associer un événement qui sera appelé lors du déclenchement de l'événement RewardedAd.OnUserEarnedReward. Pour en savoir plus, consultez cette section.

Ensuite, cliquez sur le bouton pour afficher une annonce avec récompense. Dans la section des rappels OnClick(), dans l'inspecteur de boutons, cliquez sur le bouton +, puis faites glisser le champ GameObject de l'emplacement d'annonce avec récompense (appelé Annonce avec récompense dans cet exemple) dans le champ Aucun (objet).

Associez ensuite la fonction RewardedAdGameObject.ShowIfLoaded() au rappel on Click().

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 dans 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 RécompenseAdGameObject

Voici un exemple de configuration d'un rappel avec récompense sur un emplacement d'annonce avec récompense. Vous pouvez ainsi 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.

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 à tout objet GameObject (à l'exception de l'objet GameObject de l'annonce) dans la scène. Dans cet exemple, elle est associée à l'objet GameObject de la caméra principale.

Ajoutez un RewardedAdGameObject à la scène. Ensuite, dans la section "Rappels" de l'inspecteur RewardedAdGameObject, cliquez sur le bouton + dans la section Récompense utilisateur acquise (récompense) pour pouvoir être appelée lorsqu'une récompense est accordée à un utilisateur.

Glissez-déposez le champ Object (Object) Object (Aucun (objet)) dans l'objet Game Camera principal que vous avez ajouté à l'étape précédente. Sélectionnez une fonction à appeler dans le menu déroulant. Cliquez sur No Function > RécompenseTestScript > OnUserGainedReward.

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 avoir interagi avec l'annonce.