如何搭建一个极简的广告系统?

简介: 如何搭建一个极简的广告系统?


 心之所向,皆是朝阳


广告行业是个存在了相当长时间的行业。在互联网时代数字化广告的产生,改变了线下传统媒体的采买形态,通过一些核心指标可以度量和优化广告投放。有流量的地方就有通过广告变现的诉求,本文将会从最简单、易懂的方式来拆解广告系统是怎么来的,是如何更新换代不断迭代更新来适应媒体特性的不断变化。本文适用于所有广告营销行业的产品、技术、运营和投放优化岗位了解广告系统背后到底有什么,解决黑盒投放模式给广告从业人员带来的玄学感觉,数字广告投放应该是一门科学,不是一门玄学。



01

什么是广告系统?


广告是广告主以付费方式通过广告媒体向受众售卖商品、传播信息或者提供服务的触达手段。广告是互联网商业化的三大经典模式(广告、佣金、增值服务)之一。所有推出免费服务的公司背后大多是通过广告来支撑公司的营收的,通过免费聚拢用户,流量聚集到平台上,通过广告进行变现。简单来讲,广告系统(Ad Server)是为媒体方(Publishers)、广告主(Advertisers)、广告代理(Ad Agencies)和广告网络(AdNetworkins)等角色管理广告投放诉求触达受众的软件解决方案。

具体的目标是,通过程序化的方式将在线广告投放在指定的媒体(可以是网站、博客、App或者任何有变现诉求的软件或者载体)上。广告系统大多独立于其他的CMS系统,数据管理系统等IT系统而存在,是为了每个系统都承载相对单一的功能,避免耦合,降低系统的复杂度,提高软件的易用性和易维护性。广告系统可以是媒体方公司所有,也可以不是媒体方公司所有,甚至于可以归属于八竿子打不着的第三方公司,公司与公司之间通过协议(在线的或者离线的协议)约定流量的售卖方式和对接方式,就能实现媒体公司干好内容产出和用户运营,广告公司做好媒体采买和售卖,为广告主服务不同阶段干好不同职责,分得自己应用的那份收益。
我们这里先不纠结复杂的系统名词,什么DSP,SSP,ADX等等,这些系统后面我们单独进行描述和介绍,你只需要首先理解的是广告系统就是为了在一定范围内的媒体上满足投放方广告投放诉求的系统就可以了,当然为了满足这个看似简单的要求,会有很多周边系统对流量进行度量、计费和追踪,这些系统可以在广告系统内部存在,也可以为了利益解绑采用第三方公司的系统。一个好的广告系统,通常具有以下几个特点:可以承受短时间内巨大流量的冲击(高并发),并在极短的时间内(低延时)返回差异化广告(容量大);可以承载图文,视频、激励视频,试玩光等多种广告样式(种类多),可以兼容web端/移动端(SDK兼容性好,稳定);可以支持多种用户定向能力(数据处理能力强),如地域,人群标签、频次等;计费服务不重不漏(准确性要求高),计费延时要可控(实时性要求高),广告主预算不花超还得花的完;这些能力都达到,对于广告系统的开发设计人员要求是非常高的,想做好一个广告广告系统需要很多的技术积累。


02

为什么需要一个广告系统?


互联网上有流量的地方,就有江湖。每个推出新产品的公司都需要获客去使用自己的产品,在产品中留存用户,同时通过广告变现获取收益,通过广告投放,一方面能快速扩大用户群体,让每个用户身上微小的收益通过基数的加大放大整体的收益,另外一方面广告模式是互联网上门槛最低,也是最有效的变现手段。

之前的文章为什么要做产品和用户生命周期管理?里,曾经有一张用户生命周期管理的图,我们能发现功能迭代优化和变现效率提升两个闭环是相辅相成的,没有广告投放的放大再好变现效率也无法获取足够大的收益,而没有后向的变现效率的提升,买量越多亏的可能也会越多。



   因此每个有流量的公司都应该有套高效的广告系统,不管这个广告系统是自建还是用第三方的。


03


如何搭建一个极简的广告系统?


根据上面的描述我们可以先简单猜测一下,一个广告系统需要有哪些模块:

为了能正常投放广告,广告系统需要对外暴露一批接口API,当媒体需要在特定位置放置一个广告的时候就需要向接口标明是哪个用户在什么媒体的什么位置,展示一个多大尺寸,什么形式的广告,为了能把媒体和广告系统隔离开,把api的调用封装在一套SDK(媒体是什么形式的就用什么形式的SDK,媒体是web页面就封装js的SDK,媒体是安卓app就封装安卓的SDK,媒体是iOS app就封装iOS的SDK等等)中,媒体只需要简单初始化SDK并传递相关参数给SDK,在需要展示广告的位置调用相应的接口,SDK就能完成广告的后续逻辑,如果SDK有升级媒体只需要简单更换SDK并微调变更的接口就能实现逻辑的更新,那最简单结构应该是类似于下图:


我们需要定义一套api接口,比如:广告请求曝光点击接口,只有有了这些接口我们才能识别,媒体有多少流量被发送过来,广告请求里会下发物料和监测链接,如果广告物料被展示了则sdk调用曝光接口,如果物料被点击了,则调用点击接口。相关的广告请求、曝光、点击逻辑被封装在了SDK中,所有调用这个SDK的媒体都可以复用广告逻辑,避免媒体间对于逻辑的实现不一致带来不必要的麻烦。


我们通常使用的广告api通常会选择http协议来实现,为什么选择的是http呢?因为http兼容性还可以,扩展性也不错,从谷歌开始搞广告用js操作dom树向网页里插广告开始,到后来我们用iframe向页面插入广告,再到后来有了移动端我们通过app中集成广告SDK,SDK调用http接口上报客户端信息,服务端返回对应的广告数据,客户端根据这些数据安排广告展现,点击和后续广告展示逻辑,并且上报转化数据,你都可以把这些接口先理解成为http接口,不管背后是用nginx代码魔改,在nginx上用lua操控数据,或者是nginx转发流量到后端的Java,golang,Python程序都可以,甚至是你用C++手打一个http的服务都可以,他们都能基本满足一个广告服务的要求,先有个大致印象,广告api≈一个http服务。
这就是最简单的广告系统,有服务端的广告接口和供客户端集成的SDK就能完成简单的广告展示诉求,但随着广告数量的增多,每次修改程序上线变更物料太麻烦,于是需要一套管理系统去管理广告物料和投放逻辑,以及各个媒体的不同广告位,于是广告管理系统就产生了,任何可以开发MIS系统的语言都可以被用来构建一个广告管理系统。



为了能有效实时计费还需要把展现、曝光和后续转化的监测系统剥离出来,通过收集日志,推送到消息队列,通过实时计算进行去重和计费,最终实现计费系统,调用账务结算系统广告主费用划转,为了去除广告投放过程中的作弊流量还需要有反作弊系统对日志进行清洗,多扣的广告费用需要分阶段回填返还给广告主。

系统功能模块图如下图所示:

其实到这个阶段我们已经有了一个简单的AdNetwork了,也就是广告联盟,媒体集成广告联盟的SDK把流量托管给广告联盟去售卖,广告主可以通过广告联盟投放广告到媒体上,任何打开媒体的受众都可以看到广告主投放的广告,当然这可能只是一个简单的排期广告系统,一段时间内可能一个位置只放一个广告主的一个广告,只有大广告主才能投的起广告。比较知名的广告网络有Google的AdSense,国内早期有好耶、传漾,最近几年做的比较大的有字节的穿山甲联盟、腾讯的优量汇,快手的快手联盟等。

04


广告系统外围还有哪些系统支撑投放


随着媒体和广告主的增多,大广告主挑走了媒体上大段的优势位置和时间段,边角下料的剩余流量越来越多,为了撮合中小广告主和各类流量后来又产生了AdExchange,简称ADX,与之相对应的广告主通过ADX采买流量需要一个DSP(Demand-side Platform,需求方平台,帮助广告主/需求方),采用RTB(Realtime Bidding,实时竞价)的模式采买流量,当然媒体为了更方面的管理自己的广告位和流量应运而生了SSP(Supply-side Platform,供应方平台),SSP协助媒体主将广告资源管理起来加入广告交易平台,可以很方便的调配流量。为了能正确匹配广告主和媒体流量,一些有数据积累的公司也推出了DMP(Data Management Platform,数据管理平台),这些公司一般是做监测工具,或者移动端消息推送相关的公司,因为做数据监测或者消息推送公司的SDK一般都会被集成到量级比较大的媒体app中,所以用户在app中的行为数据收集的比较齐全,通过用户画像后将标签输出给广告主或者媒体用于流量采买和精准定向。各类系统之间的大致关系,类似于下图:

本篇内容已经不少了,后续的文章中我会单独拆解文中提到的诸如(ADX,DSP,SSP,DMP等)每一类系统是怎么做的,内部流程如何流转,数据如何打通,流量如何调度。

下图罗列了相关术语的定义:


当然广告主在对流量进行采买的时候,为了解决数据是以广告主的数据为准,还是以媒体的数据为准标准不统一的情况下,就产生了第三方的监测分析工具;对于媒体的流量质量不放心的时候,还会找第三方的广告流量验证的工具去做验证;当广告主投放计划和物料特别多的时候为了提升优化师的人效,产生了TradingDesk这种聚合投放的模式,调用大媒体方的marketing api实现批量物料上传、创建/启停计划,汇总各平台数据等等功能;为了有效管理程序化创意当然还会用到程序化创意工具,这几类工具大多是广告主根据使用量采买付费。

每一种系统在使用过程中也逐渐衍生出了一些变种,比如,用于媒体方的SSP在移动端流量调度的过程中,为了有效管理app流量利益最大化的过程中,也出现了聚合SSP这种新生的流量调度模式,用服务端下发的配置控制自己的SDK调用第三方广告联盟的SDK,完成广告的后续流程。

下图是RTBChina整理的《2022版中国程序化广告技术生态图》,从图中我们能看到各家公司都涉及了哪几类角色,字节跳动、腾讯,阿里,快手,京东都有自己的超级广告平台,他们或者有大预算,或者有大的流量,亦或是兼而有之,从外部收拢了大流量,也汇集了大投放预算:



广告行业是一个非常庞杂的行业,各式各样的产品形态层出不穷,根据媒体的更新迭代,广告系统也在升级换代,每个有流量的公司都在不断升级改造自己的广告系统,让它的广告系统适应自己的媒体流量。作为广告从业人员,每个人都应该努力去理解跟自己相适应的媒体的广告平台是如何运行和存在的,找到跟自己相适应的使用模式。

相关文章
|
7月前
抖音最近很火的QQ在线价值评估网站源码(qq价值在线评估)
这个源码是很多年以前的了,最近又在抖音刷到别人直播需要刷礼物才能给你评测,所以又找了一下测试了可用,将源码上传后解压,访问可以直接使用。
939 0
抖音最近很火的QQ在线价值评估网站源码(qq价值在线评估)
零撸游戏广告变现模式系统开发部署源码搭建
零撸游戏广告变现模式系统开发部署源码搭建
|
7月前
|
存储 弹性计算 关系型数据库
100W用户、8000W流量在线贺卡应用架构如何优化?
100W用户、8000W流量在线贺卡应用架构如何优化?
|
JavaScript 前端开发
37分布式电商项目 - 网站首页(广告展示)
37分布式电商项目 - 网站首页(广告展示)
46 1
|
JavaScript Java Spring
36分布式电商项目 - 运营商后台(广告管理)
36分布式电商项目 - 运营商后台(广告管理)
70 1
|
安全 机器人 Linux
分享5款安全无毒且没有广告的小软件
今天推荐一些可以大幅度提升办公效率的小软件,安全无毒,下载简单,最重要的是没有广告!
157 0
流量如何才能变现?实际测试谷歌广告联盟(Google Adsense)的广告效果以及如何优化相关代码
2010年,谷歌正式退出中国市场,无数人扼腕叹息,如今十年过去了,谷歌还有两条重要的业务线并没有完全退出,一个是页面统计业务(Google Analytics),另外一个则是谷歌广告联盟(Google Adsense),说起广告联盟,玩儿过网站的朋友应该并不陌生,对于中小型站长、博主来说,要想通过网站的流量取得一些收入,除了和一些线下线上厂商谈包月广告位,更多的可能就是投放广告联盟广告了。但随着网络广告的不断发展,广告形式有了很大的变化,出现了CPC、CPS、CPA、CPV等众多广告类型。
流量如何才能变现?实际测试谷歌广告联盟(Google Adsense)的广告效果以及如何优化相关代码
|
机器学习/深度学习 算法 搜索推荐
怎样设计一个广告系统
怎样设计一个广告系统
391 0
怎样设计一个广告系统
《阿里云营销引擎——为企业打造高水准的广告系统》电子版地址
阿里云营销引擎——为企业打造高水准的广告系统
129 0
《阿里云营销引擎——为企业打造高水准的广告系统》电子版地址
|
设计模式 算法 数据库
关于营销系统的一些实战心得
关于营销系统的一些实战心得
227 0

热门文章

最新文章