OpenResty在腾讯游戏营销技术中的应用和实践
这里面会涉及到一些机器学习的算法去评估这个出价,最终确定了出价之后,他会把这个出价原路返回给 ADX 服务器。ADX 服务器收到这个出价之后,它会等待其他广告主的 DSP服务器的出价,放在一起比较来最终选择最高出价的广告主的广告,然后把这次广告曝光的机会给到这个广告主,展示这个广告主的广告素材,这个就是一个比较简化的实时竞价广告的流程。 里面需要做的一个事情就是,在这个 ADX 和 DSP 服务器之间的交互是通过 OpenRTB 协议来做的,这里面有两个问题需要解决:
当然实时竞价广告技术方面有很多挑战,主要有这么几块的挑战。
这个是实时竞价广告系统在系统侧的一个架构简图,最上面是流量层,各ADX的广告请求流量会发到下面的接入层。接入层又包括两部分,一个是静态的 CDN,一个是动态的 RTB 网关,CDN 存放广告的素材,RTB 网关会做一件事情,就是进行 OpenRTB 协议的编解码,此外还会做一些安全和流量控制等操作。 在逻辑层包括竞价引擎,最下面的就是数据层包括 DMP 数据管理平台。这两个部分做的事情就是我们刚刚说的,一起来确定这个广告请求是不是我们需要的用户,如果是我们需要的用户的话,我们怎么样给它估算一个价钱。 这里面标了橙黄色字体的,就是我们用 OpenResty 进行过重构或者说优化过的地方,包括接入层的 RTB 网关,还有逻辑层竞价引擎,以及 DMP 的数据管理平台的一部分。 我们就一个个来看一下我们怎么样做重构和优化的:
其实我们可以简化一点,直接把这部分加密数据放到 RTB 网关里面来,当然也会遇到一个问题就是用户的加密标识信息非常大,大概会有十几亿条,另外一个设备标识加密后至少是32个字符串,如果全部存放到内存里面的话大概要十几个G,当然这还不包括查找索引额外的开销。 那我们就去寻找一个哈希算法,可以把一个固定长度的字符串直接转化为一个整型,然后我们把这个整型直接通过Bitmap直接映射到 512 兆的内存中的一个bit中去。这样就可以直接通过 512 兆的内存存放40亿的加密设备号,当然也会有不同的加密设备号映射到相同的比特位里面去了,但这个没有关系,我们还是继续走之前原来的路径,让它在最后面 DMP 里面再做一次判断。 经过这么一个简单的优化之后,我们在第一时间里面可以过滤掉大概80%以上的流量,所以对整个系统的性能也是有非常大的提升。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |