Annonces avec récompense

Sélectionnez la plate-forme : Android (bêta) Nouveau Android iOS Unity Flutter

Les utilisateurs ont la possibilité d'interagir avec ce type d'annonces en échange d'une récompense dans une application. Ce guide vous explique comment intégrer des annonces avec récompense d'AdMob dans une application Unity.

Ce guide explique comment intégrer des annonces avec récompense dans une application Unity.

Prérequis

Avant de continuer, configurez Google Mobile Ads Unity Plugin.

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 a été spécialement configuré pour renvoyer des annonces tests plutôt que des annonces de production pour chaque demande, ce qui le rend sûr à utiliser.

Toutefois, une fois que vous avez enregistré une application dans l' interface Web Ad Manager et créé vos propres ID de bloc d'annonces à utiliser dans votre application, configurez explicitement votre appareil comme appareil de testlors du développement.

/21775744923/example/rewarded

Initialiser Google Mobile Ads Unity Plugin

Avant de charger des annonces, demandez à votre application d'initialiser Google Mobile Ads Unity Plugin 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 Google Mobile Ads Unity Plugin.
        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. Cela garantit que tous les adaptateurs de médiation sont initialisés.

Charger l'annonce avec récompense

Le chargement d'une annonce avec récompense s'effectue à l'aide de la méthode statique Load() sur la classe RewardedAd. L'objet RewardedAd chargé est fourni en tant que paramètre dans le gestionnaire d'achèvement. L'exemple suivant charge une annonce avec récompense :

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

// Send the request to load the ad.
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

Remplacez AD_UNIT_ID par l'ID de votre bloc d'annonces.

[Facultatif] Valider les rappels de validation côté serveur

Les applications qui nécessitent des données supplémentaires dans les rappels de validation côté serveur doivent utiliser la fonctionnalité de données personnalisées des annonces avec récompense. Toute valeur de chaîne définie sur un objet d'annonce avec récompense est transmise au paramètre de requête custom_data du rappel de validation côté serveur. Si aucune valeur de données personnalisées n'est définie, la valeur du paramètre de requête custom_data n'est pas présente dans le rappel de validation côté serveur.

L'exemple de code suivant montre comment définir les options de validation côté serveur une fois l'annonce avec récompense chargée.

// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
{
    CustomData = ""SAMPLE_CUSTOM_DATA_STRING""
};

rewardedAd.SetServerSideVerificationOptions(options);

Remplacez SAMPLE_CUSTOM_DATA_STRING par vos données personnalisées.

Si vous souhaitez définir la chaîne de récompense personnalisée, vous devez le faire avant de diffuser l'annonce.

Afficher l'annonce avec récompense avec le rappel de récompense

Lorsque vous présentez votre annonce, vous devez fournir un rappel pour gérer la récompense de l'utilisateur. Les annonces ne peuvent être diffusées qu'une seule fois par chargement. Utilisez la méthode CanShowAd() pour vérifier que l'annonce est prête à être diffusée.

Le code suivant présente la meilleure méthode pour afficher une annonce avec récompense.

if (rewardedAd != null && rewardedAd.CanShowAd())
{
    rewardedAd.Show((Reward reward) =>
    {
        // The ad was showen and the user earned a reward.
    });
}

Écouter les événements d'annonce avec récompense

Pour personnaliser davantage le comportement de votre annonce, vous pouvez vous connecter à un certain nombre d'événements du cycle de vie de l'annonce. Le code suivant écoute les événements d'annonce :

rewardedAd.OnAdPaid += (AdValue adValue) =>
{
    // Raised when the ad is estimated to have earned money.
};
rewardedAd.OnAdImpressionRecorded += () =>
{
    // Raised when an impression is recorded for an ad.
};
rewardedAd.OnAdClicked += () =>
{
    // Raised when a click is recorded for an ad.
};
rewardedAd.OnAdFullScreenContentOpened += () =>
{
    // Raised when the ad opened full screen content.
};
rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Raised when the ad closed full screen content.
};
rewardedAd.OnAdFullScreenContentFailed += (AdError error) =>
{
    // Raised when the ad failed to open full screen content.
};

Nettoyer l'annonce avec récompense

Lorsque vous avez terminé avec un RewardedAd, veillez à appeler la méthode Destroy() avant de supprimer votre référence :

if (rewardedAd != null)
{
    rewardedAd.Destroy();
}

Cela indique au plug-in que l'objet n'est plus utilisé et que la mémoire qu'il occupe peut être récupérée. Si vous n'appelez pas cette méthode, des fuites de mémoire se produiront.

Précharger l'annonce avec récompense suivante

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

Pour préparer une annonce avec récompense pour la prochaine opportunité d'impression, préchargez l'annonce avec récompense une fois l'événement d'annonce OnAdFullScreenContentClosed ou OnAdFullScreenContentFailed déclenché.

rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

Ressources supplémentaires