← 返回项目门户

Facebook 市场营销 API 概述

所属项目:Facebook 广告与电商

Facebook 市场营销 API (Marketing API) 是一组 Graph API 端点,允许开发者以编程方式创建、管理和优化 Facebook 广告系列。通过此 API,您可以自动化广告投放流程,集成广告数据到自有系统,以及大规模管理账户。

📖 入门指南 (12 篇)

从零开始学习 Marketing API — 账号准备、授权认证、创建广告系列/广告组/广告创意/广告、管理、优化、监测分析。

开始学习 →

📦 API 参考文档 (9 个核心对象)

核心对象完整参考:Ad Account、Campaign、Ad Set、Ad、Ad Creative、Business、Ads Pixel、Custom Audience、System User。

浏览参考 →

⚠️ 错误代码

完整错误码参考,涵盖认证、速率限制、参数验证、广告生命周期、定位与受众等分类。

查看错误代码 →

🔗 相关资源

API 版本 v25.0 · Graph API 基础 · 图谱 API 探索工具 · Meta 开发者文档

官方文档 →

核心概念

  • 广告账户 (Ad Account) — 在 Facebook 上投放广告的实体,以 act_{id} 格式标识
  • 广告系列 (Campaign) — 最高层级,定义业务目标(如流量、转化)
  • 广告组 (Ad Set) — 中间层级,包含预算、排期、定位和竞价设置
  • 广告 (Ad) — 最低层级,包含要展示的创意内容
  • 广告创意 (Ad Creative) — 定义广告的布局和内容(图片、视频、文案)
API 版本:本文档使用 v25.0 端点。所有示例中的 <AD_ACCOUNT_ID>、<ACCESS_TOKEN> 等需替换为实际值。

1. 开始使用营销 API

更新时间:2026年6月16日

要使用市场营销 API,你必须遵循关键步骤来设置环境并获得 API 功能的访问权限。

广告帐户要求

必须拥有活跃广告账户。在 Meta 广告管理工具中可找到广告账户编号:登录 Facebook → 广告管理工具 → 设置 → 账户概览。

Meta 开发者账户 & 创建应用

详情参阅 注册成为 Meta 开发者及 创建应用。

授权和认证

请参见 授权 了解验证用户和应用并授予权限的流程。参见 身份验证 了解获取、扩展和更新访问口令的方法。

继续学习


2. 授权

更新时间:2026年5月5日
访问等级更名:"标准访问级别"现为受限访问级别,"高级访问级别"现为完全访问级别。
完全访问的资格要求已从过去 15 天 1,500 次调用降至 500 次。

授权流程验证将访问市场营销 API 的用户和应用,并向其授予权限。

市场营销 API 访问层级

有限访问(默认)完全访问权限
流量限制较重(仅开发)较轻
系统用户1 个10 个
商务平台有限全部

获得完整访问权限

  • 过去 15 天内成功至少 500 次营销 API 调用
  • 过去 500 次调用中错误率低于 15%

管理其他用户的广告时,使用 scope 参数请求 ads_management 或 ads_read 权限:

https://www.facebook.com/v25.0/dialog/oauth?
  client_id=<YOUR_APP_ID>&redirect_uri=<YOUR_URL>&scope=ads_management

公司验证

通过公司验证流程验证公司实体身份。


3. 身份验证

更新时间:2026年6月24日

每个营销 API 调用都需要一个访问口令作为参数。

用户访问口令

使用 图谱 API 探索工具获取:选择应用 → 用户口令 → 添加权限(ads_read 或 ads_management)→ 生成访问口令。

通过 访问口令调试工具可调试和延长口令期限。

系统用户访问口令

在 Meta Business Suite 中创建,用于服务器到服务器交互。不会过期。详情参阅 系统用户。

授权码流程

# 用户允许后获得授权码
http://YOUR_URL?code=<AUTHORIZATION_CODE>

# 换取访问口令
https://graph.facebook.com/v25.0/oauth/access_token?
  client_id=<YOUR_APP_ID>&redirect_uri=<YOUR_URL>
  &client_secret=<YOUR_APP_SECRET>&code=<AUTHORIZATION_CODE>

安全最佳实践

  • 使用 HTTPS 安全传输访问口令
  • 利用加密数据库存储口令
  • 仅请求必需的权限
  • 定期刷新口令,设置处理过期的机制

4. 基本广告创建

更新时间:2026年6月24日

使用营销 API 创建广告需要设置广告系列、广告组和广告创意。主要端点包括 campaigns、adsets、adcreatives 和 ads。

campaigns 端点

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/campaigns \
  -F 'name=My Campaign' \
  -F 'objective=LINK_CLICKS' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>'

adsets 端点

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adsets \
  -F 'name=My Ad Set' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'daily_budget=1000' \
  -F 'targeting={"geo_locations":{"countries":["US"]}}' \
  -F 'access_token=<ACCESS_TOKEN>'

ads 端点

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads \
  -F 'name=My Ad' \
  -F 'adset_id=<AD_SET_ID>' \
  -F 'creative={"creative_id": "<CREATIVE_ID>"}' \
  -F 'status=ACTIVE' \
  -F 'access_token=<ACCESS_TOKEN>'

5. 创建广告系列

更新时间:2026年6月24日

向 /act_<AD_ACCOUNT_ID>/campaigns 发送 POST 请求。

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/campaigns \
  -F 'name=My Campaign' \
  -F 'objective=LINK_CLICKS' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>'

必要参数

名称描述
name广告系列的名称
objective目标,例如 LINK_CLICKS
status初始状态,建议设为 PAUSED

6. 创建广告组

更新时间:2026年6月24日

创建广告系列后,创建广告组以包含竞价、定位和预算信息。

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adsets \
  -F 'name=My Ad Set' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'daily_budget=1000' \
  -F 'targeting={"geo_locations":{"countries":["US"]}}' \
  -F 'access_token=<ACCESS_TOKEN>'
名称描述
name广告组名称
campaign_id所属广告系列的编号
daily_budget单日预算(美分)
targeting基于地理位置的目标受众

7. 创建广告创意

更新时间:2026年6月24日

广告创意定义广告的视觉和文本元素。向 /act_<AD_ACCOUNT_ID>/adcreatives 发送 POST 请求。

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives \
  -F 'name=Sample Creative' \
  -F 'object_story_spec={
      "page_id": "<PAGE_ID>",
      "link_data": {
        "message": "Check out our new product!",
        "link": "https://www.example.com/product",
        "caption": "Our New Product",
        "picture": "https://www.example.com/image.jpg",
        "call_to_action": {
          "type": "SHOP_NOW"
        }
      }
    }' \
  -F 'access_token=<ACCESS_TOKEN>'
名称描述
name广告名称
object_story_spec广告创意参数(格式、链接、CTA)

8. 创建广告

更新时间:2026年6月24日

将现有广告组和广告创意合并为广告。

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads \
  -F 'name=My Ad' \
  -F 'adset_id=AD_SET_ID' \
  -F 'creative={"creative_id": "<CREATIVE_ID>"}' \
  -F 'status=ACTIVE' \
  -F 'access_token=<ACCESS_TOKEN>'
名称描述
adset_id投放广告的广告组编号
creative包含创意编号的对象
statusACTIVE 发布,PAUSED 暂停

9. 广告系列管理

更新时间:2026年6月24日

修改广告系列

curl -X POST \
  https://graph.facebook.com/v25.0/<CAMPAIGN_ID> \
  -F 'objective=CONVERSIONS' \
  -F 'daily_budget=2000' \
  -F 'status=ACTIVE' \
  -F 'access_token=<ACCESS_TOKEN>'

暂停 / 归档 / 删除

# 暂停
curl -X POST https://graph.facebook.com/v25.0/<CAMPAIGN_ID> \
  -F 'status=PAUSED' -F 'access_token=<ACCESS_TOKEN>'

# 归档
curl -X POST https://graph.facebook.com/v25.0/<CAMPAIGN_ID> \
  -F 'status=ARCHIVED' -F 'access_token=<ACCESS_TOKEN>'

# 删除(不可撤销)
curl -X DELETE https://graph.facebook.com/v25.0/<CAMPAIGN_ID> \
  -F 'access_token=<ACCESS_TOKEN>'
警告:删除操作无法撤销。删除前请仔细检查广告系列编号。

10. 广告优化基础知识

更新时间:2026年6月26日

customaudiences 端点

curl -X POST \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/customaudiences \
  -F 'name=My Custom Audience' \
  -F 'subtype=CUSTOM' \
  -F 'access_token=<ACCESS_TOKEN>'

insights 端点

curl -X GET \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/insights \
  -F 'fields=impressions,clicks,spend' \
  -F 'time_range={"since":"2023-01-01","until":"2023-12-31"}' \
  -F 'access_token=<ACCESS_TOKEN>'

11. 监测和分析

更新时间:2026年6月16日

使用 Insights API 监控广告系列表现。

curl -X GET \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/insights \
  -F 'fields=impressions,clicks,spend,ctr,cpc' \
  -F 'time_range={"since":"2023-01-01","until":"2023-12-31"}' \
  -F 'level=campaign' \
  -F 'access_token=<ACCESS_TOKEN>'

关键指标

  • CTR — 点击率,衡量广告吸引力
  • CPC — 单次点击费用
  • ROAS — 广告花费回报
  • Impressions — 展示次数

成效驱动的优化

持续监控表现数据,发现趋势并做出调整。高互动但低转化时,尝试不同 CTA 或改善定位。特定人群数据表现更佳时,重新分配预算。


12. 优化建议

更新时间:2026年6月26日

受众定位

  • 使用自定义受众:基于网站访客或应用用户创建受众,覆盖已熟悉您服务的用户
  • 细分受众:使用人口筛选器(年龄、性别、位置、兴趣)提高精准度
  • 类似受众:创建 lookalike audiences 触达新潜在客户

预算分配

  • 明确目标并相应分配预算
  • 根据表现调整预算,将资金转移到表现优异的领域
  • 设置每日预算控制开支

广告创意

  • 投资高品质图片和视频,优化桌面和移动设备
  • 持续 A/B 测试不同创意、标题和 CTA
  • 使用动态创意自动展示最佳版本

实时优化

  • 使用 Insights API 收集实时数据
  • 广告系列中期调整定位参数
  • 设置定期报告面板监控表现

转化 API

在广告主服务器到 Meta 系统之间建立连接,优化广告定位、降低单次成效费用和衡量成效。参阅 转化 API 文档。


📦 API 参考文档

核心对象完整参考 — 字段、端点、参数和限制。


Ad Account(广告账户)

端点: /act_{ad_account_id}

代表在 Facebook 上创建和管理广告的业务实体。多人可以以不同访问级别管理一个账户。

限制

限制项普通账户批量账户
最大广告数6,00050,000
最大广告组数6,00010,000
最大广告系列数6,00010,000

关键字段

字段类型描述
account_id数字字符串广告账户 ID
account_statusint321=ACTIVE, 2=DISABLED, 7=PENDING_RISK_REVIEW
amount_spent数字字符串当前花费
balance数字字符串应付金额
currency字符串ISO 4217 货币代码
name字符串账户名称
spend_cap数字字符串花费上限(0=无上限)

常见错误

代码描述
200权限错误
613超出速率限制
190访问口令无效
80004对广告账户调用过多

Campaign(广告系列)

端点: /{campaign_id}

最高级别组织结构,代表单一业务目标。所有广告系列必须指定 special_ad_categories 字段(v7.0+)。

关键字段

字段类型描述
id数字字符串广告系列 ID
account_id数字字符串所属广告账户 ID
bid_strategyenumLOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS
daily_budget数字字符串单日预算
effective_statusenumACTIVE, PAUSED, DELETED, ARCHIVED, WITH_ISSUES
objective字符串广告系列目标
special_ad_categories数组特殊广告类别(v7.0+ 必填)

创建(POST)

curl -X POST \
  -F 'name="My campaign"' \
  -F 'objective="OUTCOME_TRAFFIC"' \
  -F 'status="PAUSED"' \
  -F 'special_ad_categories=[]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/campaigns

子端点

端点描述
/ads广告系列下的广告
/adsets广告系列下的广告组
/insights广告系列的成效分析

Ad Set(广告组)

端点: /{ad_set_id}

共享相同预算、排期、竞价和定位数据的广告组。限制:普通账户最多 5,000 个,批量账户最多 10,000 个。

关键字段

字段描述
campaign_id父广告系列 ID
daily_budget / lifetime_budget预算(美分)
bid_amount出价金额
billing_event计费事件:APP_INSTALLS, IMPRESSIONS, LINK_CLICKS, THRUPLAY
optimization_goal优化目标
targeting定位对象

创建

curl -X POST \
  -F 'name="My First Adset"' \
  -F 'lifetime_budget=20000' \
  -F 'campaign_id="<AD_CAMPAIGN_ID>"' \
  -F 'bid_amount=100' \
  -F 'billing_event="LINK_CLICKS"' \
  -F 'optimization_goal="LINK_CLICKS"' \
  -F 'targeting={"geo_locations":{"countries":["US"]}}' \
  -F 'status="PAUSED"' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adsets

Ad(广告)

端点: /{ad_id}

包含要展示的信息,与广告组关联。同组内广告共享预算、排期和定位。

读取

# 按广告 ID
curl -X GET -d 'fields="id,name"' -d 'access_token=<TOKEN>' \
  https://graph.facebook.com/v25.0/<AD_ID>/

# 按广告账户
curl -G -d "fields=name" -d "access_token=<TOKEN>" \
  "https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads"

创建

curl -X POST \
  -F 'name="My Ad"' \
  -F 'adset_id="<AD_SET_ID>"' \
  -F 'creative={"creative_id": "<CREATIVE_ID>"}' \
  -F 'status="PAUSED"' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads

关键字段

字段描述
adset_id父广告组 ID
campaign_id父广告系列 ID
creative广告创意对象
effective_status含 PENDING_REVIEW, DISAPPROVED, WITH_ISSUES

Ad Creative(广告创意)

端点: /{creative_id}

定义广告的布局和内容。可独立创建或作为广告组的一部分。

创建

curl -X POST \
  -F 'name=Sample Creative' \
  -F 'object_story_spec={
      "page_id": "<PAGE_ID>",
      "link_data": {
        "message": "Check out our new product!",
        "link": "https://www.example.com/product",
        "caption": "Our New Product",
        "picture": "https://www.example.com/image.jpg",
        "call_to_action": {"type": "SHOP_NOW"}
      }
    }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives

关键参数

参数描述
object_story_spec创建新帖子转为广告(link_data, photo_data, video_data)
object_story_id已有 Facebook 公共主页帖子 ID
image_url托管图片 URL(≤8 MB)
image_hash已上传图片的哈希值
call_to_actionCTA 按钮类型和值

文本限制

限制项值
广告标题(推荐)25 字符
广告正文(推荐)90 字符
最大 URL 长度1000 字符

Business(商务管理平台)

端点: /{business-id}

代表 Facebook 上的一个业务实体。

关键字段

字段类型描述
name字符串业务名称
primary_pagePage主要 Facebook 公共主页
verification_statusenumverified, pending, not_verified, failed

创建

POST /{user_id}/businesses -F 'name=My Business'

子端点

端点描述
/ad_accounts广告账户
/adspixels可用像素代码
/business_users员工/管理员
/system_users系统用户
/owned_businesses管理的子业务

Ads Pixel(广告像素代码)

端点: /{ads-pixel-id}

Facebook 像素是一段 JavaScript 代码,放置在网站各页面上,用于捕获网站意图并创建网站自定义受众。

关键字段

字段描述
code放在网站上的像素代码
name像素名称
owner_business拥有业务的 ID
last_fired_time上次触发时间

创建

POST /v25.0/act_<AD_ACCOUNT_ID>/adspixels -F 'name=My WCA Pixel'

Custom Audience(自定义受众)

端点: /{custom-audience-id}
2025 年 9 月 2 日起:Meta 将限制可能暗示健康状况、财务状况等的自定义受众。

关键字段

字段描述
approximate_count_lower_bound / _upper_bound受众规模范围
delivery_status200=活跃, 300=太小, 400+=不可用
subtype自定义受众类型
retention_days保留天数(1-180 或永久)

System User(系统用户)

端点: /{system-user-id}

用于服务器到服务器交互的账户。系统用户访问口令不会过期。每个商务平台有数量上限(有限访问=1,完全访问=10)。

创建

POST /{business_id}/system_users
-F 'name=My System User'
-F 'role=ADMIN'

可用角色:ADMIN, EMPLOYEE, FINANCE_EDITOR, FINANCE_ANALYST, ADS_RIGHTS_REVIEWER, DEVELOPER。

子端点

端点描述
/assigned_ad_accounts已分配广告账户
/assigned_pages已分配公共主页
/assigned_product_catalogs已分配商品目录

Insights(成效分析)

端点: /act_{id}/insights

提供广告表现指标。支持同步查询和异步报告创建。

iOS 14.5 警告:无法跨 iOS 14.5 和非 iOS 14.5 广告系列聚合非内联转化指标。

同步查询

curl -X GET -G \
  -d 'fields="impressions"' \
  -d 'breakdown="publisher_platform"' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/<AD_SET_ID>/insights

异步报告

POST /act_{ad_account_id}/insights
参数默认值描述
date_presetlast_30d相对时间范围
fields常用字段请求的字段
level—account, campaign, adset, ad
time_range—自定义时间范围
⚠️ 错误代码参考