โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล

เลือกแพลตฟอร์ม: Android ใหม่ Android iOS Unity Flutter

โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลเป็นโฆษณาที่เสนอสิ่งจูงใจประเภทหนึ่งที่ช่วยให้คุณนำเสนอ รางวัลสำหรับโฆษณาที่ปรากฏ โดยอัตโนมัติระหว่างจุดเปลี่ยนหน้าตามปกติของแอป ผู้ใช้ไม่จําเป็นต้องเลือกดูโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล ซึ่งต่างจากโฆษณาที่มีการให้รางวัล คู่มือนี้จะแสดงวิธีผสานรวมโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลจาก AdMob ลงในแอป Flutter

ข้อกำหนดเบื้องต้น

ก่อนดำเนินการต่อ ให้ทำดังนี้

ทดสอบด้วยโฆษณาทดสอบเสมอ

เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาจริง หากไม่ปฏิบัติตาม อาจทำให้บัญชีของคุณถูกระงับ

วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบเฉพาะสำหรับโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล ดังนี้

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

หน่วยโฆษณาทดสอบได้รับการกำหนดค่าให้แสดงโฆษณาทดสอบสำหรับทุกคำขอ และคุณสามารถใช้หน่วยโฆษณาเหล่านี้ในแอปของคุณเองได้อย่างอิสระขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบว่าได้แทนที่หน่วยโฆษณาทดสอบด้วยรหัสหน่วยโฆษณาของคุณเองก่อนที่จะเผยแพร่แอป

โหลดโฆษณา

ตัวอย่างต่อไปนี้จะโหลดโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: const AdRequest(),
  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 จะแสดงเป็นภาพซ้อนทับเหนือเนื้อหาทั้งหมดของแอปและวางไว้แบบคงที่ จึงเพิ่มลงในแผนผังวิดเจ็ต Flutter ไม่ได้ คุณสามารถเลือกเวลาที่จะแสดงโฆษณาได้โดยเรียกใช้ show() RewardedInterstitialAd.show() จะใช้ OnUserEarnedRewardCallback ซึ่งจะเรียกใช้เมื่อผู้ใช้ได้รับรางวัล อย่าลืมใช้ฟังก์ชันนี้และให้รางวัลแก่ผู้ใช้ที่ดูโฆษณา

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

เมื่อเรียกใช้ show() แล้ว ระบบจะไม่สามารถนำ Ad ที่แสดงด้วยวิธีนี้ออกได้โดยอัตโนมัติและต้องให้ผู้ใช้ป้อนข้อมูล RewardedInterstitialAd จะแสดงได้เพียงครั้งเดียว การเรียกใช้ฟังก์ชัน show ในครั้งต่อๆ ไปจะทริกเกอร์ onAdFailedToShowFullScreenContent

คุณต้องเรียกใช้ฟังก์ชัน `dispose()` กับโฆษณาเมื่อไม่ต้องการเข้าถึงโฆษณาอีกต่อไป แนวทางปฏิบัติแนะนำในการเรียกใช้ฟังก์ชัน dispose() คือในฟังก์ชันเรียกกลับ FullScreenContentCallback.onAdDismissedFullScreenContent และ FullScreenContentCallback.onAdFailedToShowFullScreenContent

[ไม่บังคับ] ตรวจสอบฟังก์ชันเรียกกลับการยืนยันฝั่งเซิร์ฟเวอร์ (SSV)

แอปที่ต้องใช้ข้อมูลเพิ่มเติมในการการยืนยันฝั่งเซิร์ฟเวอร์ Callback ควรใช้ฟีเจอร์ข้อมูลที่กำหนดเองของโฆษณาที่มีการให้รางวัล ค่าสตริงที่ตั้งค่าไว้ในออบเจ็กต์โฆษณาที่มีการให้รางวัลจะส่งไปยังพารามิเตอร์การค้นหา custom_data ของ SSV Callback หากไม่ได้ตั้งค่าข้อมูลที่กำหนดเอง ค่าพารามิเตอร์การค้นหา custom_data จะไม่อยู่ใน SSV Callback

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตั้งค่าตัวเลือก SSV หลังจากโหลดโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลแล้ว

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

แทนที่ SAMPLE_CUSTOM_DATA_STRING ด้วยข้อมูลที่กำหนดเอง

ตัวอย่างที่สมบูรณ์ใน GitHub

โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล