Facebook API(现为Meta API)提供了访问广告账户数据的接口,允许开发者通过编程方式获取广告账户的支出信息。这是Facebook营销API的一部分,主要用于广告管理和分析。
获取广告支出主要使用以下API端点:
/act_{ad_account_id}/insights
- 获取广告账户的洞察数据/act_{ad_account_id}/ads
- 获取特定广告的数据/act_{ad_account_id}/campaigns
- 获取广告系列数据原因:
解决方案:
import requests
# 示例代码 - 获取广告账户支出
access_token = 'YOUR_ACCESS_TOKEN'
ad_account_id = 'act_123456789'
fields = 'spend,impressions,clicks'
params = {
'access_token': access_token,
'fields': fields,
'time_range': '{"since":"2023-01-01","until":"2023-01-31"}',
'level': 'campaign'
}
response = requests.get(
f'https://graph.facebook.com/v15.0/{ad_account_id}/insights',
params=params
)
print(response.json())
原因:Facebook广告数据通常有延迟(约1小时)
解决方案:
原因:
解决方案:
ads_management
权限def get_all_insights(ad_account_id, access_token):
all_data = []
url = f'https://graph.facebook.com/v15.0/{ad_account_id}/insights'
params = {
'access_token': access_token,
'fields': 'spend,impressions,clicks',
'limit': 100
}
while True:
response = requests.get(url, params=params)
data = response.json()
all_data.extend(data['data'])
if 'paging' in data and 'next' in data['paging']:
url = data['paging']['next']
params = {} # 下一页URL已包含所有参数
else:
break
return all_data
try:
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
if 'error' in data:
handle_api_error(data['error'])
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
params = {
'access_token': access_token,
'fields': 'spend',
'time_range': '{"since":"2023-01-01","until":"2023-01-31"}',
'time_increment': 1 # 按天分组
}
ad_accounts = ['act_123', 'act_456']
total_spend = 0
for account in ad_accounts:
response = requests.get(
f'https://graph.facebook.com/v15.0/{account}/insights',
params={
'access_token': access_token,
'fields': 'spend',
'date_preset': 'last_7_days'
}
)
data = response.json()
if data.get('data'):
total_spend += float(data['data'][0]['spend'])
print(f"Total spend across all accounts: {total_spend}")
通过合理使用Facebook API获取广告支出数据,可以大大提升广告管理的效率和精确度。
没有搜到相关的文章