Annonces avec récompense

Les publicités avec récompense sont des publicités avec lesquelles les utilisateurs ont la possibilité d'interagir en échange de récompenses intégrées à l'application. Ce guide vous montre comment intégrer des publicités avec récompense d'AdMob dans une application Unity. Lisez quelques témoignages de clients : étude de cas 1 , étude de cas 2 .

Conditions préalables

  • Plug-in Unity 3.16.0 ou supérieur.
  • Terminez la mise en route . Votre application Unity doit déjà avoir le plug-in Google Mobile Ads Unity importé.

Créer un objet d'annonce avec récompense

Les annonces avec récompense sont demandées et affichées par les objets RewardedAd . La première étape requise pour afficher une annonce avec récompense consiste à instancier un objet RewardedAd en appelant le constructeur avec l'ID de bloc d'annonces à utiliser pour charger l'annonce. Ceci est démontré dans l'extrait de code suivant :

Pour faciliter l'intégration des annonces à l'aide de Unity Editor, essayez la nouvelle version bêta des emplacements d'annonces .

using UnityEngine.Events;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine.UI;
using System;
using System.Collections.Generic;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        ...

        this.rewardedAd = new RewardedAd(adUnitId);
    }
}

Toujours tester avec des annonces test

Lorsque vous créez et testez vos applications, veillez à utiliser des annonces de test plutôt que des annonces de production en direct. Ne pas le faire peut entraîner la suspension de votre compte.

Le moyen le plus simple de charger des annonces test consiste à utiliser nos ID de bloc d'annonces test dédiés pour les annonces avec récompense Android et iOS :

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Ils ont été spécialement configurés pour renvoyer des publicités de test pour chaque demande, et vous êtes libre de les utiliser dans vos propres applications lors du codage, des tests et du débogage. Assurez-vous simplement de les remplacer par votre propre ID de bloc d'annonces avant de publier votre application.

Pour plus d'informations sur le fonctionnement des annonces test du SDK Mobile Ads, consultez Annonces test .

Charger une annonce

Pour charger une annonce avec récompense, appelez la méthode loadAd() de l'objet RewardedAd . Cette méthode nécessite une instance de AdRequest comme argument.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        ...

        this.rewardedAd = new RewardedAd(adUnitId);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }
}

Événements publicitaires

Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous connecter à un certain nombre d'événements dans le cycle de vie de l'annonce : chargement, ouverture, fermeture, etc. Écoutez ces événements en enregistrant un délégué pour le gestionnaire d'événements approprié. L'événement le plus important est OnUserEarnedReward , qui est appelé lorsque l'utilisateur est récompensé pour avoir regardé une vidéo. Vous pouvez également implémenter d'autres événements publicitaires, comme indiqué ci-dessous.

using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        string adUnitId;
        #if UNITY_ANDROID
            adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            adUnitId = "unexpected_platform";
        #endif

        this.rewardedAd = new RewardedAd(adUnitId);

        // Called when an ad request has successfully loaded.
        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        // Called when an ad request failed to load.
        this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
        // Called when an ad is shown.
        this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
        // Called when an ad request failed to show.
        this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
        // Called when the user should be rewarded for interacting with the ad.
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        // Called when the ad is closed.
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

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

    public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToLoad event received with message: "
                             + args.Message);
    }

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

    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToShow event received with message: "
                             + args.Message);
    }

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

    public void HandleUserEarnedReward(object sender, Reward args)
    {
        string type = args.Type;
        double amount = args.Amount;
        MonoBehaviour.print(
            "HandleRewardedAdRewarded event received for "
                        + amount.ToString() + " " + type);
    }
}

L'événement OnUserEarnedReward fournit des arguments d'événement spéciaux. Il transmet une instance de Reward avec un Type et un Amount décrivant la récompense donnée à l'utilisateur :

public void HandleUserEarnedReward(object sender, Reward args)
{
    string type = args.Type;
    double amount = args.Amount;
     MonoBehaviour.print(
          "HandleRewardedAdRewarded event received for "
              + amount.ToString() + " " + type);
}

Événements publicitaires disponibles

OnAdLoaded
Appelé lorsqu'une annonce a fini de se charger.
OnAdFailedToLoad
Appelé lorsqu'une annonce ne se charge pas. La propriété Message des AdErrorEventArgs fournis décrit le type d'échec qui s'est produit.
OnAdOpening
Appelé lorsque l'annonce est affichée, couvrant l'écran de l'appareil. C'est un bon endroit pour mettre en pause la sortie audio de votre application ou la boucle de jeu, si nécessaire.
OnAdFailedToShow
Appelé lorsqu'une annonce ne s'affiche pas. La propriété Message des AdErrorEventArgs fournis décrit le type d'échec qui s'est produit.
OnUserEarnedReward
Appelé lorsqu'un utilisateur doit être récompensé pour avoir regardé une vidéo. Le paramètre Reward décrit la récompense à présenter à l'utilisateur.
OnAdClosed
Appelé lorsque l'annonce vidéo avec récompense est fermée parce que l'utilisateur appuie sur l'icône de fermeture ou utilise le bouton de retour. Si votre application a interrompu sa sortie audio ou sa boucle de jeu, c'est un excellent endroit pour la reprendre.

Afficher l'annonce

Avant d'afficher une publicité avec récompense aux utilisateurs, ils doivent avoir le choix explicite d'afficher le contenu de la publicité avec récompense en échange d'une récompense. Les publicités avec récompense doivent toujours être une expérience opt-in.

Pour afficher une annonce avec récompense, vérifiez la méthode IsLoaded() pour vérifier que le chargement est terminé, puis appelez show() . Voici un exemple de la façon de procéder :

private void UserChoseToWatchAd()
{
  if (this.rewardedAd.IsLoaded()) {
    this.rewardedAd.Show();
  }
}

Utiliser OnAdClosed pour précharger la prochaine annonce avec récompense

RewardedAd est un objet à usage unique. Cela signifie qu'une fois qu'une annonce avec récompense est affichée, l'objet ne peut pas être utilisé pour charger une autre annonce. Pour demander une autre annonce avec récompense, vous devez créer un nouvel objet RewardedAd .

Une bonne pratique consiste à charger une autre annonce avec récompense dans l'événement d'annonce OnAdClosed afin que la prochaine annonce avec récompense commence à se charger dès que la précédente est ignorée :

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void CreateAndLoadRewardedAd()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.rewardedAd = new RewardedAd(adUnitId);

        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

...

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        this.CreateAndLoadRewardedAd();
    }
}

Chargement de plusieurs annonces avec récompense

Pour charger plusieurs annonces avec récompense, suivez les étapes décrites dans l' objet Créer un objet d'annonce avec récompense et chargez une section d'annonce pour chaque annonce que vous avez l'intention de charger. L'extrait de code ci-dessous montre comment charger deux annonces avec récompense pour deux emplacements d'annonces distincts.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd gameOverRewardedAd;
    private RewardedAd extraCoinsRewardedAd;
    ...
    public void Start()
    {
        ...

        this.gameOverRewardedAd = CreateAndLoadRewardedAd(adUnitId);
        this.extraCoinsRewardedAd = CreateAndLoadRewardedAd(adUnitId);
    }

    public RewardedAd CreateAndLoadRewardedAd(string adUnitId)
    {
        RewardedAd rewardedAd = new RewardedAd(adUnitId);

        rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        rewardedAd.LoadAd(request);
        return rewardedAd;
    }
}

Échantillons

,

Les publicités avec récompense sont des publicités avec lesquelles les utilisateurs ont la possibilité d'interagir en échange de récompenses intégrées à l'application. Ce guide vous montre comment intégrer des publicités avec récompense d'AdMob dans une application Unity. Lisez quelques témoignages de clients : étude de cas 1 , étude de cas 2 .

Conditions préalables

  • Plug-in Unity 3.16.0 ou supérieur.
  • Terminez la mise en route . Votre application Unity doit déjà avoir le plug-in Google Mobile Ads Unity importé.

Créer un objet d'annonce avec récompense

Les annonces avec récompense sont demandées et affichées par les objets RewardedAd . La première étape requise pour afficher une annonce avec récompense consiste à instancier un objet RewardedAd en appelant le constructeur avec l'ID de bloc d'annonces à utiliser pour charger l'annonce. Ceci est démontré dans l'extrait de code suivant :

Pour faciliter l'intégration des annonces à l'aide de Unity Editor, essayez la nouvelle version bêta des emplacements d'annonces .

using UnityEngine.Events;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine.UI;
using System;
using System.Collections.Generic;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        ...

        this.rewardedAd = new RewardedAd(adUnitId);
    }
}

Toujours tester avec des annonces test

Lorsque vous créez et testez vos applications, veillez à utiliser des annonces de test plutôt que des annonces de production en direct. Ne pas le faire peut entraîner la suspension de votre compte.

Le moyen le plus simple de charger des annonces test consiste à utiliser nos ID de bloc d'annonces test dédiés pour les annonces avec récompense Android et iOS :

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Ils ont été spécialement configurés pour renvoyer des publicités de test pour chaque demande, et vous êtes libre de les utiliser dans vos propres applications lors du codage, des tests et du débogage. Assurez-vous simplement de les remplacer par votre propre ID de bloc d'annonces avant de publier votre application.

Pour plus d'informations sur le fonctionnement des annonces test du SDK Mobile Ads, consultez Annonces test .

Charger une annonce

Pour charger une annonce avec récompense, appelez la méthode loadAd() de l'objet RewardedAd . Cette méthode nécessite une instance de AdRequest comme argument.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        ...

        this.rewardedAd = new RewardedAd(adUnitId);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }
}

Événements publicitaires

Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous connecter à un certain nombre d'événements dans le cycle de vie de l'annonce : chargement, ouverture, fermeture, etc. Écoutez ces événements en enregistrant un délégué pour le gestionnaire d'événements approprié. L'événement le plus important est OnUserEarnedReward , qui est appelé lorsque l'utilisateur est récompensé pour avoir regardé une vidéo. Vous pouvez également implémenter d'autres événements publicitaires, comme indiqué ci-dessous.

using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void Start()
    {
        string adUnitId;
        #if UNITY_ANDROID
            adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            adUnitId = "unexpected_platform";
        #endif

        this.rewardedAd = new RewardedAd(adUnitId);

        // Called when an ad request has successfully loaded.
        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        // Called when an ad request failed to load.
        this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
        // Called when an ad is shown.
        this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
        // Called when an ad request failed to show.
        this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
        // Called when the user should be rewarded for interacting with the ad.
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        // Called when the ad is closed.
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

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

    public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToLoad event received with message: "
                             + args.Message);
    }

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

    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToShow event received with message: "
                             + args.Message);
    }

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

    public void HandleUserEarnedReward(object sender, Reward args)
    {
        string type = args.Type;
        double amount = args.Amount;
        MonoBehaviour.print(
            "HandleRewardedAdRewarded event received for "
                        + amount.ToString() + " " + type);
    }
}

L'événement OnUserEarnedReward fournit des arguments d'événement spéciaux. Il transmet une instance de Reward avec un Type et un Amount décrivant la récompense donnée à l'utilisateur :

public void HandleUserEarnedReward(object sender, Reward args)
{
    string type = args.Type;
    double amount = args.Amount;
     MonoBehaviour.print(
          "HandleRewardedAdRewarded event received for "
              + amount.ToString() + " " + type);
}

Événements publicitaires disponibles

OnAdLoaded
Appelé lorsqu'une annonce a fini de se charger.
OnAdFailedToLoad
Appelé lorsqu'une annonce ne se charge pas. La propriété Message des AdErrorEventArgs fournis décrit le type d'échec qui s'est produit.
OnAdOpening
Appelé lorsque l'annonce est affichée, couvrant l'écran de l'appareil. C'est un bon endroit pour mettre en pause la sortie audio de votre application ou la boucle de jeu, si nécessaire.
OnAdFailedToShow
Appelé lorsqu'une annonce ne s'affiche pas. La propriété Message des AdErrorEventArgs fournis décrit le type d'échec qui s'est produit.
OnUserEarnedReward
Appelé lorsqu'un utilisateur doit être récompensé pour avoir regardé une vidéo. Le paramètre Reward décrit la récompense à présenter à l'utilisateur.
OnAdClosed
Appelé lorsque l'annonce vidéo avec récompense est fermée parce que l'utilisateur appuie sur l'icône de fermeture ou utilise le bouton de retour. Si votre application a interrompu sa sortie audio ou sa boucle de jeu, c'est un excellent endroit pour la reprendre.

Afficher l'annonce

Avant d'afficher une publicité avec récompense aux utilisateurs, ils doivent avoir le choix explicite d'afficher le contenu de la publicité avec récompense en échange d'une récompense. Les publicités avec récompense doivent toujours être une expérience opt-in.

Pour afficher une annonce avec récompense, vérifiez la méthode IsLoaded() pour vérifier que le chargement est terminé, puis appelez show() . Voici un exemple de la façon de procéder :

private void UserChoseToWatchAd()
{
  if (this.rewardedAd.IsLoaded()) {
    this.rewardedAd.Show();
  }
}

Utiliser OnAdClosed pour précharger la prochaine annonce avec récompense

RewardedAd est un objet à usage unique. Cela signifie qu'une fois qu'une annonce avec récompense est affichée, l'objet ne peut pas être utilisé pour charger une autre annonce. Pour demander une autre annonce avec récompense, vous devez créer un nouvel objet RewardedAd .

Une bonne pratique consiste à charger une autre annonce avec récompense dans l'événement d'annonce OnAdClosed afin que la prochaine annonce avec récompense commence à se charger dès que la précédente est ignorée :

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd rewardedAd;
    ...

    public void CreateAndLoadRewardedAd()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/1712485313";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.rewardedAd = new RewardedAd(adUnitId);

        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

...

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        this.CreateAndLoadRewardedAd();
    }
}

Chargement de plusieurs annonces avec récompense

Pour charger plusieurs annonces avec récompense, suivez les étapes décrites dans l' objet Créer un objet d'annonce avec récompense et chargez une section d'annonce pour chaque annonce que vous avez l'intention de charger. L'extrait de code ci-dessous montre comment charger deux annonces avec récompense pour deux emplacements d'annonces distincts.

...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private RewardedAd gameOverRewardedAd;
    private RewardedAd extraCoinsRewardedAd;
    ...
    public void Start()
    {
        ...

        this.gameOverRewardedAd = CreateAndLoadRewardedAd(adUnitId);
        this.extraCoinsRewardedAd = CreateAndLoadRewardedAd(adUnitId);
    }

    public RewardedAd CreateAndLoadRewardedAd(string adUnitId)
    {
        RewardedAd rewardedAd = new RewardedAd(adUnitId);

        rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        rewardedAd.LoadAd(request);
        return rewardedAd;
    }
}

Échantillons