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 hiển thị ở 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 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 hướng dẫn này giải thích 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

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

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.

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 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 cần lưu ý rằng cách sử dụng các đơn vị quảng cáo sẽ khác nhau, tùy thuộc vào nền tảng. Bạn cần sử dụng đơn vị quảng cáo iOS để đưa ra các yêu cầu quảng cáo trên iOS và sử dụng đơn vị quảng cáo Android để đưa ra yêu cầu 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ẽ sẽ hiển thị trong thời gian 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 thao tác. Để 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

Để tùy chỉnh thêm hành vi 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 += HandleOnAdOpened;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;
    // Called when the ad click caused the user to leave the application.
    this.interstitial.OnAdLeavingApplication += HandleOnAdLeavingApplication;

    // 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 HandleOnAdOpened(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpened event received");
}

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

public void HandleOnAdLeavingApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLeavingApplication 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 Hệ thống gọi phương thức này khi quảng cáo hiển thị, bao 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à thời điểm thích hợp để tiếp tục lại.
OnAdLeavingApplication Phương thức này được gọi sau OnAdOpened, khi thao tác nhấp của người dùng mở một ứng dụng khác (chẳng hạn như Cửa hàng Google Play) và chuyển ứng dụng hiện tại sang chạy ở chế độ nền

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 plugin rằng đối tượng này không còn được sử dụng và dung lượng bộ nhớ mà đối tượng này chiếm 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 các ứ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. Bởi vì người dùng mong đợi một khoảng nghỉ tạm thời, nên bạn dễ dàng hiển thị 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 khi hiển thị quảng cáo xen kẽ.
Có nhiều loại quảng cáo xen kẽ khác nhau: văn bản, hình ảnh, video và các loại khác. 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 chắc chắn bạn đã tạm dừng mọi việc phát â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(), sẽ được gọi khi người dùng kết thúc 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 công việc 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 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.

Các tài nguyên khác

Mẫu

  • Mẫu HelloWorld – cách triển khai tối giản cho mọi định dạng quảng cáo

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

Các bước tiếp theo