Réduire la latence de la première impression

L'initialisation d'une application avec de longues chaînes de médiation en cascade et plusieurs adaptateurs tiers peut augmenter la latence des demandes d'annonces pour les impressions critiques qui s'affichent en premier dans la session de l'utilisateur. Cette latence accrue de la première impression peut empêcher l'annonce de s'afficher, car la demande d'annonce n'a pas encore renvoyé de réponse.

Ce guide explique comment réduire la latence de la première impression dans vos sessions d'application :

Avant de commencer

Avant de continuer, configurez Google Mobile Ads SDK (Legacy).

Définir un délai avant expiration de l'initialisation

Pour éviter de manquer une opportunité d'impression, définissez un délai avant expiration de l'initialisation. Cette approche empêche votre application de dépasser la limite de temps que vous avez définie. Vous pouvez poursuivre la demande d'annonce après le délai que vous avez défini ou une fois l'initialisation terminée.

L'exemple suivant définit un délai avant expiration d'initialisation de cinq secondes :

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

Supprimer les sources publicitaires en cascade lors de votre première demande

Pour diffuser des annonces sans latence supplémentaire provenant des sources publicitaires en cascade, implémentez la segmentation par clé-valeur afin de supprimer les sources publicitaires en cascade de votre première demande d'annonce. Procédez comme suit :

  1. Créez un groupe de médiation et ajoutez des sources d'annonces pour les enchères.
  2. Ajoutez une segmentation par clé-valeur à votre nouveau groupe de médiation réservé aux enchères en utilisant la clé latency et la valeur low.
  3. Dans l'interface utilisateur, donnez la priorité à votre nouveau groupe de médiation réservé aux enchères par rapport à votre groupe de médiation principal. Pour ajuster l'ordre, modifiez la priorité du groupe de médiation.
  4. Dans votre première demande d'annonce, incluez la paire clé-valeur de ciblage personnalisé :

    Kotlin

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

    Java

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

  5. Testez la configuration de la segmentation clé-valeur pour vérifier que vous ciblez correctement le nouveau groupe de médiation réservé aux enchères.

Améliorer les performances des impressions moins urgentes

Pour améliorer les performances des impressions moins urgentes, comme les annonces qui n'ont pas besoin d'être diffusées dès le lancement de l'application, utilisez le préchargement des annonces avec une demande d'annonce qui ne cible pas le groupe de médiation réservé aux enchères.