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'});


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