Skrócenie czasu oczekiwania na pierwsze wyświetlenie

Inicjowanie aplikacji z długimi łańcuchami zapośredniczenia kaskadowego i wieloma adapterami zewnętrznych firm może zwiększać opóźnienia w wysyłaniu żądań reklam w przypadku kluczowych wyświetleń, które pojawiają się jako pierwsze w sesji użytkownika. Zwiększone opóźnienie pierwszego wyświetlenia może uniemożliwić wyświetlenie reklamy, ponieważ żądanie reklamy nie zwróciło jeszcze odpowiedzi.

Z tego przewodnika dowiesz się, jak zmniejszyć opóźnienie pierwszego wyświetlenia w sesjach aplikacji:

Zanim zaczniesz

Zanim przejdziesz dalej, skonfiguruj Google Mobile Ads SDK (Legacy).

Ustawianie limitu czasu inicjowania

Aby nie przegapić możliwości realizacji wyświetlenia, ustaw limit czasu inicjowania. Dzięki temu Twoja aplikacja nie przekroczy zdefiniowanego limitu czasu. Po upływie ustawionego limitu czasu lub po zakończeniu inicjowania możesz kontynuować wysyłanie żądania reklamy.

W tym przykładzie ustawiamy limit czasu inicjowania na 5 sekund:

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

Usuwanie kaskadowych źródeł reklam z pierwszego żądania

Aby wyświetlać reklamy bez dodatkowego opóźnienia z kaskadowych źródeł reklam, wdrożysz segmentację za pomocą par klucz-wartość aby usunąć kaskadowe źródła reklam z pierwszego żądania reklamy. Wykonaj te czynności:

  1. Utwórz grupę zapośredniczenia i dodaj do niej źródła reklam z ustalaniem stawek.
  2. Dodaj do nowej grupy zapośredniczenia tylko z ustalaniem stawek podział na segmenty według par klucz-wartość do używając klucza latency i wartości low.
  3. W interfejsie użytkownika ustaw priorytet nowej grupy zapośredniczenia tylko z ustalaniem stawek wyższy niż priorytet głównej grupy zapośredniczenia. Aby dostosować kolejność, zmień priorytet grupy zapośredniczenia.
  4. W pierwszym żądaniu reklamy uwzględnij parę klucz-wartość kierowania niestandardowego:

    Kotlin

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

    Java

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

  5. Przetestuj konfigurację podziału na segmenty według par klucz-wartość aby sprawdzić, czy prawidłowo kierujesz reklamy na nową grupę zapośredniczenia tylko z ustalaniem stawek.

Zwiększanie skuteczności w przypadku wyświetleń, które nie są tak wrażliwe na czas

Aby zwiększyć skuteczność w przypadku wyświetleń, które nie są tak wrażliwe na czas, np. reklam, które nie muszą się wyświetlać od razu po uruchomieniu aplikacji, użyj wstępnego ładowania reklam z żądaniem reklamy, które nie jest kierowane na grupę zapośredniczenia tylko z określaniem stawek.