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ư giữa các hoạt động hoặc 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 có thể chọn nhấn vào quảng cáo và tiếp tục đến đích đến của quảng cáo hoặc đóng quảng cáo và quay lại ứng dụng.
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 Android.
Điều kiện tiên quyết
Luôn thử nghiệm bằng quảng cáo thử nghiệm
Khi bạn tạo và thử nghiệm ứng dụng, hãy nhớ sử dụng quảng cáo thử nghiệm thay vì quảng cáo đang chạy trong thực tế. Chúng tôi có thể tạm ngưng tài khoản của bạn nếu bạn không làm như vậy.
Cách đơn giản nhất để tải quảng cáo thử nghiệm là sử dụng mã đơn vị quảng cáo thử nghiệm dành riêng cho quảng cáo xen kẽ trên Android:
/21775744923/example/interstitial
Mã này được định cấu hình đặc biệt để trả về quảng cáo thử nghiệm cho mọi yêu cầu, và bạn có thể sử dụng mã này trong ứng dụng của mình khi lập trình, chạy thử nghiệm và gỡ lỗi. Bạn chỉ cần nhớ thay thế mã này bằng mã đơn vị quảng cáo của mình trước khi xuất bản ứng dụng.
Để biết thông tin chi tiết về quảng cáo thử nghiệm GMA Next-Gen SDK, hãy xem bài viết Bật quảng cáo thử nghiệm.
Tải quảng cáo
Để tải quảng cáo, GMA Next-Gen SDK cung cấp những cách sau:
Tải bằng API tải trước quảng cáo, giúp loại bỏ nhu cầu tải và lưu vào bộ nhớ đệm quảng cáo theo cách thủ công.
Tải bằng API tải quảng cáo đơn
Ví dụ sau đây cho biết cách tải một quảng cáo:
Kotlin
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback
import com.google.android.libraries.ads.mobile.sdk.MobileAds
class InterstitialActivity : Activity() {
private var interstitialAd: InterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Load ads after you initialize GMA Next-Gen SDK.
InterstitialAd.load(
AdRequest.Builder(AD_UNIT_ID).build(),
object : AdLoadCallback<InterstitialAd> {
override fun onAdLoaded(ad: InterstitialAd) {
// Interstitial ad loaded.
interstitialAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Interstitial ad failed to load.
interstitialAd = null
}
},
)
}
companion object {
// Sample interstitial ad unit ID.
const val AD_UNIT_ID = "/21775744923/example/interstitial"
}
}
Java
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd;
import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback;
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
class InterstitialActivity extends Activity {
// Sample interstitial ad unit ID.
private static final String AD_UNIT_ID = "/21775744923/example/interstitial";
private InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load ads after you initialize GMA Next-Gen SDK.
InterstitialAd.load(
new AdRequest.Builder(AD_UNIT_ID).build(),
new AdLoadCallback<InterstitialAd>() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// Interstitial ad loaded.
AdLoadCallback.super.onAdLoaded(interstitialAd);
InterstitialActivity.this.interstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Interstitial ad failed to load.
AdLoadCallback.super.onAdFailedToLoad(adError);
interstitialAd = null;
}
}
);
}
}
Tải bằng API tải trước quảng cáo
Để bắt đầu tải trước, hãy làm như sau:
Khởi chạy cấu hình tải trước bằng một yêu cầu quảng cáo.
Bắt đầu trình tải trước cho quảng cáo xen kẽ bằng mã đơn vị quảng cáo và cấu hình tải trước:
Kotlin
private fun startPreloading(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitId, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
Quảng cáo sẽ liên tục được cung cấp khi bạn hiển thị quảng cáo. Ví dụ sau đây thăm dò một quảng cáo từ trình tải trước:
Kotlin
// Polling returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd(adUnitId)
Java
// Polling returns the next available ad and loads another ad in the background.
final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
Đặt InterstitialAdEventCallback
InterstitialAdEventCallback xử lý các sự kiện liên quan đến việc hiển thị
InterstitialAd. Trước khi hiển thị quảng cáo xen kẽ, hãy nhớ đặt lệnh gọi lại:
Kotlin
// Listen for ad events.
interstitialAd?.adEventCallback =
object : InterstitialAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Interstitial ad did show.
}
override fun onAdDismissedFullScreenContent() {
// Interstitial ad did dismiss.
interstitialAd = null
}
override fun onAdFailedToShowFullScreenContent(
fullScreenContentError: FullScreenContentError
) {
// Interstitial ad failed to show.
interstitialAd = null
}
override fun onAdImpression() {
// Interstitial ad did record an impression.
}
override fun onAdClicked() {
// Interstitial ad did record a click.
}
}
Java
// Listen for ad events.
interstitialAd.setAdEventCallback(
new InterstitialAdEventCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Interstitial ad did show.
InterstitialAdEventCallback.super.onAdShowedFullScreenContent();
}
@Override
public void onAdDismissedFullScreenContent() {
// Interstitial ad did dismiss.
InterstitialAdEventCallback.super.onAdDismissedFullScreenContent();
interstitialAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(
@NonNull FullScreenContentError fullScreenContentError) {
// Interstitial ad failed to show.
InterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(
fullScreenContentError);
initerstitialAd = null;
}
@Override
public void onAdImpression() {
// Interstitial ad did record an impression.
InterstitialAdEventCallback.super.onAdImpression();
}
@Override
public void onAdClicked() {
// Interstitial ad did record a click.
InterstitialAdEventCallback.super.onAdClicked();
}
}
);
Hiển thị quảng cáo
Để hiển thị quảng cáo xen kẽ, hãy sử dụng phương thức show().
Kotlin
// Show the ad.
interstitialAd?.show(this@InterstitialActivity)
Java
// Show the ad.
interstitialAd.show(InterstitialActivity.this);
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. Việc kết thúc một tác vụ trong ứng dụng, chẳng hạn như chia sẻ hình ảnh hoặc hoàn thành một cấp độ trò chơi, sẽ tạo ra một điểm như vậy. 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 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à 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 việc sử dụng một số tài nguyên để quảng cáo có thể 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 mọi đầu ra âm thanh do ứng dụng của bạn tạo ra.
- Cho phép thời gian tải đầy đủ.
- Bạn phải đảm bảo hiển thị quảng cáo xen kẽ tại thời điểm phù hợp, nhưng cũng phải đảm bảo rằng 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
load()trước khi bạn định gọishow()có thể đảm bảo rằng ứng dụng của bạn có một quảng cáo xen kẽ đã tải đầy đủ và sẵn sàng khi đến thời điểm hiển thị quảng cáo. - Không làm phiền người dùng bằng quá nhiều quảng cáo.
- 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ể kéo trải nghiệm người dùng đi xuố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 quá thường xuyên đến mức không còn có thể tận hưởng việc sử dụng ứng dụng của bạn.
Ví dụ:
Tải xuống và chạy ứng dụng mẫu minh hoạ cách sử dụng GMA Next-Gen SDK.