无法通过Meta Graph API获取广告账户当前广告花费数据
Meta Graph API 获取广告花费返回空响应的排查要点
以下是可能导致你请求返回空data数组的常见原因及排查方向:
时间范围与实际数据不匹配
date_preset=today是基于Meta服务器时区计算的,可能你本地时区的“今日”在Meta时区里还未产生花费,或者该广告账户今日确实没有投放活动。可以替换为date_preset=yesterday,或者指定明确的日期范围参数time_range={"since":"2024-05-20","until":"2024-05-21"}测试,验证是否能返回历史数据。- 确认
level=ad层级下的广告状态:如果所有广告都处于暂停、未投放或审核未通过状态,自然不会产生花费数据。
权限与访问令牌问题
- 检查访问令牌的有效性:必须持有
ads_read权限,且令牌未过期。可以在Meta Graph API Explorer工具中验证令牌权限,确保能正常访问目标广告账户。 - 确认广告账户ID格式正确:需替换
<ad_acc_id>为实际账户ID,格式为act_xxxxxxxxxx。
- 检查访问令牌的有效性:必须持有
数据延迟与同步问题
- Meta广告数据存在实时延迟,一般为15-30分钟,高峰时段可能更长。如果是刚产生的花费,系统还未完成数据同步,也会返回空响应。可以等待一段时间后再重试。
隐性过滤或账户状态限制
- 部分不符合政策、被标记无效的广告数据可能被默认过滤,可添加
filtering=[]参数移除默认过滤规则尝试。 - 检查广告账户状态:若账户处于限制、未激活状态,将无法获取任何广告数据。
- 部分不符合政策、被标记无效的广告数据可能被默认过滤,可添加
快速测试建议
- 在Meta Graph API Explorer中直接调用该端点,排除代码层面的请求头错误、令牌传递错误等问题。
- 简化请求参数,比如先移除
level=ad,用level=account获取账户整体花费,验证是否能返回数据,逐步定位层级问题。
内容的提问来源于stack exchange,提问作者Rem Galleu
相关产品推荐
相关产品推荐

