تبلیغات جایزهدار، تبلیغاتی هستند که کاربران میتوانند در ازای دریافت جوایز درونبرنامهای با آنها تعامل داشته باشند. این راهنما نحوه ادغام تبلیغات جایزهدار از Ad Manager را در یک برنامه Flutter نشان میدهد.
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامههای خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده میکنید. عدم انجام این کار میتواند منجر به مسدود شدن حساب شما شود.
سادهترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه واحد تبلیغات آزمایشی اختصاصی ما برای تبلیغات جایزهدار است:
-  /21775744923/example/rewarded
واحدهای تبلیغاتی آزمایشی طوری پیکربندی شدهاند که برای هر درخواست، تبلیغات آزمایشی را برگردانند و شما میتوانید هنگام کدنویسی، آزمایش و اشکالزدایی از آنها در برنامههای خود استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آنها را با شناسههای واحدهای تبلیغاتی خود جایگزین میکنید.
بارگذاری یک تبلیغ
مثال زیر یک تبلیغ جایزهدار را بارگذاری میکند:
به جای _adUnitId شناسه واحد تبلیغاتی خودتان را قرار دهید.
رویدادهای تبلیغات جایزهدار
 با استفاده از FullScreenContentCallback ، میتوانید به رویدادهای چرخه عمر، مانند زمان نمایش یا رد تبلیغ، گوش دهید. قبل از نمایش تبلیغ، RewardedAd.fullScreenContentCallback را تنظیم کنید تا برای این رویدادها اعلان دریافت کند. این مثال هر متد را پیادهسازی کرده و پیامی را در کنسول ثبت میکند:
ad.fullScreenContentCallback = FullScreenContentCallback(
  onAdShowedFullScreenContent: (ad) {
    // Called when the ad showed the full screen content.
    debugPrint('Ad showed full screen content.');
  },
  onAdFailedToShowFullScreenContent: (ad, err) {
    // Called when the ad failed to show full screen content.
    debugPrint('Ad failed to show full screen content with error: $err');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdDismissedFullScreenContent: (ad) {
    // Called when the ad dismissed full screen content.
    debugPrint('Ad was dismissed.');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdImpression: (ad) {
    // Called when an impression occurs on the ad.
    debugPrint('Ad recorded an impression.');
  },
  onAdClicked: (ad) {
    // Called when a click is recorded for an ad.
    debugPrint('Ad was clicked.');
  },
);
نمایش آگهی
 یک RewardedAd به صورت یک Overlay در بالای تمام محتوای برنامه نمایش داده میشود و به صورت استاتیک قرار میگیرد؛ بنابراین، نمیتوان آن را به درخت ویجت Flutter اضافه کرد. میتوانید با فراخوانی show() زمان نمایش تبلیغ را انتخاب کنید. RewardedAd.show() یک OnUserEarnedRewardCallback میگیرد که وقتی کاربر پاداشی کسب میکند، فراخوانی میشود. حتماً این را پیادهسازی کنید و به کاربر برای تماشای یک تبلیغ پاداش دهید.
_rewardedAd?.show(
  onUserEarnedReward:
      (AdWithoutView ad, RewardItem rewardItem) {
        debugPrint(
          'Reward amount: ${rewardItem.amount}',
        );
      },
);
 پس از فراخوانی تابع show() ، Ad که به این روش نمایش داده میشود، نمیتواند به صورت برنامهنویسی حذف شود و نیاز به ورودی کاربر دارد. یک RewardedAd فقط یک بار میتواند نمایش داده شود. فراخوانیهای بعدی برای show باعث فعال شدن onAdFailedToShowFullScreenContent میشوند.
 زمانی که دیگر نیازی به دسترسی به یک تبلیغ نباشد، باید آن را دور انداخت. بهترین روش برای زمان فراخوانی dispose() در فراخوانیهای FullScreenContentCallback.onAdDismissedFullScreenContent و FullScreenContentCallback.onAdFailedToShowFullScreenContent است. 
[اختیاری] اعتبارسنجی کالبکهای تأیید سمت سرور (SSV)
 برنامههایی که در فراخوانیهای تأیید سمت سرور به دادههای اضافی نیاز دارند، باید از ویژگی دادههای سفارشی تبلیغات پاداشی استفاده کنند. هر مقدار رشتهای که روی یک شیء تبلیغ پاداشی تنظیم شود، به پارامتر پرسوجوی custom_data از فراخوانی SSV ارسال میشود. اگر هیچ مقدار داده سفارشی تنظیم نشود، مقدار پارامتر پرسوجوی custom_data در فراخوانی SSV وجود نخواهد داشت.
نمونه کد زیر نحوه تنظیم گزینههای SSV پس از بارگذاری تبلیغ جایزهدار را نشان میدهد:
SAMPLE_CUSTOM_DATA_STRING با دادههای سفارشی خود جایگزین کنید.