Facebook 见解 API 调用 product_id 发生故障引发错误
Facebook insights API call with breakdown on product_id throws error
我想进行深入分析 API 根据广告系列 ID 进行调用,并在 product_id 上进行细分:
/{campaign_id}/insights?fields=clicks,ad_id,adset_id,campaign_id,account_id,impressions,cpc,cost_per_inline_link_click,cost_per_inline_post_engagement,cpm,ctr,inline_link_click_ctr&time_range={"since":"2017-07-30","until":"2017-07-30"}&level=ad&breakdowns=product_id&limit=15
如果我添加另一个字段,如 inline_link_clicks 或频率,我会收到以下错误
{
"error": {
"code": 1,
"message": "Please reduce the amount of data you're asking for, then retry your request"
}
}
我已经限制了一天的时间段,所以我不知道如何进一步减少数据量。
如果我分成不同的调用以减少数据量,我将很快达到 API 调用限制。
我也试过了
/{ad-id}/insights?fields=ad_id&breakdowns=product_id&limit=15&level=ad&date_preset=yesterday
它仍然抛出错误...
但是如果我将 "fields" 留空,我会得到这个 JSON:
{
"data": [
{
"date_start": "2017-08-21",
"date_stop": "2017-08-21",
"impressions": "3",
"spend": "0",
"account_id": "{act-id}",
"campaign_id": "{camp-id}",
"adset_id": "{adset-id}",
"ad_id": "{ad-id}",
"product_id": "1234, ABCD«"
}
P.S。我正在使用带有 thttprequest 组件的 Talend Studio 来进行 API 调用。
编辑:
我还尝试将 POST 请求与 /&method=GET
一起使用,但我也遇到了同样的错误。
编辑 24.08.17:
我现在尝试使用 product_id_limit 参数来减少数据量。
act_XXXX/insights?fields=account_name,ad_id&limit=10&date_preset=yesterday&level=ad&breakdowns=product_id&product_id_limit=1
但我仍然收到减少数据的错误。根据我的理解,将 product_id 限制为 1 我应该只获得与我没有使用 product_id 细分一样多的数据?!
所以我自己解决了这个问题。
对于来自 Facebook Insights 的大量数据,例如在 product_id 上出现故障,我不得不在 Facebook 上使用 Async Request:
我在查询中发出了 POST 请求,而不是 GET 请求。在答案中,我找到了一个 Report ID,我可以在该 ID 上发出 GET 请求。 Facebook 然后告知报告的状态。报告完成后,我查询了我的第一个 POST 请求作为报告 ID 上的 GET 请求,并最终得到了我的结果。
我想进行深入分析 API 根据广告系列 ID 进行调用,并在 product_id 上进行细分:
/{campaign_id}/insights?fields=clicks,ad_id,adset_id,campaign_id,account_id,impressions,cpc,cost_per_inline_link_click,cost_per_inline_post_engagement,cpm,ctr,inline_link_click_ctr&time_range={"since":"2017-07-30","until":"2017-07-30"}&level=ad&breakdowns=product_id&limit=15
如果我添加另一个字段,如 inline_link_clicks 或频率,我会收到以下错误
{
"error": {
"code": 1,
"message": "Please reduce the amount of data you're asking for, then retry your request"
}
}
我已经限制了一天的时间段,所以我不知道如何进一步减少数据量。
如果我分成不同的调用以减少数据量,我将很快达到 API 调用限制。
我也试过了
/{ad-id}/insights?fields=ad_id&breakdowns=product_id&limit=15&level=ad&date_preset=yesterday
它仍然抛出错误...
但是如果我将 "fields" 留空,我会得到这个 JSON:
{
"data": [
{
"date_start": "2017-08-21",
"date_stop": "2017-08-21",
"impressions": "3",
"spend": "0",
"account_id": "{act-id}",
"campaign_id": "{camp-id}",
"adset_id": "{adset-id}",
"ad_id": "{ad-id}",
"product_id": "1234, ABCD«"
}
P.S。我正在使用带有 thttprequest 组件的 Talend Studio 来进行 API 调用。
编辑:
我还尝试将 POST 请求与 /&method=GET
一起使用,但我也遇到了同样的错误。
编辑 24.08.17:
我现在尝试使用 product_id_limit 参数来减少数据量。
act_XXXX/insights?fields=account_name,ad_id&limit=10&date_preset=yesterday&level=ad&breakdowns=product_id&product_id_limit=1
但我仍然收到减少数据的错误。根据我的理解,将 product_id 限制为 1 我应该只获得与我没有使用 product_id 细分一样多的数据?!
所以我自己解决了这个问题。
对于来自 Facebook Insights 的大量数据,例如在 product_id 上出现故障,我不得不在 Facebook 上使用 Async Request:
我在查询中发出了 POST 请求,而不是 GET 请求。在答案中,我找到了一个 Report ID,我可以在该 ID 上发出 GET 请求。 Facebook 然后告知报告的状态。报告完成后,我查询了我的第一个 POST 请求作为报告 ID 上的 GET 请求,并最终得到了我的结果。