facebook api之基本概念(中文)
Facebook广告API系列 1
Facebook Graph API
Facebook提供了一套类rest的接口,统称为Graph API。为啥叫Graph?因为facebook把所有的资源都抽象成节点,资源之间的关联关系抽象成边。访问节点数据,直接通过 GET /版本号/节点id。访问特定节点A的边,通过 GET /版本号/节点A id/AB边的名称。
具体的例子,比如一个广告计划campaign的id如果是2e43,读取广告计划数据就是:
GET /v2.5/2e43 {
"field name" : {field value},
...
}
就这么简单。
如果我们想了解刚刚那个广告计划下有多少个广告集合(AdSet)?,AdSet的边名称是adsets,于是通过:
GET /v2.5/2e43/adsets {
"data" : [
... elements
],
"paging" : {
“cursors" : {
"after" : {afterIds},
"before" : {beforeIds}
},
"previous" : {previousUrl},
"next" : {nextUrl}
}
}
就会返回id为2e43的campaign下的所有AdSet信息了。
Access token
facebook为其一系列api设置了四种token来适应不同的使用场景:
- user access token
当需要访问用户数据时,通常通过请求用户登录获取到一个access token,然后通过这个token就可以请求用户信息。
- app access token
当需要修改app设置时,使用app和facebook协定的secret,通过server-to-server call的形式获取到app access token。
获取token:
GET /oauth/access_token?
client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials
facebook还提供了一种不需要附加token的方式:
GET {url}?access_token=appid|appsecret
这种方式就是让facebook帮你生成token。
page access token
当app需要读取修改facebook page数据时,app需要先获取user access token,然后申请manage_pages权限。
client token
很少用,facebook对其也没有很详细的描述。
- system user token
token永不过期,适合编程调用api
Facebook广告API系列 2 - Audience Management
Facebook marketing API有三大组成部分:
- Audience Management
- Ads Management
- Ads Insights
本篇稍微介绍下Audience Management
Audience
Audience,顾名思义,广告受众。由于facebook对用户信息的全面,因此它可以实现非常细致的受众定向。
- Custom Audience
Custom Audience指广告主通过显式条件表明一些广告受众,比如email地址,电话号码,姓名,生日等信息。
Custom Audience隶属于ad account,创建一个Custom Audience,方法如下:
POST https://graph.facebook.com/v2.5/act_<AD_ACCOUNT_ID>/customaudiences
创建成功后就会得到customAudienceId,之后就可以向/audienceId/users下添加具体的用户了。
#向Custom Audience中添加用户信息的方式为: POST https://graph.facebook.com/v2.5/<Custom_Audience_id>/users
具体的数据传输方式参见介绍
- Lookalike Audience
Lookalike Audience指的是让facebook帮你找到与某些条件相近的audiences。Lookalike Audience需要“seed”来作为基准。"seed"可以是:
- 某个Custom Audience
- Campaign/Ad Se转化点
- 转化pixel生成的数据
- Page fans
Lookalike Audience其实也是种Custom Audience,创建时的路径与Custom Audience相同,只不过参数不一样。
基于存在的Cumstom Audience创建
POST https://graph.facebook.com/v2.5/customaudiences
name,
subtype=LOOKALIKE,
origin_audience_id=<SEED_AUDIENCE_ID>
lookalike_speec
还有其他几种lookalike,区分的关键在于创建时的lookalike_spec参数,里面指定了alike的方式。
Facebook广告API系列 3 Ads Management
Facebook marketing API有三大组成部分:
- Audience Management
- Ads Management
- Ads Insights
本篇介绍Ads Management.
基本结构
Ads Management是Marketing API的大头了,facebook的Ads体系主要由Campaign,AdSet,Ad和AdCreative组成。
Campaign
Campaign包括了计划目标,下面可以包含多个AdSets。作为一个纯组织结构,并没有实际的业务意义。AdSet
在AdSet层面可以指定定向和出价策略。AdSet下可以包含多个Ad,共享该AdSet的定向和出价策略。Ad
Ad就是广告了,主要包括广告的设计和物料AdCreative。AdCreative
AdCreative包含广告的视觉元素,一旦创建不可修改。AdCreative作为库保存在该ad account下,可以在多个Ad中共享。
下面逐一介绍下这几个元素。
Campaign
Campaign的属性中,比较复杂的有:
- objective
string类型,指明campaign的目标。
Ad Set
Ad Set是Ad的集合,投放相关的定向,优化都在Ad Set这一层面进行。
Ad Set包含的比较重要的属性包括:
- adset_schedule
投放速率 - bid_amount
竞价价格,当没有选择自动竞价时可用,当结算事件为“展示,到达”时,bid_amount表示 价格/1000次,其它的结算事件为价格/单次 - bid_info
- billing_event
结算事件,可以选择的包括:- APP_INSTALLS
- CLICKS
- IMPRESSIONS
- LINCK_CLICKS
- OFFER_CLAIMS
- PAGE_LIKES
- POST_ENGAGEMENT
- VIDEO_VIEWS
- budget_remaining
预算余额 - optimization_goal
优化目标,枚举值,有很多种选项。 targeting
广告定向,是AdSet内最为复杂也最为重要的一个结构,targeting是一个json格式对象,下面专门的介绍下其结构。
targeting是一个单层的json对象,每一个属性标明了一个定向条件,根据定向条件类型分类如下:
1. 人口
2. 地理信息
3. 兴趣分类
4. 移动
5. 广告位
6. Custom Audience
Ad
Ad就是具体的广告了,其包含的主要信息包括:
- creative
广告物料ID
Ad CreativeId
facebook提供了多种Ad Creative格式,包括:
- Page Posts
- Video Ads
- Carousel Ads
- App Ads
- Local Awareness
这么多种格式的物料,但是都使用同一种Ad Creative来表示,导致Ad Creative里有很多种杂七杂八的属性。当实际表示不同的Ad Creative时才会用到不同的属性。
- Page Post
大部分广告物料需要一个page posts,page post可以单独创建,也可以在创建物料时inline创建。
- 创建link Ad
post https://graph.facebook.com/v2.5/<ACCOUNT_ID>/adcreatives
name
object_story_spec={
link_data:{
call_to_action
caption
link
message
}
page_id
},
- 创建carousel ad
post https://graph.facebook.com/v2.5/<ACCOUNT_ID>/adcreatives
name
object_story_spec={
link_data : {
caption
child_attachments:[
{
descripiton
image_hash
link
name
video_id
}
]
link
},
page_id
},
好吧,我其实说的不是很详细,具体的内容要去看官网的API,但是官方文档太烂了。。。
Facebook广告API系列 Business Manager
Business Manager,是个很牛叉的东西,有多牛叉呢?
因为facebook已经越来越商业化了,上面的每个账号,页面,往往都需要营销,宣传,广告等多个环节。如果我只是一个做内容的人,这些东西我打理起来太麻烦,怎么办?
用Business Manager委托给他人管理吧。
什么是Business Manager
Business Manager提供了一种方式,使asset所有者可以出让部分权限给他授信的管理者。简单说,我是一个品牌,我可以把我的广告账户权限授予某一个宣传公司的business Manager,让他们替我进行广告购买。
使用business manager,可以让一个人或者几个人管理多个人的多种asset,business嘛,总是最后要精细分工,互相合作的。
Business Manager操作流程
- 创建business manager
首先需要一个真实的facebook账号,从而得到一个access token和其user id,还需要一个page作为主页,
POST https://graph.facebook.com/v2.5/<USER_ID>/businesses
name
vertical
primary_page
这样我们就创建了一个business manager,管理员是这个user。
一个Business Manager里可以有多个people,相当于这个管理公司的多个员工,员工有Admin和Employee两种权限。
邀请某人加入business manager
POST https://graph.facebook.com/v2.5/<BUSINESS_ID>/userpermissions
role
access_token
发出这个请求后,一个email邀请就会发送到该邮箱,用户点击后就可以成为这个business manager中的一个员工了。
- 创建projects
business manager有了,员工也有了,接下来可以创建一些projects作为管理的基本组织单元。
POST https://graph.facebook.com/v2.5/<BUSINESS_ID>/businessprojects
name
创建了projects之后,我们就有了project id,接下来,我们可以往project中添加各种assets了。
- page
POST https://graph.facebook.com/v2.5/<PROJECT_ID>/pages
page_id
- ad account
POST https://graph.facebook.com/v2.5/<PROJECT_ID>/adaccounts
adaccount_id- app
POST https://graph.facebook.com/v2.5/<PROJECT_ID>/apps
app_id
- business assets管理
向一个business manager中添加assets通常有两种方式,claim和query access。claim表示该asset以后归该business manager所有,query access表示该business manager只是作为一个agency在代理该asset。
- 程序化管理assets
最重要的部分来了,作为一个agency,同时管理了很多个assets,程序化是必要的管理方案。但是问题是调用API必须获取access token,facebook默认的access token是给自然人登陆界面同意后才能获取的,有时限,如何给程序申请一个永久的access token呢,facebook上的说明是这样的:
Switch from using a gray user token to using a system user token. Create a Business Manager, claim in your apps, then generate a system user and assign permissions as needed. The system user token can then be used for API calls.
The system user cannot be used for interactive login but can be assigned specific roles on assets just like a gray user. System users are built to support automated software without getting throttled.
这部分还没有完全理解,需要之后再补全
参考:
如何在Facebook上设置Business Manager商业管理平台
选择主导运营账号
Facebook 在去年推出了商业管理平台(Business Manager),它可以将多个管理账号集中到同一个账号,协助商家在同一页面统一管理旗下的Facebook粉丝专页,广告账号,APP和付款方式,不用在各后台之间切换使用。
在设置Business Manager之前,首先要选择一个账号,这个账号是用来运营公司管理主界面,它以后要管理的信息很多,包括员工获取的信息,各种公司账号信息和客户提交的信息。也就是说使用这个账号的人必须是公司管理高层人员。
连接共享登录
在使用Business Manager之前,大部分商家在Facebook都有多个页面运营和广告管理的账号,Business Manager把这些称为“灰色账号”。
1)点击Business Manager上的settings按钮
2)从页面左边的选项中选择shared logins
3)填入登录信息后点击Add shared logins
添加管理账号
Business Manager上有一个分层账号管理结构,最先设置的那个账户处于管理的最顶端,它可以把任务分配给其他的管理账号。
接下来,要添加一些管理者账号来将灰色账号连接上。
点击settings,从左边栏里选择people,单击Add New People(添加新人)
然后就可以添加管理者的邮箱来设置管理账号,被添加的管理者通过邮箱验证就完成了。
分配任务和工作
灰色账号被连接后,这些管理账号就要接受一些工作任务了。
下面是给分管账号设置工作内容的步骤:
1)点击页面或广告账号(如果你想通过Business Manager进行广告管理就点击后者)
2)选择想要管理的页面或者广告账号。
3)点击Add people ,将需要工作的管理账号添加进去。
facebook api之基本概念(中文)的更多相关文章
- facebook api介绍
转自(http://sls.weco.net/node/10773) 一.Facebook API 基礎概念 Facebook API 概論 : API 最大的好處在於可以讓程式開發人員只需要根據 A ...
- JAVA—API和SPI概念
JAVA—API和SPI概念 目录 概念 JDBC实例 自己实现一个SPI 总结 概念英文: What is the difference between Service Provider Inter ...
- facebook api & oauth protocal
http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-10.5 http://stackoverflow.com/questions/14 ...
- Facebook API 入门
Facebook 商业价值简介 Facebook 是一个社交网络服务网站,于 2004 年 2 月 4 日上线,到 2010 年 2 月 2 日, Facebook 正赶超雅虎将成为全球第三大网站,与 ...
- JAVA API的下载和中文查看API
一.JAVA API的下载 1.1 JAVA由SUN公司开发,2006年SUN公司宣布将Java技术作为免费软件对外发布,标志着JAVA的公开免费.2009年,SUN公司被甲骨文公司收购,因此我们现在 ...
- facebook api之Access Tokens之Business Manager System User
Business Manager System User Make programatic, automated actions on ad objects or Pages, or do progr ...
- facebook api之Access Tokens
Access Tokens When someone connects with an app using Facebook Login and approves the reqest for per ...
- facebook api之Access and Authentication
Access and Authentication There are three access levels to the Marketing APIs. You can upgrade acces ...
- facebook api之Ads Insights API
The Ads Insights API provides API access for reporting and analytics purposes. When exclusively usin ...
随机推荐
- 20155228 获取技能的成功经验和关于C语言学习的调查
内容提要 你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?与老师博客中的学习经验有什么共通之处? 有关C语言学习的调查 你是怎么学习C语言的?(作业,实验,教材,其他 ...
- javascript实现异步编程的4种方法
1.回调函数. 2.事件监听 . 思路:采用事件驱动模式.任务的执行不取决于代码的顺序,而取决于某个事件是否发生 3.观察者模式 (发布/订阅模式) 代码如下: jQuery.subscribe ...
- web前端学习:JavaScript学习指南
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...
- P1012 拼数
P1012 拼数 输入输出样例 输入样例 3 13 312 343 输出样例 34331213 注意 当你输入: 6321 32 407 135 13 217 应该输出: 40732321217135 ...
- 常用的node.js模块
一.url模块1.url.parse:将一个url转换成一个对象 1)参数1:url 2)参数2:布尔值 3)如果参数2是一个true的情况下会将query解析成一个对象2.url.format:将一 ...
- scrapy_novel_python
# _*_ coding:UTF _8_ from bs4 import BeautifulSoup import requests,sys class downloader(object): def ...
- MyEclipse 10.7(版本:eclipse 3.7.x-Indigo系列)安装PyDev 4.5.4插件
解压安装路径结构如截图所示: 安装后重启:
- ES6知识整理(10)--class的继承
(这是es6的第10篇文章.说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧) 类的继承 有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法.不包 ...
- 基于 SSL 的 Nginx 反向代理
基于 SSL 的 Nginx 反向代理 描述: 线上zabbix因机房网络问题,外网接口无法对外访问,因此采用同机房的另外一台服务器做反向代理. 线上用于zabbix提供web访问的Nginx,采用h ...
- Golang的值类型和引用类型的范围、存储区域、区别
常见的值类型和引用类型分别有哪些? 值类型:基本数据类型 int 系列, float 系列, bool, string .数组和结构体struct,使用这些类型的变量直接指向存在内存中的值,值类型的变 ...