抖音CLICKID+淘宝Relaitionid回传淘积木APP内下单--转化归因联调ROI程序算法及代码技术实现!
大概从最早今年22年5月初网上流传的一篇“最近在电商圈爆火的 clickID 是什么来头”以来,关于这个话题的各种文章及营销文章漫天飞舞,没有一篇是讲解程序算法及程序实现的,也不够深入和细节!。本文讲解一下这种技术方案的整体算法和程序实现,以及流程和细节中见过的各种问题。
首先对于一般的自建站,去做抖音推广,如果要做注册付费下单等各种转化追踪事件回传联调,抖音官方有详细的对接文档说明和程序代码实现DEMO程序。只要具备一定程序代码能力,一般都能完成回传对接和联调工作。
现在说一下,在抖音巨量上推广淘宝店铺商品,在做回传转化时,一般是没法直接做回传对接的,因为抖音回传对接需要的网页类Clickid值,或者APP应用类的IMEI,IDFA及IP地址,通过淘宝订单接口查询信息中是没有不提供的。由于这块从业者广众!民间的各路技术高手们都在私下里研究对策及实现方法。目前市面上最早流传出来的一篇NB文章,就是开头说的那篇。之后网上爆发的很多文章都是根据那篇文章改编发布的。该篇文章核心内容摘出如下:
【据我所知,clickID 目前有两种归因方式,一种是模糊归因,通过采用查询订单成交时间,地址,手机,ip等字段参数,去匹配对应的属性和就近时间的 clickID 方式。另外一种是精准归因,是在落地页上将 pid + rid 和 clickID 进行绑定实现的。】和一个经典泛滥的讲解大图:
按照一般正常来说,这种一看就是某一运营公司内部资料,一般是不会外泄的!那么为什么会外泄呢?除了偶发原因,那估计和阿里的一篇公告有关了。那就是今年4月27号,阿里发布的一篇公告:
【基于规范市场管理的考虑,自2022年5月3日起,来自内容场景推广带有渠道关系ID(就是Relationid)的流量,作为异常流量将无法进行跟踪结算;如继续滥用渠道管理权限等不合理方式产生的订单,将按照异常流量处罚。
后续,淘宝联盟也将进行过滤升级,消费者访问异常推广链路进入手淘后会提示报错信息并跳转淘宝平台首页,推广链接无法进行跟踪、结算。】
可能是运营公司也感受到了限制和影响,觉得没法继续顺畅的使用了,比如限制了联盟号的一些权限导致不能正常运营推广等。感觉要失效了,所以才公布发布出该篇资料文章。
对!这篇文章揭示了淘宝店铺淘积木做抖音巨量推广,想做回传转化的两种模式。模糊匹配回传这种模式,一般是技术不够行,小推广客户低频率点击广告情况下的一种无奈的方案。它有一个特点,就是低频率情况下它的回传还算是精准的,但是一旦人多了它就不准了。那么也就没啥用没啥效果了。对于中高流量推广的用户来说没啥用!。它的原理是按照时间相关相近性去进行匹配回传的。所以人多了频率高了,回传就肯定会乱就不准了。
**重点说一下精确匹配这种模式:**
精确匹配,就是保证客观真实的用户下单后, 回传对应的该点击下单人的Clickid值给抖音平台,因为巨量是靠这个去识别区分人群信息特征的。在一般开始投放一天两天,回传给巨量正确的人的信息以后,它会建立一个数据模型,它利用程序算法去统计这群人的喜好等人群特征,总结计算出来以后,为下一步广告投放 去优化人群投放策略!进而实现更低消费 更高效益的 高效率推广。
目前一般实现方法就是,用一个中间落地页,去实现CLICKID的绑定和传递,这一步必不可少!不管页面是用户点击打开淘积木页面或者店铺商品页面,还是页面加了自动跳转不需要用户去点击自动跳转打开,这一步不能少。
整个实现上 还有三个难点,①RID值的生成,手动方式费事费力不行!需要用软件批量生成才行,②传递RID值,需要进行媒体广告代理商备案,只要你有正常资料,去提交申请即可!一般一天左右就能通过审核!!现在阿里淘宝在经历了大起大落以后,换了几任CEO之后,变动低调谦逊了。变得宽容了,但凡能让你过审的都会过!③一般淘宝联盟号,不具备订单查询功能,怎么办,可以去找那些第三方平台接口去使用。
在解决了以上问题以后,一切准备就绪以后,就进入程序算法和代码编程实现部分。
RID值数量的一般都是有限性,一般批量生成也就是三千或者六千的!太多了会引起淘宝注意而引发扣分处罚导致不能使用推广功能。
①导出批量生成的RID值数量,导入到数据库RID表中,
②用户点击抖音广告,进入到中间落地页,去随机从RID表总获取一个RID值,形成一条广告点击记录,写到douyin—Callbak表中。
③假如有人点击了中间页面落地页上的立即购买按钮,进入到淘积木页面上,其中有人下单了!
④通过定时轮训程序roll,去通过第三方淘宝订单接口查询功能,获取当前淘宝下单数据,从Json数据中解析出Relationid值。
⑤去上边douyin-Callback表中去匹配查询,如果有该条记录,就执行抖音的Callback链接去回传付费或者APP内下单给抖音平台。没有就放弃。
算法流程中最大难点就是在于,因为RID值的数量的有限性,要考虑复用!因为有复用就会有循环周期。怎么样在循环使用中,最大限度的保证它的唯一性是一个难点。因为不能把有效时限设置太长,难免会有真实的下单的回传会被丢弃!这个也是被迫和无奈的选择,这个也是唯一不足的地方。如果不循环使用而一次性使用,那么RID值数量一般几分钟内就会被用光。
回传部分程序代码:
完成落地页API技术对接 #获取广告参数信息
您将落地页链接输入到我们巨量引擎中后,我们会自动为你的链接增加 4 个参数adid=__AID__&creativeid=__CID__&creativetype=__CTYPE__&clickid=__CLICKID__
举个例子:原始的 url 是Link,我们会给这个落地页后增加这组参数,变成 Link?adid=__AID__&creativeid=__CID__&creativetype=__CTYPE__&clickid=__CLICKID__。需要注意的是,如果原来的url 已有参数,我们会在 query 里增加这些参数,并且有可能会改变原有参数的顺序。例如原有的 url 是Link?a=b&c=d#fragment,我们拼接参数后url会变成 Link?adid=__AID__&c=d&creativeid=__CID__&a=b&creativetype=__CTYPE__&clickid=__CLICKID#fragment。
您可以在落地页的 query 参数中,获取 clickid 这个参数,这个就是关键广告信息。
进行转化回调获取到 clickid 的参数以后,调用我们的回传接口进行转化上报。
请求地址 : https://analytics.oceanengine.com/api/v2/conversion
请求方法:POST
请求体:
{
"event_type": "in_app_order", //APP内下单
"context": {
"ad": {
"callback": "EPHk9cG5K3L84ZENKI7w4MDev_4C",//callback 这里需要填写的就是从启动参数里获取的 clickid
}
},
"timestamp": 1904666786102
}
返回值:
{
"code":0,
"message":"成功"
}
function curl_post($link){
$header = array(
'Accept: application/json',
);
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, $url);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 0);
// 超时设置,以秒为单位
curl_setopt($curl, CURLOPT_TIMEOUT, 5000);
// 超时设置,以毫秒为单位
// curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
// 设置请求头
*回传对接程序--作者Q:1918003003. 如有建议或技术疑问,请添加进行反馈!
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
//执行命令
$data = curl_exec($curl);
// 显示错误信息
if (curl_error($curl)) {
print "Error: " . curl_error($curl);
} else {
// 打印返回的内容
// var_dump($data);
return $data;
curl_close($curl);
}
本篇文章完毕!如果有技术疑问或者问题,作者Q: 1918003003 欢迎一起探讨和研究!