Quảng cáo xen kẽ

Quảng cáo xen kẽ là quảng cáo toàn màn hình che phủ giao diện của ứng dụng lưu trữ. Quảng cáo này thường xuất hiện ở các điểm chuyển tiếp tự nhiên trong quy trình hoạt động của ứng dụng, chẳng hạn như trong khoảng thời gian tạm dừng giữa các cấp độ của trò chơi. Khi một ứng dụng hiển thị quảng cáo xen kẽ, người dùng sẽ có lựa chọn nhấn vào quảng cáo và tiếp tục chuyển đến trang đích của quảng cáo đó hoặc đóng quảng cáo và quay lại ứng dụng. Nghiên cứu điển hình.

Tài liệu này hướng dẫn cách tích hợp quảng cáo xen kẽ vào ứng dụng Unity.

Điều kiện tiên quyết

Hoàn thành các bước Bắt đầu sử dụng. Bạn phải nhập trước plugin Unity quảng cáo trên thiết bị di động của Google vào ứng dụng Unity.

Tạo quảng cáo xen kẽ

Bước đầu tiên để hiển thị quảng cáo xen kẽ là tạo đối tượng InterstitialAd trong tập lệnh đính kèm với GameObject.

Để tích hợp quảng cáo dễ dàng hơn bằng cách sử dụng Trình chỉnh sửa Unity, hãy thử Quy trình đặt quảng cáo (thử nghiệm) mới.

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);
}

Hàm khởi tạo cho InterstitialAd có thông số sau:

  • adUnitId — Mã đơn vị quảng cáo AdMob mà từ đó InterstitialAd sẽ tải quảng cáo.

Bạn nên lưu ý cách sử dụng các đơn vị quảng cáo khác nhau, tuỳ thuộc vào nền tảng. Bạn cần sử dụng đơn vị quảng cáo iOS để thực hiện các yêu cầu quảng cáo trên iOS và sử dụng đơn vị quảng cáo Android để thực hiện các yêu cầu quảng cáo trên Android.

Luôn kiểm tra bằng quảng cáo thử nghiệm

Mã mẫu ở trên chứa một mã đơn vị quảng cáo và bạn có thể yêu cầu quảng cáo bằng mã đơn vị quảng cáo đó. Mã này được định cấu hình đặc biệt để trả về quảng cáo thử nghiệm thay vì quảng cáo thực tế cho mọi yêu cầu, đó là lý do mã này rất an toàn khi sử dụng.

Tuy nhiên, sau khi đăng ký một ứng dụng trong giao diện người dùng AdMob và tạo các mã đơn vị quảng cáo riêng để sử dụng trong ứng dụng, bạn cần định cấu hình thiết bị của mình làm thiết bị thử nghiệm một cách rõ ràng trong quá trình phát triển. Điều này cực kỳ quan trọng. Việc thử nghiệm bằng quảng cáo thực (ngay cả khi bạn không bao giờ nhấn vào quảng cáo) là hành vi vi phạm chính sách AdMob và có thể khiến tài khoản của bạn bị tạm ngưng. Hãy xem Quảng cáo thử nghiệm để biết thông tin về cách đảm bảo bạn luôn nhận được quảng cáo thử nghiệm trong quá trình phát triển.

Tải quảng cáo

Sau khi bạn đã tạo InterstitialAd, bước tiếp theo là tải quảng cáo. Bạn có thể thực hiện việc này bằng cách sử dụng phương thức loadAd() trong lớp InterstitialAd. Phương thức này sử dụng đối số AdRequest, giúp lưu giữ thông tin thời gian chạy (chẳng hạn như thông tin nhắm mục tiêu) về một yêu cầu quảng cáo.

Dưới đây là ví dụ cho thấy cách tải một quảng cáo:

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);
}

Hiển thị quảng cáo

Quảng cáo xen kẽ nên được hiển thị tại các điểm tạm dừng tự nhiên trong quy trình hoạt động của ứng dụng. Bạn nên thiết lập để quảng cáo xuất hiện xen kẽ giữa các cấp độ của trò chơi hoặc sau khi người dùng hoàn thành một nhiệm vụ. Để hiển thị quảng cáo xen kẽ, hãy sử dụng phương thức isLoaded() để xác minh rằng quảng cáo đã tải xong, sau đó gọi show().

Quảng cáo xen kẽ trong ví dụ về mã ở trên có thể hiển thị ở cuối trò chơi, như minh họa dưới đây.

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

Sự kiện quảng cáo

Để tuỳ chỉnh thêm hoạt động của quảng cáo, bạn có thể dựa trên một số sự kiện trong vòng đời của quảng cáo: tải, mở, đóng và các sự kiện khác. Hãy theo dõi những sự kiện này bằng cách đăng ký ủy quyền cho EventHandler thích hợp, như hiển thị dưới đây.

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");
}

Sự kiện OnAdFailedToLoad chứa các đối số sự kiện đặc biệt. Sự kiện này chuyển một bản sao của HandleAdFailedToLoadEventArgsMessage mô tả lỗi:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Sự kiện quảng cáoNội dung mô tả
OnAdLoaded Hệ thống sẽ thực thi sự kiện OnAdLoaded khi quảng cáo đã tải xong.
OnAdFailedToLoad Hệ thống sẽ gọi sự kiện OnAdFailedToLoad khi xảy ra lỗi không thể tải quảng cáo. Thông số Message mô tả loại lỗi đã xảy ra.
OnAdOpening Phương thức này được gọi khi quảng cáo hiển thị, che phủ màn hình của thiết bị.
OnAdClosed Phương thức này được gọi khi người dùng nhấn vào biểu tượng đóng hoặc sử dụng nút quay lại để đóng quảng cáo xen kẽ. Nếu ứng dụng của bạn tạm dừng phát âm thanh hoặc vòng lặp trò chơi, thì đây là vị trí thích hợp để tiếp tục phát.

Xóa quảng cáo xen kẽ

Khi bạn đã tạo xong InterstitialAd, hãy nhớ gọi phương thức Destroy() trước khi xóa thông tin tham chiếu đến đối tượng đó:

interstitial.Destroy();

Hành động này thông báo cho các trình bổ trợ rằng đối tượng này không còn được sử dụng nữa và dung lượng bộ nhớ mà đối tượng này chiếm giữ có thể bị thu hồi. Nếu không gọi phương thức này, bộ nhớ sẽ bị rò rỉ.

Một số phương pháp hay nhất

Cân nhắc xem quảng cáo xen kẽ có phải là loại quảng cáo thích hợp cho ứng dụng của bạn hay không.
Quảng cáo xen kẽ hoạt động hiệu quả nhất trong những ứng dụng có các điểm chuyển tiếp tự nhiên. Hãy tạo ra điểm chuyển tiếp khi kết thúc một nhiệm vụ trong ứng dụng, chẳng hạn như chia sẻ hình ảnh hoặc hoàn tất một cấp độ trò chơi. Vì người dùng mong đợi một khoảng nghỉ tạm thời, nên bạn có thể hiển thị một quảng cáo xen kẽ mà không làm gián đoạn trải nghiệm của họ. Hãy đảm bảo bạn cân nhắc thời điểm sẽ hiển thị quảng cáo xen kẽ trong quy trình hoạt động của ứng dụng và khả năng người dùng sẽ phản hồi.
Nhớ tạm dừng hành động trong trò chơi/ứng dụng khi hiển thị quảng cáo xen kẽ.
Có nhiều loại quảng cáo xen kẽ: văn bản, hình ảnh, video và các loại khác. Điều quan trọng là bạn phải đảm bảo rằng khi ứng dụng của bạn hiển thị quảng cáo xen kẽ, ứng dụng đó cũng sẽ tạm ngừng sử dụng một số tài nguyên để cho phép quảng cáo tận dụng các tài nguyên đó. Ví dụ: Khi bạn thực hiện lệnh gọi để hiển thị quảng cáo xen kẽ, hãy nhớ tạm dừng phát mọi âm thanh trên ứng dụng của mình. Bạn có thể tiếp tục phát âm thanh trong trình xử lý sự kiện onAdClosed(). Trình xử lý này sẽ được gọi khi người dùng hoàn tất lượt tương tác với quảng cáo. Ngoài ra, hãy cân nhắc việc tạm dừng mọi nhiệm vụ tính toán cường độ cao (chẳng hạn như vòng lặp trò chơi) trong khi hiển thị quảng cáo. Việc này sẽ đảm bảo người dùng không thấy hiện tượng hình ảnh chậm hiển thị hoặc không phản hồi hay video bị giật.
Cho phép đủ thời gian tải.
Bạn phải đảm bảo rằng quảng cáo xen kẽ hiển thị tại thời điểm phù hợp, đồng thời người dùng không phải đợi quảng cáo tải. Việc tải quảng cáo trước bằng cách gọi loadAd() trước khi bạn dự định gọi show() có thể đảm bảo rằng ứng dụng của bạn có quảng cáo xen kẽ tải đầy đủ và sẵn sàng hiển thị tại thời điểm thích hợp.
Đừng hiển thị quá nhiều quảng cáo cho người dùng.
Mặc dù việc tăng tần suất hiển thị quảng cáo xen kẽ trong ứng dụng có thể là một cách hay để tăng doanh thu, nhưng việc đó cũng có thể làm suy giảm trải nghiệm người dùng và làm giảm tỷ lệ nhấp. Hãy đảm bảo rằng người dùng không bị gián đoạn thường xuyên, vì điều đó sẽ khiến cho họ không còn hứng thú khi sử dụng ứng dụng của bạn nữa.

Tài nguyên khác

Mẫu

Câu chuyện thành công