这条广告点击来自哪里?

你有过“感觉仿佛被广告轰炸”的感觉吗?比如苹果的iPhone11发布以后,街边公交站是它的广告,打开社交app有它的广告,打开视频app有它的广告,打开购物app还有它的广告,简直全方位覆盖不留死角。

不过广告投放可并不是这么简单地就结束了,广告主往往都希望能够知道来自不同渠道的广告点击访问分别有多少,以便追踪观察自己的营销和广告投放策略。一种简单易用、广泛通用的做法是,在点击广告之后跳转的页面的URL地址后面添加下面这样格式的参数:

其中用“utm_source=weibo”表示这条点击来自微博,用“utm_medium=social”表示媒体性质是属于社交平台。

这样一旦这个带参数的URL地址被访问了,它也就把访问来源记录下来了。比如XX品牌为A商品在不同平台投放了广告,希望广告点击后都可以指向同一个页面。那么在添加参数之后,不同平台的广告点击之后跳转的页面URL很可能分别是

  • 腾讯视频

    • www.xx.com/a_main.html?utm_source=tencentvideo&utm_medium=video

  • 微信

    • www.xx.com/a_main.html?utm_source=weixin&utm_medium=social

  • 腾讯网

    • www.xx.com/a_main.html?utm_source=qqcom&utm_medium=web

用这样的方式,即便不同平台投放的广告指向的是同一个页面,广告主也能简单清晰准确地了解每次点击的来源,然后用一些常见的流量统计分析工具得到统计结果,了解广告在不同平台的投放效果如何。这样的统计方式也正对应了在线广告的常见广告收费方式之一,“按点击收费”,CPC,广告在不同平台上的点击量既是广告主自己关心的直接业务指标,也是向广告平台付费的核心依据。

这条广告曝光的效果如何?

在线广告还有另一种收费模式,按照广告的曝光收费,CPM,而且CPM也已经成为了主流的广告收费模式。这一方面是因为人(也就是观看广告的潜在客户)的行为是复杂的,他很有可能观看多次广告以后被打动了,产生了购买行为,但他并不是点击广告购买的,这就无法被点击量和点击来源统计覆盖;另一方面也因为广告是复杂的,有相当比例的广告并不直接推销产品,这部分广告更看重宣扬品牌形象、建立消费者认知,并不追求观看者的直接点击购买,也就很难用点击指标为广告定价。

对在线广告平台而言,按照曝光收费是更合理的,毕竟广告平台有能力较准确地控制广告的曝光次数,而点击乃至购买行为就很大程度上受到广告自身的影响了。不过广告平台也希望能够协助广告主了解广告曝光之后的效果,即从广告曝光到广告点击乃至商品购买的转化率如何,或者反过来,购买了某个商品的消费者中有多少曾经看到过平台上曝光的广告。

隐私问题是难关

仍然以XX品牌的A商品为例。消费者购买商品的网购平台记录了A商品的所有订单信息,准确地知道谁买过A商品;广告平台也掌握着广告曝光数据,知道有哪些用户看到了平台提供的A商品的广告。理论上来说,只需要网购平台和广告平台都把数据拿出来核对,找到同时出现在两个平台数据中的用户,就可以准确追溯哪些购买了商品的用户看过广告平台上的广告,从而计算广告曝光效果。

但在实际中,这种直接核对的操作是绝对不可行的。不仅因为网购平台和广告平台经常不是同一家企业,仅仅出于保护商业机密就不可能向对方直接透露信息;更因为这些都是消费者的个人隐私数据,不可以泄露,也不可以用来识别消费者的身份。

不过,追溯广告曝光和购买之间的关系,毕竟有巨大的商业价值,网购平台和广告平台都会对这个结果感兴趣。研究人员们还是希望能够找到一些方法进行计算。

在加密保护下协作利用数据

如何在双方数据都保持保密的前提下计算双方数据的重合部分,也就是寻找数据交集呢?在期刊《Future Generation Computer Systems》上发表的由南开大学、英国密德萨斯大学、腾讯合作完成的论文《Unbalanced private set interp cardinality protocol with low communication cost》就提出了一种隐私交集算法来解决。

这个方法的核心是加密。双方都要把数据集中的每一条数据用一定的加密函数加密,加密后的数据对方无法解密、无法读取。网购平台方、广告平台方的加密函数分别是f(x)、g(y),为了能实现加密条件下的数据交集计算,经过精巧的设计让f(x)和g(y)满足交换加密。即:

当数据库中的数据条目x=y时,f(g(y))=g(f(x))

这样,双方只需要把自己的数据库逐条加密再发送给对方,接收到对方发送的加密后的数据库后再进行一次加密,得到了两种不同加密顺序后的结果。加密后的结果不会泄露原始数据,可以直接对比,也就知道了双方数据库的交集大小,完成了广告曝光效果溯源。

挖掘数据交集中的更多信息

除了“完成了购买的用户有多少观看过广告”之外,购物平台和广告平台还可能会对一些相关的其它数据感兴趣,比如上一节中计算交集得到的这部分用户的总消费金额。这个数据的计算更为复杂一点,但以隐私集合交集运算的方法,通过加密进行计算,并且仍然保证双方的数据保密,而且得到交集用户消费总金额的同时也依然保证了无法得知这些用户的身份。

在通过加密方法达成目标的这个层面之外,隐私交集算法本身在使用中的安全性也需要经得起检验。在论文中作者们对方法的安全性进行了谈论和验证,证明它足够安全。而且,作者们还考虑了双方不对等的情况,其中一方可以是低功耗的IoT设备,计算能力非常有限,那么它就不需要加密另一方的数据;当广告平台方的数据远多于购物平台方的数据时,算法会具有很高的执行效率。

通过隐私交集算法,不同角色的平台或企业之间可以在数据互相保密的前提下寻找到其中的重合数据,找到隐含的商业价值,比如本文提到过的追溯购买了某产品的消费者中有多少观看了广告平台上的广告,乃至找到交集消费者的总消费金额,就是典型的例子。

关于隐私交集算法的详细介绍以及这篇论文相关的技术讨论,我们将邀请论文作者在wiztalk系列学术视频中为大家讲解。敬请期待。

你知道 URL 后面的这些 utm_xxx 参数都是干嘛的吗?相关推荐

  1. 两图说明 java 开发工具中启动类参数都是干嘛的

    开发工具中启动类参数都是干嘛的? 之前经常在开发工具中见到配置启动类参数,但从来不清楚是干啥的.实际中在搭建环境中VM options 配置信息比较常见.主要为了设置一些配置信息,比如dubbo的一些 ...

  2. Toast.makeText()各个参数都是干嘛的

    Toast.makeText()各个参数都是干嘛的 Toast:是一个类,主要管理消息的提示. makeText(),是Toast的一个方法,用来显示信息,分别有三个参数. 第一个参数:this,是上 ...

  3. java 隐藏地址栏参数_要想在浏览器的地址栏上的URL中隐藏传输的参数,需要将form标签的method属性值设置为( )。 (5.0分)_学小易找答案...

    [填空题]若在JSP页面的不同作用域中有相同名称的对象,且EL表达式中又省略了相应的作用域类型名,则系统将会按照 . . . 的先后顺序查找相应对象. (20.0分) [简答题]AJAX异步请求过程中 ...

  4. 怎么实现Web系统URL传输(表单提交)参数加密-zhuan

    using System; using System.Security.Cryptography; using System.IO; using System.Text; namespace EIP. ...

  5. 【Nginx】判断URL中是否存在某个参数Parameter

    前言 nginx 1.15.11(下面的代码在此版本测试通过) 判断URL中是否存在某个参数Parameter 假设,当URL中存在参数method=autoGenerateIndex(区分大小写)时 ...

  6. 如何用js获取浏览器URL中查询字符串的参数

    首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...

  7. php判断url参数为空,PHP检查url链接是否已经有参数的简单示例

    这篇文章主要为大家详细介绍了PHP检查url链接是否已经有参数的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!比如分页,因为有些链接已经有 ...

  8. JavaScript学习(八十)—请写一段JS程序提取URL中的各个get参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中

    JavaScript学习(八十)-请写一段JS程序提取URL中的各个get参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中 题目: 代码:

  9. Python爬虫:url中带字典列表参数的编码转换

    平时见到的url参数都是key-value, 一般vlaue都是字符串类型的 如果有幸和我一样遇到字典,列表等参数,那么就幸运了 python2代码 import json from urllib i ...

最新文章

  1. python机器学习可视化工具Yellowbrick介绍及平行坐标图实战示例
  2. Channel延续篇
  3. File Explore 中data权限修改,实体机
  4. vc++ mfc 非客户区 描绘线_决战客户端技术
  5. 真香!GitHub刚刚宣布:私有库免费啦!
  6. MySQL LIMIT:限制查询结果的记录条数
  7. jQuery的Growl插件
  8. Scala可以将Java中的接口当作特质来使用
  9. the python challenge_pythonchallenge 全部关卡提示
  10. c语言代码行数统计标准,Shell脚本实现C语言代码行数统计
  11. java h5 调用摄像头_基于百度AI使用H5实现调用摄像头进行人脸注册、人脸搜索功能(Java)...
  12. 马拉车算法(求最长回文串)
  13. 京东和天猫的运营模式的区别
  14. Appium_3_环境配置_Appium-desktop配置
  15. linux里sub用法,awk中gsub和sub 的用法
  16. CSS 利用@media screen判断识别手机/PC端浏览器
  17. [源码和文档分享]VC++实现的基于人眼状态的疲劳驾驶识别系统
  18. 3D MAX石墨工具学习技巧
  19. 嵌入式开发 | 单片机能用C++开发吗?
  20. 墨迹天气总显示内部服务器更新,互联网要点:墨迹天气无法更新如何解决方法教程...

热门文章

  1. premiere pr 波纹编辑 滚动编辑 比率拉伸 工具使用
  2. putty 配置导出
  3. golang beego框架对运行异常的处理
  4. goland 设置project gopath
  5. linux 内核 file_operations结构体各项解析
  6. Android开发--用户定位服务--UserLocation
  7. Hadoop3.0基础平台搭建(三节点),以及案例运行并使用python生成词云
  8. 序列化--反序列化:Schema evolution in Avro, Protocol Buffers and Thrift
  9. Qt中使用C++的方式
  10. leetcode10 为什么p[j-1] == '*'的时候,不能用递推公式dp[i][j] = dp[i][j-1] || dp[i][j-2] || dp[i-1][j]