Interstitial mit Prämie (Beta)

Interstitials mit Prämie sind ein Anzeigenformat mit Incentives, mit dem Sie Prämien für Anzeigen anbieten können, die automatisch an natürlichen Übergangspunkten in einer App ausgeliefert werden. Anders als bei Anzeigen mit Prämie müssen Nutzer nicht zustimmen, sich Interstitials mit Prämie anzusehen. In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen mit Prämie von AdMob in eine Flutter-App einbinden.

Vorbereitung

  • Flutter-Plug-in 1.1.0 oder höher
  • Schließen Sie Erste Schritte ab. Das Google Mobile Ads Flutter-Plug-in sollte bereits in Ihre Flutter-App importiert worden sein.

Immer mit Testanzeigen testen

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen anstelle von aktiven Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Am einfachsten lassen sich Testanzeigen laden, wenn Sie die spezielle Test-Anzeigenblock-ID für Interstitial-Anzeigen mit Prämie verwenden:

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

Die Testanzeigenblöcke sind so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können sie in Ihren eigenen Apps verwenden, während Sie Code schreiben, testen und debuggen. Ersetzen Sie sie vor der Veröffentlichung Ihrer App durch Ihre eigenen Anzeigenblock-IDs.

Anzeige laden

Im folgenden Beispiel wird eine Interstitial-Anzeige mit Prämie geladen:

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');
          },
        ));
  }
}

Ereignisse für Interstitial-Anzeigen mit Prämie

Mit FullScreenContentCallback können Sie auf Lebenszyklusereignisse achten, z. B. wenn die Anzeige ausgeliefert oder geschlossen wird. Legen Sie RewardedInterstitialAd.fullScreenContentCallback fest, bevor die Anzeige ausgeliefert wird, um Benachrichtigungen für diese Ereignisse zu erhalten. In diesem Beispiel werden alle Methoden implementiert und eine Nachricht wird in der Konsole protokolliert:

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');
          },
        ));
  }
}

Displayanzeige

Ein RewardedInterstitialAd wird als Overlay über dem gesamten App-Inhalt angezeigt und statisch platziert. Daher kann es nicht der Struktur des Flutter-Widgets hinzugefügt werden. Sie können festlegen, wann die Anzeige ausgeliefert werden soll, indem Sie show() aufrufen. RewardedInterstitialAd.show() nimmt einen OnUserEarnedRewardCallback entgegen, der aufgerufen wird, wenn der Nutzer eine Prämie erhält. Implementieren Sie diese Funktion und belohnen Sie Nutzer für das Ansehen einer Anzeige.

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

Nachdem show() aufgerufen wurde, kann ein auf diese Weise angezeigtes Ad nicht mehr programmatisch entfernt werden und erfordert Nutzereingaben. Ein RewardedInterstitialAd kann nur einmal angezeigt werden. Bei nachfolgenden Aufrufen der Sendung wird onAdFailedToShowFullScreenContent ausgelöst.

Eine Anzeige muss gelöscht werden, wenn der Zugriff darauf nicht mehr erforderlich ist. Am besten wird dispose() in den FullScreenContentCallback.onAdDismissedFullScreenContent- und FullScreenContentCallback.onAdFailedToShowFullScreenContent-Callbacks aufgerufen.

Fertig! In Ihrer App können jetzt Interstitial-Anzeigen mit Prämie ausgeliefert werden.

Vollständiges Beispiel auf GitHub

Interstitial mit Prämie