ตำแหน่งโฆษณา

คู่มือนี้แสดงวิธีใช้โฆษณาของปลั๊กอิน Unity สำหรับโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google ฟีเจอร์ตำแหน่งโฆษณาสำหรับสร้างและแสดงโฆษณาสำหรับแอป

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

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

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

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

การสร้างตำแหน่งโฆษณา

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

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

การกำหนดค่าตำแหน่งโฆษณา

แต่ละตำแหน่งจะมีพร็อพเพอร์ตี้ดังต่อไปนี้

ชื่อตำแหน่ง
ชื่อของตำแหน่งโฆษณา ใช้ระบุตำแหน่งเมื่อตั้งค่าโฆษณาใน ฉาก
รูปแบบโฆษณา
แบนเนอร์, โฆษณาที่มีการให้รางวัล, โฆษณาคั่นระหว่างหน้า ประเภทโฆษณา
รหัสหน่วยโฆษณา
ระบุรหัสหน่วยโฆษณาแบนเนอร์สำหรับ Android และ iOS คุณต้องระบุที่ รหัสหน่วยโฆษณาอย่างน้อย 1 รหัส
ต่อเนื่องทั่วทุกฉาก
เมื่อเลือกตัวเลือกนี้ แบนเนอร์จะยังคงอยู่บนหน้าจอโดยไม่คำนึงถึงฉาก (ลักษณะการทำงานเดียวกับ DontDestroyOnLoad)
การโหลดอัตโนมัติเปิดใช้งาน
เมื่อเลือกตัวเลือกนี้ โฆษณาจะโหลดโดยอัตโนมัติเมื่อฉากที่เชื่อมโยงกับฉาก ระบบจะโหลดตำแหน่งโฆษณา

ภาพหน้าจอต่อไปนี้แสดงตัวอย่างตำแหน่งโฆษณาชื่อ แบนเนอร์สุดปัง

การเพิ่ม AdGameObject ลงในโหมด

คุณสามารถเพิ่ม AdGameObject สำหรับโฆษณาแบนเนอร์ โฆษณาคั่นระหว่างหน้า หรือโฆษณาที่มีการให้รางวัลลงใน โดยใช้ GameObject > Google Mobile Ads ใน Unity Editor เลือก เพื่อเพิ่มตำแหน่งลงในฉากที่ใช้งานอยู่

เมื่อเพิ่ม AdGameObject ลงในฉากแล้ว คุณจะเห็น GameObject จะแสดงโฆษณาในมุมมองแบบลำดับชั้นของ Unity Editor

คุณเปลี่ยนชื่อตำแหน่งโฆษณาได้โดยเปลี่ยนชื่อ GameObject โดยตรง ภาพหน้าจอต่อไปนี้แสดงตัวอย่างของ AdGameObject ชื่อว่าโฆษณาแบนเนอร์

การตั้งค่า AdGameObject

คุณกำหนดค่า AdGameObject ในโหมดของคุณได้จากเครื่องมือตรวจสอบ ในการตั้งค่าสำหรับคอมโพเนนต์ออบเจ็กต์เกมโฆษณา (สคริปต์)

ตำแหน่งโฆษณา

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

การกำหนดค่า BannerAdGameObject (แบนเนอร์เท่านั้น)

  • ขนาด - เลือกขนาดของแบนเนอร์ที่ต้องการใช้
    • แบนเนอร์แบบปรับขนาดได้แบบโฆษณา Anchor จะมีตัวเลือกเพิ่มเติมดังนี้
      • การวางแนว - เลือกการวางแนวของอุปกรณ์ที่ใช้ในการคำนวณโฆษณา และความสูง
      • ใช้ความกว้างเต็มหน้าจอ - เมื่อเลือกตัวเลือกนี้ แบนเนอร์จะยึดตำแหน่ง เต็มความกว้างของหน้าจอ คุณสามารถปรับ % ความกว้างของหน้าจอ (50~99%) ในกรณีต่อไปนี้ คุณยกเลิกการเลือกตัวเลือกใช้ความกว้างเต็มหน้าจอ
    • กําหนดเองช่วยให้คุณระบุความกว้างและความสูงของแบนเนอร์ได้
  • อันดับโฆษณา - เลือกตำแหน่งที่ควรวางแบนเนอร์

Callback

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

  1. สร้างฟังก์ชันที่เข้ากันได้กับ Callback ของโฆษณา

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. แนบสคริปต์ที่มีฟังก์ชันข้างต้นกับ GameObject ในองค์ประกอบ ด้วย

  3. คลิกปุ่ม + จากนั้นลากและ วาง GameObject ที่คุณแนบ สคริปต์

  4. เลือกฟังก์ชันที่คุณต้องการลิงก์กับการเรียกกลับของโฆษณา สำหรับ Callback ของโฆษณาที่เป็นพารามิเตอร์ ให้เลือกฟังก์ชันเพื่อยอมรับ ตัวแปรเพื่อให้คุณสามารถรับค่าพารามิเตอร์จาก SDK

ใช้ AdGameObject จากสคริปต์

รับอินสแตนซ์ AdGameObject จากสคริปต์

ออบเจ็กต์ AdGameObject ทั้งหมดมีวิธีการอำนวยความสะดวก LoadAd() ส่วนนี้จะโหลดขึ้นมา โฆษณาที่มี AdRequest แบบธรรมดาและไม่มีการกำหนดเป้าหมาย หากต้องการนำการกำหนดเป้าหมายไปใช้ LoadAd(AdRequest adRequest) โดยใช้คำขอโฆษณาที่คุณกำหนดค่าเอง

ในการรับอินสแตนซ์ของ AdGameObject ให้ใช้เมธอดต่อไปนี้สำหรับแต่ละรูปแบบ

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

ออบเจ็กต์ BannerAdGameObject ที่แสดงผลมีวิธีการอำนวยความสะดวกด้วย Hide() และ Show()

โฆษณาคั่นระหว่างหน้า

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

ออบเจ็กต์ InterstitialAdGameObject ที่แสดงผลมีวิธีการอำนวยความสะดวก ShowIfLoaded()

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

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

ออบเจ็กต์ RewardedAdGameObject ที่แสดงผลมีวิธีการอำนวยความสะดวก ShowIfLoaded()

ตัวอย่างเช่น คุณสามารถรับอินสแตนซ์ของ BannerAdGameObject และโหลดเป็น ดังต่อไปนี้:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

หากมี BannerAdGameObject ที่ชื่อ BannerAd คุณจะได้รับอินสแตนซ์ของ ดังนี้

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

เข้าถึงออบเจ็กต์โฆษณาที่สำคัญใน AdGameObject

ข้อมูลโค้ดเหล่านี้แสดงวิธีเข้าถึงออบเจ็กต์โฆษณาที่เกี่ยวข้องซึ่ง ด้วย AdGameObject

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

โฆษณาคั่นระหว่างหน้า

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

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

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

ตัวอย่าง

แสดงโฆษณาคั่นระหว่างหน้า

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

เพิ่ม InterstitialAdGameObject ลงในฉากและเปิดการโหลดอัตโนมัติ เปิดใช้ฟีเจอร์เพื่อให้โฆษณาโหลดโดยอัตโนมัติเมื่อฉากโหลด

ถัดไป ให้ตรวจสอบว่าคุณได้เริ่มต้น SDK แล้วโดยใช้วิธีต่อไปนี้ โปรดทราบว่าการตั้งค่า Auto Load ใน AdGameObject จะไม่ทำงานหากคุณลืมเริ่มต้น SDK

จากนั้นแสดงโฆษณาคั่นระหว่างหน้าระหว่างการเปลี่ยนหน้าจอด้วยการเรียก InterstitialAdGameObject.ShowIfLoaded() โค้ดต่อไปนี้แสดง ตัวอย่างการแสดงโฆษณาคั่นระหว่างหน้าระหว่างการเปลี่ยนฉาก

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

เนื่องจากคุณได้เปิดใช้ฟีเจอร์โหลดอัตโนมัติในตำแหน่งโฆษณา คุณจะไม่ต้อง จำเป็นต้องขอโฆษณาอย่างชัดเจน เมื่อฉากเปลี่ยนไป โฆษณาคั่นระหว่างหน้าจะ ปรากฏขึ้นหากมี

หากคุณต้องการส่งคำขอโฆษณาด้วยตนเอง ให้ปิดใช้งานคุณลักษณะโหลดอัตโนมัติจาก เครื่องมือตรวจสอบตำแหน่งโฆษณาและเรียกใช้ InterstitialAdGameObject.LoadAd() แทน ข้อมูลโค้ดต่อไปนี้แสดงวิธีส่งคำขอ โฆษณาของคุณ

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

จัดการ "ดูโฆษณาที่มีการให้รางวัล" สถานะปุ่ม

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

เพิ่มปุ่ม GameObject (ในตัวอย่างนี้เรียกว่า Button) ลงในฉาก เพื่อแสดงโฆษณาที่มีการให้รางวัล เราจะทำให้ปุ่มนี้ใช้งานได้เท่านั้น เมื่อมีโฆษณาที่มีการให้รางวัล

ในเมธอด Start() ให้เปลี่ยนสถานะการใช้งานของปุ่มเป็น false ช่วงเวลานี้ จะทำให้ปุ่มหายไปจากฉาก

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

เพิ่ม RewardedAdGameObject ลงในฉากและเลือกการสาธิตของ AdMob ที่มีการให้รางวัล โฆษณา ตำแหน่งโฆษณาจากเมนูแบบเลื่อนลง

ในส่วน Callback ในเครื่องมือตรวจสอบ RewardedAdGameObject ให้คลิก ปุ่ม + จาก On Ad Loaded() เพื่อเปิดใช้การเรียกใช้ฟังก์ชัน เมื่อโฆษณาที่มีการให้รางวัลโหลด

ลากและวางปุ่ม GameObject ที่คุณเพิ่มไว้ในขั้นตอนก่อนหน้าลงใน ช่องไม่มี (ออบเจ็กต์) เลือกฟังก์ชันที่จะเรียกใช้จากเมนูแบบเลื่อนลง คลิกไม่มีฟังก์ชัน > GameObject > SetActive(bool) แล้วคลิกช่องทำเครื่องหมายเพื่อ ระบบจะส่ง true เป็นพารามิเตอร์ (เรียกใช้ SetActive(true))

ในส่วน Callback นี้ คุณยังลิงก์เหตุการณ์ที่ระบบจะเรียก เมื่อเหตุการณ์ RewardedAd.OnUserEarnedReward เริ่มทำงาน สำหรับรายละเอียดเพิ่มเติม โปรดดูส่วนนี้

ถัดไป ให้สร้างปุ่มเพื่อแสดงโฆษณาที่มีการให้รางวัลเมื่อคลิก จากแท็บ เปิด Click() ส่วน Callback ในเครื่องมือตรวจสอบปุ่ม ให้คลิกปุ่ม + และ ลากและวางโฆษณาที่มีการให้รางวัล GameObject (เรียกว่า โฆษณาที่มีการให้รางวัล ใน ตัวอย่าง) ลงในช่อง None (Object)

จากนั้นแนบฟังก์ชัน RewardedAdGameObject.ShowIfLoaded() เข้ากับแท็ก On Click() Callback

สุดท้ายนี้ อย่าลืมเริ่มต้น SDK ข้อมูลโค้ดต่อไปนี้คือ โค้ดที่สมบูรณ์สำหรับฉากที่ใช้ในตัวอย่างนี้

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

เมื่อเรียกใช้โปรเจ็กต์ คุณจะเห็นปุ่มแสดงในฉากเมื่อ โฆษณาที่มีการให้รางวัลโหลดแล้วและพร้อมที่จะแสดง

กำหนดค่าการเรียกกลับของรางวัลสำหรับ มีการให้รางวัลAdGameObject

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

สร้างสคริปต์ใหม่และกำหนดฟังก์ชันที่ยอมรับ Reward เป็นพารามิเตอร์ ดังนี้

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

แนบสคริปต์ RewardedTestScript กับ GameObject ใดก็ได้ (ยกเว้นโฆษณา ตำแหน่ง GameObject) ในฉาก ในตัวอย่างนี้ เชื่อมโยงกับ Camera GameObject

เพิ่ม RewardedAdGameObject ลงในฉาก จากนั้น ในส่วน Callback ในเครื่องมือตรวจสอบ RewardedAdGameObject ให้คลิกปุ่ม + ในผู้ใช้ รางวัลที่ได้รับ (รางวัล) เพื่อให้ระบบเรียกฟังก์ชันเมื่อรางวัลคือ ที่ให้แก่ผู้ใช้

ลากและวาง GameObject ของกล้องหลักที่คุณได้เพิ่มไว้ในก่อนหน้านี้ ไปที่ช่องไม่มี (ออบเจ็กต์) เลือกฟังก์ชันที่จะเรียกใช้จาก แบบเลื่อนลง คลิกไม่มีฟังก์ชัน > มีการให้รางวัลทดสอบสคริปต์ > รางวัลที่ผู้ใช้ได้รับ

เมื่อคุณเรียกใช้โปรเจ็กต์และดูโฆษณาที่มีการให้รางวัล ระบบจะเรียกใช้ RewardedTestScript.OnUserEarnedReward() เมื่อคุณจะ ได้รับรางวัลจากการโต้ตอบกับโฆษณา