前言
延续了大数据海洋生物的系列产品,章鱼是有着一套和人类相似基因的海洋生物,这让章鱼能够建立神经网络,具有学习能力。与构建拍拍贷流量管理平台的定位完美契合,因此,章鱼旨在实现数据全面化、决策智能化、系统自动化三大目标,指导市场人员,以更加高效地方式找到更优质的流量。
伴随着新型媒体的不断兴起,技术的迅速发展,除了搜索推广的广告形式,信息流的广告凭借高度适配用户浏览习惯及强沉浸式观感体验,能够精准覆盖目标人群,使得信息流广告已经是目前主要的媒体渠道。
市场和政策小伙伴日常流量投放过程中存在以下痛点:
1.数据分离
媒体渠道效果投放的数据,与公司内部业务数据相互分离,需要手工获取数据、匹配分析,效率低下。且手工拉取数据时效性和数据粒度无法保证,无法进行有效的数据挖掘,因此业务无法实现精细化运营和精准投放。
2.批量投放困难
无法自动化实现批量创建广告计划,需要手动逐条配置,耗费人力,影响投放测试的速度。
3.无法实现实时监控和预警
目前没有实时数据,因此无法实现对广告的实时监控和预警,业务只能通过人力监控固定指标,来实现对广告计划的调整。
基于以上痛点,流量管理平台应运而生,定位实时数据链路、效果评估、决策优化引擎、智能投放平台,来实现对媒体渠道精准触达目标客户群体,挖掘潜在用户,帮助业务提升广告效果。
系统架构
- 媒体数据:主要对接第三方api数据,包含今日头条、百度搜索、神马搜索、广点通等渠道,获取第三方渠道的广告曝光、点击、花费等数据,以及对应广告计划的配置信息(如出价、投放位置、人群定向等);
- 数据处理:将第三方渠道数据与公司内部的注册数据、身份认证、戳额、成交数据等进行关联匹配,实现用户从第三方广告平台到内部数据转化的全链路分析;
- 流量管理平台:在数据处理的基础上,搭建智能投放分析引擎,挖掘有效投放规则,指导精细化运营和投放策略。平台搭建分析策略中心、数据管理中心、监控预警中心、投放中心、渠道管理中心等。
技术选型及系统介绍章鱼是以目前流行的微服务springboot + mybities为基础框架,前端采用当前主流的React框架。由于系统中大部分是启动定时job任务来调用各个媒体平台提供的API接口获取数据,于是我们使用quartz集群框架来管理大量定时任务。我们的系统部署在两台机器上,最近发现quartz集群在某些极端情况下,两台机器的定时任务同一时刻会执行两次,于是我们又在quartz集群框架的基础上增加了redis同步锁来确保在某一时刻,同一个定时任务只执行一次。在此基础上,我们对以下两个方面进行了优化和提升。
1.提升API接口兼容性
章鱼平台要对接多个第三方媒体渠道,比如头条,微信朋友圈,广点通等,我们设计了兼容性更强的接口。当接入新的广告渠道商时,只需修改少量代码就可以完成数据的对接工作。同时系统也进行了大量通用接口抽离工作,这样减少了代码的编写,更便于后期接口的维护。当新接入比较特殊的接口时,我们会单独抽出来,对特殊的接口进行特殊处理。
2.完善API接口的监控和预警
由于广告渠道API接口都是零散且独立的,如对接今日头条包含获取广告投放接口、数据报表接口、查询工具接口等15个接口,在多个广告渠道需要对接的业务需求下,如何有效地对API接口调用情况进行监控和预警,是目前亟需解决的问题,对于以上问题我们制定了一下解决方案:
- 失败重试
章鱼实现了完善的失败重试机制。首先在http调用层做了重试,一旦调用第三方接口返回的http状态码不是200,我们会进行三次的重试,来确保http的调用成功。由于第三方接口的稳定性的影响,当调用第三方的接口时,他们的接口由于网络等原因也会返回失败,我们会根据返回的不同的错误码来进行相应的重试,来确保每次接口调用的成功。
- 邮件预警
系统中有些定时任务获取的是第三方接口中的实时数据,一旦某一时刻接口调用失败,对应那一时刻的数据就会丢失。针对这种情况,完善的系统接口调用健康预警。一旦发现接口调用失败,我们会及时邮件告知,及时重置失败的任务,来确保系统安全稳定的运行。
- 系统接口健壮性统计
对每个接口的执行情况都有详细的统计,每个接口获取数据的总条数,执行的总次数,执行失败的次数,接口调用数据的平均耗时等,一目了然。下图是我们系统从一天中接口获取数据的总条数和获取失败的条数的对比图
后记目前项目进行了一个月,顺利上线了第一阶段,主要包含今日头条数据的全面打通、批量投放辅助工具开发、olap自助分析、api接口监控、相关数据报表等。解决了市场业务数据分离的痛点、批量投放困难的痛点,为投放测试、投放策略挖掘提供了基础。第二阶段开发进行中,目标实现T+1小时的数据接入、实时监控等,以及接入更多的广告渠道。
感谢共同开发的小伙伴们,后续迭代敬请期待~