Reklamy z nagrodą to reklamy, z którymi użytkownicy mogą wchodzić w interakcję w zamian do nagród w aplikacji. W tym przewodniku widać, jak zintegrować reklamy z nagrodą z Ad Managera w aplikacji Flutter.
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytania reklam testowych jest użycie specjalnego identyfikatora testowego reklamy z nagrodą:
/21775744923/example/rewarded
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 tylko, aby zastąpić je własnymi identyfikatorami jednostek reklamowych przed opublikowaniem .
Wczytywanie reklamy
Ten przykład wczytuje reklamę 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 związane z reklamami z nagrodą
Za pomocą FullScreenContentCallback
możesz monitorować cykl życia
zdarzenia, np. wyświetlenie lub odrzucenie reklamy. Ustaw
RewardedAd.fullScreenContentCallback
przed wyświetleniem reklamy, aby otrzymać
powiadomienia o tych wydarzeniach. 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
RewardedAd
wyświetla się w formie nakładki na całą zawartość aplikacji i jest
statycznie; więc nie można go dodać do drzewa widżetów Flutter. Dostępne opcje
wybierz, kiedy wyświetlić reklamę, wywołując show()
.
RewardedAd.show()
przyjmuje wartość OnUserEarnedRewardCallback
, która jest wywoływana, gdy użytkownik otrzyma nagrodę. Pamiętaj, aby zaimplementować tę funkcję i nagrodzić użytkownika za
po obejrzeniu reklamy.
_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Po wywołaniu funkcji show()
nie można usunąć obiektu Ad
wyświetlonego w ten sposób
automatycznie i wymaga danych wejściowych użytkownika. Pole RewardedAd
można wyświetlić tylko
raz. Kolejne wywołania wywołają onAdFailedToShowFullScreenContent
.
Reklamę należy wyrzucić, gdy dostęp do niej nie jest już potrzebny. Sprawdzona metoda
dotyczące czasu połączenia z użytkownikiem dispose()
jest w
FullScreenContentCallback.onAdDismissedFullScreenContent
i
FullScreenContentCallback.onAdFailedToShowFullScreenContent
wywołań zwrotnych.
Znakomicie. Możesz już wyświetlać w swojej aplikacji reklamy z nagrodą.