求助:通过Graph API获取Facebook广告创意关联的Page Post ID
解决方案:获取广告创意关联的Page Post ID或直接创建合规Page Post
一、用Graph API直接拿Ad Post ID
你大概率漏了一个关键字段和权限配置:
- 调用广告创意详情接口时,指定返回
effective_object_story_id字段,这个就是对应Page Post的ID。请求示例:GET /v18.0/{ad_creative_id}?fields=effective_object_story_id - 必须确保你的应用有
ads_management权限,访问令牌对应的用户是Business Manager或目标广告账户的管理员,且广告账户已经授权给你的应用。 - 返回的ID一般是
{page_id}_{post_id}格式,拆分后就能得到单独的Post ID;如果返回的是链接,直接提取链接里的ID部分就行。
另外,也可以通过广告创意的object_story_spec字段反向查询,但effective_object_story_id是最直接的路径。
二、直接创建符合广告创意规格的Page Post
要是不想绕广告创意的弯,直接生成能用的Page Post可以这么做:
- 调用
/{page_id}/feed端点创建原生Page Post,把广告创意里的所有素材(文案、图片/视频、CTA按钮、落地页等)都带上参数,示例:POST /v18.0/{page_id}/feed message=你的广告文案内容 link=https://你的落地页链接 object_attachment={媒体文件ID} call_to_action={"type": "LEARN_MORE", "value": {"link": "https://你的跳转链接"}} - 创建成功后返回的
id就是Page Post的ID,直接把这个ID填到广告创意的object_story_id字段里,就能创建关联该Post的广告创意。 - 要是不想立刻发布Post,可以加
published=false参数创建草稿,之后再发布或者直接用于广告投放。
排查要点
- 要是API返回权限不足,检查这几点:
- 访问令牌有没有
pages_manage_posts和ads_management权限 - 目标广告账户是不是已经加入Business Manager,且你的应用已经拿到该账户的授权
- 当前用户有没有目标Page的管理权限
- 访问令牌有没有
- 如果
effective_object_story_id为空,说明这个广告创意用的是系统自动生成的临时Post,这种情况你得先自己创建自定义Page Post,再关联到广告创意里。
内容的提问来源于stack exchange,提问作者toft
相关产品推荐
相关产品推荐

