Anzeigen mit Prämie sind Anzeigen, mit denen Nutzer interagieren können, indem sie In-App-Prämien erhalten. In diesem Leitfaden erfahren Sie, wie Sie Anzeigen mit Prämie aus AdMob in eine Flutter-App einbinden.
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 Anzeigen mit Prämie laden:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
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 jedoch vor dem Veröffentlichen Ihrer App durch Ihre Anzeigenblock-IDs.
Anzeige laden
Im folgenden Beispiel wird eine Anzeige mit Prämie geladen:
class RewardedExampleState extends State<RewardedExample> { RewardedAd? _rewardedAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5224354917' : 'ca-app-pub-3940256099942544/1712485313'; /// Loads a rewarded ad. void loadAd() { RewardedAd.load( adUnitId: adUnitId, request: const AdRequest(), 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'); }, )); } }
Ereignisse für Anzeigen mit Prämie
Mit FullScreenContentCallback
können Sie Lebenszyklusereignisse beobachten, z. B. wann die Anzeige eingeblendet oder geschlossen wird. Legen Sie RewardedAd.fullScreenContentCallback
fest, bevor die Anzeige ausgeliefert wird, um Benachrichtigungen zu diesen Ereignissen zu erhalten. Dieses Beispiel implementiert jede Methode und protokolliert eine Nachricht in der Console:
class RewardedExampleState extends State<RewardedExample> { RewardedAd? _rewardedAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5224354917' : 'ca-app-pub-3940256099942544/1712485313'; /// Loads a rewarded ad. void loadAd() { RewardedAd.load( adUnitId: adUnitId, request: const AdRequest(), 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'); }, )); } }
Displayanzeige
Ein RewardedAd
-Objekt wird als Overlay über allen App-Inhalten angezeigt und statisch platziert. Daher kann es nicht zur Struktur des Flutter-Widgets hinzugefügt werden. Durch Aufrufen von show()
können Sie festlegen, wann die Anzeige ausgeliefert werden soll.
RewardedAd.show()
verwendet 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.
_rewardedAd.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 RewardedAd
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 Anzeigen mit Prämie ausgeliefert werden.