تبلیغات پاداش، تبلیغاتی هستند که کاربران در ازای دریافت جوایز درونبرنامه، میتوانند با آنها تعامل داشته باشند. این راهنما نحوه ادغام تبلیغات پاداش از AdMob را در یک برنامه Flutter نشان می دهد.
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.
ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای تبلیغات پاداش است:
اندروید
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
فقط یک بار می تواند نشان داده شود. تماسهای بعدی برای نمایش، onAdFailedToShowFullScreenContent
فعال میشوند.
یک آگهی زمانی که دیگر نیازی به دسترسی به آن نیست باید حذف شود. بهترین روش برای زمان فراخوانی dispose()
در FullScreenContentCallback.onAdDismissedFullScreenContent
و FullScreenContentCallback.onAdFailedToShowFullScreenContent
است.
همین! اکنون برنامه شما برای نمایش تبلیغات پاداش آماده است.
مثال کامل در GitHub
تبلیغات پاداش، تبلیغاتی هستند که کاربران در ازای دریافت جوایز درونبرنامه، میتوانند با آنها تعامل داشته باشند. این راهنما نحوه ادغام تبلیغات پاداش از AdMob را در یک برنامه Flutter نشان می دهد.
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.
ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای تبلیغات پاداش است:
اندروید
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
فقط یک بار می تواند نشان داده شود. تماسهای بعدی برای نمایش، onAdFailedToShowFullScreenContent
فعال میشوند.
یک آگهی زمانی که دیگر نیازی به دسترسی به آن نیست باید حذف شود. بهترین روش برای زمان فراخوانی dispose()
در FullScreenContentCallback.onAdDismissedFullScreenContent
و FullScreenContentCallback.onAdFailedToShowFullScreenContent
است.
همین! اکنون برنامه شما برای نمایش تبلیغات پاداش آماده است.