我想获得我的facebook广告应用的负载限制。我正在使用facebook广告python库。根据docs,HTTP响应包含X-FB-Ads-Insights-Throttle
标头。我该如何访问它?
使用python库,它将不容易获得。 HTTP请求/响应被包装在库中以仅暴露最小和必要的数据。
如果您正在查找实际答案,请查看facebookads库源代码,并查找创建FacebookResponse对象的时间。例如,api.py是一个执行此操作的文件。 FacebookResponse对象包含header
属性,该属性将包含X-FB-Ads-Insights-Throttle
字段。
如果您没有侵入facebookads库源代码,可以使用python“Requests”库来发出http请求,此库中的响应对象将包含您关注的header属性。
import logging
import requests as rq
#Function to find the string between two strings or characters
def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
#Function to check how close you are to the FB Rate Limit
def check_limit():
check=rq.get('https://graph.facebook.com/v3.1/act_'+account_number+'/insights?access_token='+my_access_token)
usage=float(find_between(check.headers['x-ad-account-usage'],':','}'))
return usage
#Check if you reached 75% of the limit, if yes then back-off for 5 minutes (put this chunk in your loop, every 200-500 iterations)
if (check_limit()>75):
print('75% Rate Limit Reached. Cooling Time 5 Minutes.')
logging.debug('75% Rate Limit Reached. Cooling Time 5 Minutes.')
time.sleep(300)