Otimização da cota

A otimização de cotas é fundamental para qualquer aplicativo que use a API Display & Video 360. Otimizar o uso da cota melhora o desempenho simplificando as solicitações de API e ajudando a evitar erros retornados ao exceder os limites de taxa definidos.

Esta página detalha as práticas recomendadas gerais e destaca recursos complementares na API Display & Video 360 que podem ajudar a reduzir o uso da cota.

Fazer solicitações simultâneas a vários anunciantes.

A maioria dos métodos na API Display & Video 360 especifica um anunciante no URL. Além da cota de todo o projeto, limites de taxa"por anunciante por projeto" mais restritivos são aplicados a esses métodos ao fazer chamadas especificando o mesmo anunciante.

Para otimizar essa cota, limite as solicitações simultâneas àquelas que especificam diferentes anunciantes.

Use os parâmetros filter e orderBy

Use métodos list em vez de get ao recuperar vários recursos. No entanto, chamadas list ainda podem consumir muita cota devido aos limites no tamanho da página. Se você precisar recuperar apenas um subconjunto da resposta da lista completa, otimize o uso da cota usando os parâmetros opcionais filter e orderBy.

O parâmetro filter permite restringir os recursos recuperados pela chamada list àqueles com propriedades que respeitam determinadas expressões. Esse parâmetro é útil ao tentar recuperar:

  • Um recurso específico com ID desconhecido, mas propriedades conhecidas. Se estiver pesquisando um recurso específico, você poderá filtrar a lista retornada pelas propriedades conhecidas do recurso desejado. Por exemplo, filtrar itens de linha por um displayName conhecido, criativos por creativeType esperados e origens de inventário por exchange relevantes.
  • Recursos associados. Os recursos no Display & Video 360 geralmente são associados uns aos outros. É possível usar filtros para restringir os recursos retornados àqueles que tenham uma relação específica com outro. Por exemplo, recuperar todos os pedidos de inserção abaixo de um campaignId específico e todos os criativos atribuídos a um item de linha.
  • Somente recursos que têm propriedades acionáveis. A funcionalidade da API permite verificar facilmente o status dos recursos e reagir de maneira programática. Com filtros, você pode utilizar chamadas list para extrair apenas os recursos que precisam de uma ação. Por exemplo, recuperar todos os itens de linha que mostram uma determinada lineItemWarningMessage acionável, todos os pedidos de inserção que foram atualizados desde uma determinada data ou todos os criativos que apresentaram falha approvalStatus.

O parâmetro orderBy permite classificar os recursos recuperados por propriedades específicas, crescentes ou decrescentes. orderBy, especialmente quando usado com filter, pode ser usado para limitar o número de páginas que precisam ser percorridas antes de encontrar um recurso específico. Ele também permite que você tenha facilmente os limites máximos e mínimos de uma lista de recursos. Por exemplo, fazer um pedido por updateTime permite encontrar rapidamente os itens de linha ou pedidos de inserção atualizados mais recentemente de um anunciante.

Usar funções em massa e em todo o recurso

A API Display & Video 360 oferece várias funções em massa e de todos os recursos que executam diversas ações com uma única solicitação. Exemplos desses tipos de funções incluem:

  • Edição em massa de sites que pertencem a um único canal. Os canais podem ter milhares de sites atribuídos a eles. Em vez de gerenciar a lista de sites de um canal com solicitações create ou delete individuais, você pode usar uma única solicitação bulkEdit ou replace para adicionar e remover vários sites ou substituir todo o conteúdo de um canal, respectivamente.
  • Gerenciar todo o pacote de segmentação de um anunciante. O pacote de segmentação de um recurso é atribuído a vários tipos de segmentação. As funções de segmentação no nível do recurso, como listAssignedTargetingOptions e editAssignedTargetingOptions no serviço advertisers, permitem recuperar, criar e remover a segmentação em vários tipos em uma única solicitação. Isso reduz o custo da cota ao definir o pacote de segmentação de um anunciante para uma única solicitação.
  • Defina a mesma restrição de segmentação em vários itens de linha. Se você precisar fazer as mesmas mudanças de segmentação em vários itens de linha de uma só vez, use uma única solicitação advertisers.lineItems.bulkEditAssignedTargetingOptions.
  • Ativar ou pausar vários itens de linha. Os itens de linha precisam ser ativados após serem criados antes de começarem a ser veiculados. Se você estiver criando vários itens de linha em rápida sucessão, poderá ativar todos eles com uma única solicitação advertisers.lineItems.bulkUpdate. O mesmo método pode ser usado para pausar vários itens de linha e interromper a veiculação deles.

Armazenar em cache e verificar os IDs usados regularmente

Muitas operações na API Display & Video 360 exigem o uso de IDs de recursos que são recuperados por meio da própria API, incluindo IDs de opção de segmentação, IDs de público-alvo do Google e muito mais. Para evitar a recuperação dos IDs da API em todos os usos, recomendamos que você os armazene localmente.

No entanto, alguns recursos podem ser descontinuados, excluídos ou descontinuados. A tentativa de usar os IDs para esses recursos pode retornar um erro. Portanto, recomendamos que você verifique todos os IDs armazenados em cache semanalmente usando o método get ou list filtrado apropriado para confirmar se eles ainda podem ser recuperáveis e têm o status esperado.

Implementar a espera exponencial para operações de longa duração

Ao pesquisar para ver se uma operação de longa duração, como uma tarefa de download do SDF, foi concluída, use uma estratégia de espera exponencial para reduzir a frequência e o número total de solicitações enviadas.

A espera exponencial é uma estratégia padrão de tratamento de erros para aplicativos de rede em que o cliente repete periodicamente as solicitações por um período crescente. Usada corretamente, a espera exponencial aumenta a eficiência do uso da largura de banda, reduz o número de solicitações necessárias para receber uma resposta bem-sucedida e maximiza a capacidade de solicitações em ambientes simultâneos.

É possível encontrar a estratégia de espera exponencial implementada com bibliotecas de cliente em nossos exemplos de código de download de SDF. O fluxo detalhado para a implementação da espera exponencial simples é o seguinte:

  • Faça uma solicitação sdfdownloadtasks.operations.get para a API.
  • Recupere o objeto de operação.
    • Se o campo done não for verdadeiro, você precisa repetir a solicitação.
    • Aguarde 5 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  • Recupere o objeto de operação.
    • Se o campo done não for verdadeiro, você precisa repetir a solicitação.
    • Aguarde 10 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  • Recupere o objeto de operação.
    • Se o campo done não for verdadeiro, você precisa repetir a solicitação.
    • Aguarde 20 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  • Recupere o objeto de operação.
    • Se o campo done não for verdadeiro, você precisa repetir a solicitação.
    • Aguarde 40 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  • Recupere o objeto de operação.
    • Se o campo done não for verdadeiro, você precisa repetir a solicitação.
    • Aguarde 80 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  • Continue esse padrão até que o objeto de consulta seja atualizado ou até que o tempo máximo decorrido seja atingido.