Reduzir a latência da primeira impressão

Selecione a plataforma: Android Novo Android iOS Unity

Inicializar um app com longas cadeias de mediação em hierarquia e vários adaptadores de terceiros pode aumentar a latência das solicitações de anúncios, especialmente para as primeiras impressões que surgem na sessão do usuário. Esse aumento na latência da primeira impressão pode impedir a veiculação do anúncio, já que a solicitação ainda não retornou uma resposta.

Neste guia, abordamos o seguinte para reduzir essa latência nas sessões do app:

Antes de começar

Antes de continuar, configure o Google Mobile Ads SDK.

Definir um tempo limite de inicialização

Para não perder uma oportunidade de impressão, defina um tempo limite de inicialização. Assim, o app não excede o prazo definido. Você poderá prosseguir com a solicitação de anúncio após o limite de tempo definido ou depois que a inicialização for concluída.

O exemplo a seguir define um tempo limite de inicialização de 5 segundos:

Swift

Task {
  // Create TaskGroup to manage a race between
  // SDK initialization and a 5 second timer.
  await withTaskGroup(of: Void.self) { group in

    // Create a task to initialize the MobileAds SDK.
    group.addTask {
      await withCheckedContinuation { continuation in
        MobileAds.shared.start { _ in
          // SDK initialization finished, resume the continuation.
          // This will not stop the SDK's internal initialization process.
          continuation.resume()
        }
      }
    }

    // Create a cancellable task which is a 5 second timer.
    group.addTask {
      do {
        // Sleep for 5 seconds. This delay *is* cancellable.
        try await Task.sleep(nanoseconds: 5 * 1_000_000_000)
      } catch {
        // cancelAll() will stop this task and throw CancellationError.
        // This happens if the SDK initialization completes first.
      }
    }

    // Wait for either task to complete.
    await group.next()

    // Cancel the timer task if the SDK initialized first.
    group.cancelAll()
  }

  // Load an ad once after task group finishes.
  await self.loadAd()

Remover origens de anúncios em hierarquia da sua primeira solicitação

Se quiser veicular anúncios sem latência extra das origens de anúncios em hierarquia, implemente a segmentação de chave-valor para remover essas origens da sua primeira solicitação de anúncio. Siga estas etapas:

  1. Crie um grupo de mediação e adicione origens de anúncios dos lances.
  2. Adicione a segmentação de chave-valor ao novo grupo de mediação somente de lances usando a chave latency e o valor low.
  3. Priorize o novo grupo de mediação somente de lances, que fica acima do grupo de mediação principal na interface. Para ajustar a ordem, mude a prioridade dos grupos de mediação.
  4. Na primeira solicitação de anúncio, inclua o par de chave-valor de segmentação personalizada:

    Swift

    let customTargeting: [String: String] = ["latency": "low"]
    let request = GADRequest()
    request.customTargeting = customTargeting
    

    Objective-C

    NSDictionary *customTargeting = @{@"latency" : @"low"};
    GADRequest *request = [GADRequest request];
    request.customTargeting = customTargeting;
    

  5. Teste a configuração da segmentação de chave-valor para confirmar se você está segmentando corretamente o novo grupo de mediação somente de lances.

Melhorar a performance em impressões menos urgentes

Para otimizar a performance em impressões menos urgentes, como anúncios que não precisam aparecer logo após a inicialização do app, use o pré-carregamento de anúncios com uma solicitação que não segmenta o grupo de mediação somente de lances.