Primeiro, crie novos relatórios na interface
Os relatórios estão sujeitos a várias restrições e requisitos relacionados aos tipos de relatórios, filtros, dimensões e métricas. Essas limitações são
aplicadas na API, retornando um erro HTTP 400
. Para evitar erros ao criar relatórios, recomendamos que você primeiro crie novos relatórios na IU do Display & Video 360.
Depois de criar o relatório, clique no
recurso"Testar esta API" na página de documentos de referência para
realizar uma queries.get
do recurso Query
. É possível usar o JSON retornado para criar relatórios futuros.
Usar métricas e filtros específicos para o tipo de relatório
Alguns valores de métricas e filtros são específicos de determinados tipos de relatório. Além de criar seus relatórios primeiro na
interface, também é possível identificar as métricas e os filtros
que pertencem a determinados valores de ReportType
pelo
valor da API Bid Manager.
Veja algumas maneiras de identificar valores de métricas e filtros relevantes da API Bid Manager. Esta tabela não é uma lista completa de filtros e métricas que podem ser usados nesses tipos de relatórios. Nem todos os valores podem ser usados juntos em um único relatório.
ReportType |
Filtros e métricas relevantes |
---|---|
INVENTORY_AVAILABILITY |
|
YOUTUBE |
|
GRP |
|
YOUTUBE_PROGRAMMATIC_GUARANTEED |
|
REACH |
|
UNIQUE_REACH_AUDIENCE |
|
Salvar e reutilizar relatórios
Recomendamos que você crie e salve relatórios para consultas executadas regularmente,
porque inserir e excluir o mesmo relatório várias vezes desperdiça recursos.
Usar os valores Range
definidos, como
PREVIOUS_DAY
ou LAST_7_DAYS
, no
campo dataRange
torna os relatórios mais reutilizáveis.
Programar relatórios
Relatórios específicos ou pontuais podem desperdiçar recursos porque são gerados individualmente e com base em um conjunto de dados incompleto. Os relatórios programados aproveitam ao máximo os recursos deles, porque são gerados em massa e têm a garantia de que não serão gerados até que os dados do dia anterior sejam processados. Consulte os campos de programação disponíveis para detalhes.
Combinar relatórios semelhantes
Se você gera regularmente relatórios com métricas e períodos idênticos para diferentes anunciantes ou parceiros, recomendamos combinar os relatórios para otimizar o volume deles.
É possível combinar relatórios semelhantes anexando os filtros de todos os relatórios e adicionando todos os tipos de filtro como dimensões. Após a geração, você pode dividir as linhas do relatório resultante com os valores de filtro originais para produzir os relatórios originais.
Considere as cotas de relatórios
O uso responsável do recurso de relatórios do Display & Video 360 é aplicado por meio das seguintes cotas de uso em todo o produto.
Execuções de relatórios ad hoc por dia
Limita o número de relatórios ad hoc que um usuário pode gerar em um período de 24 horas. Para ficar abaixo dessa cota:
- Combine relatórios semelhantes para reduzir o volume de relatórios.
- Programe relatórios ad hoc recorrentes para reduzir especificamente o volume de relatórios ad hoc.
- Desative scripts de API desnecessários.
Relatórios programados ativos
Limita o número de relatórios que um usuário pode ter programado ativamente em um determinado momento. Para ficar abaixo dessa cota:
- Combine relatórios programados semelhantes para reduzir o número total de relatórios programados.
- Desative relatórios programados desnecessários.
- Desative scripts de API desnecessários.
Relatórios simultâneos
Limita o número de relatórios que um usuário pode gerar simultaneamente. Para ficar abaixo dessa cota:
- Programe relatórios que são gerados regularmente.
- Desative scripts de API desnecessários.
- Acompanhe quando seus relatórios são concluídos por pesquisas usando a lógica de espera exponencial.
Se você tiver otimizado a implementação de relatórios e ainda exceder a cota, entre em contato com o suporte do Display & Video 360 usando o formulário de contato.
Usar espera exponencial ao pesquisar status de relatórios
Não é possível prever quanto tempo um relatório levará para ser gerado. Isso pode variar de segundos a horas, dependendo de muitos fatores, como o período e a quantidade de dados a serem processados. Também não há correlação entre o tempo de execução do relatório e o número de linhas retornadas nele. Portanto, é necessário extrair regularmente o recurso de relatório usando o método
queries.reports.get
e verificar se o campo
metadata.status.state
do recurso foi atualizado para
DONE
ou FAILED
para determinar
se a execução foi concluída. Esse processo é conhecido como "sondagem".
Embora a pesquisa seja necessária, uma implementação ineficiente pode esgotar sua cota rapidamente ao encontrar um relatório de longa duração. Portanto, recomendamos que você use a espera exponencial para limitar novas tentativas e economizar cota.
Espera exponencial
A espera exponencial é uma estratégia padrão de tratamento de erros para aplicativos de rede em que o cliente repete periodicamente a solicitação durante 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.
O fluxo para implementação da espera exponencial simples é o seguinte:
- Faça uma solicitação
queries.reports.get
para a API. - Recupere o objeto do relatório. Se o campo
metadata.status.state
não forDONE
ouFAILED
, isso indica que a geração do relatório não terminou. - Aguarde cinco segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
- Recupere o objeto do relatório. Se o campo
metadata.status.state
não forDONE
ouFAILED
, isso indica que a geração do relatório não terminou. - Aguarde 10 segundos + um número aleatório de milissegundos e repita a solicitação.
- Recupere o objeto do relatório. Se o campo
metadata.status.state
não forDONE
ouFAILED
, isso indica que a geração do relatório não terminou. - Aguarde 20 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
- Recupere o objeto do relatório. Se o campo
metadata.status.state
não forDONE
ouFAILED
, isso indica que a geração do relatório não terminou. - Aguarde 40 segundos + um número aleatório de milissegundos e repita a solicitação.
- Recupere o objeto do relatório. Se o campo
metadata.status.state
não forDONE
ouFAILED
, isso indica que a geração do relatório não terminou. - Aguarde 80 segundos + um número aleatório de milissegundos e repita a solicitação.
- Continue esse padrão até que o objeto do relatório seja atualizado ou até que o tempo máximo decorrido seja atingido.
Se a geração do relatório for concluída e o estado for DONE
, será possível recuperar
o arquivo de relatório gerado no Google Cloud Storage no caminho fornecido no
campo metadata.googleCloudStoragePath
.