Thêm quảng cáo chèn giữa vào ứng dụng Unity

Audience Network giúp bạn kiếm tiền từ ứng dụng của mình trên Android và iOS bằng quảng cáo trên Facebook. Quảng cáo chèn giữa là trải nghiệm quảng cáo toàn màn hình có thể sử dụng tại các thời điểm chuyển tiếp trong quy trình của một ứng dụng, chẳng hạn như giữa các hoạt động hoặc trong thời gian tạm dừng giữa các cấp độ trong game. Nội dung quảng cáo có thể là hình ảnh, video hoặc thẻ quay vòng. Hướng dẫn này giải thích cách thêm quảng cáo chèn giữa vào ứng dụng của bạn.

Đảm bảo bạn đã hoàn tất hướng dẫn Bắt đầu với Audience Network và Bắt đầu với Unity trước khi tiếp tục.

Các bước thêm quảng cáo chèn giữa

Bước 1: Tạo đối tượng quảng cáo chèn giữa

Bước 2: Thêm sự kiện gọi lại

Bước 3: Tải quảng cáo

Bước 4: Hiển thị quảng cáo

Bước 1: Tạo đối tượng quảng cáo chèn giữa

Bước đầu tiên trong quy trình hiển thị quảng cáo chèn giữa là tạo một đối tượng InterstitialAd trong tập lệnh C# đính kèm vào 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();
    }
    ...
}

Hàm dựng cho InterstitialAd có các thông số sau:

  • placementId – ID vị trí quảng cáo trên Audience Network cho đơn vị quảng cáo chèn giữa này.

Bước 2: Thêm sự kiện gọi lại

Tiếp theo, bạn có thể triển khai một số lệnh gọi lại để đăng ký các sự kiện vòng đời của quảng cáo. Hãy theo dõi các sự kiện này bằng cách đăng ký một người được ủy quyền cho sự kiện, như minh họa trong ví dụ bên dưới:

...
// 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();
    }
});
...

Lệnh gọi lại cho hoạt động quảng cáo đã triển khai trong Unity Android

Phần này chỉ liên quan đến Android.

Hiện tại, trò chơi Unity dành cho Android chỉ hỗ trợ Activity Unity chính để có launchMode của singleTask. Xem tài liệu Unity dành cho tệp kê khai Androidtài liệu Android dành cho hoạt động.

Vì chúng tôi sử dụng Activity để hiển thị quảng cáo InterstitialRewarded Video nên hoạt động quảng cáo có thể được triển khai mà không cần đóng đúng cách khi người dùng chạy một ứng dụng dưới nền rồi khởi chạy lại ứng dụng đó bằng biểu tượng - chứ không dùng trình chuyển ứng dụng. Bạn có thể sử dụng các lệnh gọi lại sau và kiểm tra xem người dùng đã đóng quảng cáo hay chưa:

Đối với quảng cáo chèn giữa:

this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* * Only relevant to Android. * This callback will only be triggered if the Interstitial activity has * been destroyed without being properly closed. This can happen if an * app with launchMode:singleTask (such as a Unity game) goes to * background and is then relaunched by tapping the icon. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif 

Đối với quảng cáo video kèm phần thưởng:

this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* * Only relevant to Android. * This callback will only be triggered if the Rewarded Video activity * has been destroyed without being properly closed. This can happen if * an app with launchMode:singleTask (such as a Unity game) goes to * background and is then relaunched by tapping the icon. */ 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 

Bước 3: Tải quảng cáo

Sau khi InterstitialAd được thực thể hóa, bước tiếp theo là tải quảng cáo. Bước này được thực hiện bằng phương thức loadAd() trong lớp InterstitialAd.

Dưới đây là ví dụ minh họa cách tải quảng cáo:

...
this.interstitialAd.LoadAd();
...

Bước 4: Hiển thị quảng cáo

Cuối cùng, sau khi quảng cáo chèn giữa được tải, bạn có thể gọi phương thức Show để hiển thị quảng cáo chèn giữa đó trên màn hình. Ví dụ: bạn có thể có một hàm cho ShowInterstitial và gọi hàm này khi đến thời điểm cần hiển thị quảng cáo chèn giữa:

// Show button
public void ShowInterstitial()
{
    if (this.isLoaded) {
        this.interstitialAd.Show();
        this.isLoaded = false;

    } else {
        Debug.Log("Interstitial Ad not loaded!");
    }
}

Các bước tiếp theo

Làm theo hướng dẫn của chúng tôi để tích hợp các Định dạng quảng cáo khác nhau trong ứng dụng Unity:

Khi bạn đã sẵn sàng đăng ứng dụng và kiếm tiền, hãy gửi ứng dụng đi xét duyệt sau khi đảm bảo rằng ứng dụng tuân thủ chính sách về Audience Networktiêu chuẩn cộng đồng của Facebook.