项目实战|如何搭建广告投放系统中的数据报表?
广告投放中会涉及两侧数据:产品侧与广告侧。只有将两侧数据打通,才可以直观地看出广告投放的效果。本文将以在巨量引擎投放广告为例,展开说明在搭建数据报表时的三个重要环节。
一、搭建前准备
1. 业务描述
本文的广告数据报表针对的是公司内部付费小说投放业务,广告投放过程中涉及产品侧与广告侧。产品侧中,一个广告投放人员(优化师)可以拥有多个渠道,渠道主要产生用户数据与订单数据;在广告侧,一个优化师可以拥有多个账户,账户主要产生消耗、千展、付费用户成本等数据。
产品侧的渠道可以生成唯一的监测链接,广告平台通过监测链接下发用户触达数据至产品端并完成数据归因。通俗来说,监测链接会让优化师知道消耗的钱带来了哪批用户。
2. 绑定关系
与投放业务部门沟通后,在这个系统中,需要将账户与渠道绑定。整体绑定关系如下图所示,一个优化师可拥有多个渠道和账户,一个渠道可与多个账户绑定,但一个账户只能绑定一个渠道。
3. 账户/渠道操作
作为数据报表,数据的展示仅仅是表现在前端页面的一种形式。在这个背后,需要有众多的机制作基础,其中之一就是需要考虑到在实际使用过程中,投放部门对账户或渠道的操作。例如,变更账户的所有权、变更渠道与账户的绑定关系、人员离职后的数据交接等等。
这一系列操作虽然并不在数据报表的主业务流程中,但是如果不去把这类“潜在需求”考虑进的话,一旦发生因变更操作而造成的bug、数据不准等问题,会让产品的易用程度大大降低。
二、搭建中流程
1. 账户/渠道导入&渠道绑定
作为一个To B的广告投放工具,广告账户管理模块必不可少。本文的数据报表利用广告平台的Marketing API能力,完成Oauth授权流程。完成授权后即可使用广告账户对应的token拉取需要的数据。
渠道数据的导入方法与账户导入类似,通过产品侧的开发的API获取到所有的渠道列表,并将渠道数据保存在系统中,供后续的绑定操作使用。
渠道绑定的业务通过系统内部的账户管理模块完成。在完成对广告账户的Oauth授权后,通过交互弹窗将账户与渠道完成绑定。
2. 报表搭建
搭建报表需要从以下几点考虑:
- 数据字段:与业务部门敲定需要查看的产品侧与广告侧的数据字段及其计算公式
- 刷新频率:确认报表需要查看的是实时数据还是小时级数据
- 统计维度:通常这与系统架构有关,通常可查看账户数据、优化师汇总数据、部门汇总数据
在考虑完成以上几点后,仍有一个问题需要解决:准确性。这是作为数据报表最基础的特性,若无法满足数据准确,再完备的设计那也将会是徒劳。为了提高准确性,可以从数据拉取、数据交接、数据校验三个环节考虑。
1)数据拉取
数据拉取过程中,我们需要注意接口调用的频次以及广告平台侧数据刷新的频率。过高的频率首先会增加自身服务器的压力,阻塞的队列会让一些定时任务“挂掉”,然后导致应该更新的数据未及时更新。
其次,也由于API侧会对调用QPS做限制,在无法及时沟通提升QPS的情况下,自己在业务侧做好数据拉取的限制也尤为重要。例如,不拉取未绑定渠道的账户数据或不拉取30天无消耗的账户数据等等。
2)数据交接
数据交接也是在先前段落提到的问题。通用的绑定模型中,广告投放优化师、广告账户和渠道都是一定的绑定关系。但是实际投放过程中,会存在账户交接、渠道换绑等绑定关系变动的情况。在这里将以变更渠道绑定关系这一场景为例说明数据交接的做法。
变更渠道关系,即使用新账户B投放已有的渠道A,先前的绑定关系为账户A绑定渠道A。因为之前我们提到,广告投放的核心是明确消耗的钱带来了哪批用户。若直接将渠道A的历史数据绑定至新账户B,就会产生疑义:为什么要将账户A消耗带来的用户充值算在新的账户B上?
显然这样的简单粗暴的数据交接流程并不能满足数据报表在准确性上的要求,而失去准确性的数据报表对广告投放起不到任何帮助作用,甚至错误的数据会影响优化师的判断。
如下图所示,这个系统中所使用的方案是将所有数据按小时维度存储,这样的好处就是,所有数据(产品侧数据和广告侧数据)都会按小时记录当时的归属人员、绑定账户/渠道,这样不论是出现账户从属关系变更或者账户渠道绑定关系变更,都可以从下个整点开始基于新的关系进行数据展示。历史数据也会按交接前的绑定关系进行展示,这样就解决了因数据交接带来的误差。
3)数据校验
当数据成功拉取下来后,这也并不意味着广告平台返回的数据是准确的。因为广告平台自身也有自己的数据归因窗口期。当早上8:00平台返回消耗数据为100时,经过其自身的数据归因后,会有可能出现消耗数据修正为150的情况。所以,可以考虑在当天下午或是次日,重新调用API将前一天的数据做一次校准,这样可以避免因广告平台侧数据变更而导致的准确性问题。
三、搭建后总结
当完成数据报表搭建后需要对报表数据进行核对,确保各项字段数值与广告平台返回的数据一致。另外,不同广告平台返回字段的精度格式也需要注意。例如巨量引擎对金额的返回精度为“元”,而腾讯广告返回的是“分”。
在本文涉及的业务场景中,渠道数据与广告账户数据为相同维度。但实际情况中,使用不同的监测链接可以做到将渠道数据与广告计划数据放在相同维度做关联,不过这背后的逻辑都是一样的。
本文作者 @PMing
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!