Interstitial con premio (beta)

Gli interstitial con premio sono un tipo di formato dell'annuncio con incentivi che ti consente di offrire premi per gli annunci che vengono visualizzati automaticamente durante le naturali transizioni delle app. A differenza degli annunci con premio, gli utenti non devono attivare la visualizzazione di un annuncio interstitial con premio. Questa guida illustra come integrare gli annunci interstitial con premio di AdMob in un'app Flutter.

Prerequisiti

  • Plug-in Flutter 1.1.0 o versioni successive.
  • Completa la sezione Inizia. Nell'app Flutter dovrebbe già essere stato importato il plug-in Flutter di Google Mobile Ads.

Effettua sempre test con annunci di prova

Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione pubblicati. 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 per gli annunci interstitial con premio:

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

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

Carica un annuncio

Nell'esempio seguente viene caricato un annuncio interstitial con premio:

class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> {
  RewardedInterstitialAd? _rewardeInterstitialdAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/5354046379'
    : 'ca-app-pub-3940256099942544/6978759866';

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

Eventi di annunci interstitial con premio

Utilizzando FullScreenContentCallback, puoi ascoltare gli eventi del ciclo di vita, ad esempio quando l'annuncio viene mostrato o ignorato. Imposta RewardedInterstitialAd.fullScreenContentCallback prima di mostrare l'annuncio per ricevere notifiche per questi eventi. Questo esempio implementa ogni metodo e registra un messaggio nella console:

class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> {
  RewardedInterstitialAd? _rewardedInterstitialAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/5354046379'
    : 'ca-app-pub-3940256099942544/6978759866';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedInterstitialAd.load(
        adUnitId: adUnitId,
        adRequest: const AdRequest(),
        adLoadCallback: RewardedInterstitialAdLoadCallback(
          // 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.
            _rewardedInterstitialAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugprint('RewardedInterstitialAd failed to load: $error');
          },
        ));
  }
}

Annuncio display

Un RewardedInterstitialAd viene visualizzato come overlay sopra tutti i contenuti dell'app e posizionato in modo statico, pertanto non può essere aggiunto alla struttura del widget Flutter. Puoi scegliere quando mostrare l'annuncio chiamando il numero show(). RewardedInterstitialAd.show() riceve un OnUserEarnedRewardCallback, che viene richiamato quando l'utente riceve un premio. Assicurati di implementarlo e premia l'utente per aver guardato un annuncio.

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

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

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

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

Esempio completo su GitHub

Interstitial con premio