เริ่มเลย

วันที่

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

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

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

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

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

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

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

ลงทะเบียนสำหรับเหตุการณ์โฆษณา AdLoader

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

OnNativeAdLoaded

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

OnAdFailedToLoad

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

โหลดโฆษณา

เมื่อสร้าง 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()

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

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

ลงทะเบียน GameObject สําหรับชิ้นงานโฆษณา

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

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

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

GameObject ที่ลงทะเบียนสำหรับชิ้นงานโฆษณาต้องมี Convex 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;
}