Otimização da cota

A otimização de cota é essencial 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 você 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 para vários anunciantes

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

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

Use os parâmetros pageSize, filter e orderBy

Use métodos list em vez de get ao recuperar vários recursos. Devido aos limites de tamanho da página, as chamadas list ainda podem consumir muita cota.

Otimize todas as solicitações list definindo o parâmetro pageSize como o valor máximo permitido. O tamanho de página padrão de um método, usado quando o parâmetro não está definido, pode ser menor que o valor máximo permitido e exigir mais solicitações para recuperar uma lista completa de recursos.

Se você precisar recuperar apenas um subconjunto da resposta da lista completa, poderá otimizar o uso da cota usando os parâmetros opcionais filter e orderBy.

O parâmetro filter permite restringir os recursos recuperados pela chamada list a aqueles que têm propriedades que obedecem a determinadas expressões. Esse parâmetro é útil ao tentar recuperar:

  • Um recurso específico com um ID desconhecido, mas propriedades conhecidas. Se você estiver procurando um recurso específico, poderá filtrar a lista retornada por propriedades conhecidas do recurso desejado. Por exemplo, filtrar itens de linha por um displayName conhecido, criativos pelo creativeType esperado e origens de inventário pelo exchange relevante.
  • Recursos associados. Os recursos no Display & Video 360 geralmente são associados uns aos outros. É possível usar filtros para restringir os recursos retornados a aqueles que têm uma relação específica com outro. Por exemplo, extrair 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 com propriedades acionáveis. A funcionalidade da API permite verificar o status dos recursos e reagir de maneira programática. Usando filtros, você pode usar chamadas list para receber apenas recursos em que uma ação é necessária. Por exemplo, extrair todos os itens de linha que mostram um determinado lineItemWarningMessage acionável, todos os pedidos de inserção que foram atualizados desde uma determinada data/hora ou todos os criativos que têm uma approvalStatus com falha.

O parâmetro orderBy permite classificar os recursos recuperados por propriedades específicas, em ordem crescente ou decrescente. 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ê receba facilmente os limites superior e inferior de uma lista de recursos. Por exemplo, ordenar por updateTime permite encontrar rapidamente os itens de linha ou pedidos de inserção mais atualizados de um anunciante.

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

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

  • Edição em massa de sites pertencentes 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, use 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 conjunto de segmentação de um anunciante. O conjunto 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 de definir o conjunto de segmentação de um anunciante para uma única solicitação.
  • Definir 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, isso pode ser feito usando uma única solicitação advertisers.lineItems.bulkEditAssignedTargetingOptions.
  • Ativar ou pausar vários itens de linha. Os itens de linha precisam ser ativados após a criação para começar 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 impedir a veiculação deles.

Armazenar em cache e verificar IDs usados regularmente

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

No entanto, alguns recursos podem ser descontinuados, excluídos ou indisponíveis para uso. Tentar usar os IDs desses recursos pode retornar um erro. Portanto, recomendamos que você verifique todos os IDs armazenados em cache semanalmente usando o get adequado ou o método list filtrado para confirmar se ele ainda pode ser recuperado e tem o status esperado.

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

Ao fazer a pesquisa para saber se uma operação de longa duração, como uma tarefa de download de 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 ao longo de 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 conseguir uma resposta bem-sucedida e maximiza a capacidade de solicitações em ambientes simultâneos.

Confira a estratégia de espera exponencial implementada com bibliotecas de cliente nos nossos exemplos de código de download do SDF. O fluxo detalhado para implementar a espera exponencial simples é o seguinte:

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