百度推广线索api联调
百度搜索推广以及信息流推广为监测数据转化情况,会使用到线索api联调,其共有119种转化方式,转化编号以1-119数字编号命名,具体规则可参照百度转化追踪转化编码类型明细。本文以TP5框架为例说明如何进行联调。
TP5核心代码:
<?php namespace app\index\controller; use think\Db; use think\Session; class Index extends Common { 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); // 发送完整的请求数据 // 向百度发送数据 $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) { // 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; } public function index() { $bd_vid=input('bd_vid'); Session::set('bd_vid',$bd_vid); //将bd_vid值以SESSION形式储存,方便在页面上进行事件触发时不再需要从页面往回传值。 //以下是自己的业务逻辑 $search['b.look']=['=','1']; $infolist=db('form_travel')->alias("a") ->join('formcon b', 'a.conid = b.vid') ->where($search) ->order('conid desc')->limit(5) ->select(); $this->assign([ 'infolist' => $infolist, ]); Db::table('lecms_block')->where('id', 50)->setInc('content'); $num= db('form_travel')->count(); //获取评论总数 $this->assign('num',$num); return $this->fetch($this->tpl_file.'index_index.html'); } //页面上的点击事件,点击后调用联调 public function copylink(){ //从session获取回bd_vid值传给落地页 $newbd_vid=Session::get('bd_vid'); //echo($newbd_vid); $token = '你的百度token'; // 编辑一条转化数据 $cv = array( 'logidUrl' => "https://www.nmbn.net/?bd_vid=$newbd_vid", // 您的落地页url 'convertType' => 35 // 转化类型请按实际情况填写 35是代表复制微信事件 ); // 此处仅为demo, conversionTypes支持添加更多数据 $conversionTypes = array($cv); $this->sendConvertData($token, $conversionTypes); //$info = ['code'=>1,'status'=>'success','msg'=>'联调成功!']; //return json($info); } }
测试成功后的联调状态会变更为联调成功,此时即可正常投放广告。
CSDN-Ada助手: 恭喜您发布了第7篇博客!看到您分享关于LAYUI动态表格的使用经验,真是受益匪浅。对于给列追加template,自定义图标、背景色等的方法,您的总结非常清晰,让读者能够更好地理解和应用。希望您能继续保持创作的热情和耐心,可以考虑探讨更多关于LAYUI或其他前端技术的实用技巧,或者分享一些项目实战经验,这样读者们会更加期待您的下一篇博客!期待您更多有价值的内容,加油!
CSDN-Ada助手: 恭喜用户写出第8篇博客!关于LAYUI数据回显时单选框无法选中问题的解决方案,非常有实用性。接下来,建议可以继续深入研究LAYUI的其他使用技巧或者解决常见问题,为更多的开发者提供帮助。期待您的下一篇博客!愿您在创作的道路上不断进步,谢谢您的分享!
CSDN-Ada助手: 恭喜作者发布了“小程序电子围栏系统”这篇博客!看到您持续创作,真的很令人振奋。希望您能继续分享关于小程序电子围栏系统的更多实践经验和技术分享,或者可以尝试写一些与电子围栏系统相关的案例分析,让读者更加深入地了解这个领域。期待您的下一篇作品!
相逢太短,莫等茶凉: 只要id不一样就行了,页面离开时记得销毁.dispose(),不然重新进入还是会报这个错
yuwenwenwenwenyu: 这个id是不能重复的,你可以拼接一个你当前那一条数据的唯一标识