A API de Insights fornece os dados de desempenho das campanhas de marketing do Facebook. Para proteger o desempenho e a estabilidade do sistema, temos medidas de proteção para que os recursos do sistema sejam distribuídos adequadamente entre os apps. Todas as políticas descritas abaixo estão sujeitas a alterações.
Usamos limites de dados por chamada para impedir que uma consulta retorne dados demais, além do que o sistema é capaz de suportar. Há dois tipos de limites de dados:
Esses limites se aplicam tanto às chamadas /insights
síncronas como às assíncronas, e um erro é retornado:
error_code = 100, CodeException (error subcode: 1487534)
action_target_id
ou product_id
, e intervalos de datas mais amplos, como o vitalício./insights
diretamente com objetos de anúncio de nível mais baixo para obter dados detalhados sobre esse nível. Por exemplo, use primeiro a consulta no nível da conta para obter a lista de números de identificação de objetos de nível mais baixo com os parâmetros level
ou filtering
. Neste exemplo, buscamos todas as campanhas que registraram algumas impressões:curl -G \ -d 'access_token=<ACCESS_TOKEN>' \ -d 'level=campaign' \ -d 'filtering=[{field:"ad.impressions",operator:"GREATER_THAN",value:0}]' \ 'https://graph.facebook.com/v2.7/act_<ACCOUNT_ID>/insights'
/<campaign_id>/insights
com cada valor retornado para fazer consultas e solicitar insights em lote para essas campanhas em uma única chamada:curl \ -F 'access_token=<ACCESS_TOKEN>' \ -F 'batch=[ \ { \ "method": "GET", \ "relative_url": "v21.0
/<CAMPAIGN_ID_1>/insights?fields=impressions,spend,ad_id,adset_id&level=ad" \ }, \ { \ "method": "GET", \ "relative_url": "v21.0
/<CAMPAIGN_ID_2>/insights?fields=impressions,spend,ad_id,adset_id&level=ad" \ }, \ { \ "method": "GET", \ "relative_url": "v21.0
/<CAMPAIGN_ID_3>/insights?fields=impressions,spend,ad_id,adset_id&level=ad" \ } \ ]' \ 'https://graph.facebook.com'
filtering
apenas para obter insights de objetos de anúncios com dados. O valor do campo especificado em filtering
usa notação de PONTO para representar os campos sob o objeto. Observe que a filtragem com STARTS_WITH
e CONTAIN
não altera os dados do resumo. Nesse caso, use o operador IN
. Veja o exemplo de uma solicitação filtering
:curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
-d 'level=ad' \
-d 'filtering=[{field:"ad.impressions",operator:"GREATER_THAN",value:0},]' \
'https://graph.facebook.com/v21.0
/act_<ACCOUNT_ID>/insights'
date_preset
, se possível. Os intervalos de datas personalizados são de veiculação menos eficiente no nosso sistema.Após 90 dias do lançamento da v3.3 e em vigor para todas as versões públicas, mudamos o limite de classificação no nível da conta de anúncios para refletir melhor o volume de chamadas de API necessárias. Calculamos a cota de limite de volume no seu nível de acesso à API de Marketing e na empresa proprietária do app. Consulte Acesso e autenticação. Essa alteração se aplica a todos os pontos de extremidade da API de Insights sobre Anúncios: GET {adaccount_ID}/insights
, GET {campaign_ID}/insights
, GET {adset_ID}/insights
, GET {ad_ID}/insights
, POST {adaccount_ID}/insights
, POST {campaign_ID}/insights
, POST {adset_ID}/insights
, POST {ad_ID}/insights
.
Usamos os limites de carregamento para permitir uma experiência otimizada de relatórios. Medimos as chamadas de API de acordo com o volume, assim como os recursos exigidos. Permitimos um limite de carga fixo por app, por segundo. Se o limite for excedido, haverá uma falha nas solicitações.
Verifique o cabeçalho HTTP x-fb-ads-insights-throttle
retornado com cada resposta da API para saber se o app está próximo do limite e ver uma estimativa do peso que uma determinada consulta pode ter. As chamadas de insights também estão sujeitas aos limites da conta de anúncios padrão mostrados no cabeçalho HTTP x-ad-account-usage
. Veja mais informações em Boas práticas.
Quando um app atinge o limite, a chamada recebe uma resposta de erro com error_code = 4, CodedException
. Você deve se manter abaixo do limite. Caso um app atinja os limites permitidos, somente uma certa porcentagem das solicitações passará, dependendo da consulta e do volume.
Aplicamos a limitação de volume a cada app que envia chamadas /insights
síncronas e assíncronas combinadas. Os dois principais parâmetros com relação aos quais os limites são contados são por app e por conta de anúncios.
Veja a seguir um exemplo do cabeçalho HTTP informando a pontuação acumulada de um app em porcentagem dos limites:
X-FB-Ads-Insights-Throttle: { "app_id_util_pct": 100, "acc_id_util_pct": 10, "ads_api_access_tier": "standard_access" }
O cabeçalho "x-fb-ads-insights-throttle" é um valor em JSON contendo estas informações:
app_id_util_pct
: a porcentagem da capacidade alocada que o app_id associado consumiu.acc_id_util_pct
: a porcentagem da capacidade alocada que o account_id de anúncios associado consumiu.ads_api_access_tier
: os níveis permitem que o app acesse a API de Marketing. standard_access
habilita uma limitação de volume menor.Em períodos com elevada carga global no ponto de extremidade /insights
, o sistema poderá restringir as solicitações para proteger o back-end. Isso ocorre quando recebemos de forma simultânea um número elevado de consultas com alta complexidade (intervalos de tempo longos, métricas complexas e/ou grande número de IDs de objeto de anúncio). Isso causará um erro semelhante a este:
error_code = 4, CodeException (error subcode: 1504022), error_title: Too many API requests
Nesses períodos, recomendamos reduzir as chamadas, esperar alguns minutos e consultar de novo.
/insights
regulando-as com tempos de espera no seu trabalho./insights
se chegar próximo dos 100% no app ou na conta de anúncios específica.ads_api_access_tier
que permite o acesso à API de Marketing. Por padrão, os apps têm o nível development_access
, e standard_access
habilita uma limitação de volume menor. Para aumentar o limite de volume e chegar ao nível padrão, você pode solicitar "acesso avançado" ao recurso Acesso Padrão ao Gerenciamento de Anúncios.Buscar estatísticas em vários objetos e aplicar filtros e classificação; agora, o fluxo de trabalho foi simplificado:
POST
ao ponto de extremidade <AD_OBJECT>/insights
, que retorna um id
de uma geração de relatórios de anúncio.{ "report_run_id": 6023920149050, }
Não armazene o report_run_id
para uso prolongado, já que ele expira após 30 dias.
async_status
. Faça uma pesquisa neste campo até async_status
ser Job Completed
e async_percent_completion
ser 100
. { "id": "6044775548468", "account_id": "1010035716096012", "time_ref": 1459788928, "time_completed": 1459788990, "async_status": "Job Completed", "async_percent_completion": 100 }
<AD_REPORT_RUN_ID>/insights
para buscar o resultado final.{ "data": [ { "impressions": "9708", "date_start": "2009-03-28", "date_stop": "2016-04-04" }, { "impressions": "18841", "date_start": "2009-03-28", "date_stop": "2016-04-04" } ], "paging": { "cursors": { "before": "MAZDZD", "after": "MQZDZD" } } }
Este trabalho obtém todas as estatísticas das contas e retorna um ID de trabalho assíncrono:
curl \ -F 'level=campaign' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v21.0
/<CAMPAIGN_ID>/insights curl -G \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v21.0
/1000002 curl -G \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v21.0
/1000003/insights
Status | Descrição |
---|---|
| O trabalho ainda não foi iniciado. |
| O trabalho foi iniciado, mas ainda não está em veiculação. |
| O trabalho começou a ser veiculado. |
| O trabalho foi concluído com sucesso. |
| O trabalho falhou. Revise sua consulta e tente novamente. |
| O trabalho expirou e foi ignorado. Envie novamente seu trabalho e tente novamente. |
Oferecemos um ponto de extremidade de conveniência para exportar <AD_REPORT_RUN_ID>
em um formato localizado legível.
Nota: este ponto de extremidade não faz parte da Graph API com versão e, portanto, não está em conformidade com a política de alteração disruptiva. Scripts e programas não devem depender do formato do resultado, visto que ele pode mudar inesperadamente.
curl -G \ -d 'report_run_id=<AD_REPORT_RUN_ID>' \ -d 'name=myreport' \ -d 'format=xls' \ 'https://www.facebook.com/ads/ads_insights/export_report/'
Nome | Descrição |
---|---|
string | Nome do arquivo baixado |
enumeração{csv,xls} | Formato do arquivo |
número inteiro | ID do relatório a ser veiculado |
string | Permissões concedidas pelo usuário conectado. Forneça isso para exportar relatórios para outro usuário. |