Interstitials mit Prämie sind ein Anzeigenformat, bei dem Prämien für Anzeigen, die ausgeliefert werden, automatisch an natürlichen App-Übergängen. 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 integrieren in eine Flutter-App verwandelt.
Vorbereitung
- Flutter-Plug-in 1.1.0 oder höher
- Schließen Sie Erste Schritte ab. In Ihrer Flutter-App sollte das Google Mobile Ads Flutter-Plug-in bereits importiert sein.
Verwenden Sie immer Testanzeigen
Verwenden Sie beim Entwickeln und Testen Ihrer Apps nur Testanzeigen, Live-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 den Lebenszyklus überwachen
etwa das Ein- oder Ausblenden einer Anzeige. Festlegen
RewardedInterstitialAd.fullScreenContentCallback
, bevor die Anzeige für
erhalten Benachrichtigungen für diese Ereignisse. In diesem Beispiel werden alle Methoden und
protokolliert eine Nachricht in der Konsole:
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 allen App-Inhalten angezeigt und statisch platziert. Daher kann es dem Flutter-Widget-Baum nicht hinzugefügt werden.
Durch Aufrufen von show()
können Sie festlegen, wann die Anzeige ausgeliefert werden soll.
RewardedInterstitialAd.show()
nimmt einen OnUserEarnedRewardCallback
entgegen, der aufgerufen wird, wenn der Nutzer eine Prämie erhält. Implementieren Sie dies und belohnen Sie
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. Nachfolgende Aufrufe zum Anzeigen werden ausgelöst
onAdFailedToShowFullScreenContent
Eine Anzeige muss entsorgt werden, wenn kein Zugriff mehr darauf 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.