【附下载】手摸手带你搭建广告需求平台DSP

简介: 【附下载】手摸手带你搭建广告需求平台DSP

这是彭文华的第110篇原创

   以前分享过DMP(数据管理平台)的来龙去脉。DMP是互联网最挣钱的广告系统中的用户基础数据提供方。百度的凤巢、淘宝的直通车(阿里妈妈)还有腾讯的广点通,是老牌三大网络广告投放平台,现在多了一个头条的巨量引擎。


   阿里妈妈曾经创造了阿里巴巴80%的现金收入。现在头条系的流量也起来了,巨量引擎给今日头条每年带来超千亿的广告收入!


   简单来说,我们在互联网上看到的任何一个广告,再说一遍,是任何一个广告,背后都有一个DSP系统在支持着。


   今天就给大家分享一下广告系统核心DSP(Demand Side Platform,广告需求方平台)的架构设计。


DSP是个啥?

   DSP就是广告主需求平台,是广告系统中最重要的系统,相当于电商系统中的交易平台一样。只不过呢,DSP是广告主在买展现的机会(广告位),卖家是广告展现位置的拥有者(媒体),商品就是用户的点击了(商机)。简单来说,DSP就是互联网公司用流量变现的超级利器!


   互联网广告系统整体是这个样子的:

   如图所示,整个广告系统作为平台,一边是广告主,一边是媒体提供的广告位。拥有广告位资源的媒体,通过接入SSP,将广告资源放在供应商平台上;想投放广告的广告主,则在DSP上制定投放计划,寻找投放资源,ADN广告网络和ADX广告交易市场则完成双方需求的匹配和投放。


所以广告系统的需求基本上就能列出来了:

  • 要给广告主提供媒体端提供的广告位资源列表
  • 要给广告主提供按需购买和展现广告的服务
  • 要给广告主提供广告展示和点击的效果
  • 要在广告费用用完的时候及时停止展示,同时给双方提供费用清单


DSP数据流应该如何架构?

   既然整个广告系统已经摸的差不多了,咱就把DSP放大看看。按照信息系统建设的逻辑,先把DSP的业务流程梳理一下,然后再划分其各项功能,然后就能把数据逻辑和架构整理出来了。

   我们先画出业务流程图,以百度推广为例,它的投放流程如下:

   广告主在百度凤巢上的流程是这样的:先建立投放计划,计划中会建立投放单元,然后管理创意,选择关键词,对关键词进行竞价(出价),确认后完成投放计划。凤巢就会根据广告主设置的规则,进行广告投放。每当有人搜索一个关键词,就按照规则给他展示;有人点击,就给他计费;最后在广告主的页面上把统计结果展示出来。


   既然业务流程弄清楚了,那就可以开始画系统的架构图了。DSP其实囊括了:

  • 广告渠道接入能力,对接ADX;
  • 用户标签数据接入能力,对接DMP;
  • 投放策略管理能力,面向广告主的投放素材的投放策略管理,从需求侧(广告侧)增加点击概率;
  • 算法能力,资源的智能匹配,让合适的人在合适的地方和时间看到合适的广告,从供应侧(用户侧)增加点击概率;
  • 实时能力,实时监控,动态调整,不浪费一个展现机会,也不多展示一次;
  • 统计展现能力,实时计算和统计,能长时间追溯和分析。

   上图基本上就是DSP所需要的各项关键能力。底层需要有广告渠道和用户数据对接能力,核心是策略和算法能力,上层得有实时监控和数据统计展示能力。


   系统架构有了,咱再画一下数据架构图。先整理一下思路:用户数据有DMP,广告资源有ADX,我们都不用管;算法和策略各自有一帮人负责,一方面那些都属于事务性,另一方面属于算法和策略方面,咱数据组也不用管,只需要考虑实时监测和数据统计展现就行了。

   前面肯定得有实时数据采集,另外还得从DMP里拿到用户标签数据。中间得是两个应用,一个是广告资源列表,一个是广告购买(RTB),现在都是竞价购买的形式(这些不属于DSP,只是辅助理解业务)。后面则是数据统计和展示服务。整个系统大概就是这样的:

   中间的广告业务应用就扔给业务开发团队,我们往下梳理数据架构图。前面的实时数据采集一般就是Nginx转发,后面可以用flume,但必须得用kafka进行分发,一边走实时,一边走离线。这里因为涉及到钱,可能要回溯很久的数据,所以建议Lambda架构,因为kappa回溯老数据的时候非常费劲。实时这边建议直接走flink+kafka,缓存用redis,持久用Hbase,算完之后数据建议直接扔实时数仓里。离线那边就随便了,用Hive + Spark就行;实时数仓可以用CK、Doris、Druid等;展示用Data V、Davinci等。所以数据架构图就出来了:

当然,这个架构图还很简单,很多细节还没细化,比如第三方的数据没及时到,该咋办?各个指标应该如何管理和计算?如何保证各个环节的exactly only、深分页等等。这些都是流失计费系统需要解决的问题。

  • 数据不及时:FLink自身的Watermark机制,增加环节Retry,多等一会;
  • exactly only:两阶段递交、三阶段递交、paxos保证端到端exactly only;
  • 深分页:分桶+谓词下推+并行查询。


各大厂DSP实时OLAP选型

百度凤巢用的是自研的Drios(原百度palo),17年开源,后来当时的创始人叶谦大佬带研发团队出来创业。现在已经是炙手可热的MPP类实时OLAP产品了。他们的公众号是DorisDB,大家可以关注一波,里面有美团、小米、京东等大厂的分享经验,我就不复制粘贴了。之前分享过一个进大厂的小秘籍,就是找一些只有大厂才会用的产品,会用了,练熟了,就好进大厂了。这个秘籍一般人我不告诉他!


阿里优酷用的是定制化的kylin,这个很有意思,Kylin本来是需要预计算的,按理来说不太适合实时场景,但是他们通过微批+预计算Rollup物化视图等手段保证数据构建效率,通过Blink分钟级微批计算,Kylin分钟级增量保证实时性。居然结果还非常不错~~~


头条的巨量引擎用的是Druid,这是一个基于时序的数据库。因为广告数据全部都是日志数据,天然有序,对于Druid来说非常匹配。基本能做到来一条算一条,这效率嗷嗷的。不过Druid不支持join,对场景和设计水平有比较高的要求。

相关文章
|
存储 数据安全/隐私保护 开发者
开发搭建体育赛事直播平台详细的步骤和建议
开发创建体育赛事直播平台是一个备受欢迎的创业选择,尤其在体育赛事在线观看和直播技术不断提升的情况下。下面是详细的步骤和建议,以确保您的项目成功上线并满足用户需求。
|
2天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
21 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
6天前
|
关系型数据库 MySQL PHP
2025 游戏试玩打码平台PHP源码
2025 游戏试玩打码平台PHP源码
9 0
2025 游戏试玩打码平台PHP源码
|
2月前
|
前端开发 算法 安全
一站式搭建相亲交友APP丨交友系统源码丨语音视频聊天社交软件平台系统丨开发流程步骤
本文详细介绍了一站式搭建相亲交友APP的开发流程,涵盖需求分析、技术选型、系统设计、编码实现、测试、部署上线及后期维护等环节。通过市场调研明确平台定位与功能需求,选择适合的技术栈(如React、Node.js、MySQL等),设计系统架构和数据库结构,开发核心功能如用户注册、匹配算法、音视频聊天等,并进行严格的测试和优化,确保系统的稳定性和安全性。最终,通过云服务部署上线,并持续维护和迭代,提供一个功能完善、安全可靠的社交平台。
172 6
|
3月前
|
Android开发
布谷语音软件开发:android端语音软件搭建开发教程
语音软件搭建android端语音软件开发教程!
|
5月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
199 0
仿网易官网顶部展出的大幅广告代码,附效果演示
仿网易官网顶部展出的大幅广告代码,附效果演示
|
9月前
|
自然语言处理 安全 数据挖掘
短剧系统开发/稳定版/海外版/多语言/成熟技术/方案项目/源码流程
The functions of the short drama system can include but are not limited to the following aspects:
零撸游戏广告变现模式系统开发部署源码搭建
零撸游戏广告变现模式系统开发部署源码搭建
视频交友源码开发搭建平台用户资料功能:小功能有大用处!
视频交友源码平台用户资料功能不仅仅对于视频交友平台是重要的,它对于很多源码搭建的平台都是非常重要的,这样的源码功能还有很多,我会为大家讲解,喜欢的可以留个关注来问我。
视频交友源码开发搭建平台用户资料功能:小功能有大用处!