Latenz des ersten Aufrufs reduzieren

Wenn eine App mit langen Vermittlungsabfolgen und mehreren Drittanbieter-Adaptern initialisiert wird, kann die Latenz von Anzeigenanfragen für wichtige Impressionen erhöht werden, die in der Sitzung des Nutzers zuerst ausgeliefert werden. Diese erhöhte Latenz bei der ersten Impression kann verhindern, dass die Anzeige ausgeliefert wird, da die Anzeigenanfrage noch keine Antwort erhalten hat.

In diesem Leitfaden wird beschrieben, wie Sie die Latenz bei der ersten Impression in Ihren App-Sitzungen reduzieren können:

Hinweis

Richten Sie zuerst Google Mobile Ads SDK (Legacy) ein.

Initialisierungs-Timeout festlegen

Legen Sie ein Initialisierungs-Timeout fest, um keine Impression zu verpassen. So verhindern Sie, dass Ihre App das von Ihnen festgelegte Zeitlimit überschreitet. Sie können mit der Anzeigenanfrage fortfahren, nachdem das von Ihnen festgelegte Zeitlimit erreicht wurde oder die Initialisierung abgeschlossen ist.

Im folgenden Beispiel wird ein Initialisierungs-Timeout von fünf Sekunden festgelegt:

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

Abfolgebasierte Anzeigenquellen bei der ersten Anfrage entfernen

Wenn Sie Anzeigen ohne zusätzliche Latenz durch abfolgebasierte Anzeigenquellen ausliefern möchten, implementieren Sie die Schlüssel/Wert-Segmentierung, um abfolgebasierte Anzeigenquellen aus Ihrer ersten Anzeigenanfrage zu entfernen. Führen Sie diese Schritte aus:

  1. Erstellen Sie eine Vermittlungsgruppe und fügen Sie Bidding-Anzeigenquellen hinzu.
  2. Fügen Sie Ihrer neuen Vermittlungsgruppe, die nur Bidding-Anzeigenquellen enthält, die Schlüssel/Wert-Segmentierung mit dem Schlüssel latency und dem Wert low hinzu.
  3. Priorisieren Sie Ihre neue Vermittlungsgruppe, die nur Bidding-Anzeigenquellen enthält, über Ihrer primären Vermittlungsgruppe in der Benutzeroberfläche. Ändern Sie die Priorität der Vermittlungsgruppe, um die Reihenfolge anzupassen.
  4. Fügen Sie in Ihrer ersten Anzeigenanfrage das benutzerdefinierte Targeting-Schlüssel/Wert-Paar ein:

    Kotlin

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

    Java

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

  5. Testen Sie die Einrichtung der Schlüssel/Wert-Segmentierung um zu prüfen, ob Sie die neue Vermittlungsgruppe, die nur Bidding-Anzeigenquellen enthält, korrekt targetieren.

Leistung bei weniger zeitkritischen Impressionen verbessern

Wenn Sie die Leistung bei weniger zeitkritischen Impressionen verbessern möchten, z. B. bei Anzeigen, die nicht direkt beim Start der App ausgeliefert werden müssen, verwenden Sie das Vorabladen von Anzeigen mit einer Anzeigenanfrage, die nicht auf die Vermittlungsgruppe ausgerichtet ist, die nur Bidding-Anzeigenquellen enthält.