Interstitial-Anzeigen mit Prämie (Beta)

Interstitials mit Prämie sind ein Anzeigenformat, bei dem Anreize für Anreize geschaffen werden. Sie können dafür Prämien für Anzeigen anbieten, die automatisch an natürlichen Übergangspunkten in der App ausgeliefert werden. Anders als bei Anzeigen mit Prämie müssen Nutzer der Auslieferung von Interstitials mit Prämie nicht zustimmen. In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen mit Prämie aus Ad Manager in eine Flutter-App integrieren.

Voraussetzungen

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

Immer mit Testanzeigen testen

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen und keine Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Am einfachsten lassen sich Testanzeigen mit unserer dedizierten Test-Anzeigenblock-ID für Interstitial-Anzeigen mit Prämie laden:

  • /21775744923/example/rewarded_interstitial

Die Testanzeigenblöcke sind so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können sie beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Ersetzen Sie sie einfach vor der Veröffentlichung Ihrer App durch Ihre 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 = '/21775744923/example/rewarded_interstitial';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedInterstitialAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        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 Lebenszyklusereignisse beobachten, z. B. wann die Anzeige eingeblendet oder geschlossen wird. Legen Sie für diese Ereignisse RewardedInterstitialAd.fullScreenContentCallback fest, damit die Anzeige ausgeliefert wird. In diesem Beispiel werden die einzelnen Methoden implementiert und eine Meldung in der Console protokolliert:

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

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

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedInterstitialAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        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. Durch Aufrufen von show() können Sie festlegen, wann die Anzeige ausgeliefert werden soll. RewardedInterstitialAd.show() erhält eine OnUserEarnedRewardCallback, die aufgerufen wird, wenn der Nutzer eine Prämie erhält. Implementieren Sie dies und belohnen Sie den Nutzer für das Ansehen einer Anzeige.

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

Sobald show() aufgerufen wurde, kann eine auf diese Weise angezeigte Ad nicht programmatisch entfernt werden und erfordert eine Nutzereingabe. Ein RewardedInterstitialAd kann nur einmal angezeigt werden. Nachfolgende Aufrufe, die angezeigt werden sollen, lösen onAdFailedToShowFullScreenContent aus.

Eine Anzeige muss entsorgt werden, wenn kein Zugriff mehr darauf erforderlich ist. Die Best Practice für den Aufruf von dispose() sind die Callbacks FullScreenContentCallback.onAdDismissedFullScreenContent und FullScreenContentCallback.onAdFailedToShowFullScreenContent.

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