Audience Network ช่วยให้คุณสร้างรายได้จากแอพ Android และ iOS ของคุณได้ด้วยโฆษณาบน Facebook โฆษณาคั่นคือประสบการณ์โฆษณาแบบเต็มหน้าจอที่สามารถใช้เป็นจุดช่วงต่อระหว่างคลิปในขั้นตอนการทำงานของแอพ เช่น ระหว่างกิจกรรมต่างๆ หรือช่วงหยุดชั่วคราวระหว่างเกมแต่ละระดับ เนื้อหาของชิ้นงานโฆษณาอาจเป็นรูปภาพ วิดีโอ หรือภาพสไลด์ก็ได้ คู่มือนี้จะอธิบายวิธีเพิ่มโฆษณาคั่นไปยังแอพของคุณ
อย่าลืมดูคู่มือเริ่มต้นใช้งาน Audience Network และเริ่มต้นใช้งาน Unity ก่อนดำเนินการต่อ
ขั้นตอนแรกในการแสดงโฆษณาคั่นคือการสร้างอ็อบเจ็กต์ InterstitialAd
ในสคริปต์ C# ที่แนบมากับ GameObject
... using AudienceNetwork; ... public class InterstitialAdTest : MonoBehaviour { ... private InterstitialAd interstitialAd; private bool isLoaded; ... public void LoadInterstitial() { this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID"); this.interstitialAd.Register(this.gameObject); // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); // Initiate the request to load the ad. this.interstitialAd.LoadAd(); } ... }
ตัวสร้างสำหรับ InterstitialAd
จะมีพารามิเตอร์ดังต่อไปนี้
placementId
- ID ตำแหน่งการจัดวาง Audience Network สำหรับหน่วยโฆษณาคั่นนี้ถัดไป คุณสามารถนำการเรียกกลับบางรายการไปใช้เพื่อสมัครรับข้อมูลเหตุการณ์วงจรอายุของโฆษณาได้ รับเหตุการณ์เหล่านี้โดยการลงทะเบียนตัวแทนสำหรับเหตุการณ์ ตามที่แสดงในตัวอย่างด้านล่าง
... // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); ...
สำหรับ Android เท่านั้น
ในปัจจุบันเกม Unity สำหรับ Android จะรองรับให้ Activity
ของ Unity หลักมี launchMode
ของ singleTask
เท่านั้น โปรดดูเอกสาร Unity สำหรับไฟล์กำกับของ Android และเอกสาร Android สำหรับกิจกรรม
เนื่องจากเราใช้ Activity
เพื่อแสดงโฆษณา Interstitial
และ Rewarded Video
กิจกรรมโฆษณาอาจถูกทำลายโดยไม่มีการปิดอย่างถูกต้องเมื่อผู้ใช้ใช้งานแอพในพื้นหลังและเปิดแอพอีกครั้งโดยใช้ไอคอน แทนที่จะเป็นตัวสลับแอพ คุณสามารถใช้การเรียกกลับต่อไปนี้และตรวจสอบว่าผู้ใช้ปิดโฆษณาแล้วหรือไม่:
สำหรับโฆษณาคั่น:
this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* * สำหรับ Android เท่านั้น * ระบบจะทริกเกอร์การเรียกกลับนี้หากกิจกรรมโฆษณาคั่นถูก * ทำลายโดยไม่มีการปิดอย่างถูกต้อง โดยจะเกิดขึ้นได้หาก * แอพใน launchMode:singleTask (เช่น เกม Unity) ถูกใช้งานใน * พื้นหลังและมีการเปิดใช้งานอีกครั้งโดยการแตะไอคอน */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif
สำหรับวิดีโอที่มีรางวัลหลังชมจบ:
this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* * สำหรับ Android เท่านั้น * ระบบจะทริกเกอร์การเรียกกลับนี้หากกิจกรรมโฆษณาวิดีโอที่มีรางวัลหลังชมจบถูก * ทำลายโดยไม่มีการปิดอย่างถูกต้อง โดยจะเกิดขึ้นได้หาก * แอพใน launchMode:singleTask (เช่น เกม Unity) ถูกใช้งานใน * พื้นหลังและมีการเปิดใช้งานอีกครั้งโดยการแตะไอคอน */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif
เมื่อสร้างอินสแตนซ์ InterstitialAd
แล้ว ขั้นตอนถัดไปคือการโหลดโฆษณา ซึ่งทำได้โดยใช้เมธอด loadAd() ในคลาส InterstitialAd
ในตัวอย่างที่แสดงด้านบน วิธีโหลดโฆษณาทำได้ดังนี้
... this.interstitialAd.LoadAd(); ...
ขั้นตอนสุดท้าย หลังจากมีการโหลดโฆษณาคั่นแล้ว คุณจะสามารถเรียกเมธอด Show
เพื่อแสดงโฆษณาคั่นบนหน้าจอได้ เช่น คุณสามารถมีฟังก์ชั่นสำหรับ ShowInterstitial
และเรียกฟังก์ชั่นนี้ได้เมื่อถึงเวลาแสดงโฆษณาคั่น
// Show button public void ShowInterstitial() { if (this.isLoaded) { this.interstitialAd.Show(); this.isLoaded = false; } else { Debug.Log("Interstitial Ad not loaded!"); } }
ทำตามคำแนะนำของเราในการผสานรูปแบบโฆษณาต่างๆ เข้าในแอพ Unity ของคุณ:
เมื่อคุณพร้อมที่จะเผยแพร่สดและสร้างรายได้จากแอพของคุณแล้ว ให้ส่งแอพของคุณเพื่อการตรวจพิจารณาหลังตรวจสอบแล้วว่าเป็นไปตามนโยบาย Audience Network และมาตรฐานชุมชนของ Facebook