插頁式廣告會全螢幕顯示,覆蓋整個應用程式的介面。這類廣告通常顯示在應用程式使用過程中的自然轉換點,例如操作後的空檔,或遊戲關卡間的暫停時間。應用程式顯示插頁式廣告時,使用者可選擇輕觸廣告前往到達網頁,或是關閉廣告返回應用程式。 請參閱我們的個案研究。
本指南說明如何將插頁式廣告整合至 Android 應用程式。
必要條件
一律使用測試廣告進行測試
建構及測試應用程式時,請務必使用測試廣告,而非實際的正式廣告。否則帳戶可能會遭到停權。
如要載入測試廣告,最簡單的方法是使用 Android 插頁式廣告專用的測試廣告單元 ID:
ca-app-pub-3940256099942544/1033173712
這種 ID 經特別設定,會針對每個請求傳回測試廣告。您可在編寫程式碼、測試及偵錯時,在自家應用程式中使用測試用 ID。但別忘了在發布應用程式前,將這類 ID 替換為自己的廣告單元 ID。
如要進一步瞭解 GMA Next Gen SDK 測試廣告的運作方式,請參閱「測試廣告」。
載入廣告
如要載入廣告,GMA Next Gen SDK 提供下列選項:
使用單一廣告載入 API 載入。
使用廣告預先載入 API 載入,不必手動載入及快取廣告。
使用單一廣告載入 API 載入
以下範例說明如何載入單一廣告:
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 = "ca-app-pub-3940256099942544/1033173712"
}
}
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 = "ca-app-pub-3940256099942544/1033173712";
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;
}
}
);
}
}
使用廣告預先載入 API 載入
如要開始預先載入,請執行下列操作:
使用廣告請求初始化預先載入設定。
使用廣告單元 ID 和預先載入設定,啟動插頁式廣告的預先載入器:
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);
}
廣告會持續放送,直到您顯示完畢為止。以下範例會從預先載入器輪詢廣告:
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);
設定 InterstitialAdEventCallback
InterstitialAdEventCallback 會處理與顯示 InterstitialAd 相關的事件,顯示插頁式廣告前,請務必設定回呼:
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();
}
}
);
顯示廣告
如要顯示插頁式廣告,請使用 show() 方法。
Kotlin
// Show the ad.
interstitialAd?.show(this@InterstitialActivity)
Java
// Show the ad.
interstitialAd.show(InterstitialActivity.this);
最佳做法範例
- 評估插頁式廣告是否適合您的應用程式。
- 插頁式廣告最適合有自然轉換點的應用程式。當使用者在應用程式中完成操作 (例如分享圖片或遊戲破關),就會形成這類轉換點。請務必考量要在應用程式工作流程的哪些轉換點顯示插頁式廣告,以及使用者可能的反應。
- 顯示插頁式廣告時,應用程式應暫停執行其他作業。
- 插頁式廣告有多種格式:文字、圖像、影片等。應用程式顯示此類廣告時,請務必暫停使用部分資源,以利廣告放送。舉例來說,呼叫顯示插頁式廣告時,請務必暫停應用程式的任何音訊輸出。
- 給予充分的載入時間。
- 除了在適當時機顯示插頁式廣告,也應該全力避免使用者苦等廣告載入。打算呼叫
show()前,先呼叫load()預先載入廣告,可確保應用程式有已完整載入的插頁式廣告,能應要求即時顯示。 - 不要讓應用程式廣告氾濫。
- 提高插頁式廣告在應用程式中的展示頻率或許能提高收益,但也可能破壞使用者體驗及降低點閱率。為確保愉快的應用程式操作體驗,請不要頻繁打斷使用者。
範例
請下載並執行範例應用程式,瞭解如何使用 GMA Next Gen SDK。