ウォーターフォール メディエーション チェーンが長く、サードパーティ アダプタが複数あるアプリを初期化すると、ユーザーのセッションで最初に表示される重要なインプレッションの広告リクエストにおいて、レイテンシが増加する場合があります。このように初回インプレッションのレイテンシが増加すると、広告リクエストのレスポンスが間に合わず、広告が表示されなくなる場合があります。
このガイドでは、アプリ セッションの初回インプレッションのレイテンシを短縮するために、次の点について説明します。
始める前に
先に進む前に、Google Mobile Ads SDK を設定してください。
初期化タイムアウトを設定する
インプレッション獲得の機会を逃さないようにするには、初期化タイムアウトを設定します。この方法により、設定した時間制限をアプリが超えないようにすることができます。広告リクエストは、設定した制限時間の経過後、または初期化の完了後に実行できます。
次の例では、初期化タイムアウトを 5 秒に設定しています。
Kotlin
// Set up a CONFLATED channel that only buffers the latest event.
private val adLoadChannel = Channel<Unit>(Channel.CONFLATED)
fun initialize(context: Context) {
// Coroutine to handle the 5-second timeout.
CoroutineScope(Dispatchers.Default).launch {
delay(5000L)
// 5 second timer elapsed
adLoadChannel.trySend(Unit)
}
// Coroutine to call MobileAds.initialize() on a background thread.
CoroutineScope(Dispatchers.IO).launch {
MobileAds.initialize(context) {
// Mobile Ads SDK initialization finished.
adLoadChannel.trySend(Unit)
}
}
// Coroutine to listen for init complete or timer, whichever comes first.
CoroutineScope(Dispatchers.Main).launch {
// Wait on the first event.
adLoadChannel.receive()
loadAd()
// Close the channel after receiving the first event.
adLoadChannel.close()
}
}
初回リクエストでウォーターフォールの広告ソースを除外する
ウォーターフォールの広告ソースによるレイテンシを増やさずに広告を配信するには、Key-Value セグメンテーションを実装して、最初の広告リクエストからウォーターフォールの広告ソースを除外します。手順は次のとおりです。
- メディエーション グループを作成し、入札広告ソースを追加します。
- 新しい入札専用のメディエーション グループに、キー
latencyと値lowの Key-Value セグメンテーションを追加します。 - 管理画面で、新しい入札専用のメディエーション グループの優先順位を、メインのメディエーション グループよりも高くなるように設定します。優先順位を調整するには、メディエーション グループの優先度を変更します。
最初の広告リクエストに、カスタム ターゲティングの Key-Value ペアを含めます。
Kotlin
val request = AdRequest.Builder() .addCustomTargeting("latency", "low") .build()Java
AdRequest request = new AdRequest.Builder() .addCustomTargeting("latency", "low") .build();Key-Value セグメンテーションの設定をテストし、新しい入札専用のメディエーション グループを正しくターゲティングできていることを確認します。
時間的制約の少ないインプレッションのパフォーマンスを改善する
アプリの起動時にすぐ表示する必要がない広告など、時間的制約の少ないインプレッションのパフォーマンスを改善するには、入札専用のメディエーション グループをターゲットにしない広告リクエストを使用して、広告をプリロードします。