在本教程中,您将学习 Facebook API 的基础知识:如何访问 API 本身、通过 Insights API 获取效果数据,以及如何通过 Graph API更改您的广告系列、广告组和广告。
您可以观看视频进行学习(抱歉音频/视频可能略有不同步),也可以按照自己的节奏阅读下面的纯文本版本。
我们设计本教程旨在让您轻松愉快地体验 Facebook API。教程包含11 个不同的练习,帮助您掌握基础知识。之后,您可以按照步骤逐步学习。有时,我们会通过具体的用例来引入新的主题。
请注意,这不是官方的 Graph API 教程。有关营销 API 的更多详细信息,请参阅Facebook 开发者门户网站的官方文档。
首先,要通过 Facebook API 以编程方式使用 Facebook,您需要创建一个 Facebook 应用(或者我们应该称之为“元应用”)。这将允许您生成一个访问令牌,该令牌将作为您调用 Graph API 时的身份验证凭证。我们将在创建应用之后立即处理此问题。之后,只需几个简单的步骤,而您只需要一个现有的 Facebook 帐户即可。
访问 Facebook 开发者门户网站 – developers.facebook.com
登录您的 Facebook 帐户
前往“我的应用”—> “创建应用”。选择“商务”作为应用类型。
输入标题(可选)
给它命名并设置联系邮箱。
输入标题(可选)
点击“创建应用”
在 Facebook 产品列表中,选择Facebook API,然后点击“设置”。点击后,“营销 API”将出现在应用菜单的左侧。
输入标题(可选)
访问令牌用于识别用户身份(例如电子邮件地址和密码),以便验证您的 API 调用。这样,Facebook 就能知道您是否拥有访问您正在请求数据的广告帐户的权限。用户访问令牌正是用于此目的,以证明您有权查看任何数据并进行任何更改,这些更改通常可以通过广告管理工具完成。
获取用户访问令牌有两种方法。
使用 Facebook 开发者门户(快捷方便):
点击左侧“营销 API”下的“工具” 。选择“访问令牌工具”。
请选择您需要的权限:
广告管理(对选定的广告帐户和社交媒体帐户进行更改)
ads_read(读取广告数据)
read_insights(读取性能分析数据)
输入标题(可选)
点击“获取访问令牌”
使用 Facebook Graph API Explorer(更精细的权限管理):
前往“工具”—> “Facebook Graph API Explorer”
请在右侧选择正确的应用程序。
在“用户”或“页面”部分选择“获取用户访问令牌”。
您将被重定向到标准的 Facebook 登录流程。
添加您需要的权限。在本例中,我们选择 ads_management 和 read_ads 权限。
点击Graph API 中的“生成访问令牌”。
输入标题(可选)
注意:这两种方法都会生成有效期较短的访问令牌,很快就会过期。您可以按照官方文档获取有效期长达 60 天的访问令牌;如果您了解相关操作,也可以申请一个永不过期的系统用户访问令牌。
要成功使用 Facebook Graph API,您还需要了解一些其他核心概念。
本介绍的目的不仅在于让您能够跟随操作,还在于让您了解如何通过 Facebook API 获取其他重要信息或更改现有的广告对象。
在 Facebook 企业管理平台中,每个带有 ID 的元素或项目都是一个对象。
例如:
广告账户
竞选活动
广告组
广告
观众
ETC
我们可以通过调用对象的 ID 并添加我们想要了解的任何字段或连接(称为“边”)来请求有关该对象的更多信息。例如,对于广告组,我们可以请求:(父)广告系列、(子)广告、定位、开始日期、每日预算等信息。
每个 ID 都是唯一的——因此 Facebook 不可能将广告组 ID 误认为其他东西。
我们通过其唯一标识符访问每个对象,只需使用基本 URL 和 / 调用它即可:
graph.facebook.com/v13.0/{object_id}
边是与其他相关对象的“连接”。例如,广告帐户有一个广告系列边,这意味着我们可以请求该广告帐户中所有广告系列的 ID。反之亦然——任何广告系列都有一个广告帐户边以及广告组和广告边。在 Facebook Marketing API 中,边用“/”符号表示,例如:
graph.facebook.com/v7.0/{object_id}/{edge_that_you_want_to_call}
参数定义了 Facebook 返回给你的数据(读取数据时)或你如何更改数据以及更改哪些属性(创建或更新现有对象时)。就我们的目的而言,以下是访问 Facebook API 时最重要的参数:
限制:限制通过边请求多个项目时提取的对象数量。
https://graph.facebook.com/v13.0/{adset_id}/ads?limit=5
上述请求返回了属于指定广告组的五个广告。但由于我们没有设置任何字段,Facebook 只会返回广告的 ID。
字段:定义要返回的指定对象的哪些属性
graph.facebook.com/v7.0/{object_id}?fields=id,name,targeting
当然,我们也可以将它们与 & 符号组合起来。
https://graph.facebook.com/v13.0/{adset_id}/ads?limit=5&fields=id,name
现在让我们带你使用 Facebook Graph API Explorer 进行你的第一个 Facebook API 调用。
选择GET 请求。每当我们想从 Facebook Marketing API 获取信息时,都会使用 GET 请求。如果我们想更改或创建新内容,则会使用 POST 请求。
然后,添加以下路径:
me?fields=id,name
点击“提交”。您应该会看到您的姓名和Facebook用户ID。
恭喜您首次调用 Graph API。
在左侧,您可以选择其他数据字段,以获取有关您的 Facebook ID 的更多信息。
输入标题(可选)
我们继续:
在左侧,选择 adccounts 字段,或在 URL 路径中添加 adccounts 并提交。如果运行成功,您将看到您有权访问的所有帐户。
请注意,我们现在已将“边缘”作为字段添加到请求中。当我们想要获取关于我们自身以及我们有权访问的广告帐户的信息时,这将非常有用。在大多数情况下,您只需使用 `me/adaccounts` 即可获取所需的广告帐户,并按照我们上面学到的方法添加任何其他信息:`me/adaccounts?limit=3&fields=name`
Facebook API 默认使用分页,只会返回 25 个元素。如果需要更多,请添加以下限制参数。
adaccounts.limit(3)
如果要添加账户名称,请添加名称字段:
adaccounts.limit(3){name}
如您所见,我们还可以在嵌套结构中添加限制和字段的字段。
选择一个账户 ID,该账户在过去 90 天内有过广告支出。
所有账户 ID前面都带有“act_”后缀。要获取您的账户,请确保添加此后缀。
输入标题(可选)
点击“文档”,向下滚动找到“Facebook Marketing API”。然后,点击左侧的“参考” 。在“参考”中,您可以找到所有与对象相关的可用边和参数信息。
点击左侧的“广告帐户”。您将看到每个对象可用的信息类型。您将在右侧看到该对象的所有可能调用。
返回 Facebook Graph API Explorer。输入以下路径:
act_{account_id_of_your_account}/insights
作为回报,您将获得过去 30 天的标准信息,包括支出、展示次数、帐户 ID 和日期。
要预设日期范围,请使用以下参数:
?date_preset={your_date_range}
我们可以使用今天、昨天、最近 3 天、最近 7 天、最近 28 天、最近 30 天、最大值等等。
然后,要添加另一个参数,请使用 & 符号。例如,如果您想按某个时间段细分数据,请使用以下结构添加时间增量:
&time_increment={your_time_increment}
有效值可以是 1 到 90 之间的任何数字,也可以是月份。默认值为 all_days,因此没有时间细分。
要获取超过 25 个洞察对象,请使用 limit 参数(最大值 5000):
&limit=5000
你的完整路径应该如下所示:
act_123456789/insights?date_preset=last_7d&time_increment=1&limit=5000
要通过 Graph API 访问广告帐户中的所有广告系列对象,请输入以下路径:
act_{your_account_id}/campaigns
要添加参数,请添加问号 (?) 和所需字段的名称 – 我们将从 id 和 name 开始。
?fields=id,name
输入标题(可选)
点击“提交”后,您应该会看到一个广告系列列表。默认情况下,Facebook 会在此处显示最近创建的 25 个广告系列。
点击其中一个活动 ID。这会将活动 ID 输入到路径中。您现在正在访问活动级别的数据。
询问活动 ID、名称和每日预算:
输入标题(可选)
注意:Facebook 只会在字段或属性存在时才会返回该字段或属性。每日预算仅在广告系列级别设置预算且预算类型为每日预算(而非总预算)时才会存在。
要访问效果数据,请添加 Insights Edge。您可以选择任意字段并设置所需的参数。例如,我们将检索整个广告系列生命周期内的支出、展示次数、CPM 和 CPC 数据。要获取转化事件数据,请添加操作字段。
/insights?date_preset=maximum&fileds=spend,impressions,cpm,actions
首先,让我们使用 /adsets 接口获取属于我们指定广告系列的所有广告组。
点击上一步中的某个广告组,或者输入一个新的广告组 ID。
要通过 Facebook API 获取广告组的每日预算,请使用 `?fields=daily_budget` 路径
输入标题(可选)
请注意,预算或出价信息始终以美分(如果您的帐户货币设置为 EUR/USD)或便士(对于 GBP 帐户)显示!
添加一些您感兴趣的其他建议字段,以便检索广告组数据。
将GET改为POST。
当我们想要创建新的广告对象或更改现有的广告对象时,会使用 POST 请求。
要更改预算,请在 daily_budget 参数后添加所需的以美分为单位的值。您仍然需要指定 Facebook API 响应中应返回哪些字段。
输入标题(可选)
如果成功,Facebook API 将返回更新后的每日预算。
恭喜!这是您通过 Graph API 进行的第一项更改!
通过调用 /ads edge 获取您的广告组的广告。
输入标题(可选)
添加名称和 ID 字段,以便更好地了解您检索到的广告。
输入标题(可选)
点击广告 ID,请求获取指定广告的效果数据:
输入标题(可选)
要从 Facebook API 获取广告的 URL 或任何其他面向用户的部分,请获取广告素材接口。广告素材接口允许您读取广告中的任何素材数据。
{ad_id}/adcreatives
注:您也可以通过添加该创意字段来实现同样的效果:
{ad_id}?fields=creative
点击广告素材 ID。每个广告只有一个广告素材。接下来,添加 asset_feed_spec 以从正文、标题和描述中检索数据。
请注意,根据广告格式以及是否使用动态元素,广告素材信息可能存储在不同的位置。您的广告可能不存在 asset_feed_spec 文件。如果遇到这种情况,请按照以下步骤操作。
输入标题(可选)
添加 call_to_action_type 参数以读取所使用的 CTA 类型。当然,对最终用户而言,此信息始终是本地化的。
现在添加 object_story_spec 字段。这是获取广告素材信息时的一个重要字段。在 object_story_spec 字段中,您可以找到 page_id 和 instagram_actor_id。根据您的广告格式,您可能还会找到 link、caption 和 image_hash 或 video_id。
输入标题(可选)
我们使用 Facebook Graph API Explorer 发出的每个 GET 请求,都可以用简单的浏览器发出。您需要自己添加第一部分:
graph.facebook.com/v13.0/{path_from_graph_api_explorer}
将您的 ads_read 访问令牌添加到链接末尾,并使用 &access_token={your_access_token} 参数:
输入标题(可选)
现在您将在浏览器中看到JSON响应。
至此,Facebook API 的实用入门介绍就结束了。
如果您想观看更多关于 Graph API 的视频教程,请访问我们的YouTube 页面。
如果您想直接使用 Facebook API 构建炫酷的自动化流程,而无需担心管理访问令牌和编写代码,请查看Kitchn.io 的产品演示并与我们联系。我们帮助D2C 品牌和营销机构实现付费社交媒体广告运营的自动化,从而让他们腾出时间专注于更重要的任务。