如何通过 Facebook 上的广告 API 获取活动列表?

Mat*_*tto 4 facebook facebook-graph-api

我正在尝试从 Graph API Explorer 获取活动列表。我正在使用在https://developers.facebook.com/docs/marketing-api/reference/ad-account/campaigns/.

GET /v2.8/{ad-account-id}/campaigns HTTP/1.1
Host: graph.facebook.com
Run Code Online (Sandbox Code Playgroud)

我是用于广告的页面的业务经理和管理员。我AD_ACCOUNT_IDs在 Graph API Explorer 上发现了使用以下请求。

GET /v2.8/me/businesses HTTP/1.1
Host: graph.facebook.com
Run Code Online (Sandbox Code Playgroud)

我选择了具有更高特权的那个。

提交第一个活动请求时报告的错误是:

{
    "error": {
        "message": "Unsupported get request. Object with ID '1015359838XXXXXX' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
        "type": "GraphMethodException",
        "code": 100,
        "fbtrace_id": "DLyfwGbM8fi"
    }
}
Run Code Online (Sandbox Code Playgroud)

怎么了?

提前致谢,

马蒂亚

Rya*_*yan 6

我同样在尝试检索广告帐户中所有广告系列 ID 的列表时遇到问题。

我已经能够通过 ID 检索活动数据,所以我显然已经拥有权限。

但 Facebook 的错误信息具有误导性。

在检索广告帐户时(为了随后显示其广告系列或您想要的任何内容),您需要通过其 ID 以“act_”开头进行检索。

例如,您可以请求/act_123456789000001234/campaigns而不是/123456789000001234/campaigns.

非常感谢@Jan Sommer 在/sf/answers/2798240021/


Rit*_*ito 6

@Ryan 的回答拯救了我的一天。这听起来可能很愚蠢/愚蠢,但我犯了这个错误,我只是坚持下去。

浏览 FB 文档以使用营销 API

我试图建立自定义受众,这就是 curl 请求的样子 -

在此处输入图片说明

使用 Marketing API 时要记住的基本事项之一是,几乎所有 API 都要求这两件事 -
1) ACCESS_TOKEN
2) AD_ACCOUNT_ID

对于刚开始使用 FB Marketing API 或以某种方式坚持寻找这些值的人,我只会告诉您如何获取这些值,这样您就不必像我一样浪费时间。

因此,要获取 ACCESS_TOKEN,请转到您的应用仪表板,然后单击Add Product并选择Marketing API。添加产品后,屏幕应如下所示 -

在此处输入图片说明

现在只需检查权限并单击 Get Token按钮,就会生成一个令牌。只需将令牌复制到某个文件中并保存即可。

现在要获取AD_ACCOUNT_ID价值,只需转到Adverts Manager页面 - 在此处输入图片说明

Adverts Manager页面中红色框内的数字是您的AD_ACCOUNT_ID.

最后一步是再次返回您的应用程序仪表板, Settings > Advanced 在此处输入图片说明

单击Ads API,然后在AD_ACCOUNT_ID此处输入。就是这样,您已经完成了Access and Authentication通过您的应用程序使用营销 API的过程。

现在是我犯了愚蠢错误的部分。curls 请求看起来像这样 -

curl \
  -F 'name=My new CA' \
  -F 'subtype=CUSTOM' \
  -F 'description=People who bought from my website' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/customaudiences
Run Code Online (Sandbox Code Playgroud)

首先我替换ACCESS_TOKEN了它的值。然后不是只替换<AD_ACCOUNT_ID>I 替换了整个 string act_<AD_ACCOUNT_ID>,而是使用 AD_ACCOUNT_ID 值。

所以我在向 API 发出请求时遇到了这个错误 -

{"error":{"message":"Unsupported post request. Object with ID '120574219' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https:\/\/developers.facebook.com\/docs\/graph-api","type":"GraphMethodException","code":100,"fbtrace_id":"YsSvKKwgLMQ"}}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我会犯这个错误,但我确信这是其他人也经常犯的错误之一。由于来自 FB 的响应具有误导性,我浪费了大量时间来理解和阅读 API 权限和身份验证。

希望这篇文章对您有所帮助并节省您的时间。