Annonces avec récompense

Sélectionnez une plate-forme : 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 AdMob dans une application Unity.

Découvrez des témoignages de réussite de clients : étude de cas 1, étude de cas 2.

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

Prérequis

Toujours effectuer des tests 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, après avoir enregistré une application dans l'interface Web AdMob et créé vos propres ID de bloc d'annonces à utiliser dans votre application, configurez explicitement votre appareil en tant qu'appareil de test pendant le développement.

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Initialiser le SDK Mobile Ads

Avant de charger des annonces, faites en sorte que votre application initialise le SDK Google Mobile Ads 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 SDK.
        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. Vous vous assurerez ainsi que tous les adaptateurs de médiation sont initialisés.

Charger l'annonce avec récompense

Pour charger une annonce avec récompense, la méthode statique Load() doit être utilisée 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 SSV. Si aucune valeur de données personnalisée n'est définie, la valeur du paramètre de requête custom_data ne sera pas présente dans le rappel SSV.

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 d'afficher 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'annonces 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 publicitaires :

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é d'utiliser un RewardedAd, veillez à appeler la méthode Destroy() avant de supprimer votre référence à celui-ci :

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, vous risquez de provoquer des fuites de mémoire.

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 diffusée, l'objet ne peut plus être utilisé. Pour demander une autre annonce avec récompense, vous devez créer un autre objet RewardedAd.

Pour préparer une annonce avec récompense pour la prochaine opportunité d'impression, préchargez-la une fois que l'événement d'annonce OnAdFullScreenContentClosed ou OnAdFullScreenContentFailed est 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