首先通过一些关键词解释普及或者回顾一下背景,

ADX: Ad exchange的简称。一般特指Ad exchange平台模块
DMP: Data Management Platform的简称。DMP存储了流量、受众的各种特征信息。
DSP: Demand Side Platform的简称。可以看做流量的购买方,为广告主服务。广告主可以通过DSP购买流量,达到营销的目的。DSP可以接入ad exchange中,参与cpm竞价,购买所需要的受众流量。
SSP: Supply Side Platform的简称。可以看做流量的供应方,为网站主服务。网站主可以通过SSP实现其流量变现,达到流量变现的目的。
Cookie mapping: DSP提供的一个平台cookie到DSP私有cookie的映射服务。
 
 

RTB中cookie mapping究竟是什么?

 
首先要明确一下cookie的重要性,RTB允许DSP在的Ad Exchange平台上做交易,在接入Ad Exchange的流量曝光上,针对每一个PV,每一个用户的属性进行分析以及竞价,从而购买到ROI最高的流量,所以RTB的核心在于“人”,在于人群 的分析技术。
 
互联网上关于网民作为一个实体必须存在唯一标识,这个标识就必须依赖cookie,标识的产生通俗来讲就是“种cookie”技术。例如, 访问neoremind.net,则可以在neoremind.net下种一个USERID=ABC123的cookie,该网民的身份证就是 ABC123,而网站子域名,例如test.neoremind.net也可以共享使用此cookie。下文中USERID与用户标识混用,表示同一个概 念。
 
像百度、google、淘宝等大站,本身其Ad Network覆盖庞大,加之其自身的人群分析技术,会积累了大量的关于网民用户的特征数据,这也就是说其自身已经是一个DMP,其分析出的访客特征数据 对于DSP决定是否购买流量非常重要,当然DSP也可以利用自己的技术或者第三方DMP平台的数据自行灵活分析该用户。而其定义网民实体也是靠 cookie,例如百度域下面的cookie BAIDUID就是百度所利用的标识。这个标识本身属于各个公司的重要数据,因此绝对不会暴露给第三方。
 
在RTB的一个重要环节——竞价中,bid request中一般会含有一个Ad Exchange平台提供的访客标识,这个标识可以理解为类似于USERID的cookie,但是绝对不会是Ad Exchange系统内部的ID,一般会利用非可逆加密算法做一次hash再给DSP,经过加密后的USERID我们叫做USERID’。而DSP一般需 要针对bid request中的各种维度数据,包括PV信息,用户特征信息,广告位信息等决定是否购买此次曝光,还有现今流行的“ 再营销(retargeting) ”技术必须依赖用户标识,所以这个USERID’是DSP需要的,DSP需要自行维护一个USERID’的matching table,就是该USERID’与自己定义的用户标识的一个映射。
 
 

一般cookie mapping如何实现?

 
1)Ad Exchange Server生成cookie mapping url,在返回给浏览器的广告JS代码中,将url置入一个img标签中。例如Google Ad Exchange中的代码如下,
 
<img src="http://cm.g.doubleclick.net/pixel?google_nid=1234&google_cm" />
 
广告展现时,该url向cookie mapping server,也就是cm.g.doubleclick.net发请求。
 
 
2)Cookie mapping server通过google_nid获取DSP在系统内设置的cookie mapping url(假设为ad.network.com)和token,并从HTTP HEADER中获取投放域中的cookie,如GOOLELID,将GOOLEID和token进行hash后得到google_gid,最后返回一个 302重定向请求到如下地,
 
http://ad.network.com/pixel?google_gid=dGhpcyBpcyBhbiBleGFtGxl&google_cver=1&extra1=xx&extra2=yy
 
 
3)DSP系统会接收该302请求,并记录该google_gid,维护自己的matching table。
 
 
4)最后DSP服务器返回一个空白的 1×1 像素的图片,种自己的cookie,这样就把自己的cookie与google的cookie联系映射在一起了。
 
 
这个过程的架构图如下,
 

一个具体的story

 
小丽清除了缓存中的所有 Cookie。随后,她访问了 ExampleNews.com 的首页。
 
对整个过程的说明如下:
 
ExampleNews.com 将会显示并调用 Ad Exchange 的广告。
广告单元符合动态分配资格,因此 Ad Exchange 会进行call out,也就是发送bid request给各个DSP。
A DSP 赢得竞价,并返回bid response至 Ad Exchange。
Ad Exchange 向小丽投放 A DSP 的广告,并设置她的 Cookie。
浏览器调用 Google 的 Cookie mapping服务。
Cookie mapping服务读取小丽的 Cookie,并将设好 USERID’的重定向传送至 A DSP设置的cookie mapping url。
A DSP 生成 Cookie,并将此 Cookie 存储在其matching table中与小丽的 USERID’相对应的位置。
A DSP 将其 Cookie 放到小丽的浏览器中,并在响应中提供一个空白的 1×1 像素。
 
流程图如下,
 
第 2 种情况:买方和 Ad Exchange
 
一个星期后,小丽再次访问了 ExampleNews.com。现在,小丽的电脑上同时存有买方和 Ad Exchange Cookie,我们来看看匹配功能的运作方式。
 
小丽会看到网页,同时,html 代码会包含向 Google 请求广告的调用。
在广告竞价期间,Ad Exchange 会向实时出价合作伙伴 A DSP 发出调用请求,让其选择是否要对展示进行出价。
买方收到包含展示信息和 USERID’的广告调用。
A DSP 在其匹配表中查找 USERID’,以找出一周前创建的 Cookie。
A DSP 利用与其 Cookie 相关的信息,对展示进行出价并赢得这次展示机会。
A DSP 根据所掌握的信息向小丽投放与其兴趣相符的广告。
 
参考:
http://www.tuicool.com/articles/vauiYfM

RTB竞价中的cookie mapping技术的更多相关文章

  1. Cookie mapping技术

    摘要: RTB竞价中的cookie mapping技术解决DSP的cookie跟ad change的cookie匹配问题. Cookie mapping分为两步:(1)google ad exchan ...

  2. cookie mapping 原理理解

    深入浅出理解 COOKIE MAPPING Cookie mapping技术 利用javascript跨域访问cookie之广告推广

  3. Ajax跨域问题及解决方案 asp.net core 系列之允许跨越访问(Enable Cross-Origin Requests:CORS) c#中的Cache缓存技术 C#中的Cookie C#串口扫描枪的简单实现 c#Socket服务器与客户端的开发(2)

    Ajax跨域问题及解决方案   目录 复现Ajax跨域问题 Ajax跨域介绍 Ajax跨域解决方案 一. 在服务端添加响应头Access-Control-Allow-Origin 二. 使用JSONP ...

  4. 深入浅出理解 COOKIE MAPPING

    转载自:http://www.myttnn.com/digital-marketing/cookie-mapping-introduction/ 在RTB(实时竞价广告,Real-Time-Biddi ...

  5. 程序中的Cookie 和Session

    这几天回家休息后,想想放假之前的几天,主要看的一些工作上的东西,发现对Session和Cookie这两个东西,我还是很陌生.恩,趁着有网,看了点相关的资料,打算整理下.一翻博客,发现已经有前辈已经对这 ...

  6. Scrapy中使用cookie免于验证登录和模拟登录

    Scrapy中使用cookie免于验证登录和模拟登录 引言 python爬虫我认为最困难的问题一个是ip代理,另外一个就是模拟登录了,更操蛋的就是模拟登录了之后还有验证码,真的是不让人省心,不过既然有 ...

  7. 第74节:Java中的Cookie和Session

    第74节:第74节:Java中的Cookie和Session ServletContext: 什么是ServletContext,有什么用哦,怎么用呢? 启动服务器后,会给每个应用程序创建一个Serv ...

  8. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  9. js中的cookie使用和vue-cookie的使用

    在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaScrip ...

随机推荐

  1. [Javascript] Understand Curry

    The act of currying can be described as taking a multivariate function and turning it into a series ...

  2. (笔试题)小米Git

    题目: git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需 ...

  3. TCP/IP、SOCKET、HTTP之间的联系与区别

    主要内容: 1.网络的七层协议 2.TCP/IP.SOCKET.HTTP简介 3.TCP连接.HTTP连接.Socket连接的区别 一.网络的七层协议 网络七层由下往上分别为物理层.数据链路层.网络层 ...

  4. Thrift 文件的格式及可用的数据类型

    编写thrift文件是,须要知道thrift文件支持的数据类型有哪些.假设定义Service等.以下是官方文档的说明: # # Thrift Tutorial # Mark Slee (mcslee@ ...

  5. qtp:vbs基础教程

    ◎Vbs脚本编程简明教程之中的一个-为什么要使用Vbs?  在Windows中,学习计算机操作或许非常easy,可是非常多计算机工作是反复性劳动,比如你每周或许须要对一些计算机文件进行复制.粘贴.改名 ...

  6. Python编程 - json字符串的解析

    import json jsonString = '{"arrayOfNums":[{"number":0},{"number":1},{& ...

  7. C# 64位系统调用32位DLL异常解决办法(异常来自HRESULT :0x8007007E)

    解决办法如下 1.在IDE中将目标平台设置成x86(VS是在项目的属性->生成->目标平台) 2.如果DLL中调用了其他的DLL,需要将其他的DLL一同编译 3.有时DLL生成时会依赖于I ...

  8. Qt之设置窗口背景

    以前遇到的很多小知识,从今天开始都一点一点记录下来...     窗口背景无非两种:背景色.背景图片.Qt中窗口背景如何设置?下面介绍三种方法: 一. QPalette设置背景 二.实现paintEv ...

  9. php之快速入门学习-8(if-else)

    PHP If...Else 语句 条件语句用于根据不同条件执行不同动作. PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作.您可以在代码中使用条件语句来完成此任务. 在 PHP ...

  10. serialport控件的详细用法

    http://www.cnblogs.com/jerry-bian/archive/2012/01/10/2317861.html 最近在做通讯协议,关于SerialPort类 DataReceive ...