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 ...
随机推荐
- HashMap 和 ConcurrentHashMap比较
基础知识: 1. ConcurrentHashMap: (JDK1.7) segment数组,分段锁:segment 内部是 HashEnty数组,类似HashMap: 统计长度的方法,先不加锁统计两 ...
- 转:异常处理之ThreadException、unhandledException及多线程异常处理
转载自:http://www.cnblogs.com/levin9/articles/2319251.html 一:ThreadException和unhandledException的区别 处理未捕 ...
- .pages怎么在windows上打开?Windows下打开在Mac中编辑的.pages文件方法
.pages怎么在windows上打开?Windows下打开在Mac中编辑的.pages文件方法 1.最简单的方法是修改后缀名为.zip然后解压,解压后就可以看到一张图片,这个就是文档内容了. 2.更 ...
- SQL非域环境下带自动故障转移数据库镜像的实现方法(包括镜像服务器)
使用数据库镜像来提高数据库的高可用性,在镜像服务器创建镜像数据库的快照以卸载报表查询对生产数据库的负载.TechNet有讲座对此技术进行介绍,但看到大家在讲座的讨论区中遇到了很多问题,下面我把在非域环 ...
- CentOS下shell显示-bash-4.1$不显示用户名路径
Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法. 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: -bash-4.1$ \ -b ...
- django 生成动态的PDF文件
需要依赖库. WeasyPrint,它是一个Python库可以生成PDF文件从HTML模板中.安装WeasyPrint pip install WeasyPrint 创建一个PDF模板(templat ...
- 在win10下安装eclipse
1.在官网下载jdk.目前最新版本为jdk8. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21331 ...
- VMware14安装centos7
win10专业版 虚拟机:14 Pro 1. 新建虚拟机选择典型安装 2. 稍后安装操作系统 3. 选择Linux,版本选择centso7 64位(根据系统选择) 4. 设置虚拟机名称并选择安装位置 ...
- python之udp协议的套接字
udp是无链接的,先启动哪一端都不会报错 udp服务端 1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 ...
- Atlas读写分离[高可用]
Atlas下载地址: https://github.com/Qihoo360/Atlas/releases Atlas是出于360的, 比mysql-proxy更稳定, 部署起来更方便. 环境: pr ...