General information on the Marketing APIs, access, versioning and more. The main use cases for the Marketing API are ads insights, audience management, and ads management:

Learn the basic structure and usage of the Marketing API.

  • Access and Authentication - Marketing API has three levels of access: development, basic, and standard access levels. Each level of access has certain restrictions, described in this article. Set up your dev environment and obtain an access token.
  • Testing - Learn how to test the Marketing API.
  • Graph API - REST-based foundation for Marketing API, how to make all CRUD operations, error handling, and debugging tips.
  • Object Structure - Campaigns, ad sets, ads and ad creatives.

Versioning

Learn more about upcoming changes and deprecations using our versioning and migration systems.

  • Versioning Overview - Facebook's Marketing API supports versioning cycles for app development stability. Learn more here.
  • Migrations - Future and past Facebook Platform Migrations. Migrations are used to apply changes across all existing versions.
  • Changelog - This changelog covers what's changed in Facebook's Marketing API. These changes include Facebook's server-side APIs and SDKs.
  • Upgrade Guide - Details about the individual changes in each version and helps you upgrade your apps across versions.

Ads Management

Create ad campaigns, provide bids for ads auction, and manage ad creative.

Quickstart

Here are the basics steps to manage ad campaigns with the Facebook Marketing API.

1. Create a Campaign

2. Define Targeting

3. Define Budget, Billing, Optimization, and Duration

4. Create Ad Creative

5. Book Ad

#Create a Campaign
curl \
-F 'name=My campaign' \
-F 'objective=LINK_CLICKS' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/campaigns #Define Targeting
curl -G \
-d 'type=adinterest' \
-d 'q=baseball' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/search #Define Budget, Billing, Optimization, and Duration
curl \
-F 'name=My Ad Set' \
-F 'optimization_goal=REACH' \
-F 'billing_event=IMPRESSIONS' \
-F 'bid_amount=2' \
-F 'daily_budget=1000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting={"geo_locations":{"countries":["US"]}}' \
-F 'start_time=2018-02-06T04:45:17+0000' \
-F 'end_time=2018-02-13T04:45:17+0000' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets #Provide Ad Creative #First, create an AdImage from an image file.
curl \
-F 'filename=@<IMAGE_PATH>' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adimages #Then, use the image hash to create the AdCreative.
curl \
-F 'name=Sample Creative' \
-F 'object_story_spec={
"link_data": {
"image_hash": "<IMAGE_HASH>",
"link": "<URL>",
"message": "try it out"
},
"page_id": "<PAGE_ID>"
}' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives #The AdCreative with your link is not yet visible in Ads Manager. You see this data once you book you ad. You can debug your ad creative with Graph API Explorer:
#GET /{my-creative-id} HTTP/1.1
#Host: graph.facebook.com #Schedule Delivery
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads

more detail……

Campaign Structure

Facebook's campaign structure has 3 levels: campaign, ad set and ad. In the API, there is a fourth level available for developers, called the creative.

  • Campaigns contains your advertising objective and one or more ad sets. This helps you optimize and measure results for each advertising objective.

  • Ad Sets have one or more ads. You define budget and schedule for each ad set. Create an ad set for each target audience with your bid; ads in the set target the same audience with the same bid. This helps control the amount you spend on each audience, determine when audience will see your ads, and provides metrics for each audience.

  • Ads contain ad creative). Create multiple ads in each ad set will to optimize ad delivery based different images, links, video, text or placements.

  • Ad creatives contain just the visual elements of the ad and once created, are immutable. Each ad account has a creative library to store creatives for reuse in ads.

  Objective Schedule Budget Bidding Targeting Creative

Campaign

✓

         

Ad Set

 

✓

✓

✓

✓

 

Ad

         

✓

Mapping between the public facing naming of the object and API endpoints:

Public facing name API endpoint

Campaign

/campaigns

Ad Set

/adsets

Ad

/ads

Creative

/adcreatives

#To read the campaigns associated with a specific account
curl -G \
-d 'effective_status=["ACTIVE","PAUSED"]' \
-d 'fields=name,objective' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/campaigns #We also show some high level insights, including impressions, clicks and the amount spent. You can retrieve these by calling the following endpoint, optionally specifying the start and/or end time:
curl -G \
-d 'end_time=1517287567' \
-d 'fields=impressions,inline_link_clicks,spend' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<CAMPAIGN_ID>/insights #Ad sets are groups of ads, and are used to configure the budget and period the ads should run for. All ads contained within an ad set should have the same targeting.
curl \
-F 'name=My First AdSet' \
-F 'lifetime_budget=20000' \
-F 'start_time=<START_TIME>' \
-F 'end_time=<END_TIME>' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'bid_amount=500' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=POST_ENGAGEMENT' \
-F 'targeting={
"age_max": 24,
"age_min": 20,
"behaviors": [{"id":6002714895372,"name":"All travelers"}],
"genders": [1],
"geo_locations": {
"countries": ["JP"],
"regions": [{"key":"3886"}],
"cities": [
{
"key": "2420605",
"radius": 10,
"distance_unit": "mile"
}
]
},
"home_ownership": [{"id":6006371327132,"name":"Renters"}],
"interests": [{"id":6003107902433,"name":"Association football (Soccer)"}],
"life_events": [{"id":6002714398172,"name":"Newlywed (1 year)"}],
"publisher_platforms": ["facebook","audience_network"]
}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets # list all ad sets within a campaign.
curl -G \
-d 'fields=name,start_time,end_time,daily_budget,lifetime_budget' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<CAMPAIGN_ID>/adsets #Ads:An ad object contains all of the information neccessary to display an ad on Facebook, such as the creative.
curl \
-F 'name=My Ad' \
-F 'adset_id=<AD_SET_ID>' \
-F 'creative={"creative_id":"<CREATIVE_ID>"}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/ads # list all of the ads for an ad set within your UI.
curl -G \
--data-urlencode 'effective_status=[
"ACTIVE",
"PAUSED",
"PENDING_REVIEW",
"PREAPPROVED"
]' \
-d 'fields=name,configured_status,effective_status,creative' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<AD_SET_ID>/ads

more detail……

Objectives

Objectives are actions you want people to make when they see the ad and objects are what people act upon. See Help Center.

#Setting Objectives:After you create new campaign, ad set, ad, and ad creative objects, provide the required fields for each object creation. 

#The minimum API call needed to create a campaign:

curl \
-F 'name=My First Campaign' \
-F 'objective=<OBJECTIVE>' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/campaigns #Explicitly setting the objective has the following benefits:
#You get correct tracking, optimization, and bidding options for your ad.
#You can view unique UI and analytics dashboards for each objective
#See campaign for acceptable values for the objective parameter. For this example, let's choose POST_ENGAGEMENT:
curl \
-F 'name=My First Campaign' \
-F 'objective=POST_ENGAGEMENT' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/campaigns

more detail……

 

Reference

  

  

facebook api之Marketing API的更多相关文章

  1. 今日头条Marketing API小工具(.Net Core版本)

    前言 由于工作原因,需要用到今日头条的Marketing API做一些广告投放的定制化开发.然后看现在网上也没多少关于头条Marketing API的文章,于是便就有了该篇文章. 头条Marketin ...

  2. criteo marketing api 相关

    官网登陆地址:https://marketing.criteo.com/ 官网api介绍:https://marketing.criteo.com/e/s/article?article=360001 ...

  3. harbor rest api 转graphql api

    原理 实际上就是使用graphql 中的binding,首先基于swagger api 进行schema 生成,后边就是 使用binding 进行graphql 请求api 转换为rest api 请 ...

  4. API网关在API安全性中的作用

    从单一应用程序切换到微服务时,客户端的行为不能与客户端具有该应用程序的一个入口点的行为相同.简单来说就是微服务上的某一部分功能与单独实现该应用程序时存在不同. 目前在使用微服务时,客户端必须处理微服务 ...

  5. 用API网关把API管起来

    最开始只是想找个API网关防止API被恶意请求,找了一圈发现基于Nginx的OpenResty(Lua语言)扩展模块Orange挺好(也找了Kong,但是感觉复杂了点没用),还偷懒用Vagrant结合 ...

  6. lumen 构建api(dingo api)

    什么是 API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力, ...

  7. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  8. 通过beego快速创建一个Restful风格API项目及API文档自动化

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  9. HTML5之本地文件系统API - File System API

    HTML5之本地文件系统API - File System API 新的HTML5标准给我们带来了大量的新特性和惊喜,例如,画图的画布Canvas,多媒体的audio和video等等.除了上面我们提到 ...

随机推荐

  1. video control

    function VideoControls(option){ this.id = option.videoId; this.videoId = document.getElementsByTagNa ...

  2. 写自动更新程序出现"远程服务器返回错误: (404) 未找到"

    在win2003配置后,在客户端运行时能够下载exe和dll文件,但是在更新lib文件时总是报“远程服务器返回错误: (404) 未找到”错误,不明白咋会出现这个问题,去网上一查,发现以下解决办法: ...

  3. Hinton“深度学习之父”和“神经网络先驱”,新论文Capsule将推翻自己积累了30年的学术成果时

    Hinton“深度学习之父”和“神经网络先驱”,新论文Capsule将推翻自己积累了30年的学术成果时 在论文中,Capsule被Hinton大神定义为这样一组神经元:其活动向量所表示的是特定实体类型 ...

  4. jenkins1

    持续集成工具: Jenkins  和 Hudson是同源的. 甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目. Jenkins:由大部分原始开发人员组成,Hudson:由甲骨文公司继续管理 ...

  5. TensorFlow for distributed

    TensorFlow for distributed 本目录包括了运行时分布式TensorFlow的实现,其底层使用了gRPC 作为进程内通信的支持库. Quick start 首先,需要构建一个Te ...

  6. sparkStreaming插入mysql 必须考虑到实时更新老的key

    原先使用批次提交更新 但数据库无变化,不得不一条一条的插入 公司数据量不大  还未做数据量大的测试 但实时更新是可以的 关键sql : insert into area_user_amt (date, ...

  7. 前端框架VUE----导入Bootstrap以及jQuery的两种方式

    Vue引入bootstrap主要有两种方法 方法一:在main.js中引入,此方法导入的bootstrap中对于html,body的一些预设置的css样式可能无效. 一.引入jQuery 在当前项目的 ...

  8. 使用json对象要注意的地方

    本人是初学渣渣,使用json过程中遇到常见的问题,总结如下: 1--json对象内部不要有注释,虽然不报错,但是会使得渲染界面失败: 2--json对象是没有length属性的,若想获取到这个leng ...

  9. 在MyEclipse中使用javadocAPI文档

    开始啦 1.打开MyEclipse,选中要导出的项目,右击Exprot弹出窗口,选择java----javadoc点击next到下一界面. 2.选出要导出的项目或要添加的项目,在browse中选择路径 ...

  10. roon

    http://www.sthifi.com/Article/ViewArticle.asp?id=10895 http://kb.roonlabs.com/LinuxInstall https://c ...