开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第五阶段):报表统计_广告投放统计_需求介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/680/detail/11819
报表统计_广告投放统计_需求介绍
一、按照地域统计广告投放的分布情况
1、对整个框架抽取完以后,下面继续按照框架编写代码。刚才所说框架抽取的方式是一个比较简单,而且在实际工作场景当中很多场景下也能用到的,并且比较容易理解,比较易用的一个抽取的方式,是一个基础的,简单的抽取方式。接下来要进行一个功能,这个功能要统计广告投放在地区的分布情况。
2、刚才是统计数据在地区上的分布情况,接下来是统计广告投放在地区的分布情况,刚才是直接简单的 count 一下,现在就不能这样做了。要统计到广告投放的情况,这是第一点;第二点,在地区的分布情况。所以这个统计分为两大部分,第一部分是广告投放的情况统计,第二部分按照地区维度来统计广告投放的分布情况。
3、目标和步骤
(1)目标是了解广告在不同省市,不同地区的分布情况是怎样的?以便于看一看在某些地区的运营策有一些问题,或者自身存在什么样的问题,数据集有什么问题,能不能进行一些改善?
(2)步骤大致分为两大步,第一步是需求说明,第二步是代码编写。先了解第一步需求说明,需求说明当中先过一遍在这个统计当中所用到的字段。
4、需要用到的字段
(1)第一个字段叫做 requestmode,他指的是数据请求的方式,一般情况下,到达这边的请求有可能是三种情况,第一种是竞价的请求,就是一个请求,这个请求到了,请求做一些事情。第二种是展示,请求做一些展示,把广告展示在什么地方。第三种是点击,假如说媒体上有一个广告位,广告被点击了,也要接收到一个数据的请求告诉我们广告被点击了,可能会有相应的计价。
(2)第二个字段叫做 processnode,就是流程节点,在处理一个请求的时候可能会有很多流程。第一步可能是记录一下这个请求,计算一下这个请求,有这样一个请求;第二步要确定他是否是一个有效的请求,就是这个请求有没有用?有效请求当中也有一部分是系统管理的请求,系统管理上的请求是不要的,只是想看和广告有关的请求。
(3)第三个字段叫做广告平台商 ID,如果这个 ID 大于十万,就是 AdEXchange;如果小于十万,就是 AdNetwork,其实就是这个请求从哪来的。
(4)第四个字段是 iseffective,就是是否可以正常计费,是否这个请求是正常的,这个服务是正常的。isbilling 是否进行收费,isbid 是否是 RTB,就是一个实时竞价。下面一个叫做 aborderid 是广告的 ID,广告的订单 ID。adcreativeid,creativeid 是创意 ID,这个创意是谁去设计的?如果小于二十万是 OSS 的;大于等于二十万是 DSP 的。
(5)winprice 是只有在竞价的时候才可能存在这种情况,winprice 是竞价成功的价格是多少。
(6)adpayment 是转换后的广告消费。
这是可能会用到的几个字段,这些字段要组成很多条件去评审、评价广告的投放效果。这些字段用到他其实就是为了评价、统计或者看到广告投放的情况,所用到的一些字段。最后还是要按照地域进行字段的统计。
5、需要统计的值
(1)需要统计的值其实指的是广告的投放情况需要统计的一些值。第一点,所有请求的数量,怎样获取到所有请求的数量呢?首先 requestmode 的是1,因为只有是1的情况下,代表所有的请求,所有类型 processnode 指的是广告流程、请求流程,只要大于一都算流程内的。所以统计所有的请求,就是requestmode 等于一,processnode 的大于等于一。要想统计有效的广告请求和广告请求数量该怎么做?有效的请求是 processnode 的大于等于二,也就是有效的请求在流程节点当中2和3都是有效的请求,要想统计这个数量的话,要让 processnode 大于等于二,其实统计的是请求。
(2)广告请求数量,首先他得是一个请求,接收到的事件有三种方式,是requestmode 代表的,一种方式是请求,是过来一个请求;还有一种是展示,还有一个是点击,所以 requestmode 1、2、3分别代表什么意思要理解。
(3)统计 AdExchange的有效记录数量,AdExchange 应该用 adplatformprovider 大于十万就是 AdExchange,小于十万就是其他的。有效的记录数量必须可以正常计价,必须还是收费的,并且还得是 RTB,它还得是一个正常的广告,必须有这样几个条件才能判断 AdExchange 的有效记录数量。
(4)来自 AdExchange 的广告的竞价成功记录数量,来自 AdExchange 就是 adplatformproviderid 大于十万,可以正常计价就是 iseffective 等于一,是收费的 isbuilling,竞价成功是 iswin 等于一。
(5)统计可以正常计费的广告展示记录数量,这也是评价广告投放情况的一个字段,广告展示是 requestmode 等于二,一是请求,二是展示,三是点击,广告展示就是 requestmode 等于二,可以计价 iseffective 等于一。还得可以正常计费的广告记录的数量,是点击记录的数量,requstmode 等于三,iseffective 可以正常计价。
(6)来自 AdExchange 的并且由 DSP 处理的竞价成功价格,这个比较复杂。首先来自 AdExchange 就是 adplatformproviderid 大于十万,然后必须可以正常计价 iseffective 等于一 ,并且是收费的 isbilling 等于1,是 RTB,是实时竞价,所以 isbid 等于一,是一个正常的广告 aborderide 的大于两万,DSP 大于二十万,它是竞价成功的。前面都是点击记录的数量,这个时候统计的是价格,所以要按照整个的这种选择方式,按照整个的统计方式,最终求得的值是 winprice。同理,来自 AdExchange 的并且由 DSP 处理的广告消费的价格,刚才是竞价成功价格,现在是广告消费价格,可以使用 adpayment 进行最终的计算,前面的条件一样。
(7)还要进行一个统计,要看到广告请求的占比,要看到广告请求数量和有效请求广告请求数量之间的占比。还要统计付费广告的占比,就是付费广告点击数量在所有广告点击数量中的占比。
6、现在要统计广告投放情况在地区的分布情况,所以得到两个信息,第一个是要统计的广告投放情况;第二个是在地区上的投放情况。广告投放情况说明什么?第一个,所有请求数量是广告投放的情况,有效广告请求数量也是广告投放情况的一部分,也是可以反映广告投放情况的一个指标。其实这些东西都是对应的指标。
AdExchange 有效记录数量都是广告投放的情况,包括平均价格和价格之类的,都是反映广告投放情况的一些重要指标。
7、第二点,在地区上的投放情况。现在只有一条数据,怎样统计这条数据所有的请求数量呢?所有指的是这个地区的所有请求数量,比如说北京的所有请求数量,上海的有效广告请求数量。最终的结果集应该是什么样的?如图所示
首先,是按照 region、city 进行统计的,region city有多少个 req_cnt,req_cnt 就是广告请求数量,valid_req_cnt 代表这个地区下有多少有效的广告请求数量,这些都是要统计的,这些每一个指标对应的是一个列,这个列是在地区下的一些指标的数量,这就是整体上的需求分析。需求处理过了就可以进行代码编写了。