Reklama pełnoekranowa z nagrodą to rodzaj zachęcającego formatu reklamy, który umożliwia oferowanie nagród za reklamy wyświetlające się automatycznie w naturalnych momentach przejściowych w aplikacji. W przeciwieństwie do reklam z nagrodą użytkownicy wymagane do wyświetlenia reklamy pełnoekranowej z nagrodą. Z tego przewodnika dowiesz się, jak wdrożyć reklamy pełnoekranowe z nagrodą z AdMob w aplikacji Flutter.
Wymagania wstępne
- Wtyczka Flutter w wersji 1.1.0 lub nowszej.
- Wykonaj instrukcje w sekcji Pierwsze kroki. Twoje Aplikacja Flutter powinna już mieć wtyczkę Google Mobile Ads Flutter .
Zawsze testuj reklamy za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najprostszym sposobem wczytania reklam testowych jest użycie dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby reklam pełnoekranowych z nagrodą:
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
testowe jednostki reklamowe są tak skonfigurowane, aby zwracać reklamy testowe w przypadku każdego żądania; możesz używać ich we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, aby przed opublikowaniem aplikacji zastąpić je własnymi identyfikatorami jednostek reklamowych.
Wczytywanie reklamy
Ten przykład wczytuje reklamę pełnoekranową z nagrodą:
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'); }, )); } }
Zdarzenia reklam pełnoekranowych z nagrodą
Za pomocą FullScreenContentCallback
możesz nasłuchiwać zdarzeń cyklu życia, np. gdy reklama jest wyświetlana lub odrzucana. Ustaw
RewardedInterstitialAd.fullScreenContentCallback
przed wyświetleniem reklamy użytkownikowi
otrzymywać powiadomienia o tych wydarzeniach. Ten przykład implementuje każdą metodę,
rejestruje komunikat w konsoli:
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'); }, )); } }
Reklama displayowa
RewardedInterstitialAd
jest wyświetlany jako nakładka na całą zawartość aplikacji i jest umieszczany statycznie, dlatego nie można go dodawać do drzewa widżetów Fluttera.
Możesz wybrać, kiedy wyświetlać reklamę, wywołując funkcję show()
.
RewardedInterstitialAd.show()
przyjmuje wartość OnUserEarnedRewardCallback
, która jest wywoływana, gdy użytkownik otrzyma nagrodę. Wprowadź tę funkcję i nagradzaj użytkownika za obejrzenie reklamy.
_rewardedInterstitialAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Po wywołaniu funkcji show()
wyświetlony w ten sposób element Ad
nie może zostać usunięty programowo i wymaga podania danych przez użytkownika. Element RewardedInterstitialAd
może mieć tylko
być wyświetlane tylko raz. Kolejne wywołania do wyświetlania będą powodować onAdFailedToShowFullScreenContent
.
Reklamę należy wyrzucić, gdy dostęp do niej nie jest już potrzebny. Sprawdzony sposób wywołania funkcji dispose()
to wywołanie funkcji FullScreenContentCallback.onAdDismissedFullScreenContent
i FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
Znakomicie. Twoja aplikacja jest już gotowa do wyświetlania reklam pełnoekranowych z nagrodą.