团队成员:尹婧雅,杨蕊帆,马艺萌,陈敏轩,颜飘逸
整个系统由四个主要部分构成,分别部署在四个独立的服务器上。
这个网站是广告商使用的后台管理系统。
核心功能:
- 广告商身份验证:广告商通过用户名和密码登录系统。
- 广告内容管理:
- 创建广告:广告商可以发布新的广告。在发布时,必须为广告选择或标注一个明确的类型,例如“数码产品”、“美妆护肤”、“服装鞋帽”、“食品饮料”等。
- 广告形式:广告商可以上传不同形式的广告素材,包括纯文字广告、图片广告,以及视频广告。
- 编辑与更新:广告商可以随时修改已经发布的广告信息,包括广告类型、文字内容、图片或视频。
- 删除广告:对于不再需要投放的广告,可以从系统中删除。
- 查询与查看:广告商可以浏览和管理自己发布的所有广告列表。
这是一个没有界面的后台服务,它是整个系统的“大脑”,负责决策和协调。
核心功能:
-
接收并存储用户行为:
- 当用户在购物网站、视频网站、新闻网站上进行浏览时,这些网站会悄悄地(对用户不可见)向这个服务发送一条消息。
- 消息内容包含:一个匿名的用户标识符(不是用户名,而是由系统生成的临时ID或会话ID)、用户正在浏览的商品类型(例如,用户在购物网站看笔记本电脑,就发送“数码”类型)、以及来自哪个网站。
- 这个服务会将这些信息累积起来,为每个匿名用户构建一个“兴趣画像”。例如,某个用户频繁浏览数码产品,他的兴趣画像中“数码”类的权重就会非常高。
-
智能广告投放决策:
- 当视频网站或新闻网站需要显示广告时,会向这个服务请求:“我这里有一个用户(提供他的匿名ID),请告诉我应该给他展示哪个广告”。
- 这个服务会立刻查询该用户的兴趣画像,发现他最近对“数码”很感兴趣。
- 随后,它会在广告管理网站的数据库中,寻找状态为“活跃”且类型为“数码”的广告。
- 最后,它将最合适的广告内容(文字、图片或视频的链接地址)返回给请求的网站。
-
提供广告内容:它存储了所有广告的最终素材(如图片、视频文件),或者能够重定向到这些素材的地址,以便其他网站能够获取并展示。
这是用户浏览商品的平台,也是收集用户兴趣数据的主要来源。
核心功能:
- 商品浏览:用户正常地浏览各种商品,如手机、电脑等数码产品。
- 暗中上报用户兴趣:
- 当用户查看某个商品的详情页时,网站在后台会向第二部分提到的“统一广告服务”发送一条消息。
- 消息内容类似于:“匿名用户A,正在访问‘数码’类商品页面”。
- 这个过程是自动的,用户感知不到。
它与系统的整合: 这个网站本身不直接决定显示什么广告,它的主要任务是告诉中枢系统“这个用户喜欢什么”。
这两个网站是广告最终被用户看到的地方。它们的工作原理类似。
视频网站的核心功能:
- 视频播放:用户正常观看视频。
- 插播广告:在视频播放前(开头)或中途(中间暂停时),播放器会向第二部分的“统一广告服务”请求广告。
- 精准投放:广告服务会根据用户的兴趣画像(比如,知道该用户喜欢数码产品)返回一个相关的数码产品视频广告。网站然后将这个广告插播给用户。
新闻网站的核心功能:
- 新闻阅读:用户正常阅读文字新闻。
- 精准广告位:
- 文字相关广告:系统会分析用户正在阅读的新闻内容(例如,一篇关于手机发布的文章),然后自动向“统一广告服务”请求与“数码”相关的广告。
- 广告位置:将这些精准匹配的广告展示在文章文字的左右两侧。
它们与系统的整合: 这两个网站负责向中枢系统“询问”该给当前用户看什么广告,然后接收并展示中枢系统返回的精准广告内容。
- 广告商在广告管理网站上创建了一个“数码”类的视频广告。
- 用户甲在购物网站上浏览笔记本电脑,购物网站悄悄将“用户甲对数码感兴趣”这一信息报告给统一广告服务。
- 随后,用户甲离开购物网站,打开了视频网站观看视频。
- 在视频播放前,视频网站向统一广告服务请求:“请问该给用户甲播放什么广告?”。
- 统一广告服务识别出用户甲,并查到他的兴趣是“数码”,于是从广告库中选中了广告商上传的那个数码视频广告,将其返回给视频网站。
- 视频网站收到广告后,在视频开头为用户甲播放了这个数码产品广告,实现了精准投放。
这个设计确保了用户身份的匿名性(不使用个人账号信息,仅用临时标识),并通过分离的服务架构实现了高效的精准广告投放。您可以将这四个部分分别部署到四台服务器上,并进行联调演示。
- 核心框架:Java Servlet + JSP
- 数据持久层:JDBC
- 数据库:MySQL 8.0
- 基础技术:HTML + CSS + JavaScript
- AJAX:原生Fetch API
- Web服务器:Apache Tomcat 11.x
- 数据库服务器:MySQL 8.0
- 集成开发环境(IDE):IntelliJ IDEA
- 版本控制:Git + GitHub
- 项目构建与依赖管理:Maven
- 核心任务:
- 设计并创建广告商与广告数据表。
- 实现广告商登录验证。
- 完成广告的增、删、改、查后台功能与前端页面。
- 交付物:一个可运行的后台系统,管理员可登录并管理广告。
- 核心任务:
- 开发新闻网站,具备展示新闻列表和详情页的功能。
- 在广告平台创建API接口,能按类型查询广告。
- 在新闻网页中调用该API,实现广告的嵌入展示。
- 交付物:一个能显示新闻和固定类型广告的新闻网站。
- 核心任务:
- 开发购物网站,具备商品浏览功能。
- 在广告平台创建用户行为上报API。
- 用户在购物网站浏览商品时,向该API上报其匿名ID与商品类型。
- 交付物:一个能浏览商品并上报用户兴趣数据的购物网站。
- 核心任务:
- 创建用户兴趣表,设计算法根据用户行为更新其兴趣偏好。
- 改造广告投放API,使其接收用户ID而非固定类型。
- 新算法根据用户兴趣画像,返回其最可能感兴趣的广告。
- 交付物:具备用户兴趣分析和精准广告决策能力的核心服务。
- 核心任务:
- 开发视频网站,具备视频播放页面。
- 视频播放前,向广告API请求广告。
- 根据API返回的精准广告(视频或图片),在播放器中进行插播或展示。
- 交付物:一个能根据用户兴趣插播精准广告的视频网站。
-
核心任务:
- 将四个子系统部署到四台远程服务器。
- 进行端到端全流程测试,确保从行为收集到精准投放的链路畅通。
- 修复跨站会话、网络通信等问题,准备最终演示。
-
交付物:一个完整、可演示、部署在远程服务器上的广告生态系统。
| 成员 | 负责模块 | 核心任务 | 技术重点 |
|---|---|---|---|
| 马艺萌 | 广告管理网站 | 1. 实现广告商身份验证功能2. 完成广告创建、编辑、删除、查询等内容管理功能3. 开发广告数据统计(点击、观看次数)及 API 接口 | JSP + JDBC + MySQL,重点关注表单验证、文件(图片 / 视频)上传与数据库交互 |
| 尹婧雅 | 统一广告与用户追踪服务 | 1. 开发用户行为接收与存储模块2. 构建用户兴趣画像算法3. 实现智能广告投放决策逻辑 | JSP + Servlet + MySQL,重点关注高并发下的数据处理、SQL 优化及推荐逻辑的准确性 |
| 颜飘逸 | 购物网站 | 1. 搭建商品浏览页面2. 实现用户匿名 ID 生成与 Cookie 存储3. 完成用户兴趣行为上报功能 | JSP + JavaScript,重点关注前端页面展示、Cookie 操作及与统一服务的 HTTP 交互 |
| 杨蕊帆 | 视频网站 | 1. 开发视频播放功能2. 实现广告插播逻辑(定时 / 触发式)3. 对接统一服务的广告推荐接口 | JSP + HTML5 Video + JavaScript,重点关注视频与广告的播放时序、异步请求处理 |
| 陈敏轩 | 新闻网站 + 整体联调与文档 | 1. 开发新闻阅读页面2. 实现新闻内容解析与广告匹配逻辑3. 负责各模块联调测试、README 文档编写及部署协调 | JSP + JavaScript,重点关注内容解析算法、跨模块接口联调及文档的完整性 |