Skrócenie czasu oczekiwania na pierwsze wyświetlenie

Inicjowanie aplikacji z długimi łańcuchami zapośredniczenia kaskadowego i wieloma adapterami zewnętrznymi 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.

W tym przewodniku znajdziesz informacje o tym, 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 stracić możliwości realizacji wyświetlenia, ustaw limit czasu inicjowania. Dzięki temu aplikacja nie przekroczy określonego przez Ciebie limitu czasu. Możesz kontynuować żądanie reklamy po upływie ustawionego limitu czasu lub po zakończeniu inicjowania.

W tym przykładzie ustawiono 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 podział na segmenty według par klucz-wartość do nowej grupy zapośredniczenia tylko z określaniem stawek, używając klucza latency i wartości low.
  3. W interfejsie nadaj nowej grupie zapośredniczenia, która korzysta tylko z określania stawek, wyższy priorytet niż głównej grupie 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 określaniem stawek.

Zwiększanie skuteczności wyświetleń, które nie są 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.