Con premio

Gli annunci con premio sono annunci con cui gli utenti possono scegliere di interagire in cambio di premi in-app. Questa guida mostra come integrare gli annunci con premio di Ad Manager in un'app Flutter.

Effettua sempre test con annunci di prova

Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci pubblicati in produzione. In caso contrario, l'account verrà sospeso.

Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato annunci con premio:

  • /21775744923/example/rewarded

Le unità pubblicitarie di prova sono configurate in modo da restituire annunci di prova per ogni richiesta. puoi usarle liberamente nelle tue app durante la programmazione, i test e il debug. Assicurati solo di sostituirli con i tuoi ID unità pubblicitarie prima di pubblicare l'app.

Carica un annuncio

Nell'esempio seguente viene caricato un annuncio con premio:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

Eventi di annunci con premio

Utilizzando FullScreenContentCallback, puoi esaminare il ciclo di vita ad esempio quando l'annuncio viene mostrato o ignorato. Imposta RewardedAd.fullScreenContentCallback prima di mostrare l'annuncio da ricevere notifiche per questi eventi. Questo esempio implementa ciascun metodo e registra un messaggio alla console:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            ad.fullScreenContentCallback = FullScreenContentCallback(
              // Called when the ad showed the full screen content.
              onAdShowedFullScreenContent: (ad) {},
              // Called when an impression occurs on the ad.
              onAdImpression: (ad) {},
              // Called when the ad failed to show full screen content.
              onAdFailedToShowFullScreenContent: (ad, err) {
                // Dispose the ad here to free resources.
                ad.dispose();
              },
              // Called when the ad dismissed full screen content.
              onAdDismissedFullScreenContent: (ad) {
                // Dispose the ad here to free resources.
                ad.dispose();
              },
              // Called when a click is recorded for an ad.
              onAdClicked: (ad) {});

            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

Annuncio display

Un RewardedAd viene visualizzato come overlay sopra tutti i contenuti dell'app e posizionate in modo statico; perciò non potrà essere aggiunto alla struttura del widget Flutter. Puoi scegli quando mostrare l'annuncio chiamando il numero show(). RewardedAd.show() accetta un OnUserEarnedRewardCallback, che viene richiamato quando l'utente riceve un premio. Assicurati di implementare questa funzionalità e di premiare l'utente per aver guardato un annuncio.

_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
  // Reward the user for watching an ad.
});

Una volta chiamato show(), un Ad visualizzato in questo modo non può essere rimosso programmaticamente e richiede l'input dell'utente. Un RewardedAd può essere mostrato soltanto una volta sola. Le chiamate successive alla visualizzazione attiveranno onAdFailedToShowFullScreenContent.

Un annuncio deve essere eliminato quando non è più necessario accedervi. La best practice per sapere quando chiamare dispose() è in FullScreenContentCallback.onAdDismissedFullScreenContent e FullScreenContentCallback.onAdFailedToShowFullScreenContent callback.

È tutto. La tua app è ora pronta per mostrare gli annunci con premio.