# open-adx
**Repository Path**: javagossip/open-adx
## Basic Information
- **Project Name**: open-adx
- **Description**: 开放源码的高性能广告交易平台(Ad-Exchange)
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2026-02-07
- **Last Updated**: 2026-06-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: open-dsp, open-adexchange, ADX, open-adx, oax
## README
# OpenADX - 开放广告交易平台
OpenADX 是一个开放的广告交易平台,旨在连接 DSP(需求方平台)、SSP(供应方平台)和广告主,提供实时竞价(RTB)广告交易服务。
## 项目架构
OpenADX 采用微服务架构,主要包括以下模块:
### 核心模块
- **open-adexchange-api** - API 接口定义模块,包含 DSP、SSP 和 Tracking 接口定义
- [open-adexchange-dsp-api](open-adexchange-api/open-adexchange-dsp-api/) - DSP 平台 API 接口定义
- [open-adexchange-ssp-api](open-adexchange-api/open-adexchange-ssp-api/) - SSP 平台 API 接口定义
- [open-adexchange-tracking-api](open-adexchange-api/open-adexchange-tracking-api/) - 广告追踪 API 接口定义
- **[open-adexchange-mos](open-adexchange-mos/)** - 主业务服务模块,包含广告交易的核心业务逻辑
- **[open-adexchange-model](open-adexchange-model/)** - 数据模型模块,定义领域实体和数据传输对象
- **[open-adexchange-dao](open-adexchange-dao/)** - 数据访问层,基于 MyBatis-Flex 实现数据持久化
- **[open-adexchange-dto](open-adexchange-dto/)** - 数据传输对象模块,定义接口实体
- **[open-adexchange-commons](open-adexchange-commons/)** - 公共组件模块,包含通用工具类和服务
- **[open-adexchange-constants](open-adexchange-constants/)** - 常量定义模块,包含系统常量和枚举
- **[open-adexchange-rtb-proto](open-adexchange-rtb-proto/)** - RTB 协议定义模块,包含实时竞价协议定义
### 代码生成模块
- **[open-adexchange-codegen](open-adexchange-codegen/)** - 代码生成模块,包含 MyBatis-Flex 代码生成器
## 模块依赖关系图
```mermaid
graph TD
subgraph "OpenADX Architecture"
mos[open-adexchange-mos
主业务服务]
api[open-adexchange-api
API接口定义]
dsp_api[open-adexchange-dsp-api]
ssp_api[open-adexchange-ssp-api]
tracking_api[open-adexchange-tracking-api]
model[open-adexchange-model
数据模型]
dao[open-adexchange-dao
数据访问层]
dto[open-adexchange-dto
数据传输对象]
commons[open-adexchange-commons
公共组件]
constants[open-adexchange-constants
常量定义]
rtb_proto[open-adexchange-rtb-proto
RTB协议定义]
end
mos --> dao
mos --> model
mos --> dto
dao --> model
dto --> commons
dto --> constants
api --> commons
api --> model
dsp_api --> api
ssp_api --> api
tracking_api --> api
dao --> model
mos --> rtb_proto
```
## 项目特色
- **SPI 扩展机制** - 支持多种 DSP 协议扩展,包括协议转换、宏替换、价格编解码等功能
- **实时竞价** - 支持基于 Protocol Buffers 的高效 RTB 协议
- **安全认证** - 采用基于 HmacSHA256 的安全认证机制
- **灵活配置** - 支持多租户和多 DSP 定制化配置
## 技术栈
- Java 21
- Spring Boot 3.4+
- MyBatis-Flex
- Protocol Buffers
- MySQL
- Redis
- Maven
## 文档资源
### 核心文档
- [广告引擎扩展点说明文档](广告引擎扩展点说明文档.md) - 介绍广告引擎的扩展点机制
- [OAX 广告引擎 SPI 说明文档](oax广告引擎spi说明文档.md) - 详细说明 SPI 扩展机制
- [价格加解密文档](价格加解密.md) - 介绍竞价价格的安全加解密机制
### API 文档
- [OAX-DSP-API对接文档](open-adexchange-api/open-adexchange-dsp-api/docs/OAX-DSP-API对接文档.md) - DSP 平台 API 对接说明
- [OAX_RTB 接口规范](open-adexchange-api/open-adexchange-dsp-api/docs/OAX_RTB_接口规范.md) - 实时竞价协议规范
### 服务端 API 文档
- [OAX-PUBLISHER-API接口文档](open-adexchange-api/open-adexchange-ssp-api/docs/OAX-PUBLISHER-API接口文档.md) - SSP 平台 API 对接说明
- [Publisher API 规范](open-adexchange-api/open-adexchange-ssp-api/docs/oax-publisher-api.proto) - Publisher 接入协议定义
## 快速开始
### 环境要求
- Java 21+
- Maven 3.8+
- MySQL 8.0+
- Redis
### 构建项目
```bash
# 克隆项目
git clone https://github.com/javagossip/open-adexchange.git
# 进入项目目录
cd open-adx
# 构建项目
./mvnw clean install -DskipTests
```
### 运行服务
```bash
# 启动主服务
cd open-adexchange-mos
../mvnw spring-boot:run
```
## 贡献
欢迎提交 Issue 和 Pull Request 来帮助我们改进 OpenADX。
## 许可证
Apache License 2.0