廣點通sdk接入
阿新 • • 發佈:2018-12-14
騰訊廣點通Marketing API接入Web行為資料
api思路:
(1)使用者點選騰訊推廣的廣告,同時生成隨機的 click_id,並追加到落地頁的url。
(2)落地頁的表單提交後,可以利用 API 將 click_id 和 轉化型別(ActionType) 一併上報給騰訊社交廣告
目的:經過騰訊社交廣告計算,將最終資料呈現在投放端(e.qq.com)
開發流程:
- 上報模式的選擇:模式二授權充分
- 賬號準備:
step1,step2傻瓜式操作即可。
step3.4:
準備步驟
public function text(){ $backurl="http://回撥的域名/Admin/Gdt/back";//應用裡面回撥的域名 $result = urlencode($backurl); $url = 'https://developers.e.qq.com/oauth/authorize?client_id=你的client_id&redirect_uri='.$result.'&state=&scope='; header("Location:".$url); }
獲取access_token 和 refresh_token,存在時間限制
public function back(){ //判斷是否含有code值 $txapi = M('txapi'); $data = $txapi->find(); if(empty($data)){ $action = 1;//獲得新的 access_token 和 refresh_token }else{ $time = time(); $edittime = strtotime($data['t_Datetime']);//編輯時間 $gaptime = $time-$edittime; if($gaptime >= 86400 && $gaptime < 2592000){//24小時外 $action = 0; //僅僅獲得新的access_token }elseif($gaptime >= 2592000){//1個月外 $action = 1;//獲得新的 access_token和refresh_token }else{ $action = 2;//不變 } } $backurl="http://回撥的域名/Admin/Gdt/back"; $result = urlencode($backurl); if($action == 0){ //獲取token值 $url ="https://api.e.qq.com/oauth/token?client_id=你的client_id&client_secret=你的client_secret&grant_type=refresh_token&refresh_token=".$data['t_Refresh_Token']; $curl = curl_init(); // 啟動一個CURL會話 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密演算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json物件 curl_close($curl); //關閉URL請求 $dataRet=json_decode($tmpInfo,true); $info['t_Access_Token'] = $dataRet['data']['access_token']; $info['t_Refresh_Token'] = $dataRet['data']['refresh_token']; $info['t_User_Action_Set_Id'] = ''; $info['t_Datetime'] = date("Y-m-d H:i:s"); $info['t_Id'] = $data['t_Id']; $result = $txapi->save($info); $this->getsource(); echo "編輯ok"; }elseif ($action == 1){ //獲取token值 $authorization_code =$_GET['authorization_code']; $url ="https://api.e.qq.com/oauth/token?client_id=你的client_id&client_secret=你的client_secret&grant_type=authorization_code&authorization_code=".$authorization_code."&redirect_uri=".$result; $curl = curl_init(); // 啟動一個CURL會話 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密演算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json物件 //關閉URL請求 curl_close($curl); $dataRet=json_decode($tmpInfo,true); $info['t_Authorization_Code'] = $authorization_code; $info['t_Access_Token'] = $dataRet['data']['access_token']; $info['t_Refresh_Token'] = $dataRet['data']['refresh_token']; $info['t_User_Action_Set_Id'] = ''; $info['t_Datetime'] = date("Y-m-d H:i:s"); $result = $txapi->add($info); $this->getsource(); echo "新增ok"; }else{ //不變 $this->getsource(); echo "不變ok"; } }
建立使用者行為資料來源
public function setsource(){ $txapi = M('txapi'); $data = $txapi->find(); $timestamp = time(); $nonce = rand(); $url = "https://api.e.qq.com/v1.0/user_action_sets/add?access_token=".$data['t_Access_Token']."×tamp=".$timestamp."&nonce=".$nonce; $curl = curl_init(); // 啟動一個CURL會話 $header=array( "Accept: application/json", "Content-Type: application/json", ); //設定post資料 $post_data = array( "account_id" => "你的account_id", "type" => "WEB", "name" => "測試哈哈", "description" => "胡胡是個小可愛" ); curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 從證書中檢查SSL加密演算法是否存在 curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬使用者使用的瀏覽器 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設定Referer curl_setopt($curl, CURLOPT_POST, 1); // 傳送一個常規的Post請求 curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post_data)); // Post提交的資料包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定超時限制防止死迴圈 curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的資訊以檔案流的形式返回 curl_setopt($curl, CURLOPT_HTTPHEADER,$header); $tmpInfo = curl_exec($curl); // 執行操作 curl_close($curl); // 關閉CURL會話 $dataRet=json_decode($tmpInfo,true); }
獲取使用者行為資料來源
public function getsource(){
$txapi = M('txapi');
$data = $txapi->find();
$timestamp = time();
$nonce = rand();
$url ="https://api.e.qq.com/v1.0/user_action_sets/get?access_token=".$data['t_Access_Token'].
"×tamp=".$timestamp."&account_id=你的account_id&nonce=".$nonce;
$curl = curl_init(); // 啟動一個CURL會話
$header=array(
"Accept: application/json",
"Content-Type: application/json;charset=utf-8",
);
curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 從證書中檢查SSL加密演算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬使用者使用的瀏覽器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設定Referer
curl_setopt($curl, CURLOPT_POST, 1); // 傳送一個常規的Post請求
curl_setopt($curl, CURLOPT_POSTFIELDS); // Post提交的資料包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定超時限制防止死迴圈
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的資訊以檔案流的形式返回
curl_setopt($curl, CURLOPT_HTTPHEADER,$header);
$tmpInfo = curl_exec($curl); // 執行操作
curl_close($curl); // 關閉CURL會話
$dataRet=json_decode($tmpInfo,true);
$reback['t_User_Action_Set_Id'] = $dataRet['data']['list'][0]['user_action_set_id'];
$reback['t_Id'] = $data['t_Id'];
$txapi->save($reback);
}
上傳使用者行為資料
public function useraction(){
$txapi = M('txapi');
$data = $txapi->find();
$timestamp = time();
$nonce = rand();
$url = "https://api.e.qq.com/v1.0/user_actions/add?timestamp=".$timestamp."&access_token=".$data['t_Access_Token']."&nonce=".$nonce;
$curl = curl_init(); // 啟動一個CURL會話
$header=array(
//"Accept: application/json",
"Content-Type: application/json",
);
$post_data ='
{
"account_id":你的account_id,
"user_action_set_id":你的user_action_set_id,
"actions":
[
{
"outer_action_id": "",
"action_time":'.$timestamp.',
"user_id":{
"hash_imei":"f9efca36a3c30e1cf28170d86ecbf5e9"
},
"trace":{
"click_id":"1"
},
"action_type":"RESERVATION"
}
]
}
';
curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 從證書中檢查SSL加密演算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬使用者使用的瀏覽器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設定Referer
curl_setopt($curl, CURLOPT_POST, 1); // 傳送一個常規的Post請求
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); // Post提交的資料包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定超時限制防止死迴圈
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的資訊以檔案流的形式返回
curl_setopt($curl, CURLOPT_HTTPHEADER,$header);
$tmpInfo = curl_exec($curl); // 執行操作
curl_close($curl); // 關閉CURL會話
$dataRet=json_decode($tmpInfo,true);
var_dump($dataRet);exit;
}