【发布时间】:2022-11-01 21:03:06
【问题描述】:
我正在使用 Facebook Marketing API、get_insights 端点获取数据,但我一直遇到一个速率限制问题。即使我尝试使用单个帐户,我也被限制在速率限制中。我想为大约 80-90 个帐户执行此操作,我的代码有时会成功返回,但有时会出现时间错误。有谁知道确切的原因是什么?你对超时有什么建议吗?
这是我的代码:
params = {
'level': 'ad',
'action_breakdowns': ['action_type'],
'time_increment': '1',
'time_range': {'since': '2022-01-01', 'until': '2022-11-01'}
}
fields = ['account_id','ad_id','ad_name','adset_name','actions',
'action_values', 'account_name', 'buying_type', 'clicks', 'frequency',
'campaign_name', 'cpm', 'cpc', 'ctr', 'cpp', 'campaign_id', 'spend', 'unique_clicks',
'unique_ctr','reach','social_spend','estimated_ad_recallers', 'impressions']
dataframe = AdAccount(ad_account_id).get_insights(
params=params, fields=fields, is_async=True)
dataframe.api_get()
while dataframe[AdReportRun.Field.async_status] != 'Job Completed':
time.sleep(1)
dataframe.api_get()
time.sleep(1)
data = pd.DataFrame(dataframe.get_result())
data.reset_index(level=0, inplace=True)
【问题讨论】:
-
您可能只是查询 api 太快了。检查响应标头以了解当前的速率限制状态并采取相应措施,而不是每秒向服务器发送请求,请参阅developers.facebook.com/docs/marketing-apis/rate-limiting