Réduire la latence de la première impression

Sélectionnez une plate-forme : Android iOS Unity Android (Legacy)

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 les sessions de votre 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 la limite de temps que vous avez définie ou une fois l'initialisation terminée.

Dans l'exemple suivant, le délai avant expiration de l'initialisation est défini sur 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 de votre première requête

Pour diffuser des annonces sans latence supplémentaire provenant de 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 associées à des enchères.
  2. Ajoutez la segmentation par clé-valeur à votre nouveau groupe de médiation réservé aux enchères à l'aide de la clé latency et de la valeur low.
  3. Dans l'interface utilisateur, définissez la priorité de votre nouveau groupe de médiation réservé aux enchères au-dessus de 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 par clé-valeur pour vérifier que vous ciblez correctement le nouveau groupe de médiation réservé aux enchères.

Améliorer les performances sur les impressions moins urgentes

Pour améliorer les performances sur les impressions moins urgentes, telles que les annonces qui n'ont pas besoin de s'afficher immédiatement au 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.