เริ่มต้น

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

คู่มือนี้จะแสดงวิธีใช้ส่วนเสริมโฆษณาเนทีฟในการใช้งานโฆษณาเนทีฟของ AdMob ในแอป Unity รวมถึงสิ่งสําคัญที่ควรพิจารณาระหว่างทาง

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

โฆษณาเนทีฟจะแสดงโดยใช้ GameObjects ประเภทเดียวกับที่คุณสร้างแอปอยู่แล้ว และจัดรูปแบบให้เข้ากับการออกแบบประสบการณ์การใช้งานของผู้ใช้ที่ผู้ใช้เห็นได้ เมื่อโฆษณาเนทีฟโหลดแล้ว แอปของคุณจะได้รับออบเจ็กต์เนทีฟที่มีเนื้อหาของแอปนั้น และแอป Unity (แทนที่จะเป็น SDK) จะแสดงออบเจ็กต์ดังกล่าว

ได้อีกด้วย

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

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

โหลดรูปแบบโฆษณาเนทีฟ

ระบบจะโหลดโฆษณาเนทีฟผ่านคลาส AdLoader ซึ่งมีคลาส AdLoader.Builder ของตัวเองเพื่อปรับแต่งระหว่างการสร้าง เมธอด ForNativeAd() กําหนดค่าให้ AdLoader จัดการโฆษณาเนทีฟ

private void RequestNativeAd() {
    AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
        .ForNativeAd()
        .Build();
}

ลงทะเบียนเข้าร่วมกิจกรรมโฆษณา AdLoader

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

โหลดโฆษณาเนทีฟแล้ว

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

OnAdโหลดไม่สําเร็จ

เรียกใช้เมื่อโหลดโฆษณาเนทีฟไม่สําเร็จ

โหลดโฆษณา

เมื่อสร้าง AdLoader เสร็จแล้ว ให้เรียกใช้เมธอด LoadAd() เพื่อขอโฆษณา

adLoader.LoadAd(new AdRequest.Builder().Build());

รวมคําขอโฆษณาเข้าด้วยกัน

ข้อมูลโค้ดด้านล่างแสดงวิธีสร้าง AdLoader ที่กําหนดค่าให้ขอโฆษณาเนทีฟ ตั้งค่าการมอบสิทธิ์ให้โหลดสําเร็จและไม่สําเร็จ แล้วส่งคําขอโฆษณา

private void RequestNativeAd() {
    AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
        .ForNativeAd()
        .Build();
    adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
    adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

จัดการการโหลดโฆษณาที่ไม่สําเร็จ

กิจกรรม OnAdFailedToLoad เป็นประเภท EventHandle<AdFailedToLoadEventArgs> การแยกวิเคราะห์สาเหตุของการโหลดโฆษณาไม่สําเร็จจากเหตุการณ์นี้จะแสดงด้านล่าง

private void RequestNativeAd() {
    ...
    adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}

private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
    Debug.Log("Native ad failed to load: " + args.Message);
}

แสดงโฆษณาเนทีฟ

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

จัดการจํานวนโฆษณา

กิจกรรม OnNativeAdLoaded เป็นประเภท EventHandler<NativeAdEventArgs> โฆษณาที่ห่อหุ้มอยู่ในออบเจ็กต์ NativeAd จะเรียกจาก NativeAdEventArgs ได้ดังที่แสดงด้านล่างนี้

private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
}

ดึงข้อมูลเนื้อหาโฆษณาเนทีฟ

เมื่อโหลดโฆษณาแล้ว ก็จะเข้าถึงเนื้อหาได้ดังที่แสดงด้านล่าง ระบบจะแสดงเนื้อหากราฟิกเป็นออบเจ็กต์ Texture2D และแสดงผลเนื้อหาข้อความเป็นออบเจ็กต์ string

private bool nativeAdLoaded;
private NativeAd nativeAd;

void Update() {
    ...

    if (this.nativeAdLoaded) {
        this.nativeAdLoaded = false;
        // Get Texture2D for the icon asset of native ad.
        Texture2D iconTexture = this.nativeAd.GetIconTexture();

        // Get string for headline asset of native ad.
        string headline = this.nativeAd.GetHeadlineText();
    }
}

private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
    this.nativeAdLoaded = true;
}

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

  • GetStarRating()
  • GetStore()
  • GetPrice()
  • GetAdvertiser()
  • GetIconTexture()

เนื้อหาตัวเลือกโฆษณาอื่นๆ

ข้อกําหนดในการแสดงเนื้อหาโฆษณาของตัวเลือกโฆษณาอื่นๆ เป็นส่วนหนึ่งของโฆษณาเนทีฟ นอกจากนี้ เนื้อหาโฆษณา AdChoices ยังมองเห็นได้ง่ายอีกด้วย คุณจึงควรเลือกสีพื้นหลังและรูปภาพให้เหมาะสม

ลงทะเบียน GameObjects สําหรับเนื้อหาโฆษณา

คุณต้องลงทะเบียน GameObject สําหรับชิ้นงานโฆษณาที่จะแสดงในแอป Unity หากลงทะเบียนสําเร็จ เมธอดที่ใช้ในการลงทะเบียน GameObject จะแสดงผล bool สําหรับ List<GameObject> เมธอดจะแสดง int ที่ระบุจํานวน GameObject ที่ลงทะเบียนสําเร็จ

หากการจดทะเบียนชิ้นงานโฆษณาไม่สําเร็จ ระบบจะจดจําการแสดงผลและการคลิกโฆษณาเนทีฟที่เกี่ยวข้องไม่ได้

if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
    // Handle failure to register the icon ad asset.
}

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

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

// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;

// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;

// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();

เดโม

โค้ดต่อไปนี้จะแสดงวิธีเรียกเนื้อหาของไอคอนของโฆษณาเนทีฟที่โหลดสําเร็จ แสดงองค์ประกอบไอคอนโฆษณาโดยการตั้งค่าพื้นผิวของ Quad และลงทะเบียน GameObject เพื่อใช้แสดงชิ้นงาน กระบวนการดึงชิ้นงานโฆษณาและลงทะเบียนเนื้อหากับคลาสโฆษณาเนทีฟควรซ้ํากับชิ้นงานแต่ละรายการที่แอปแสดง

private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
    ...

    if (this.nativeAdLoaded) {
        this.nativeAdLoaded = false;
        // Get Texture2D for icon asset of native ad.
        Texture2D iconTexture = this.nativeAd.GetIconTexture();

        icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
        icon.transform.position = new Vector3(1, 1, 1);
        icon.transform.localScale = new Vector3(1, 1, 1);
        icon.GetComponent<Renderer>().material.mainTexture = iconTexture;

        // Register GameObject that will display icon asset of native ad.
        if (!this.nativeAd.RegisterIconImageGameObject(icon))
        {
            // Handle failure to register ad asset.
        }
    }
}
...

private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
    this.nativeAdLoaded = true;
}