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

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

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

อ่านเรื่องราวความสำเร็จของลูกค้าบางส่วนได้ที่ กรณีศึกษา 1 กรณีศึกษา 2

คู่มือนี้อธิบายวิธีผสานรวมโฆษณาที่มีการให้รางวัลเข้ากับแอป Unity

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

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

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

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

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

เริ่มต้น SDK โฆษณาในอุปกรณ์เคลื่อนที่

ก่อนที่จะโหลดโฆษณา ให้แอปเริ่มใช้งาน Mobile Ads SDK โดยการเรียกใช้ MobileAds.Initialize() โดยคุณต้องดำเนินการนี้เพียงครั้งเดียว ซึ่งควรทำเมื่อเปิดตัวแอป

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

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

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

การโหลดโฆษณาที่มีการให้รางวัลจะทำได้โดยใช้เมธอด Load() แบบคงที่ในคลาส RewardedAd ระบบจะระบุออบเจ็กต์ RewardedAd ที่โหลดเป็นพารามิเตอร์ใน Completion Handler ตัวอย่างต่อไปนี้จะโหลดโฆษณาที่มีการให้รางวัล

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

แทนที่ AD_UNIT_ID ด้วยรหัสหน่วยโฆษณา

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

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

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

// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
{
    CustomData = ""SAMPLE_CUSTOM_DATA_STRING""
};

rewardedAd.SetServerSideVerificationOptions(options);

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

หากต้องการตั้งค่าสตริงรางวัลที่กำหนดเอง คุณต้องตั้งค่าก่อนแสดงโฆษณา

แสดงโฆษณาที่มีการให้รางวัลพร้อมการเรียกกลับของรางวัล

เมื่อแสดงโฆษณา คุณต้องระบุ Callback เพื่อจัดการรางวัลสำหรับผู้ใช้ โฆษณาจะแสดงได้เพียงครั้งเดียวต่อการโหลด ใช้CanShowAd()เพื่อ ยืนยันว่าโฆษณาพร้อมแสดง

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

if (rewardedAd != null && rewardedAd.CanShowAd()) { rewardedAd.Show((Reward reward) => { // The ad was showen and the user earned a reward. }); }

ฟังเหตุการณ์โฆษณาที่มีการให้รางวัล

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

rewardedAd.OnAdPaid += (AdValue adValue) => { // Raised when the ad is estimated to have earned money. }; rewardedAd.OnAdImpressionRecorded += () => { // Raised when an impression is recorded for an ad. }; rewardedAd.OnAdClicked += () => { // Raised when a click is recorded for an ad. }; rewardedAd.OnAdFullScreenContentOpened += () => { // Raised when the ad opened full screen content. }; rewardedAd.OnAdFullScreenContentClosed += () => { // Raised when the ad closed full screen content. }; rewardedAd.OnAdFullScreenContentFailed += (AdError error) => { // Raised when the ad failed to open full screen content. };

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

เมื่อใช้ RewardedAd เสร็จแล้ว อย่าลืมเรียกใช้เมธอด Destroy() ก่อนที่จะทิ้งการอ้างอิงถึง RewardedAd

if (rewardedAd != null) { rewardedAd.Destroy(); }

การดำเนินการนี้จะแจ้งให้ปลั๊กอินทราบว่าไม่ได้ใช้ออบเจ็กต์อีกต่อไปและสามารถเรียกคืนหน่วยความจำที่ออบเจ็กต์ใช้ได้ การไม่เรียกใช้เมธอดนี้จะทำให้เกิดหน่วยความจำรั่ว

โหลดโฆษณาที่มีการให้รางวัลถัดไปล่วงหน้า

RewardedAd เป็นออบเจ็กต์ที่ใช้ได้ครั้งเดียว ซึ่งหมายความว่าเมื่อโฆษณาที่มีการให้รางวัลแสดงแล้ว คุณจะใช้วัตถุนั้นอีกไม่ได้ หากต้องการขอโฆษณาที่มีการให้รางวัลอีกรายการ คุณจะต้องสร้างออบเจ็กต์ RewardedAd ใหม่

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

rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

แหล่งข้อมูลเพิ่มเติม