縮短首次曝光延遲時間

應用程式初始化時,若刊登序列中介服務鏈太長,且包含多個第三方轉接程式,廣告請求延遲時間可能會增加,影響到重要曝光 (使用者工作階段中最先放送的廣告曝光)。當廣告請求尚未回傳回應,首次曝光延遲時間增加,可能會使廣告無法放送。

本指南涵蓋下列主題,有助於減少應用程式工作階段的首次曝光延遲:

事前準備

請先設定 Google Mobile Ads SDK,再繼續操作。

設定初始化逾時

為避免錯失曝光商機,請設定初始化逾時。這樣做可避免應用程式超出您定義的時間限制。您可以在設定的時間限制過後或初始化完成後,再提出廣告請求。

以下範例將初始化逾時設為五秒:

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()
  }
}

將刊登序列廣告來源從第一個請求中移除

如不希望放送廣告時刊登序列廣告來源有額外延遲,請導入鍵/值區隔,將刊登序列廣告來源從第一個廣告請求移除。操作步驟如下:

  1. 建立中介服務群組,並新增出價廣告來源。
  2. 使用鍵「latency」和值「low」,將鍵/值區隔加進新的僅出價中介服務群組。
  3. 在使用者介面中設定,讓新的「僅出價中介服務群組」優先順序高於主要中介服務群組。變更中介服務群組優先順序,就能調整次序。
  4. 在第一個廣告請求中,加入自訂指定目標鍵/值組合:

    Kotlin

    val request = AdRequest.Builder()
        .addCustomTargeting("latency", "low")
        .build()
    

    Java

    AdRequest request = new AdRequest.Builder()
        .addCustomTargeting("latency", "low")
        .build();
    

  5. 測試鍵/值區隔設定,確認您已正確指定新的僅出價中介服務群組。

提升較不要求時效的廣告曝光成效

如要提升較不要求時效的廣告曝光 (例如不需要在應用程式啟動時立即顯示的廣告) 成效,請使用廣告預先載入功能,並發出未指定僅出價中介服務群組的廣告請求。