在线广告业务流程

news2024/12/22 19:58:04

一、业务流程

1、注册/登录

广告主登录系统,进行基本的鉴权,角色分配,账户管理。同时为营销参与者包括产品、运营、销售等提供登录、附身功能。

2、代理开户 & 订单合同管理

代理商可代理广告主开户,客户同样统一维护在用户中心;对于KA类广告主往往投放CPT、GD模式的合约广告,因此还需要订单管理、询量询价、合同确认等。

3、资质审核

风控平台审核广告主资质,进行基本的打标和风险控制。

4、用户充值

广告主通过财务平台充值,只有账户余额balance>0时,才具备广告投放准入资格。

5、设置广告

通过客户端、API,或者直接访问投放平台系统,可进行广告投放设置,包括设置预算、排期,添加推广计划、单元、关键词、定向、创意等。这个步骤是广告主表达其诉求的环节。另外图中5.2步骤可以通过DMP提供的平台进行“圈人”操作,现代的广告投放系统基本都可以进行人群定向,因此可以直接对目标受众进行广告投放。投放平台一般是业务系统,多使用服务化的方式构建。

6、存储投放设置

如果把投放平台看做一个复杂的状态机,其无状态,那么状态数据就在广告库中,一般使用结构化的OLTP存储引擎,例如分库分表MySQL、RDS,或者分布式数据库PolarDB、OB、TiDB等,保存了全局广告主的投放诉求。

7、制作创意、制作网站、管理产品

创意是传达推广意图的载体,因此往往会有专门的创意制作工具,以及创意制作的公司。对于中小广告主(SME),一些平台可以提供其基本的建站能力。对于大型广告主(KA),例如苏宁、携程,其可以通过产品库的方式进行创意制作,类似百度闪投,可节约大量创意制作成本,并且提供智能化的千人千面产品投放。现在越来越多的广告平台采用创意组件化的方式投放,基于广告主提供的素材,动态拼接组件,更好的进行个性化的投放,提高点击率。

8、存储物料

物料存储往往是一些非结构化的数据,例如图片、视频等,因此需要专门的存储引擎,例如OSS等,同时还需要同步到CDN等,用于C端在线展示。

8、审核广告物料

风控审核平台会对增量物料进行机审、人审,保证符合平台规范和制度,避免风险物料展示,同时可对创意进行分类打标。

10、广告传输

广告库需要传输到检索端的广告索引中,才可以在线生效。广告可全量导出,利用分布式计算引擎,例如Spark/MaxCompute等,生成基准文件;可实时增量下发,一般通过binlog机制,可使用canal、fountain、hiriver等开源组件,或者利用阿里云DTS下发到消息队列,可实现广告数据的多端解耦和广播下发订阅。

11-19属于检索端流程,检索端由于面向网民,面向流量产品,因此其广告请求往往QPS高,需要低延迟的返回广告结果,在极短的时间内(几百毫秒内,SLA每个平台不同)完成复杂的触发、定向、广告召回、拍卖机制计算、拼接渲染等环节,多数广告平台的检索端采用C++技术栈。

11、离线/实时索引构建广告索引

检索端订阅广告传输流,以及计划撞线、广告主状态的增量,将信息保存或者更新到索引库,其规模往往较大,通过索引服务暴露接口,例如可以通过类SQL方式,根据query查询符合条件的Ad。因此这里往往会做倒排索引,和传统搜索引擎不同的,这里的倒排是Ad,而不是网页,其查询主键可以是keyword,或者定向条件等等多个维度。

12、请求广告/展现广告

网民浏览用户产品,用户产品请求商业广告。访问UI的也可能是ADX,符合OpenRTB协议的bid request,这样广告平台可以接入其他ADX进行竞价,例如tanx。

13、发起检索

请求通过UI服务器,往往是7层负载或者经过封装的服务,向内网服务发起请求。

14、查询特征

请求session提取feature环节,可根据某些id或者id-mapping后唯一定位访问者,拿到query、访问上下文、用户基本信息(IP、IDFA、安卓ID、OAID等)、用户标签信息(兴趣、社会属性)、用户历史行为(搜索或者电商上的行为)等等,这些feature和用户数据供后续环节使用。特征、标签数据往往存储在分布式KV存储中。

15、召回备选广告

输入是请求特征,输出是符合条件的N条广告或者创意。召回通常需要访问广告索引,一般使用倒排索引,也就是feature->unit/creative,可以包含多个通道,所谓通道可以是各种触发方式,例如关键词触发,兴趣定向触发等等,召回的广告需要经过各种业务过滤,并且返回的Ad只包含基础信息,然后构造广告返回队列并截断处理,返回不超过阈值个Ad。这部分可以看做是粗排海选。从广义上来说,搜索广告的关键词匹配也可以发生在这个环节,通过短语匹配、宽泛匹配等来召回搜索广告。

16、预估CTR/CVR

对于粗排后的所有广告,需要进行相应的CXR预估后进行精排,CXR一般包括CTR点击率,或者CVR转化率,输入是<query, List<Ad>>输出是<query, List<pCXR>>,预估的调用发起往往是并行的计算密集型操作,依赖于modeling模块或者服务,一次查询涉及数百次的feature提取和查表,表往往是个大的hashmap,也就是策略端负责更新的模型文件,因为涉及各种特征或者组合数据,因此其文件规模往往巨大,几百G都有可能,需要全量加载到内存,保证访问时延。

17、过滤/排序/计费,返回

针对一些预算场景,需要做匀速消费(pacing)与超预算控制,针对媒体和用户会做频次控制,所以会过滤某些Ad。对于精选过的Ad需要进行排序,一般采用eCPM排序(rank),对于广告还需要查正排,例如查询标题、描述、url,拼接用于展示的数据,拼接加密后的点击串,落展现日志,通过GSP机制进行计费等。

18、样式渲染

广告检索引擎返回的若干创意,往往只是raw的结构化信息,需要结合前端的模板,进行渲染组装后再返回给前端。

19、展现日志

对于搜索广告,可以近似看做该条广告展现了,push到消息队列或者日志系统;对于推荐广告,还涉及填充料和曝光率的问题,因此实际用户看到的远小于返回的广告。

20、点击广告

用户如果感兴趣会点击广告。

21、跳转到落地页

创意展示并且触发动作,可以包括跳转到落地页,拨打电话等等。

23、转化日志

如果发生了真实的转化,转化日志push到消息队列或者日志系统。

24、反作弊过滤

对于展现、点击、转化数据,需要经过反作弊后再计费,反作弊的目的主要是保护广告主和平台利益,过滤无效的展现、点击,例如网站主刷量,竞争对手恶意点击以及不符合统计学规律的各种异常情况。

25、扣费

通过计费服务进行扣费,计费服务需要满足高性能、高吞吐、高可用、可扩展等非功能需求,实时处理展现、点击请求,在指定的推广层级上进行扣费,往往涉及流式计算范畴,例如可以使用Flink构建计费服务,计费需要保证不丢、不重,端到端的exactly once语义。扣费最终反馈到财务中心,扣用户的余额balance。

26、计划撞线/广告下线

对于预算撞线的推广计划,或者广告主余额不足的情况,需要及时下线广告,尽量避免超预算的损失,这部分信息需要实时的反馈到广告索引中,由于涉及平台收入敏感数据,因此可以和广告库分离,单独下发,通过隔离保证下发的实时性。

27、报表数据计算

这部分涉及离线数据处理,把收集上来的展点消数据,经过批量、实时的计算引擎,进行抽取、转换、拼接、过滤,最终输出给数仓warehouse,以及用于广告主查看的报表平台。

对于数仓会面向广告领域建模,有各种事实表和维度表,供业务、算法、BI、dashboard查询使用。对于广告主,往往维度固定,面临高并发的海量查询,因此采用MOLAP的选型,例如PALO,Kylin,Druid,Google Mesa、阿里ADB。

28、查看报表

广告主通过业务平台查询报表,例如最新7天所有推广计划的展点消数据。

29、查询数据

查询报表OLAP Engine。

30、代理商业绩管理、客户管理

CRM是业务平台中非常复杂的系统,面向销售、代理商、客服,典型功能包括线索管理、合同管理、开户,客户管理,业绩管理、返点等,通过运营的手段,为广告平台赋能。

31、分析优化产品

这部分的工作主要是数据分析相关,利用数据仓库技术,使用实时化方式,形成基础的事实和维度表,开源大多构建于HDFS上,使用ORC、Parquet、Carbondata等格式存储,使用Hive on MR、Spark做计算,ROLAP类使用Presto、Impala等查询。

同时也会开发各种面向数据的服务,供BI、Dashboard、一些工具,以及算法工程师使用,用于观察系统大盘,实验对比,消费趋势等等,进一步做决策以及预警。

二、展示流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帮你解锁 Android 性能优化五大误区和两大疑点!

近年来&#xff0c;社区充斥着关于 Android 性能优化的各种误区&#xff0c;本文本着误区终结者的精神&#xff0c;使用具体的性能检测工具&#xff0c;结合真实案例仔细分析这些情况&#xff0c;并对比它们的测试结果&#xff0c;也会聚焦 Android 开发者平时在编码过程的实际…

【CV 向】OpenCV 图形绘制指南

文章目录 引言1. 创建画布2. 绘制线段3. 绘制矩形4. 绘制圆5. 绘制椭圆6. 绘制多边形7. 绘制字体结论 引言 Python OpenCV 是一个功能强大的计算机视觉库&#xff0c;除了图像处理和计算机视觉任务外&#xff0c;它还提供了丰富的功能来绘制各种图形。无论是在计算机视觉应用中…

基于ChatGPT的端到端语音聊天机器人项目实战(三)

企业级ChatGPT开发入门实战 第1课 基于ChatGPT的端到端语音聊天机器人项目实战 Gavin老师:NLP_Matrix_Space 1.4 使用FastAPI构建语音聊天机器人后端实战 在后端代码(backend)中调用了OpenAI API及其他的服务,如图1-10所示。 图1- 10 后端代码调用OpenAI API openai_requ…

一条SQL语句的前世今生

文章目录 MySQL 基础架构分析语句分析查询语句更新语句 总结 本篇文章会分析下一个 SQL 语句在 MySQL 中的执行流程&#xff0c;包括 SQL 的查询在 MySQL 内部会怎么流转&#xff0c;SQL 语句的更新是怎么完成的。 MySQL 基础架构分析 下图是 MySQL 的一个简要架构图&#xff…

Move Dev Meetup杭州线下交流会圆满结束

北京时间6月17日下午2点到6点&#xff0c;由MoveFuns DAO 、MoveBit、ComingChat、杭州时戳微蓝信息咨询有限公司和WEB3CN联合举办的Move开发者线下交流会圆满结束。本次交流会吸引了110余名Move开发者报名&#xff0c;其中超过60位参会者成功来到现场参与了线下交流。 第一位分…

Python在不同领域中的应用

Python 是一种功能强大且易于使用的编程语言&#xff0c;因此在各个领域都有广泛的应用。以下是 Python 在不同领域中的应用&#xff1a; 数据科学&#xff1a;Python 是数据科学家和机器学习专家的首选工具之一。它有成熟的数据分析库和工具包&#xff0c;如 Pandas、NumPy、S…

逻辑回归模型的简介及python代码实现

文章目录 1 逻辑回归简介1.1 回归步骤1.2 逻辑回归与多重线性回归 2 逻辑回归模型算法原理2.1 逻辑回归模型的数学原理2.2 逻辑回归模型的代码实现2.3 逻辑回归模型的深入理解2.4 多分类逻辑回归模型演示 总结 1 逻辑回归简介 逻辑回归是分类当中极为常用的手段&#xff0c;它…

(六)关于Linux中服务器磁盘爆满问题的几个解决方案

文章目录 一、现象二、现象产生的原因三、问题的定位过程1.检查业务文件存放位置是否合理2.检查服务器系统盘空间是否分配过小3.对服务器磁盘占用情况进行分析4.若以上方案都解决不了内存占用过高问题&#xff0c;则考虑是否是服务器中存在其他容器产生了一些文件&#xff0c;比…

【使用Hystrix实现服务容错和熔断】—— 每天一点小知识

&#x1f4a7; 使用 H y s t r i x 实现服务容错和熔断 \color{#FF1493}{使用Hystrix实现服务容错和熔断} 使用Hystrix实现服务容错和熔断&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390…

进程、线程、协程?go中的协程原理详解 - 协程是什么?为什么要有协程?

1. 为什么要有协程&#xff1f; 我们使用工厂来表示计算机&#xff0c;而内存空间就相当于工厂的地皮&#xff0c;那么我们可以认为进程就是工厂中的厂房&#xff0c;它占据了工厂的地皮。&#xff08;进程是分配资源的最小单位&#xff09; 线程是什么呢&#xff1f;我们继续…

电商运营个人简历范文

电商运营个人简历篇1 个人信息 某某x 性 别&#xff1a; 男 婚姻状况&#xff1a; 已婚 出生年月&#xff1a; 1981年1月 民 族&#xff1a; 汉族 身 高&#xff1a; 175cm 最高学历&#xff1a; 大专 体 重&#xff1a; 70公斤 计算机能力&#xff1a; 高级程序员 技术职称&am…

MySQL的IF(exp1, exp2, exp3)、IFNULL(exp1, exp2)、ISNULL(exp)函数的用法

本章主要是讲解一下mysql的常用方法if()和ifnull()的使用 1、ISNULL(exp) 该函数的作用是判断表达式exp是否为null&#xff0c;如果是null&#xff0c;则返回1&#xff0c;否则返回0 案例代码&#xff1a;以上两条语句的查询结果为分别为1和0 select ISNULL(null) from dual…

管理类联考——逻辑——技巧篇——形式逻辑——考官出题套路

文章目录 考官出题套路一&#xff1a;代入逻辑推命题真假1. 考官出题套路特征&#xff1a;2. 核心考点&#xff1a; 考官出题套路二&#xff1a;判断逻辑真假1. 考点概述&#xff1a;2. 快速秒杀选项技巧&#xff1a; 考官出题套路三&#xff1a;推矛盾和“两难推理”1. 考点概…

一句话木马(绝对入门,实战环境安装+测试)主要是记录我的第一次一句话木马过程,复现40分钟左右。

首先介绍一下&#xff0c;搭建在本地的靶场&#xff0c;可以做渗透和注入的测试&#xff0c;真是好东西。 安装教程我推荐一篇博客&#xff0c;真的写的很好&#xff0c;我全程坐下来非常流畅非常流畅&#xff0c;csdn少见的高质量博客 DVWA下载安装_PisaYu的博客-CSDN博客 膜…

MFC第五天 Unicode软件开发 MFC框架构成与封装类原理

文章目录 Unicode软件开发以Unicode为字符集的记事本软件开发 MFC框架构成与封装类原理示例代码如下&#xff1a; Unicode软件开发 Unicode软件开发时需要遵循以下规则&#xff1a;使用中可尽量使用自适应版本。 Unicode软件开发&#xff1a; a)微软的软件工程现在默认使用Uni…

【MYSQL篇】mysql中相关锁和MVCC详解

文章目录 前言MVCC1、第一个事务2、第二个事务3、第三个事务4、第四个事务5、第五个事务 InnoDB 常见的几种锁机制共享锁排它锁意向锁记录锁间隙锁临键锁 小结 前言 数据库的锁是在多线程高并发的情况下用来保证数据稳定性和一致性的一种机制。MySQL 根据底层存储引擎的不同&a…

OpenGL

需要继承的两个类 #include <QOpenGLWidget> #include <QOpenGLFunctions_3_3_Core> class OpenGLWidget : public QOpenGLWidget,public QOpenGLFunctions_3_3_Core { Q_OBJECT public: explicit OpenGLWidget(QWidget *parent nullptr); virtual vo…

如何看待调查称半数年轻人存款不足10万?

文章目录 一、目前的存款在哪一个区间&#xff1f;你觉得存款难吗&#xff1f;2.1 自己的状态2.2 对理财的看法和态度 二、谈谈我为存款做出过哪些努力&#xff1f;三、除了个人因素外&#xff0c;有哪些因素影响到了年轻人的存款能力和存款意愿&#xff1f;四、要攒够多少存款…

【数据库原理与实践】CS系的实验期末考题(20222023)

2022&#xff1a; 学校管理数据库涉及四个关联表结构&#xff1a; 学生表 Student(Sno,Sname,Sdate,Ssex) &#xff0c;其中Sno学生编号&#xff0c;Sname学生姓名&#xff0c;Sdate出生年月&#xff0c;Ssex学生性别 。 课程表 Course(Cno,Cname,Tno) &#xff0c;其中Cno课…

(写自己语言的练手级应用)JSON(JavaScript Object Notation) 产生式(BNF)

写自己的开发语言时&#xff0c;很多人都会拿JSON当第一个练习对象 开源net json FJSON 解析工具https://dbrwe.blog.csdn.net/article/details/107611540?spm1001.2014.3001.5502 <json> :: <object> | <array> <object> :: "{" [ <me…