如何通过Facebook Marketing API获取广告销售数据及购买转化人数
统计Facebook广告系列互动后完成购买的用户数
嘿,我刚好之前折腾过Facebook Marketing API的这个需求,给你理清楚怎么搞定~
首先得明确你要的核心是**「与广告系列互动后完成购买的用户数量」**,而不是购买操作的次数——这俩区别很大,API里对应的指标也不一样,先把这个搞明白:
核心指标区分
actions:统计的是购买操作的总次数(比如同一个用户买2次会算2次)unique_actions:去重后的用户数(不管买几次,同一个用户只算1次),这才是你要的「Z位用户」
而你提到的action_values,其实是对应每个action_type的总交易金额,和用户数没关系,别搞混啦。
具体实现步骤
1. 确定正确的Action Type
购买对应的默认action_type是purchase,如果是通过像素追踪的站外购买,可能是offsite_conversion.fb_pixel_purchase;如果是自定义转化事件,得去Facebook事件管理工具里确认对应的action_type名称。
2. 调用Insights API的参数设置
你需要构造请求时指定以下关键参数:
level=campaign:按广告系列维度拉取数据fields:必须包含reach(触达量Y)、unique_actions{action_type,value}(去重购买用户数);如果需要看购买金额可以加action_values{action_type,value}time_range:设置你要的时间段,格式是{"since":"YYYY-MM-DD","until":"YYYY-MM-DD"}filter:指定目标广告系列ID,格式是{"field":"campaign.id","operator":"IN","value":["你的Campaign X ID"]}- 可选:
attribution_window:调整归因窗口,比如["7d_click"]表示只统计点击广告后7天内购买的用户,默认是28天点击+7天曝光
3. 示例请求(Curl版)
curl -G \ -d "level=campaign" \ -d "fields=reach,unique_actions{action_type,value},action_values{action_type,value}" \ -d "time_range={\"since\":\"2024-01-01\",\"until\":\"2024-01-31\"}" \ -d "filter={\"field\":\"campaign.id\",\"operator\":\"IN\",\"value\":[\"1234567890\"]}" \ -d "access_token=你的广告账户访问令牌" \ "https://graph.facebook.com/v19.0/act_你的广告账户ID/insights"
4. 解析返回结果
返回的JSON里:
reach字段直接就是触达量Y- 在
unique_actions数组中找到action_type为purchase(或你确认的对应类型)的对象,它的value就是你要的Z——完成购买的用户数 - 如果看
action_values,对应的是该类型操作的总交易金额,和用户数无关
常见坑点提醒
- 别把
actions和unique_actions搞混,前者是次数,后者才是用户数 - 如果拉不到数据,先检查广告账户权限、API版本(建议用最新稳定版,比如v19.0)、action_type是否匹配
- 归因窗口会影响数据结果,要根据业务需求调整,默认的28天点击+7天曝光可能会包含更多用户
内容的提问来源于stack exchange,提问作者Ventulus




