คู่มือนี้แสดงวิธีใช้ส่วนเสริมโฆษณาเนทีฟเพื่อติดตั้งโฆษณาเนทีฟของ AdMob โฆษณาในแอป Unity รวมถึงสิ่งสำคัญที่ควรพิจารณาไปพร้อมกัน
โฆษณาเนทีฟตรงกับทั้งรูปแบบและการทำงานของประสบการณ์ของผู้ใช้ซึ่ง ในหน่วยโฆษณานั้นๆ และยังเข้ากับรูปลักษณ์ของแอปที่โฆษณาปรากฏด้วย รูปแบบโฆษณาเนทีฟของ AdMob ช่วยให้ผู้เผยแพร่โฆษณาแสดงโฆษณาได้อย่างราบรื่น กับเนื้อหา คุณสามารถใช้เทคโนโลยีนี้เพื่อใช้การแสดงผลที่กำหนดเองโดยละเอียด ที่ใช้ประโยชน์จากโค้ดแบบเนทีฟในแอป Unity ได้อย่างเต็มที่
โฆษณาเนทีฟจะแสดงโดยใช้ GameObjects
ประเภทเดียวกับที่คุณใช้
สร้างแอปพลิเคชันของคุณอยู่แล้ว และสามารถจัดรูปแบบให้ตรงกับการออกแบบภาพของ
ประสบการณ์ของผู้ใช้ที่พวกเขาอาศัยอยู่ เมื่อโฆษณาเนทีฟโหลดขึ้นมา
ได้รับออบเจ็กต์เนทีฟที่มีเนื้อหาและแอป Unity (ไม่ใช่
SDK) แสดงครีเอทีฟโฆษณาเหล่านั้น
ข้อกำหนดเบื้องต้น
- ปลั๊กอิน Google Mobile Ads Unity เวอร์ชัน 7.0.0 ขึ้นไป
- ทำตามคู่มือเริ่มต้นใช้งานจนจบ
- ดาวน์โหลด และติดตั้งส่วนเสริมโฆษณาเนทีฟ
โหลดรูปแบบโฆษณาเนทีฟ
โฆษณาเนทีฟจะโหลดผ่านคลาส 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()
ชิ้นงานตัวเลือกโฆษณาอื่นๆ
คุณจำเป็นต้องแสดงชิ้นงานโฆษณาตัวเลือกโฆษณาอื่นๆ เป็นส่วนหนึ่งของโฆษณาเนทีฟ นอกจากนี้ ชิ้นงานโฆษณาของตัวเลือกโฆษณาอื่นๆ ควรสังเกตเห็นได้ง่าย ดังนั้น ให้เลือก สีและรูปภาพพื้นหลังให้เหมาะสม
ลงทะเบียน GameObjects สำหรับชิ้นงานโฆษณา
คุณต้องลงทะเบียน 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;
}