تبلیغات بینابینی با پاداش

پلتفرم مورد نظر: اندروید، iOS، یونیتی ، فلاتر

تبلیغات بینابینی پاداش‌دار نوعی قالب تبلیغاتی تشویقی است که به شما امکان می‌دهد برای تبلیغاتی که به طور خودکار در طول انتقال طبیعی برنامه ظاهر می‌شوند، پاداش ارائه دهید. برخلاف تبلیغات پاداش‌دار، کاربران برای مشاهده تبلیغات بینابینی پاداش‌دار ملزم به انتخاب نیستند. این راهنما نحوه ادغام تبلیغات بینابینی پاداش‌دار از Ad Manager را در یک برنامه Flutter نشان می‌دهد.

پیش‌نیازها

  • افزونه فلاتر ۱.۱.۰ یا بالاتر.
  • شروع به کار را کامل کنید. برنامه Flutter شما باید از قبل افزونه Google Mobile Ads Flutter را وارد کرده باشد.

همیشه با تبلیغات آزمایشی تست کنید

هنگام ساخت و آزمایش برنامه‌های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می‌کنید. عدم انجام این کار می‌تواند منجر به مسدود شدن حساب شما شود.

ساده‌ترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه واحد تبلیغات آزمایشی اختصاصی ما برای تبلیغات بینابینی پاداش‌دار است:

  • /21775744923/example/rewarded-interstitial

واحدهای تبلیغاتی آزمایشی طوری پیکربندی شده‌اند که برای هر درخواست، تبلیغات آزمایشی را برگردانند و شما می‌توانید هنگام کدنویسی، آزمایش و اشکال‌زدایی از آنها در برنامه‌های خود استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آنها را با شناسه‌های واحدهای تبلیغاتی خود جایگزین می‌کنید.

بارگذاری یک تبلیغ

مثال زیر یک تبلیغ بینابینی جایزه‌دار را بارگذاری می‌کند:

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: const AdManagerAdRequest(),
  rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback(
    onAdLoaded: (RewardedInterstitialAd ad) {
      // Called when an ad is successfully received.
      debugPrint('Ad was loaded.');
      // Keep a reference to the ad so you can show it later.
      _rewardedInterstitialAd = ad;
    },
    onAdFailedToLoad: (LoadAdError error) {
      // Called when an ad request failed.
      debugPrint('Ad failed to load with error: $error');
    },
  ),
);

به جای _adUnitId شناسه واحد تبلیغاتی خودتان را قرار دهید.

رویدادهای تبلیغات بینابینی پاداش‌دار

با استفاده از FullScreenContentCallback ، می‌توانید به رویدادهای چرخه عمر، مانند زمان نمایش یا رد تبلیغ، گوش دهید. قبل از نمایش تبلیغ، RewardedInterstitialAd.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.');
  },
);

نمایش آگهی

یک RewardedInterstitialAd به صورت یک Overlay در بالای تمام محتوای برنامه نمایش داده می‌شود و به صورت استاتیک قرار می‌گیرد؛ بنابراین، نمی‌توان آن را به درخت ویجت Flutter اضافه کرد. می‌توانید با فراخوانی show() زمان نمایش تبلیغ را انتخاب کنید. RewardedInterstitialAd.show() یک OnUserEarnedRewardCallback می‌گیرد که وقتی کاربر پاداشی کسب می‌کند، فراخوانی می‌شود. حتماً این را پیاده‌سازی کنید و به کاربر برای تماشای یک تبلیغ پاداش دهید.

_rewardedInterstitialAd?.show(
  onUserEarnedReward: (AdWithoutView view, RewardItem rewardItem) {
    debugPrint('Reward amount: ${rewardItem.amount}');
  },
);

پس از فراخوانی تابع show() ، Ad که به این روش نمایش داده می‌شود، نمی‌تواند به صورت برنامه‌نویسی حذف شود و به ورودی کاربر نیاز دارد. یک RewardedInterstitialAd فقط یک بار می‌تواند نمایش داده شود. فراخوانی‌های بعدی برای show باعث فعال شدن onAdFailedToShowFullScreenContent می‌شوند.

زمانی که دیگر نیازی به دسترسی به یک تبلیغ نباشد، باید آن را دور انداخت. بهترین روش برای زمان فراخوانی dispose() در فراخوانی‌های FullScreenContentCallback.onAdDismissedFullScreenContent و FullScreenContentCallback.onAdFailedToShowFullScreenContent است.

[اختیاری] اعتبارسنجی کال‌بک‌های تأیید سمت سرور (SSV)

برنامه‌هایی که در فراخوانی‌های تأیید سمت سرور به داده‌های اضافی نیاز دارند، باید از ویژگی داده‌های سفارشی تبلیغات پاداشی استفاده کنند. هر مقدار رشته‌ای که روی یک شیء تبلیغ پاداشی تنظیم شود، به پارامتر پرس‌وجوی custom_data از فراخوانی SSV ارسال می‌شود. اگر هیچ مقدار داده سفارشی تنظیم نشود، مقدار پارامتر پرس‌وجوی custom_data در فراخوانی SSV وجود نخواهد داشت.

نمونه کد زیر نحوه تنظیم گزینه‌های SSV را پس از بارگذاری تبلیغ بینابینی پاداش‌دار نشان می‌دهد:

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: AdManagerAdRequest(),
  rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
              customData: 'SAMPLE_CUSTOM_DATA_STRING');
      ad.setServerSideOptions(_options);
      _rewardedInterstitialAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

SAMPLE_CUSTOM_DATA_STRING با داده‌های سفارشی خود جایگزین کنید.