Annonces avec récompense

Sélectionnez la plate-forme : Android 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 explique comment intégrer des annonces avec récompense d'AdMob dans une application Flutter.

Toujours effectuer des tests avec des annonces tests

Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. À défaut, votre compte risque d'être suspendu.

Le moyen le plus simple de charger des annonces tests consiste à utiliser l'ID de bloc d'annonces tests dédié aux annonces avec récompense :

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Les blocs d'annonces tests sont configurés pour renvoyer des annonces tests pour chaque requête. Vous pouvez les utiliser librement dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à les remplacer par vos propres ID de bloc d'annonces avant de publier votre application.

Charger une annonce

L'exemple suivant charge une annonce avec récompense :

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: const AdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (RewardedAd ad) {
      // Called when an ad is successfully received.
      debugPrint('Ad was loaded.');
      // Keep a reference to the ad so you can show it later.
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (LoadAdError error) {
      // Called when an ad request failed.
      debugPrint('Ad failed to load with error: $error');
    },
  ),
);

Remplacez _adUnitId par votre propre ID de bloc d'annonces.

Événements d'annonces avec récompense

Grâce à FullScreenContentCallback, vous pouvez écouter les événements de cycle de vie, par exemple lorsque l'annonce est affichée ou ignorée. Définissez RewardedAd.fullScreenContentCallback avant d'afficher l'annonce pour recevoir des notifications concernant ces événements. Cet exemple implémente chaque méthode et enregistre un message dans la console :

ad.fullScreenContentCallback = FullScreenContentCallback(
  onAdShowedFullScreenContent: (ad) {
    // Called when the ad showed the full screen content.
    debugPrint('Ad showed full screen content.');
  },
  onAdFailedToShowFullScreenContent: (ad, err) {
    // Called when the ad failed to show full screen content.
    debugPrint('Ad failed to show full screen content with error: $err');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdDismissedFullScreenContent: (ad) {
    // Called when the ad dismissed full screen content.
    debugPrint('Ad was dismissed.');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdImpression: (ad) {
    // Called when an impression occurs on the ad.
    debugPrint('Ad recorded an impression.');
  },
  onAdClicked: (ad) {
    // Called when a click is recorded for an ad.
    debugPrint('Ad was clicked.');
  },
);

Annonce display

Un RewardedAd s'affiche sous forme de superposition au-dessus de tout le contenu de l'application et est placé de manière statique. Il ne peut donc pas être ajouté à l'arborescence des widgets Flutter. Vous pouvez choisir quand afficher l'annonce en appelant show(). RewardedAd.show() prend un OnUserEarnedRewardCallback, qui est appelé lorsque l'utilisateur gagne une récompense. Veillez à implémenter cette fonctionnalité et à récompenser l'utilisateur qui regarde une annonce.

_rewardedAd?.show(
  onUserEarnedReward:
      (AdWithoutView ad, RewardItem rewardItem) {
        debugPrint(
          'Reward amount: ${rewardItem.amount}',
        );
      },
);

Une fois show() appelé, un Ad affiché de cette manière ne peut pas être supprimé par programmation et nécessite une intervention de l'utilisateur. Un RewardedAd ne peut être affiché qu'une seule fois. Les appels suivants à show déclencheront onAdFailedToShowFullScreenContent.

Une annonce doit être supprimée lorsque vous n'en avez plus besoin. La bonne pratique consiste à appeler dispose() dans les rappels FullScreenContentCallback.onAdDismissedFullScreenContent et FullScreenContentCallback.onAdFailedToShowFullScreenContent.

[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 :

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: AdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
            customData: 'SAMPLE_CUSTOM_DATA_STRING',
          );
      ad.setServerSideOptions(_options);
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

Remplacez SAMPLE_CUSTOM_DATA_STRING par vos données personnalisées.

Exemple complet sur GitHub

Avec récompense