插頁式廣告會全螢幕顯示,覆蓋整個應用程式的介面。這類廣告通常顯示在應用程式流程中的自然轉換點,例如操作後的空檔或遊戲關卡間的暫停時間。應用程式顯示插頁式廣告時,使用者可選擇輕觸廣告前往到達網頁,或是關閉廣告返回應用程式。
本指南說明如何將插頁式廣告整合至 Android 應用程式。
必要條件
- Google Mobile Ads SDK 19.7.0 以上版本。
- 完成入門指南的步驟。
一律使用測試廣告進行測試
建構及測試應用程式時,請務必使用測試廣告,而非實際的正式廣告。否則帳戶可能會遭到停權。
如要載入測試廣告,最簡單的方法是使用 Android 插頁式廣告專用的測試廣告單元 ID:
/21775744923/example/interstitial
這類 ID 經特別設定,可針對每個請求傳回測試廣告。您可在編寫程式碼、測試及偵錯時,將其用於自己的應用程式。發布應用程式前,請務必將這類 ID 替換為自己的廣告單元 ID。
如要進一步瞭解 Google Mobile Ads SDK 測試廣告的運作方式,請參閱「測試廣告」。
載入廣告
如要載入插頁式廣告,請呼叫 AdManagerInterstitialAd
的靜態 load()
方法,並傳遞 AdManagerInterstitialAdLoadCallback
來接收成功載入的廣告,或處理可能發生的錯誤。請注意,與其他格式載入回呼相似,AdManagerInterstitialAdLoadCallback
會運用 LoadAdError
提供更高保真的錯誤詳情。
Java
AdManagerInterstitialAd.load(
this,
AD_UNIT_ID,
new AdManagerAdRequest.Builder().build(),
new AdManagerInterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull AdManagerInterstitialAd interstitialAd) {
Log.d(TAG, "Ad was loaded.");
MyActivity.this.interstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
Log.d(TAG, loadAdError.getMessage());
interstitialAd = null;
}
});
Kotlin
AdManagerInterstitialAd.load(
this,
AD_UNIT_ID,
AdManagerAdRequest.Builder().build(),
object : AdManagerInterstitialAdLoadCallback() {
override fun onAdLoaded(interstitialAd: AdManagerInterstitialAd) {
Log.d(TAG, "Ad was loaded.")
this@MyActivity.interstitialAd = interstitialAd
}
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError.message)
interstitialAd = null
}
},
)
設定 FullScreenContentCallback
FullScreenContentCallback
會處理與顯示 InterstitialAd
相關的事件,顯示 InterstitialAd
前,請務必設定回呼:
Java
interstitialAd.setFullScreenContentCallback(
new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "The ad was dismissed.");
// Make sure to set your reference to null so you don't
// show it a second time.
MyActivity.this.interstitialAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "The ad failed to show.");
// Make sure to set your reference to null so you don't
// show it a second time.
MyActivity.this.interstitialAd = null;
}
@Override
public void onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "The ad was shown.");
}
@Override
public void onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "The ad recorded an impression.");
}
@Override
public void onAdClicked() {
// Called when ad is clicked.
Log.d(TAG, "The ad was clicked.");
}
});
Kotlin
interstitialAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
interstitialAd = null
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
interstitialAd = null
}
override fun onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.")
}
override fun onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.")
}
override fun onAdClicked() {
// Called when ad is clicked.
Log.d(TAG, "Ad was clicked.")
}
}
顯示廣告
插頁式廣告應在應用程式流程中的自然停頓點顯示,例如遊戲關卡之間,或使用者完成操作後。如要顯示插頁式廣告,請使用 show()
方法。
Java
if (interstitialAd != null) {
interstitialAd.show(this);
} else {
Log.d(TAG, "The interstitial ad is still loading.");
}
Kotlin
interstitialAd?.show(this)
最佳做法範例
- 請思考插頁式廣告是否適合您的應用程式。
- 插頁式廣告最適合有自然轉換點的應用程式。當使用者在應用程式完成操作 (例如分享圖片或遊戲破關),就會形成這類轉換點。請務必考量要在應用程式工作流程的哪些轉換點顯示插頁式廣告,以及使用者可能的反應。
- 提醒您,顯示插頁式廣告時,須暫停應用程式動作。
- 插頁式廣告有多種格式:文字、圖像、影片等。應用程式顯示此類廣告時,請務必暫停使用部分資源,以利廣告放送。舉例來說,呼叫顯示插頁式廣告時,請務必暫停應用程式的任何音訊輸出。
- 給予充分的載入時間。
- 除了務必確認廣告在適當時機顯示,您也必須確保使用者不必等待插頁式廣告載入。打算呼叫
show()
前,先透過呼叫load()
來預先載入廣告,可確保應用程式有已完整載入的插頁式廣告,可應要求即時顯示。 - 不要讓應用程式廣告氾濫。
- 提高插頁式廣告在應用程式中的展示頻率或許能提高收益,但也可能破壞使用者體驗及降低點閱率。為確保愉快的應用程式操作體驗,請不要頻繁打斷使用者。
GitHub 上的範例
後續步驟
- 進一步瞭解廣告指定目標。
- 進一步瞭解使用者隱私權。
- 瞭解最佳化 SDK 初始化和廣告載入程序 (Beta 版)。