מודעות מתגמלות הן מודעות שהמשתמשים יכולים ליצור איתן אינטראקציה בתמורה לתגמולים באפליקציה. במדריך הזה מוסבר איך לשלב מודעות מתגמלות מ-AdMob באפליקציה של Flutter.
ביצוע בדיקות באמצעות מודעות בדיקה תמיד
כשאתם מפתחים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה במקום במודעות פעילות בסביבת הייצור. אם לא תעשו זאת, החשבון שלכם עלול להיחסם.
הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת מודעות לבדיקה עבור מודעות מתגמלות:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
יחידות המודעות לבדיקה מוגדרות כך שיחזירו מודעות בדיקה לכל בקשה, וכן ניתן להשתמש בהם באפליקציות משלכם תוך כדי תכנות, בדיקות וניפוי באגים. רק חשוב להחליף אותם במזהי יחידות המודעות שלכם לפני פרסום האפליקציה.
טעינת מודעה
בדוגמה הבאה נטענת מודעה מתגמלת:
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'); }, )); } }
אירועים של מודעות מתגמלות
באמצעות FullScreenContentCallback
, אפשר להאזין לאירועים במחזור החיים של המודעה, למשל כשהמודעה מוצגת או נסגרת. סיום
RewardedAd.fullScreenContentCallback
לפני הצגת המודעה לקבלת
התראות לגבי האירועים האלה. בדוגמה הזו אנחנו מיישמים כל method ורושמת ביומן
הודעה למסוף:
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'); }, )); } }
מודעה ברשת המדיה
RewardedAd
מוצג כשכבת-על מעל כל תוכן האפליקציה וממוקם באופן סטטי, ולכן אי אפשר להוסיף אותו לעץ הווידג'טים של Flutter. אפשר
לבחור מתי להציג את המודעה על ידי שליחת קריאה למספר show()
.
RewardedAd.show()
לוקחת OnUserEarnedRewardCallback
, שמופעלת כאשר
המשתמש זוכה בפרס. חשוב להטמיע את התכונה הזו ולתגמל את המשתמש על צפייה במודעה.
_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
לאחר הקריאה אל show()
, אי אפשר להסיר Ad
שמוצג כך
באופן פרוגרמטי ומחייב קלט של משתמשים. אפשר להציג RewardedAd
רק פעם אחת. קריאות חוזרות להצגה יפעילו את onAdFailedToShowFullScreenContent
.
מודעה חייבת להשליך כאשר אין יותר צורך בגישה אליה. מומלץ להפעיל את dispose()
בקריאות החוזרות (callbacks) של FullScreenContentCallback.onAdDismissedFullScreenContent
ו-FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
זהו! האפליקציה מוכנה עכשיו להצגת מודעות מתגמלות.