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

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

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

สิ่งที่ต้องดำเนินการก่อน

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

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

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

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Initialize the Mobile Ads SDK

Before loading ads, have your app initialize the Mobile Ads SDK by calling MobileAds.Initialize(). This needs to be done only once, ideally at app launch.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

If you're using mediation, wait until the callback occurs before loading ads as this will ensure that all mediation adapters are initialized.

การใช้งาน

ขั้นตอนหลักๆ ในการผสานรวมโฆษณาคั่นระหว่างหน้ามีดังนี้

  1. โหลดโฆษณาคั่นระหว่างหน้า
  2. แสดงโฆษณาคั่นระหว่างหน้า
  3. ฟังเหตุการณ์โฆษณาคั่นระหว่างหน้า
  4. ทําความสะอาดโฆษณาคั่นระหว่างหน้า
  5. โหลดโฆษณาคั่นระหว่างหน้ารายการถัดไปไว้ล่วงหน้า

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

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

// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
  private string _adUnitId = "unused";
#endif

  private InterstitialAd interstitialAd;

  /// <summary>
  /// Loads the interstitial ad.
  /// </summary>
  public void LoadInterstitialAd()
  {
      // Clean up the old ad before loading a new one.
      if (interstitialAd != null)
      {
            interstitialAd.Destroy();
            interstitialAd = null;
      }

      Debug.Log("Loading the interstitial ad.");

      // create our request used to load the ad.
      var adRequest = new AdRequest();
      adRequest.Keywords.Add("unity-admob-sample");

      // send the request to load the ad.
      InterstitialAd.Load(_adUnitId, adRequest,
          (InterstitialAd ad, LoadAdError error) =>
          {
              // if error is not null, the load request failed.
              if (error != null || ad == null)
              {
                  Debug.LogError("interstitial ad failed to load an ad " +
                                 "with error : " + error);
                  return;
              }

              Debug.Log("Interstitial ad loaded with response : "
                        + ad.GetResponseInfo());

              interstitialAd = ad;
          });
  }

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

หากต้องการแสดงโฆษณาคั่นระหว่างหน้าที่โหลด ให้เรียกใช้เมธอด Show() บนอินสแตนซ์ InterstitialAd โฆษณาอาจแสดงหนึ่งครั้งต่อการโหลดหนึ่งครั้ง ใช้วิธีการ CanShowAd() เพื่อยืนยันว่าโฆษณาพร้อมแสดง

/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowAd()
{
    if (interstitialAd != null && interstitialAd.CanShowAd())
    {
        Debug.Log("Showing interstitial ad.");
        interstitialAd.Show();
    }
    else
    {
        Debug.LogError("Interstitial ad is not ready yet.");
    }
}

ฟังเหตุการณ์โฆษณาคั่นระหว่างหน้า

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

private void RegisterEventHandlers(InterstitialAd ad)
{
    // Raised when the ad is estimated to have earned money.
    ad.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    ad.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Interstitial ad recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    ad.OnAdClicked += () =>
    {
        Debug.Log("Interstitial ad was clicked.");
    };
    // Raised when an ad opened full screen content.
    ad.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Interstitial ad full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    ad.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Interstitial ad full screen content closed.");
    };
    // Raised when the ad failed to open full screen content.
    ad.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);
    };
}

ทําความสะอาดโฆษณาคั่นระหว่างหน้า

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

interstitialAd.Destroy();

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

โหลดโฆษณาคั่นระหว่างหน้ารายการถัดไปไว้ล่วงหน้า

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

เตรียมโฆษณาคั่นระหว่างหน้าไว้ล่วงหน้าเมื่อระบบเพิ่มเหตุการณ์โฆษณา OnAdFullScreenContentClosed หรือ OnAdFullScreenContentFailed เพื่อเตรียมโฆษณาคั่นระหว่างหน้าสําหรับโอกาสในการแสดงผลครั้งถัดไป

private void RegisterReloadHandler(InterstitialAd ad)
{
    // Raised when the ad closed full screen content.
    ad.OnAdFullScreenContentClosed += ()
    {
        Debug.Log("Interstitial Ad full screen content closed.");

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
    // Raised when the ad failed to open full screen content.
    ad.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
}

แนวทางปฏิบัติที่ดีที่สุดบางส่วน

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

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

ตัวอย่าง

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