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 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
- Xem hết hướng dẫn Bắt đầu sử dụng.
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 khởi tạo cho InterstitialAd
có tham 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 để tạo các yêu cầu quảng cáo trên iOS và sử dụng đơn vị quảng cáo Android để tạo yêu cầu quảng cáo trên Android.
Luôn thử nghiệm 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, vì vậy, mã này rất an toàn để 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 của AdMob và có thể khiến tài khoản của bạn bị tạm ngưng. Hãy xem phần 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 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ụ về 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 xuất hiện 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 đặt quảng cáo 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 hoạ 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 vào 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ý một thực thể đại diện cho EventHandler
thích hợp, như minh hoạ bên dướ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); // 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 HandleAdFailedToLoadEventArgs
có Message
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áo | 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 xuất hiện và 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à thời điểm thích hợp để tiếp tục. |
Xoá 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 xoá thông tin tham chiếu đến đối tượng đó:
interstitial.Destroy();
Điều này thông báo cho 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 có thể được 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 phù hợp với ứ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 một đ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 sẽ có 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.
- Hãy 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. 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ị một 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 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ọishow()
có thể đảm bảo rằng ứng dụng của bạn có quảng cáo xen kẽ được tải đầy đủ và sẵn sàng xuất hiện 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 đến mức 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
- Ví dụ về HelloWorld – cách triển khai tối giản cho mọi định dạng quảng cáo