本文起了一个稍微大的名字。又是运营管理,又是中台的。其实只是想阐述一下广告资源运营管理系统设计,但是再一想,在大公司,这样的运营管理系统其实是划分到中台范围的。随着公司逐渐发展壮大,刚开始一条业务线,也会逐渐衍生出多条业务线。一条业务线就是一个大部门,每个大部门又会有自己的技术部门。这时的公司其实会有多个同级的技术部门的,大家做着各自的业务,彼此会有交集。那么这个时候中台就出现了,中台是解决技术服务复用问题的,也就是把共性业务抽离出来,比如消息发送模块(发送push消息、短信、邮件等等),这个功能几乎每个业务部门都需要,如果每个部门都开发一套消息发送程序,那实在是浪费人力、物力。共性业务无需重复开发,应该将其下沉到更底一层,形成一个独立服务供上层业务方调用。类似这样的服务多起来后,也就形成了中台系统,如:用户服务、支付服务、订单服务等等,本文要介绍的运营管理系统,也算是中台系统的一员。如果用面向对象思维来解读的话,中台就是抽象类了,各个业务方就好比继承类,共有方法无需重写,继承类可以直接调用。
一款app,我们常见的广告有闪屏、弹框、横幅等广告资源,每个资源基本包括图片、文字、跳转链接等字段,那么这就需要一个系统来管理。但是运营人员投放思路是经常变化的,某天,想投放一个弹框广告,但是只针对android平台的某个渠道,那么这个系统不仅可以建广告,还需要支持建投放规则。同时,该系统还要支持各业务线,各个业务线的运营人员都可以使用,这就还需要权限管理。
基本概念:
资源位:app上的一个位置,比如闪屏页资源位、首页弹窗资源位。资源位具有唯一性,可以根据自己的需求建资源位,并为资源位分配一个code。 业务调用方就根据这个code请求广告资源。注意这里说的业务调用方,指的是业务方服务端,而非客户端或前端,因为业务线的客户端、前端是不能直接和中台打交道的,他们应该和各自的业务方服务端打交道。
广告资源:图片、文字、跳转链接等基本元素。当然有的广告复杂一些,还有按钮什么的。
广告组:一组有相同属性的广告资源集合,广告组还有这一组广告展示开始时间、结束时间、结果集筛选策略(组内互斥,选一展现;还是组内多选,同时展现等)、权重等信息。
规则:根据请求参数,及配置的条条框框,决定这次请求命中哪个广告组。
疲劳度控制:单用户日展示上限、总展示上限、点击N次后不再显示等。对于某个用户,一旦达到设定就不在下发数据。
下面是时序图,结合上述概念看这个时序图还是比较好懂的。
下面是一些页面图,新建资源位时,需要新建请求输入参数,以及返回资源内容,比如下面例子,入参比较简单:用户id、平台号、渠道号、设备号等,输出仅有一项:跳转链接,如果业务场景复杂,可以继续建各种入参及出参。
资源位建好后,就可以建广告组、广告资源,以及规则。如下图:
规则要复杂一些,资源都是静态的,无非图片、文字、url地址等,而规则是可配置的,并且可以随时修改。比如上面的定向规则,根据入参平台号,及当前设置的平台号做匹配,匹配上才会下发数据,规则一旦调整,需要立即生效,同时大量的查询请求,需要及时响应,这其中需要使用大量的缓存。
罗马不是一天建成的,这个系统也不是一次成型做成这样,而是根据各业务线需求,不断迭代开发才会做到这样。上面介绍的只是一部分功能点,该系统还可以对接数据仓库及机器学习平台,另外也可以看到除了配置广告资源,其实还可以配置其他非广告资源,届时这个系统又可以起到一些配置中心作用。本文仅做介绍,提供一点点思路,具体像表结构如何设计、模块如何划分和设计,就不一一说了。不论谁做类似这样的系统,都要相信自己能做的更好。