百度推广线索api埋码实战php版本
用法介绍
-
- 在php比如支付成功业务处理逻辑页面,放这个代码就行
-
- 老版本convertType字段(已对接的无需变动),新对接的用newType字段,好像亲测用了老的不行,请参照最新的转化类型编码 回传,不可为空
-
- 新版字段参考链接https://dev2.baidu.com/content?sceneType=0&pageId=101207&nodeId=655
-
- 修改token,修改logidUrl,修改newType字段
/**
* Class APIDemo API回传数据Demo
*/
class APIDemo {
const BAIDU_OCPC_URL = 'https://ocpc.baidu.com/ocpcapi/api/uploadConvertData';
const RETRY_TIMES = 3;
/**
* @param $token
* @param $conversionTypes
* @return bool 发送成功返回true,失败返回false
*/
public function sendConvertData($token, $conversionTypes) {
$reqData = array('token' => $token, 'conversionTypes' => $conversionTypes);
$reqData = json_encode($reqData);
// 发送完整的请求数据
// do some log
print_r('req data: ' . $reqData . "\n");
// 向百度发送数据
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, self::BAIDU_OCPC_URL);
curl_setopt($ch, CURLOPT_POSTFIELDS, $reqData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($reqData)
)
);
// 添加重试,重试次数为3
for ($i = 0; $i < self::RETRY_TIMES; $i++) {
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode === 200) {
// 打印返回结果
// do some log
print_r('retry times: ' . $i . ' res: ' . $response . "\n");
$res = json_decode($response, true);
// status为4,代表服务端异常,可添加重试
$status = $res['header']['status'];
if ($status !== 4) {
curl_close($ch);
return $status === 0;
}
}
}
curl_close($ch);
return false;
}
}
$token = '百度推广给的tokenxxxxxx';
// 编辑一条转化数据
$cv = array(
'logidUrl' => 'http://xxxxxx?bd_vid=带有bd_vid的落地页url', // 您的落地页url
'newType' => 10 // 转化类型请按实际情况填写,10是服务购买成功
);
// 此处仅为demo, conversionTypes支持添加更多数据
$conversionTypes = array($cv);
$demo = new APIDemo();
$demo->sendConvertData($token, $conversionTypes);
参考链接:https://dev2.baidu.com/content?sceneType=0&pageId=101211&nodeId=658