从小白的视角理解广告系统

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: 开篇 因为一些原因有幸接触了一些广告相关的工程技术,结合周末随便翻阅的计算广告学一书,写一篇博文沉淀一下。 文章主要从像我这样的小白用户视角,聚焦于广告相关的工程方向,当然文章当中绝对不会出现违规的内部信息,所以各位大佬们也可以放心了,文章主要会围绕计算广告学中提到的系统架构图进行说明。

开篇

 因为一些原因有幸接触了一些广告相关的工程技术,结合周末随便翻阅的计算广告学一书,写一篇博文沉淀一下。

 文章主要从像我这样的小白用户视角,聚焦于广告相关的工程方向,当然文章当中绝对不会出现违规的内部信息,所以各位大佬们也可以放心了,文章主要会围绕计算广告学中提到的系统架构图进行说明。

 其实广告真正核心的内容在于算法部分,工程只是脚手架,一些广告系统用到的软件基本上都是开源的系统,可以在文章末尾的公开课中看到,里面有一章讲解如何用开源软件搭建一个广告系统。


广告系统架构图

img_22a606fb7de5e43a03d089b670c218e4.png
广告系统架构

说明:
从上图可以看出,从在线和离线的角度来看广告可以区分为在线系统和离线系统。

  • 离线系统:主要聚焦于算法模型的训练以及离线广告费用结算相关。
  • 在线系统:在线系统主要解决广告投放和实时点击计费相关功能。
  • 在线系统:包括广告投放引擎、广告索引、广告商家中心、计费中心。
  • 投放引擎:主要负责在接受广告投放请求返回对应的广告商品。
  • 广告索引:广告索引保存商家投放的广告商品信息。
  • 广告商家中心:负责提供给商家购买广告的操作平台。
  • 计费中心:实时对商家的广告消耗进行计费并实时实现广告商品的上下架功能。
  • 结算中心:负责对广告的消耗进行离线的结算,对商家进行扣款等。


广告系统核心模块

广告商家中心

 广告的商家中心作为商家购买广告的入口,给商家提供购买广告的入口,在这里商家可以为建立自己的推广计划,为自己热推的商品购买广告词,设置一些通用的信息类似点击费用、日推广上线等信息。

 购买广告成功后会将商品的广告信息实时的进入到广告索引当中,当用户搜索商品的时候投放引擎就能从广告索引中检索到该广告商品。

广告索引

 广告索引顾名思义就是用于保存广告商品的索引信息,便于投放引擎检索广告信息。在广告索引的选型上一般的公司都会选用比较成熟的elasticsearch作为广告索引的技术方案。

 作为广告的索引引擎,elasticsearch很好的解决了分词和倒排等功能,当然elasticsearch开放的plugin接口能够提供可供扩展的打分排序的功能。毕竟elasticsearch都已经是一个上市公司了,功能还是比较强大的。

 当然在建索引的时机选择上应该都会有一些通用的全量和增量实现方式,这些功能感觉各家之间应该也是大同小异的。

投放引擎

 投放引擎作为整个广告系统的门面,主要是负责接受广告请求并返回对应的广告商品,主要是作为一个入口串联起后面的广告引擎等系统。

 投放引擎在返回的广告商品信息中,不出意外的会携带一些广告的标识信息,包括商品本身信息和广告的一些计费信息,毕竟这些信息在用户点击广告后会通过日志流的形式传给后端系统用于在线计费和离线结算等。

计费中心

 计费中心在这里主要是指实时的在线计费功能,也就是说用户在电商平台实时点击广告后回传一条实时日志给后台系统,后台的计费中心会消费该日志并对这个广告商品进行实时计费。

 实时计费中心,很大一部分功能解决广告主也就是电商平台的商家对广告消耗的上限设定,类似于某商家规定一天消耗不超过500。实时结算中心一方面通过实时监控广告消耗解决了广告主投放广告产生消耗上限的需求,同时也让电商平台的广告收益最大化,下线达到上限的广告,让其他广告的曝光增加,增加收入。

 当然计费中心内部肯定会包含一些通用的反作弊功能,避免恶意广告点击,这些都是比较通用的功能。

结算中心

 结算中心一般对广告前一天的广告消耗进行扣费结算,这其中是一个非常复杂的离线处理系统,需要考虑各种情况。一般结算中心在实时性方面都是T+1,也就是在第二天对前一天广告的消耗进行离线计算并对广告主进行扣费。


广告系统中的开源软件

  • 1、elasticsearch:广告索引
  • 2、kafka:广告点击实时日志
  • 3、redis:缓存反作弊
  • 4、flume:日志采集系统


参考文章

计算广告学-网易云课堂
计算广告学

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
弹性计算 负载均衡 关系型数据库
如何提高业务系统的稳定性
【6月更文挑战第21天】如何提高业务系统的稳定性
|
8月前
|
数据采集 数据可视化 大数据
揭秘Dataphin:一站式企业级数据治理平台的全景体验!
Dataphin是阿里巴巴推出的全生命周期数据治理平台,基于OneData方法论,覆盖数据采集、管理到消费的全流程。它支持多种计算平台,提供灵活可扩展的能力,助力企业构建高效的数据中台。其强大的自动化与可视化功能,显著提升数据治理效率和质量,适用于大规模数据处理场景。未来可加强AI预测能力,为企业带来更多智能决策支持。
453 2
|
存储 JSON 数据库
Elasticsearch 分布式架构解析
【9月更文第2天】Elasticsearch 是一个分布式的搜索和分析引擎,以其高可扩展性和实时性著称。它基于 Lucene 开发,但提供了更高级别的抽象,使得开发者能够轻松地构建复杂的搜索应用。本文将深入探讨 Elasticsearch 的分布式存储和检索机制,解释其背后的原理及其优势。
763 5
|
开发工具 图形学 iOS开发
Unity与IOS⭐Unity接入IOS SDK的流程图
Unity与IOS⭐Unity接入IOS SDK的流程图
蜂窝网络中的频分多址(FDMA)与码分多址(CDMA)详解
蜂窝网络中的频分多址(FDMA)与码分多址(CDMA)详解
2088 11
|
Java 测试技术 Maven
maven跳过单元测试-maven.test.skip和skipTests的区别
maven跳过单元测试-maven.test.skip和skipTests的区别
374 0
|
存储 消息中间件 运维
分层存储救不了Kafka
Apache Kafka,作为流处理领域的标杆,面临云环境下的挑战,如高存储成本、运维复杂性和性能瓶颈。传统的本地磁盘Shared Nothing架构导致这些问题,而分层存储仅部分缓解,未根本解决问题。直接写入S3虽降低成本,但牺牲了延迟。为解决这些痛点,提出了创新的共享存储架构,通过EBS+S3实现存算分离,保持低延迟并提高弹性,同时降低成本和运维复杂性。该架构将EBS视为共享存储,实现Broker与存储的解耦,确保在云时代引领流处理系统的发展。
386 3
分层存储救不了Kafka
|
存储 NoSQL 分布式数据库
【Flink】Flink分布式快照的原理是什么?
【4月更文挑战第21天】【Flink】Flink分布式快照的原理是什么?
|
小程序
【微信小程序6】引入第三方UI的方法(ColorUi)
【微信小程序6】引入第三方UI的方法(ColorUi)
1218 0

热门文章

最新文章