ได้รับรางวัลแล้ว

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

โฆษณาที่มีการให้รางวัลคือโฆษณาที่ผู้ใช้มีตัวเลือกในการโต้ตอบเพื่อแลกกับรางวัลในแอป คู่มือนี้แสดงวิธีผสานรวมโฆษณาที่มีการให้รางวัลจาก AdMob เข้ากับแอป Flutter

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

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

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

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

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

โหลดโฆษณา

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

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

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

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

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

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

[ไม่บังคับ] ตรวจสอบความถูกต้องของ Callback การยืนยันฝั่งเซิร์ฟเวอร์ (SSV)

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

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

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: AdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
              customData: 'SAMPLE_CUSTOM_DATA_STRING');
      ad.setServerSideOptions(_options);
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

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

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

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