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 pelocreativeType
esperado e origens de inventário peloexchange
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 determinadolineItemWarningMessage
acionável, todos os pedidos de inserção que foram atualizados desde uma determinada data/hora ou todos os criativos que têm umaapprovalStatus
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
oudelete
individuais, use uma única solicitaçãobulkEdit
oureplace
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
eeditAssignedTargetingOptions
no serviçoadvertisers
, 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.
- Se o campo
- 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.
- Se o campo
- 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.
- Se o campo
- 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.
- Se o campo
- 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.
- Se o campo
- Continue esse padrão até que o objeto de consulta seja atualizado ou um tempo máximo decorrido seja alcançado.