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.
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.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(); } }); ...
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 Android và tà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 Interstitial
và Rewarded 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
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(); ...
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!"); } }
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 Network và tiêu chuẩn cộng đồng của Facebook.