作者:凤腾
部门:业务技术/测试
一、有赞广告:DSP简介
1.1 是什么?
DSP(Demand Side Platform)是广告需求⽅平台的简称,以精准营销为核心理念,帮助广告主进行广告投放。
目前,有赞DSP 广告投放渠道主要有:
- 腾讯朋友圈(跳转小程序为主)
- 头条、百度、快手的APP(跳转H5为主)
1.2 广告的投放方式
广告投放最本质的逻辑,其实就是争夺人群,越是高质量的人群,出价越高才能抢到(优质资源位同样)。
1.2.1 普遍的投放方式:
1.2.2 广告投放的出价策略:
o表示optimized 优化,按目标转化出价;CPM是对广告主来说,“你要花多少钱,买一千次广告展示机会”
oCPC(Optimized Cost per Click)优化点击出价。oCPA(Optimized Cost per Action)优化行为出价;行为可以是下载,也可以是留下资料、电话拨打、领券、添加到购物车等 oCPM(Optimized Cost per Mille)优化千次展现出价;千人广告曝光量,适合品牌类广告主,更看重品牌曝光而非具体转化,是CPM实时、动态的“自动出价”版本。
广告质量度的衡量公式:eCPM=目标转化出价*eCTR*eCVR*1000 eCTR:是预估点击率 eCVR:是预估转化率 eCPM:是对媒体来说“你每展示一千次广告,能赚多少钱!”
广告的终极目标:复购
1.3 广告信息存储
1.3.1 埋点记录与查询:
埋点系统记录,会记录用户在某个店铺的广告点击、点击时间,给订单归因使用。埋点信息双存储(hbase和zankv),查询点击优先查hbase,再查zankv。
在查询埋点消息时,会优先使用yzUid(用户登录或授权有赞账号状态下获取到的)来查询,其次是用埋点sdk自动生成的uuid查询,最后通过大账号(微信),支付宝,微博绑定的时候生成一个对应的mockID来查询,三者在有赞账号系统有映射关系。
1.4 广告订单归因
1.4.1 直购类订单归因(加购类订单归因类似):
腾讯(gdt_vid/qz_gdt)、百度(bd_vid)、快手(ks_callback)是根据clickId来归因; 头条是根据UA来归因,查询到最新的有效点击,归因成功,否则走延迟归因(TSP延迟任务)、离线归因(离线接口);
1.4.2 关注类订单归因:
用户关注微信公众号后,会调用DSP的回调接口通知某个用户在某个时间点关注了某个公众号, 当用户在公众号下单后,DSP会查找是否有关注的记录,有关注记录,归因成功;否则关注失败。
1.5 广告回传
1.5.1 多渠道回传:
有赞DSP支持的回传方式:
- 直购类回传(下单回传、支付回传)
- 关注类回传(关注公众号) 加购类回传
腾讯支持的转化回传类型:点击转化回传
二、广告业务测试
2.1 测试难点
1、埋点的生成,依赖kafka中间件、flink任务的正常运行, 目前是直接发kafka mock消息,或直接调接口在hbase中写入埋点;
2、测试全链路比较长, 真正的回传效果,需要运营提交一条真正的广告投放,并审核通过后,才可以通过加白名单的方式开始测试埋点点击,回传成功,需要到投放系统去确认回传数据是否正确;
3、投放链接的生成(微商城链接到腾讯去生成)、投放(朋友圈小程序投放为主)、跳转(商家小程序内)经过几个系统,可能会有关键参数丢失的情况,比如广告参数gdt_vid等,会导致生成埋点失败; 目前还没有很好的整套流程的校验,来保证关键参数不丢失;
4、不同环境生成的uuid不一致, 微信小程序环境、app环境、浏览器环境下,uuid的生成规则都不一样,所以不同环境下没有绑定手机号的情况下,下单有可能会归不上, H5网页由32位随机字符串组成(清理Cookie、换浏览器、不同域名下 uuid 都会重新生成) 小程序由随机字符串 当前时间戳组成(不同小程序 uuid 不同、重装小程序 uuid 会重新生成) APP由32位随机字符串组成(安卓系统重装会重新生成、iOS系统重装时 uuid 保持不变)
2.2 三方渠道稳定性
DSP依赖三方接口改动、字段变更、新老接口替换、系统升级等,需要实时了解第三方接口的动态,以保证业务数据的正常。
目前保障三方接口稳定性的方式有:
- 定时任务(定时调第三方回传接口),失败告警;
- roboter监控;
- 及时关注第三方技术文档的更新;
- 第三方技术、产品、运营的通知;
- 多线程调用第三方接口,但要考虑限流, (控制线程数、接口调用顺序、接口调用次数,会对三方系统造成一定压力,慎用) 第三方接口一般有限流,比如腾讯某个数据接口,限制1分钟内最多调3次,手动调接口的时间刚好和业务时间重合会导致线上接口调失败。