4、facebook Marketing API 学习整理

一、先创建一个广告应用

一个应用程序包含了营销API或其他的Facebook的API构建的任何类型的功能。


配置您的Facebook应用以使用Marketing API和其他设置。

二、开发者的沙盒模式

可以在沙箱模式下执行测试。此模式提供了一个测试环境,可帮助创建启用Marketing API调用的广告帐户,但实际上并不会投放广告。
可以在Sandbox模式下进行所有读写API调用。只能创建一个沙箱广告帐户,无论该应用所在的访问级别如何。

三、FacebookAds SDK 和 Facebook SDK 结合使用

1、获取两个SDK

{
  "require": {
    "facebook/php-sdk-v4" : "~5.0",
    "facebook/php-ads-sdk": "2.5.*"
  }
}

2、通过Facebook SDK获取访问令牌(Token)

require_once __DIR__ . '/vendor/autoload.php';

use Facebook\Facebook;
use Facebook\Exceptions\FacebookResponseException;
use Facebook\Exceptions\FacebookSDKException;

// Init PHP Sessions
session_start();

$fb = new Facebook([
  'app_id' => '1719520245027862',
  'app_secret' => '{your-app-secret}',
]);

$helper = $fb->getRedirectLoginHelper();

if (!isset($_SESSION['facebook_access_token'])) {
  $_SESSION['facebook_access_token'] = null;
}

if (!$_SESSION['facebook_access_token']) {
  $helper = $fb->getRedirectLoginHelper();
  try {
    $_SESSION['facebook_access_token'] = (string) $helper->getAccessToken();
  } catch(FacebookResponseException $e) {
    // When Graph returns an error
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
  } catch(FacebookSDKException $e) {
    // When validation fails or other local issues
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
  }
}

if ($_SESSION['facebook_access_token']) {
  echo "You are logged in!";
} else {
  $permissions = ['ads_management'];
  $loginUrl = $helper->getLoginUrl('http://localhost:8888/marketing-api/', $permissions);
  echo '<a href="' . $loginUrl . '">Log in with Facebook</a>';
} 

3、使用FacebookAds SDK初始化Marketing API,并获取相关广告数据

// Add to header of your file
use FacebookAds\Api;
use FacebookAds\Object\AdUser;

// Add after echo "You are logged in "

// Initialize a new Session and instantiate an Api object
Api::init(
  '1719520245027862', // App ID
  '{your-app-secret}',
  $_SESSION['facebook_access_token'] // Your user access token
);
$me = new AdUser('me');
$my_adaccount = $me->getAdAccounts()->current();
print_r($my_adaccount->getData());

市场营销API 参考:https://developers.facebook.com/docs/marketing-api/reference/v2.8

4、问题:

在引入FacebookAds后发现没有autoload.php自动加载类文件

解决办法:spl_autoload_register


-------------------更新于2017/02/17-------------------------

old

1、在“广告管理工具”使用alipay充值3块钱

#getting ad accounts 获取到ad node

2、FB.api('/me/adaccounts');  FB.api('/me/adaccounts?fields=id,name');  FB.api('act_221377094983518?fields=id,name');

#creating campaigns 创建广告系列

3、FB.api('/act_221377094983518/campaigns', 'POST', {'name':'我的广告','objective':'LINK_CLICKS'}); MOBILE_APP_INSTALLSCONVERSIONS

#updating campaigns 修改广告系列的相关设置

4、FB.api('23842545377820361', 'POST', {'status':'PAUSED'}); //暂停

#creating ad sets 创建广告组  广告组参数文档

var account_id = 'act_221377094983518'; // Replace with your account ID.
var campaign_id = '23842545377820361'; // Replace with your campaign ID.

log(campaign_id);

if (campaign_id) {
  FB.api(account_id + '/adsets', 'POST', {
    name: '我的广告组',

    bid_amount: '5',//出价金额
    daily_budget: '2000',//每日预算
    billing_event: 'LINK_CLICKS',
    optimization_goal: 'LINK_CLICKS',

    targeting: {
      geo_locations: {
        countries: ['US']
      }
    },

    status: 'PAUSED',
    campaign_id: campaign_id
  });
}

#create ad creative 创建广告素材

#create ad 创建广告  (注意:创建素材的同时,创建广告)

var account_id = 'act_221377094983518'; // Replace with your account ID.

FB.api(account_id + '/adcreatives', 'POST', {
  name: 'My Ad Creative',
  title: 'Facebook Marketing Partners',
  body: 'Get exactly the things you need from your marketing.',
  image_url: 'https://fb.me/1UEB1MtuiFFRzNJ',
  object_url: 'https://www.facebookmarketingpartners.com'
});

//使用上面的素材 创建广告
FB.api('act_221377094983518/ads', 'POST', { creative_id: '23842545384610361'});


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章