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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

สิ่งที่ต้องมีก่อน

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

ก่อนโหลดโฆษณา ให้เริ่มต้น 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 Editor ตําแหน่งโฆษณาสาธิต 3 ตําแหน่ง ได้รับการตั้งค่าและพร้อมใช้งานแล้ว

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

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

แต่ละตําแหน่งมีพร็อพเพอร์ตี้ต่อไปนี้

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

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

การเพิ่ม AdGameObject ลงในฉาก

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

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

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

การตั้งค่า AdGameObject

คุณกําหนดค่า AdGameObject ในฉากได้จากมุมมองเครื่องมือตรวจสอบในการตั้งค่าสําหรับคอมโพเนนต์ Ad Game Object (Script)

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

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

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

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

โค้ดเรียกกลับ

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

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

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

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

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

ในเมธอด 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))

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

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

จากนั้นแนบฟังก์ชัน RewardedAdGameObject.ShowIfLoaded() กับปุ่มกลับ คลิก ของปุ่ม

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

using UnityEngine;

using GoogleMobileAds.Api;

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

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

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

กําหนดค่าโค้ดเรียกกลับรางวัลสําหรับ RewardAdGameObject

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

สร้างสคริปต์ใหม่และกําหนดฟังก์ชันที่ยอมรับ 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 ของตําแหน่งโฆษณา) ในฉาก ในตัวอย่างนี้ การต่อเชื่อมกับ กล้องเกมหลัก

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

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

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