程序化广告是以人为中心实现的精准投放,首先就应该要识别到人,而程序化广告是由多个平台或参与者合作完成的,用户的流量方向是网站-SSP-AdX-DSP-广告主着陆页,各方都有自己的ID系统,基本上,DSP有一套自ID识别系统,ADX也有一套自己的ID识别系统,网站主要通过cookie识别人,不同参与者命名的cookie方式不同,造成同一个人在不同平台的cookie是不同的,DSP的命名可能是AAA,而ADX的命名可能是111,浏览器安全模型限制了不同的cookie之间不能互相读取,这时就需要Cookie mapping去打通,可以将DSP的AAA和ADX的111对应起来,进而能够识别这个人,才可以做精准营销。
Cookie Mapping只是针对网站的,因为APP上的设备ID是唯一的,不需要通过映射或匹配去是识别用户。
我们先来看一下竞价的过程:
1、用户浏览网站,网站是接入广告交易平台的,判断是否符合如何要求后向ADX发起广告请请求
2、广告交易平台发起竞价活动,向不同的DSP发送bid request,里面会包含有访客信息
3、DSP根据发送的信息,去自己的用户系统,DMP查询匹配出用户的信息后,根据这些信息去出价
4、ADX中交易,价高者得,此高结算
5、返回竞得者信息给网站
6、网站请求广告资源素材
7、返回广告资源素材
然后加载,渲染展示广告。在这个过程中,平台在获得广告请求或竞价邀请的时候,会去自己的用户系统去检索用户相关信息,这个过程就需要可能匹配,除了媒体主之后的各个参与者可能有这个需求,如ADX、DSP、DMP、PCP。
匹配完后会有一个对应表,也就是映射关系(Match Table),映射关系的保存,一般是谁发起,就谁保存,Match Table主要是DSP在用,所以基本是DSP保存的,当然也有部分的这个Match Table的托管于ADX,也可以两者都放的,Cookie Table只保存在一方的叫单向Cookie Mapping,Cookie Table保存在两方的叫双向Cookie Mapping,双向Cookie Mapping是一方已经拿到302跳转后的ID信息之后,再向另一方发起请求,将映射关系传递过去。
Cookie Mapping主要关注三个问题:
谁发起?就谁埋代码,有需求的参与者就有可能发起,所以除了媒体主之后的各个参与者都有可能发起,如ADX、DSP、DMP、PCP,根据用户的流量方向,只有可能直接关联的角色发起。
用谁的CM代码?用匹配另一方的CM代码,因为需要向另一方请求它的Cookie,所以一定是另一方的CM代码,Cook Mapping只有两方,一方是发起方埋CM代码,另一方就是提供代码 。
谁保存Cookie Table? 一般是谁发起,谁保存,但实际是Cookie Mapping是双方有可能保存,也可以双方同时保存,只保存在一方的叫单向Cookie Mapping ,双方都保存的叫双向Cookie Mapping。
谁发起的组合是非常多的,如ADX和DSP、DSP和DMP,DPS和PCP、ADX和DMP等,再考虑谁的CM代码和Cookie Table的保存位置,组合就更多了。
我们这里只介绍三种方式:一种是是DSP和ADX,这个是主流的模式;一种是ADX主动发起的;一种是独立PCP和独立DMP的,这种是涉及独立广告服务平台的;其他按照前面的类似逻辑去处理。
DSP发起Cookie Mapping
在上面第3步的时候,从AdX接到的信息里面会有AdX-UID,这个是AdX专门用于Cookie Mapping的一个ID,如果DSP的系统里面找不到这个ID,那么就需要发起Cookie Mapping,如果找得到,那么直接就用找到的一些维度,用于计算该不该出价,该出多少。
接下来我们来看一下Cookie Mapping是怎么运行的,也就是没有Cookie或清除Cookie的时候:
前面的4步都是一样的
5、赢得广告展示后,由于在Match Table找不到该用户的信息,DSP发送广告素材和Match Tag(匹配标签)
匹配标签是由ADX提供的,上面会有对应的DSP的ID,Match Tag的结构如:
img src="http://cm.adx.net/pixel?dspid=1234&adx_cm
代码中的1234就是DSP的ID了。
6、将DSP发送广告素材和Match Tag发送给浏览器,如果是网站直接请求,则DSP直接到网站。
7、浏览器加载到Match Tag时,向ADX调用Cookie Match Server(所以Cookie Mapping能否实施是依赖AdX,有些AdX是需要另外申请才可以开通这个服务)
8、Cookie Mapping Server触发后,通过dpsid去获得对应DSP的接口和token,由于浏览器的限制,Cookie不能跨域访问,但ADX能通过http heeder获得在该域中下的 Cookie,将ADX的Cookie加密后生成一个openid,再将openid加到302重定向后的查询参数位置,重定向后的地址如:
http://ad.dsp.com/pixel?openid=dGhpcyBpcyBhbiBleGFtGxl&cver=1
DSP需要提供一个接口才能做跳转,假设DSP会提供如下的接口:
http://ad.dsp.com/pixel
9、浏览器加载DSP的url重定向,DSP接收到重定向请求后,从http和查询参数中解析的Cookie,重定向后跳转URL为:
http://ad.dsp.com/pixel?openid=dGhpcyBpcyBhbiBleGFtGxl&cver=1
里面openid就是加密后的ADX的的用户标识,然后在通过Http Header获取DSP的Cookie,再将映射关系存到Match Table。
10、发送一像素的图片到web页面,将映射关系种到cookie里。
至此,Cookie Mapping就完成。
如果是已经种好Cookie的,那么在第2步在Match Table里面查询到直接就用于出价的计算,赢得广告展示机会返回的就只有广告素材。
如果是双向Cookie Mapping,第10步的同时还会向ADX搭起一个携带有映射关系的请求,ADX如有对应借口则可以保存这个映射关系,实现DSP和ADX都保存有Match Table。
Cookie Mapping不是所有的成功竞价都会发起的,只有在用户系统里面找不到的时候才发起。Cookie是有有效期的,而且用户也可以主动清除Cookie,Cookie是会失效的,所以需要定期重新mapping。
对于一个新的DSP平台来说,可以预想得到的时候它的Match Tables(就是存储的匹配表)是很低,所以前期的精准度是比较低的,会发起比较多的Cookie Mapping去构建自己的Match Tables,可以选择一些已经投放比较大的平台,这类平台积累的Match Table会比较全和精准。
Cookie Mapping是精准营销的基础,但Cookie Mapping需要双方都有对应的API接口和匹配服务,不是所有的平台都会有,很多的DSP却对Cookie Mapping只是有限的支持,所以在数据打通上的能力也是有限的,特别是垂直媒体的。
ADX发起Cookie Mapping
ADX可以做主动的Cookie Mapping服务,以此能够扩大Cookie Matched的比例,将Cookie Matched Table上传到ADX的服务器中,ADX发起和保存的流程如下:
1、用户浏览网站,网站是接入广告交易平台的,判断是否符合如何要求后向ADX发起广告请求
2、广告交易平台根据广告请求的里的ADX的Cookie去DSP的Match Table匹配,找对应的属于DSP的Cookie,匹配后会有不同的逻辑:如匹配到就发起竞价活动;匹配不到的话,根据其他的角度判断,是否发送竞价活动,如果不发,就结束,如果发就继续。
3、 Match Table没有匹配到且发起竞价请求的情况才会有Cookie Mapping,广告交易平台发起竞价活动,向不同的DSP发送bid request,里面会包含有访客信息。
4、DSP根据发送的信息出价
5、ADX通知赢得广告展示
6、DSP发送广告素材发送给ADX
7、由于在Match Table找不到该用户的信息,ADX发起Match Tag连同广告素材发给浏览器,匹配标签是由DSP提供的,上面会有对应的ADX的ID,Match Tag的结构如:
<img src="http://cm.dsp.com/pixel?adxid=1234" />
代码中的1234就是ADX的ID了。
8、浏览器加载到Match Tag时,生成DSP的Cookie,向DSP调用Cookie Match Server
9、Cookie Mapping Server触发后,通过adxid去获得对应DSP的接口和token,由于浏览器的限制,Cookie不能跨域访问,但DSP能获得到DSP的Cookie,将DSP的Cookie加密后生成一个openid,再将openid加到302重定向后的查询参数位置,重定向后的地址如:
http://adx.network.com/pixel?openid=dGhpcyBpcyBhbiBleGFtGxl
ADX需要提供一个接口才能做跳转,假设ADX会提供如下的接口:
http://adx.network.com/pixel
10、浏览器加载ADX的url重定向,ADX接收到重定向请求后,从http查询解密参数中解析DSP的Cookie,重定向后跳转URL为:
http://adx.network.com/pixel?openid=dGhpcyBpcyBhbiBleGFtGxl
里面openid就是加密后的DSP的的用户标识,再通过http header去获取ADX的cookie,然后将映射关系存到Match Table。
11、发送一像素的图片到web页面,将映射关系种到cookie里。
至此,Cookie Mapping就完成。
目前如Google、Facebook、百度的BES都提供Match Table托管,Match Table托管有如下的优点:
节省流量
主要使用RT方式定向受众的DSP,可以在pretargetting设置中选择让ADX仅发送匹配table中的cookie的流量,以此来节约带宽,滤掉大量无用的流量。
优先发送
对于其他的DSP,也可以设置优先发送table中的cookie,若QPS还有富余ADX才发送剩余的流量。
缩短时间
由于DSP将matched table托管给ADX,ADX将在request中直接发送映射后的cookie,交由DSP直接定向使用,能够节省DSP的检索时长,缩短响应时间。
PCP向DMP发起
是谁发起?要看参与者是不是相互之间的关系是独立还是包含,如DSP和ADX往往都会包含有DMP,而有些DMP是独立的再接入DSP,PCP是DSP内置的or独立,如果参与者之间是独立的话,那就需要做cookie mapping,一般是由流程前面的发起的。比如DSP-ADX,是有DSP发起,DMP-DSP-ADX,则是由于DMP发起,PCP-DSP-ADX,则是由PCP发起……
下面是PCP向DMP发起的简要过程:
1、PCP网媒网页上投放广告创意代码时,一旦识别到新用户,将返回DMP提供的img标签,如:
<img src="http://www.dmp.com/?pcp_id=ichdata&pcp_uid=ichdat123">,
PCP需在后面拼接其pcp_id以及pcp_uid,以及接受服务。
2、由浏览器直接向DMP服务器发起cookie tag识别请求,请求会带上PCP用户cookie_id,DMP可以据此进行cookie mapping。
3、DMP识别用户标签后,由服务器后端直接向PCP API服务器发起callback请求,异步回写cookie tag数据。