Reklamy z nagrodą to reklamy, z którymi użytkownicy mogą wchodzić w interakcje w zamian za nagrody w aplikacji. Z tego przewodnika dowiesz się, jak zintegrować reklamy z nagrodą z Ad Managera z aplikacją 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.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie dedykowanego identyfikatora testowej jednostki reklamowej dla reklam z nagrodą:
/21775744923/example/rewarded
Jednostki reklamowe testowe są skonfigurowane tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz ich używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić je własnymi identyfikatorami jednostek reklamowych.
Wczytywanie reklamy
W tym przykładzie wczytuje się reklama z nagrodą:
class RewardedExampleState extends State<RewardedExample> { RewardedAd? _rewardedAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = '/21775744923/example/rewarded'; /// Loads a rewarded ad. void loadAd() { RewardedAd.loadWithAdManagerAdRequest( adUnitId: adUnitId, adManagerAdRequest: const AdManagerAdRequest(), 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'); }, )); } }
Zdarzenia reklam z nagrodą
Za pomocą funkcji FullScreenContentCallback
możesz nasłuchiwać zdarzeń cyklu życia, np. wyświetlania lub odrzucania reklamy. Aby otrzymywać powiadomienia o tych zdarzeniach, przed wyświetleniem reklamy ustaw RewardedAd.fullScreenContentCallback
. W tym przykładzie implementujemy każdą metodę i zapisujemy wiadomość do konsoli:
class RewardedExampleState extends State<RewardedExample> { RewardedAd? _rewardedAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = '/21775744923/example/rewarded'; /// Loads a rewarded ad. void loadAd() { RewardedAd.loadWithAdManagerAdRequest( adUnitId: adUnitId, adManagerAdRequest: const AdManagerAdRequest(), 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'); }, )); } }
Reklama displayowa
Element RewardedAd
jest wyświetlany jako nakładka na całą zawartość aplikacji i jest umieszczany w sposób statyczny, dlatego nie można go dodawać do drzewa widżetów Fluttera. Możesz wybrać, kiedy wyświetlać reklamę, wywołując funkcję show()
.
RewardedAd.show()
przyjmuje parametr OnUserEarnedRewardCallback
, który jest wywoływany, gdy użytkownik otrzyma nagrodę. Pamiętaj, aby wdrożyć tę funkcję i nagradzać użytkownika za obejrzenie reklamy.
_rewardedAd.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. RewardedAd
może być wyświetlany tylko raz. Kolejne wywołania do wyświetlenia będą powodować onAdFailedToShowFullScreenContent
.
Reklama musi zostać usunięta, gdy dostęp do niej nie jest już potrzebny. Sprawdzona metoda wywołania funkcji dispose()
to wywołanie funkcji FullScreenContentCallback.onAdDismissedFullScreenContent
i FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
Znakomicie. Twoja aplikacja jest teraz gotowa do wyświetlania reklam z nagrodą.