โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลเป็นรูปแบบโฆษณาที่เสนอสิ่งจูงใจประเภทหนึ่งที่ให้คุณเสนอรางวัลสําหรับโฆษณาที่ปรากฏโดยอัตโนมัติระหว่างจุดเปลี่ยนหน้าตามปกติของแอป ผู้ใช้ไม่จําเป็นต้องเลือกดูโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล ซึ่งต่างจากโฆษณาที่มีการให้รางวัล คู่มือนี้แสดงวิธีผสานรวมโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลจาก AdMob เข้ากับแอป Flutter
ข้อกำหนดเบื้องต้น
- ปลั๊กอิน Flutter 1.1.0 ขึ้นไป
- ทําตามขั้นตอนเริ่มต้นใช้งานให้เสร็จสมบูรณ์ แอป Flutter ของคุณควรนําเข้าปลั๊กอิน Flutter ของ Google Mobile Ads ไว้แล้ว
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาเวอร์ชันที่ใช้งานจริง หากไม่ดำเนินการดังกล่าวอาจส่งผลให้บัญชีถูกระงับ
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบสําหรับโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลโดยเฉพาะ ดังนี้
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
หน่วยโฆษณาทดสอบได้รับการกําหนดค่าให้แสดงโฆษณาทดสอบสําหรับคําขอทุกรายการ และคุณใช้หน่วยโฆษณาทดสอบในแอปของคุณเองได้ขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบว่าคุณได้แทนที่รหัสดังกล่าวด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป
โหลดโฆษณา
ตัวอย่างต่อไปนี้จะโหลดโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> { RewardedInterstitialAd? _rewardeInterstitialdAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5354046379' : 'ca-app-pub-3940256099942544/6978759866'; /// Loads a rewarded ad. void loadAd() { RewardedInterstitialAd.load( adUnitId: adUnitId, adRequest: const AdRequest(), adLoadCallback: RewardedInterstitialAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _rewardedInterstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('RewardedInterstitialAd failed to load: $error'); }, )); } }
เหตุการณ์โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล
เมื่อใช้ FullScreenContentCallback
คุณจะรับฟังเหตุการณ์ต่างๆ ตลอดวงจรได้ เช่น เมื่อโฆษณาแสดงหรือปิด ตั้งค่า RewardedInterstitialAd.fullScreenContentCallback
ก่อนแสดงโฆษณาเพื่อรับการแจ้งเตือนสําหรับเหตุการณ์เหล่านี้ ตัวอย่างนี้ใช้แต่ละเมธอดและบันทึกข้อความไปยังคอนโซล
class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> { RewardedInterstitialAd? _rewardedInterstitialAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5354046379' : 'ca-app-pub-3940256099942544/6978759866'; /// Loads a rewarded ad. void loadAd() { RewardedInterstitialAd.load( adUnitId: adUnitId, adRequest: const AdRequest(), adLoadCallback: RewardedInterstitialAdLoadCallback( // 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. _rewardedInterstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugprint('RewardedInterstitialAd failed to load: $error'); }, )); } }
โฆษณาแบบดิสเพลย์
RewardedInterstitialAd
จะแสดงเป็นการวางซ้อนเหนือเนื้อหาทั้งหมดของแอป และวางไว้แบบคงที่ จึงเพิ่มลงในต้นไม้วิดเจ็ต Flutter ไม่ได้
คุณเลือกเวลาที่จะแสดงโฆษณาได้โดยเรียกใช้ show()
RewardedInterstitialAd.show()
ใช้ OnUserEarnedRewardCallback
ซึ่งจะเรียกใช้เมื่อผู้ใช้ได้รับรางวัล อย่าลืมใช้ฟีเจอร์นี้และมอบรางวัลให้ผู้ใช้ที่ดูโฆษณา
_rewardedInterstitialAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
เมื่อเรียก show()
แล้ว Ad
ที่แสดงด้วยวิธีนี้จะนําออกแบบเป็นโปรแกรมไม่ได้ และต้องใช้ข้อมูลจากผู้ใช้ RewardedInterstitialAd
จะแสดงได้เพียงครั้งเดียว การเรียกใช้เพื่อแสดงครั้งต่อๆ ไปจะทริกเกอร์
onAdFailedToShowFullScreenContent
คุณต้องกำจัดโฆษณาเมื่อไม่จำเป็นต้องเข้าถึงโฆษณานั้นอีกต่อไป แนวทางปฏิบัติแนะนำสำหรับเวลาเรียกใช้ dispose()
อยู่ในการเรียกกลับ FullScreenContentCallback.onAdDismissedFullScreenContent
และ FullScreenContentCallback.onAdFailedToShowFullScreenContent
เท่านี้ก็เรียบร้อย ตอนนี้แอปของคุณพร้อมแสดงโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลแล้ว