Facebook 营销 API 个广告素材

Facebook Marketing API ad creatives

我的 Facebook 应用程序获得了 ads_readmanage_pages ads_managementbusiness_managementAds Management Standard Access 权限。
我可以创建广告活动、广告集,并可以通过 Facebook 营销将资产上传到 Facebook API。

但是当我尝试使用 /adcreatives 请求创建广告创意时,我收到错误信息:

(#3) Application does not have the capability to make this API call.

curl请求示例:

curl -X POST \
  'https://graph.facebook.com/v3.3/act_<account_id>/adcreatives?access_token=<access_token_here>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Host: graph.facebook.com' \
  -d 'call_to_action_type=USE_APP&actor_id=<page_id>&object_type=APPLICATION&status=active&name=hello&title=foo&page_id=<page_id>&id=act_<account id>&image_hash=fb1a69e0965076e791183ac82c9f7417'

我已经尝试使用应用程序令牌、页面令牌和用户令牌(这在 FB 业务管理器中是允许的)发出请求。
我也尝试过使用沙盒帐户,它是令牌
每项服务(应用程序、Facebook 页面和用户)都与业务管理器中的业务帐户关联并具有管理员(最大)权限。

我尝试使用 JSON 请求在正文中发送数据,我尝试将数据作为 x-www-form-urlencoded 发送。
我试过使用纯 http 请求并尝试使用 facebook-nodejs-business-sdk
但是还是没有成功。

所以,问题是,什么是正确的广告创意创建请求,我的应用程序需要什么权限才能执行此类任务?

P.S。我还在 Facebook 开发者论坛上问了几个问题,但没有得到解决方案。 q1, q2, q3

我认为您的输入格式不正确(尽管从 FB 返回的错误通常不会说明那么多)。

我发现的主要问题是创意信息未通过 object_story_spec 参数传递。您正在制作的创意类型连同必要的参数一起通过此对象传递,在您的情况下为 photo_data

curl -X POST \
  'https://graph.facebook.com/v3.3/act_<ACT_ID>/adcreatives?access_token=<TOKEN>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Host: graph.facebook.com' \
  -d 'link_url=<URL>&name=<CREATIVE_NAME>&object_type=PAGE&object_story_spec={page_id:<PAGE_ID>,photo_data:{image_hash:<HASH>,caption:<CAPTION>}}'

您可能需要根据需要添加或删除参数,但上述请求对我有用。

在权限方面,这是我拥有的:

一些额外的参考资料:
Ad Creative
Object Story Spec
Photo Data