更猛更持久的广告投放,闲鱼程序员的年终奖全靠它。。。

简介:

作者:闲鱼技术-抚凌

业务背景

  1. 用户增长,是开源节流促成长的过程,是包含了有效用户增长、用户成长、用户变现、用户传播、防止用户流失等一整套增长流程,而非单纯数量上的增长。
  2. 在实践中,增长手段主要聚焦在如何获取用户和提升用户活跃度上。在用户获取成本不断升高的背景下,任何一种获取用户的方式都变得昂贵且效果难以评估,就好比我们都知道广告投出去有一半钱是浪费掉了,但却不知道是哪部分。
  3. 为了评估增长手段的有效性,首先需要一种能在各个渠道追踪用户行为的手段。一般会使用设备指纹技术来唯一标识用户,即通过一系列设备信息生成设备的唯一标识,用设备标识来替代用户标识作为追踪用户的手段。

问题定义

可以用于标识出该设备的设备特征或者独特的设备标识被称为设备。设备指纹因子通常包括计算机的操作系统类型,安装的各种插件,浏览器的语言设置及其时区 、设备的硬件ID,手机的IMEI,电脑的网卡Mac地址,字体设置等,通过某种Hash算法生产特征字符串来用作设备指纹。设备指纹服务有两个核心问题需要解决问题:

  1. 设备ID的有效性:无论使用单一还是多种信息来源,设备指纹的有效性取决于设备ID的有效性。存在两种可能无效情况,ID冲突和ID漂移。ID冲突指不同设备拥有了相同的ID,ID漂移指一台设备在不同环境或时间获取时获取到了不同的ID。
  2. 设备服务架构的扩展性和可靠性:不同的渠道可能会定义不同的设备ID组合作为设备指纹的来源,在多个渠道间交互时需要支持和兼容多种ID组合的查询和转化;设备服务需要广泛应用于增长手段的各个环节,服务的访问量会明显大于一般的产品链路服务,因此对可靠性也有较高要求。
    我们针对这两个核心问题,在下文中分别给出对应的问题分析和解法。

设备指纹ID

Android设备可以获取的ID

  1. IMEI——国际移动设备识别码(International Mobile Equipment Identity),即通常所说的手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。几乎所有的设备都可以返回这个串号,并且唯一较好。它根据不同的手机设备返回IMEI,MEID或者ESN码。
  2. IMSI——国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。当手机上装有 Sim 卡并且可用时,返回该值,不同 Sim 卡的返回值不同。
  3. MAC——可以使用手机Wifi或蓝牙的MAC地址作为设备标识。 并不是所有的设备都有Wifi和蓝牙硬件,硬件不存在时获取不到。
  4. ANDROIDID——安卓ID,在设备第一次启动的时候生成并保存,并且可能会在恢复出厂设置后重置该值。理论上是大部分是重置的。通常被认为不可信,因为它有时为null。开发文档中说明了:这个ID会改变如果进行了出厂设置。并且,如果某个Andorid手机被Root过的话,这个ID也可以被任意改变。

iOS设备可以获取的ID

  1. IDFA——Identifier For Advertising。直译就是广告id, 在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的,iOS默认设置是允许追踪。用户可以在设置里重置此id的值,或限制此id的使用,故此id有可能会取不到值。iOS6及之后版本可以使用。
  2. IDFV——Identifier for Vendor,提供给APP供应商使用的ID。每个设备在所属同一个APP供应商的应用里,都有相同的值。iOS6及之后版本可以使用。
  3. UDID——Unique Device Identifier。设备的唯一设备识别符。UDID从iOS5开始被禁止使用。
  4. UUID——Universally Unique Identifier,通用唯一标识符。可以在应用启动时生成,它保证对在同一时空中的所有机器都是唯一的。但除非本地保存后获取本地址,每次调用生成的ID均不相同。
  5. MAC——同Android中的定义,iOS7开始只能获取一个固定值。

新一代的设备指纹技术

传统的设备识别手段主要依赖于单一的信息源,与此不同,新一代的设备指纹技术使用更多的信息来完成设备的识别。它通过网络收集终端设备的特征信息,并在分析与鉴别的基础上,对每一组从终端设备采集的特征信息组合赋予唯一的设备指纹ID,用以标识该终端设备。一般具有开发能力的厂商均有自己的一套生成方案,同时也有第三方的厂商提供解决方案以供使用。以下以阿里使用的UMID(唯一设备ID)为例,说明设备指纹ID在各平台上所具有的能力。

  1. iOS上的能力

    1. 卸载重装App, UMID不变
    2. 跨App,UMID不变
    3. 限制广告跟踪,(采集不到IDFA),UMID不变
    4. 还原广告标识,(IDFA变更),UMID不
    5. 恢复出厂设置,UMID不变
    6. 备份恢复不会导致两个设备UMID一致
    7. 准确识别是否越狱
    8. 准确识别越狱之后是否被Hook
  2. Android上的能力

    1. Android 6.0下无采集IMEI/MAC权限,UMID不变
    2. 修改IMEI/IMSI/MAC/aid,UMID不变
    3. Android 7.0跨APP,UMID不变
    4. 平行空间UMID不变
    5. 准确识别各种模拟器
    6. 准确识别是否Root
    7. 准确识别是否被Hook

设备指纹ID选型

  1. 比较好的设备指纹ID,需要保证尽可能少的出现ID冲突和ID漂移。并且,在权限限制、设备信息篡改,系统重装、APP重装情况下也需要保证尽可能不变化。
  2. 集团内部的设备指纹ID方案已经经受住了大量业务的考验,不仅适用于做用户行为的追踪,同时也具有一定的安全防刷能力。因此,闲鱼用户设备信息采用UMID作为唯一标识。同时对于多个数据来源(闲鱼用户历史设备登录记录,闲鱼用户历史安全设备记录,闲鱼用户设备采集记录)打通,水平扩展可以支持的IMEI,IMSI,MAC,IDFA,YunosUUID,Google广告ID等ID的查询。

架构设计


闲鱼用户设备服务架构设计

闲鱼设备服务架构设计.png | center | 747x742

  1. MySQL——创建以umid为主键的闲鱼用户设备主表。一个用户可以有多个设备,一个设备仅记录最近使用的用户。数据量较大,需要做分库分表。
  2. HiStore——用于多维查询,数据从MySQL中同步。HiStore是阿里中间件技术团队研发的数据库产品,是一款基于独特的知识网格技术的列式数据库,定位于海量数据高压缩比列式存储,是低存储成本,低维护成本,海量数据OLAP存储引擎;有效的解决了海量数据存储的成本问题,以及在百亿数据场景下支持实时高效的多维度自由组合的检索。外部开源的解决方案有Infobright等。
  3. 实时读取——分布式key/value存储系统 Tair。Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应。通过tair可以定制业务所需要的缓存,也可以作为持久化存储完整存储整个闲鱼用户设备表(以Umid为key)。外部开源产品可以选用Redis。

实践场景(广告投放)

  1. OCPC/OCPA/OCPM:

    OCPC是Optimized Cost per Click的缩写,即优化点击付费,本质还是按照cpc付费;OCPA是Optimized Cost per Action的缩写,即优化行为出价,本质还是按照cpa付费;Optimized Cost per Click的缩写,即优化点击付费,本质还是按照cpc付费;Optimized Cost per Mille的缩写,即优化千次展现出价,本质还是按照cpm付费。三种出价策略除了对应的优化目标不同,本质上都是采用更科学的转化率预估机制,帮助广告主在获取更多优质流量的同时提高转化完成率。系统会在广告主出价基础上,基于多维度、实时反馈及历史积累的海量数据,并根据预估的转化率以及竞争环境智能化的动态调整出价,进而优化广告排序,帮助广告主竞得最适合的流量,并降低转化成本。
  2. 广告投放的数据流示意图(以激活为例)

广告投放的数据流示意图.png | center | 799x551

  1. 闲鱼和广告商的数据流交互图

闲鱼广告商OCPC交互图.png | center | 531x735

  1. 流程说明

    1. 广告商在监测事件同步接口(接口一)中会同步点击数据给闲鱼。同步数据包含用户的设备信息(IDFA/IMEI/OS等)、业务信息(广告计划id/广告创意 id/点击时间等)和回调信息(回调地址或回调参数)
    2. 闲鱼接收到同步数据,根据OS将设备id设为key,将回调信息作为value存储在Tair中。
    3. 闲鱼用户激活或者注册时触发设备信息采集,经过清洗后更新至闲鱼用户设备表中。同时查询是否有可以匹配的回调信息,根据点击事件和转化目标,处理回调信息后回调用户转化目标数据给广告商。
    4. 广告商收到回调数据后,优化模型,更新出价,帮助闲鱼获取更适合转化的目标人群,降低转化成本。

总结

在目前的闲鱼用户增长实践中,广告投放优化已经给闲鱼带来了巨大的收益,有效的控制了广告投放的成本,使得增长团队可以进一步扩大广告投放的渠道和范围。除了用于广告投放优化,闲鱼设备服务还支撑了deeplink,智能投放和用户生命周期等一系列增长手段的尝试。未来,闲鱼技术团队还会进一步探索技术上的可能性,驱动闲鱼用户增长业务的发展。

相关文章
|
9月前
|
数据可视化 BI 数据安全/隐私保护
90后老板用低代码整顿旅行社,创2000万年收,他是怎么做到的?(真实)
90后老板用低代码整顿旅行社,创2000万年收,他是怎么做到的?(真实)
|
12月前
|
搜索推荐 Java 程序员
只有一个程序员开发和运营,BuiltWith网站年入1400万美元是怎么做到的?
国外有一位程序员叫 Gary Brewer,他一人撑起了一个公司,这个公司还年入 1400 万美元,约人民币 1 亿元。对此,你是啥想法?
116 0
|
自然语言处理 搜索推荐 安全
想知道企业需不需要大热的Sitecore CMS,弄清楚这十点就够了!
毫无疑问对于企业来说,数字化转型是长期霸榜的热门话题。而这其中Sitecore又凭借着个性化数字体验、全渠道数据洞察、自动化数字营销成为了这一话题的中心。
111 0
|
缓存 架构师 固态存储
不断提升自己创造溢价的能力,不吃透都对不起自己
不断提升自己创造溢价的能力,不吃透都对不起自己
|
大数据 程序员 Android开发
高效能程序员的修炼札记:揭露营销伎俩
高效能程序员的修炼札记:揭露营销伎俩
100 0
当代职场人的报销之路,看看有你烦恼的瞬间么
当代职场人的报销之路,看看有你烦恼的瞬间么
当代职场人的报销之路,看看有你烦恼的瞬间么
|
消息中间件 缓存 NoSQL
只要我跑的够快,内卷它就卷不到我,一名高中生是如何做到在疫情下涨薪70%的?
只要我跑的够快,内卷它就卷不到我,一名高中生是如何做到在疫情下涨薪70%的?
3162 0
|
机器学习/深度学习 供应链 算法
春节剁手的人太少?看手淘怎么做用户增长
小叽导读:本文介绍以手淘促活为目的的全链路智能投放算法框架,该框架目前接入以 Pagani 为核心的全链路运营平台,使用用户意图识别算法圈选出目标人群,借助物料智能推荐和权益动态面额等算法实现全链路上用户的个性化触达干预。以2019春节手淘促活为例,介绍权益智能投放框架的设计思路和实际应用。
1432 0
春节剁手的人太少?看手淘怎么做用户增长
周末荐书 | 连续54年盈利!这家企业的持续发展是怎样实现的(赠书)
宫内义彦同欧力士集团风雨同舟50载,带领并见证了企业的每一步发展,在长达50多年的管理实践中积累了宝贵的企业管理经验,《我的经营论》正是作者毕生经验的结晶,企业持续发展的秘密就蕴藏其中。
897 0
|
程序员
偶遇到客户的奇葩需求
@梁大折腾 部门老大:你,做个微信小游戏吧 我:啥样的? 老大:反正你就做个小游戏吧,这个火 我:????? @柔情 领导:那个运维啊,你来把他的系统破解了,要不把他服务器黑了也行。给你一天时间,搞不搞得定。
1855 0