โฆษณาคั่นระหว่างหน้า (เดิม)

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

คู่มือนี้จะอธิบายวิธีผสานรวมโฆษณาคั่นระหว่างหน้าเข้ากับแอป Unity

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

สร้างโฆษณาคั่นระหว่างหน้า

ขั้นตอนแรกในการแสดงโฆษณาคั่นระหว่างหน้าคือการสร้างออบเจ็กต์ InterstitialAd ในสคริปต์ที่แนบมากับ GameObject

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

ตัวสร้างของ InterstitialAd มีพารามิเตอร์ต่อไปนี้

  • adUnitId - รหัสหน่วยโฆษณา AdMob ที่ InterstitialAd ควรโหลดโฆษณา

โปรดทราบว่าแพลตฟอร์มต่างๆ ใช้หน่วยโฆษณาที่แตกต่างกัน คุณต้องใช้หน่วยโฆษณา iOS เพื่อทำคำขอโฆษณาใน iOS และหน่วยโฆษณา Android เพื่อทำคำขอใน Android

ทดสอบด้วยโฆษณาทดสอบเสมอ

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

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

โหลดโฆษณา

เมื่อสร้างอินสแตนซ์ InterstitialAd แล้ว ขั้นตอนถัดไปคือการโหลดโฆษณา ซึ่งทําได้ด้วยเมธอด loadAd() ในคลาส InterstitialAd โดยจะใช้อาร์กิวเมนต์ AdRequest ซึ่งเก็บข้อมูลรันไทม์ (เช่น ข้อมูลการกําหนดเป้าหมาย) เกี่ยวกับคําขอโฆษณารายการเดียว

ต่อไปนี้คือตัวอย่างที่แสดงวิธีโหลดโฆษณา

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}
ใหม่

แสดงโฆษณา

โฆษณาคั่นระหว่างหน้าควรแสดงในช่วงหยุดชั่วคราวตามปกติของการใช้งานแอป เช่น ระหว่างด่านในเกม หรือหลังจากที่ผู้ใช้ทำภารกิจเสร็จแล้ว หากต้องการแสดงโฆษณาคั่นระหว่างหน้า ให้ใช้เมธอด isLoaded() เพื่อยืนยันว่าโหลดเสร็จแล้ว จากนั้นเรียกใช้ show()

โฆษณาคั่นระหว่างหน้าจากตัวอย่างโค้ดก่อนหน้าอาจแสดงเมื่อเกมจบลง ดังที่แสดงด้านล่าง

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

เหตุการณ์โฆษณา

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

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

เหตุการณ์ OnAdFailedToLoad มีอาร์กิวเมนต์เหตุการณ์พิเศษ โดยส่งอินสแตนซ์ของ HandleAdFailedToLoadEventArgs ที่มี Message ที่อธิบายข้อผิดพลาด ดังนี้

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
เหตุการณ์โฆษณาคำอธิบาย
OnAdLoaded ระบบจะเรียกใช้เหตุการณ์ OnAdLoaded เมื่อโฆษณาโหลดเสร็จ
OnAdFailedToLoad ระบบจะเรียกเหตุการณ์ OnAdFailedToLoad เมื่อโฆษณาโหลดไม่สําเร็จ พารามิเตอร์ Message อธิบายประเภทของข้อผิดพลาดที่เกิดขึ้น
OnAdOpening ระบบจะเรียกใช้เมธอดนี้เมื่อโฆษณาแสดงโดยครอบคลุมหน้าจอของอุปกรณ์
OnAdClosed ระบบจะเรียกใช้เมธอดนี้เมื่อโฆษณาคั่นระหว่างหน้าปิดลงเนื่องจากผู้ใช้แตะไอคอนปิดหรือใช้ปุ่มย้อนกลับ หากแอปของคุณหยุดเอาต์พุตเสียงหรือเกมลูปไว้ชั่วคราว ตัวเลือกนี้เหมาะอย่างยิ่งสำหรับการกลับมาเล่นต่อ

ล้างโฆษณาคั่นระหว่างหน้า

เมื่อคุณใช้ InterstitialAd เสร็จแล้ว ให้เรียกใช้เมธอด Destroy() ก่อนทิ้งการอ้างอิงถึง InterstitialAd ดังนี้

interstitial.Destroy();

ซึ่งจะแจ้งให้ปลั๊กอินทราบว่าไม่มีการใช้ออบเจ็กต์อีกต่อไปและสามารถเรียกคืนหน่วยความจำที่ใช้อยู่ได้ การเรียกใช้เมธอดนี้ไม่สําเร็จจะทําให้หน่วยความจํารั่ว

แนวทางปฏิบัติแนะนำบางส่วน

พิจารณาว่าโฆษณาคั่นระหว่างหน้าเป็นประเภทโฆษณาที่เหมาะสมกับแอปของคุณหรือไม่
โฆษณาคั่นระหว่างหน้ามีประสิทธิภาพดีที่สุดในแอปที่มีจุดเปลี่ยนหน้าตามปกติ การทำงานเสร็จภายในแอป เช่น การแชร์รูปภาพหรือเล่นเกมผ่านด่าน จะสร้างจุดดังกล่าว เนื่องจากผู้ใช้คาดหวังว่าจะมีช่วงพักระหว่างการดำเนินการ คุณจึงแสดงโฆษณาคั่นระหว่างหน้าได้โดยที่ผู้ใช้ไม่รู้สึกขัดจังหวะ อย่าลืมพิจารณาว่าคุณจะแสดงโฆษณาคั่นระหว่างหน้า ณ จุดใดในเวิร์กโฟลว์ของแอป และผู้ใช้มีแนวโน้มจะตอบสนองอย่างไร
อย่าลืมหยุดการดำเนินการชั่วคราวเมื่อแสดงโฆษณาคั่นระหว่างหน้า
โฆษณาคั่นระหว่างหน้ามีหลายประเภท ได้แก่ แบบข้อความ รูปภาพ วิดีโอ และอื่นๆ สิ่งสำคัญคือเมื่อแอปแสดงโฆษณาคั่นระหว่างหน้า แอปจะต้องระงับการใช้ทรัพยากรบางอย่างเพื่อให้โฆษณาใช้ประโยชน์จากทรัพยากรเหล่านั้นได้ ตัวอย่างเช่น เมื่อเรียกใช้เพื่อแสดงโฆษณาคั่นระหว่างหน้า อย่าลืมหยุดเอาต์พุตเสียงที่แอปสร้างขึ้นชั่วคราว คุณเล่นเสียงต่อได้ใน onAdClosed() event handler ซึ่งจะเรียกใช้เมื่อผู้ใช้โต้ตอบกับโฆษณาเสร็จแล้ว นอกจากนี้ ให้ลองหยุดงานประมวลผลที่ต้องใช้ทรัพยากรมากชั่วคราว (เช่น ลูปเกม) ขณะแสดงโฆษณา วิธีนี้จะช่วยให้ผู้ใช้ไม่พบกราฟิกที่ช้าหรือไม่ตอบสนอง หรือวิดีโอที่กระตุก
เผื่อเวลาในการโหลดให้เพียงพอ
การแสดงโฆษณาคั่นระหว่างหน้าในเวลาที่เหมาะสมเป็นสิ่งสําคัญ แต่ผู้ใช้ไม่ควรต้องรอให้โฆษณาโหลด การโหลดโฆษณาล่วงหน้าโดยการเรียก loadAd() ก่อนที่คุณจะเรียก show() จะช่วยให้มั่นใจได้ว่าแอปของคุณจะมีโฆษณาคั่นระหว่างหน้าที่โหลดเสร็จสมบูรณ์และพร้อมแสดงเมื่อถึงเวลา
อย่าแสดงโฆษณาต่อผู้ใช้มากเกินไป
แม้ว่าการเพิ่มความถี่ของโฆษณาคั่นระหว่างหน้าในแอปอาจดูเหมือนเป็นวิธีที่ยอดเยี่ยมในการเพิ่มรายได้ แต่ก็อาจทำให้ประสบการณ์ของผู้ใช้แย่ลงและอัตราการคลิกผ่านลดลงด้วย ตรวจสอบว่าผู้ใช้ไม่ได้รับการขัดจังหวะบ่อยจนทำให้ใช้งานแอปของคุณไม่ได้

แหล่งข้อมูลเพิ่มเติม

ตัวอย่าง

เรื่องราวความสำเร็จ