Práticas recomendadas para a geração de relatórios

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
  • Filtros com o prefixo FILTER_TRUEVIEW_IAR.
YOUTUBE
  • Filtros com o prefixo FILTER_TRUEVIEW, excluindo os com o prefixo FILTER_TRUEVIEW_IAR.
  • Métricas com o prefixo METRIC_TRUEVIEW.
GRP
  • Métricas com o prefixo METRIC_GRP.
YOUTUBE_PROGRAMMATIC_GUARANTEED
  • Filtros com o prefixo FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED.
  • Métricas com o prefixo METRIC_PROGRAMMATIC_GUARANTEED.
REACH
  • Métricas com o prefixo METRIC_UNIQUE_REACH.
UNIQUE_REACH_AUDIENCE
  • Métricas com o prefixo METRIC_UNIQUE_REACH.

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:

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:

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:

  1. Faça uma solicitação queries.reports.get para a API.
  2. Recupere o objeto do relatório. Se o campo metadata.status.state não for DONE ou FAILED, isso indica que a geração do relatório não terminou.
  3. Aguarde cinco segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  4. Recupere o objeto do relatório. Se o campo metadata.status.state não for DONE ou FAILED, isso indica que a geração do relatório não terminou.
  5. Aguarde 10 segundos + um número aleatório de milissegundos e repita a solicitação.
  6. Recupere o objeto do relatório. Se o campo metadata.status.state não for DONE ou FAILED, isso indica que a geração do relatório não terminou.
  7. Aguarde 20 segundos + um número aleatório de milissegundos e tente enviar a solicitação novamente.
  8. Recupere o objeto do relatório. Se o campo metadata.status.state não for DONE ou FAILED, isso indica que a geração do relatório não terminou.
  9. Aguarde 40 segundos + um número aleatório de milissegundos e repita a solicitação.
  10. Recupere o objeto do relatório. Se o campo metadata.status.state não for DONE ou FAILED, isso indica que a geração do relatório não terminou.
  11. Aguarde 80 segundos + um número aleatório de milissegundos e repita a solicitação.
  12. 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.