ההטבה הופעלה

בחירת פלטפורמה: Android iOS Unity Flutter

מודעות מתגמלות הן מודעות שהמשתמשים יכולים לבחור ליצור איתן אינטראקציה בתמורה לתגמולים בתוך האפליקציה. במדריך הזה מוסבר איך לשלב מודעות מתגמלות מ-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 לפני הצגת המודעה כדי לקבל התראות על האירועים האלה. בדוגמה הזו מיושמת כל שיטה ומוצג לוג של הודעה במסוף:

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 רק פעם אחת. הפעלות חוזרות של הפונקציה show יפעילו את onAdFailedToShowFullScreenContent.

צריך להשמיד מודעה כשאין יותר צורך בגישה אליה. השיטה המומלצת לשימוש ב-dispose() היא באמצעות הפונקציות FullScreenContentCallback.onAdDismissedFullScreenContent ו-FullScreenContentCallback.onAdFailedToShowFullScreenContent של החזרת ערכים.

זהו! האפליקציה שלך מוכנה עכשיו להצגת מודעות מתגמלות.

דוגמה מלאה ב-GitHub

Rewarded