初始化项目

This commit is contained in:
2025-12-06 10:38:48 +08:00
parent c9fcfc761e
commit 88a2753211
20 changed files with 2552 additions and 74 deletions

261
README.md
View File

@@ -1,99 +1,212 @@
# CID广告管理系统
# CID服务商项目
## 项目简介
## 项目概述
CID广告管理系统是一个完整的广告投放和管理平台,支持广告主管理、广告管理、广告位管理和数据统计分析等功能
CID服务商项目是一个为企业提供CIDClick ID服务的完整解决方案。该项目通过智能策略引擎为不同级别的租户提供定制化的广告匹配服务支持多广告源集成和转化率控制
## 功能模块
## 核心功能
### 1. 广告管理
- 广告创建、编辑、删除
- 广告审核流程
- 广告状态管理
- 广告投放设置
- 广告定向设置
- 广告统计数据
### 1. 租户管理系统
- **多租户架构**: 支持多个企业租户同时使用
- **租户级别**: Basic、Standard、Premium三个级别
- **用户认证集成**: 通过common模块获取用户信息
### 2. 广告管理
- 广告主注册、审核
- 广告主信息维护
- 广告主账户管理
- 充值和授信额度管理
- 广告主状态管理
### 2. 广告管理
- **自营广告**: 系统内置的广告库存
- **Google Ads**: 集成Google广告平台
- **Facebook Ads**: 集成Meta广告平台
- **扩展性**: 支持添加更多广告源
### 3. 广告位管理
- 广告位创建、编辑
- 广告位状态管理
- 广告位定价设置
- 广告位展示规则
- 广告位统计数据
### 3. 智能策略引擎
- **转化率控制**: 根据租户级别设置不同转化率范围
- **权重分配**: 为不同广告源配置权重比例
- **动态匹配**: 实时根据策略匹配最优广告
### 4. 广告统计与报表
- 广告效果统计
- 数据可视化仪表盘
- 自定义报表生成
- 报表导出功能
- 数据趋势分析
### 4. CID生成与追踪
- **唯一CID**: 为每次请求生成唯一标识
- **请求记录**: 完整的请求历史记录
- **性能统计**: 详细的性能和转化统计
### 5. 广告匹配与投放
- 基于用户画像的广告匹配
- 实时广告投放
- 广告频次控制
- 广告预算控制
## API接口
## 技术架构
### 租户管理
- `POST /tenant/create` - 创建租户
- `PUT /tenant/update` - 更新租户
- `DELETE /tenant/delete` - 删除租户
- `GET /tenant/info` - 获取租户信息
- `GET /tenant/list` - 获取租户列表
### 技术栈
- Go语言 + GoFrame框架
- MongoDB 数据库
- Redis 缓存
- RESTful API设计
### 广告源管理
- `POST /ad-source/create` - 创建广告源
- `PUT /ad-source/update` - 更新广告源
- `DELETE /ad-source/delete` - 删除广告源
- `GET /ad-source/info` - 获取广告源信息
- `GET /ad-source/list` - 获取广告源列表
### 策略管理
- `POST /strategy/create` - 创建策略
- `PUT /strategy/update` - 更新策略
- `DELETE /strategy/delete` - 删除策略
- `GET /strategy/info` - 获取策略信息
- `GET /strategy/list` - 获取策略列表
### CID核心服务
- `POST /cid/generate` - 生成CID广告
- `GET /cid/statistics` - 获取CID统计
- `GET /cid/history` - 获取CID历史记录
## 租户级别策略
### Basic级别
- 转化率范围: 1% - 5%
- 广告源: 仅自营广告
- 每次请求: 最多3个广告
### Standard级别
- 转化率范围: 5% - 15%
- 广告源: 自营(70%) + Google(20%) + Facebook(10%)
- 每次请求: 最多5个广告
### Premium级别
- 转化率范围: 15% - 100%
- 广告源: 自营(40%) + Google(30%) + Facebook(30%)
- 每次请求: 最多10个广告
## 项目结构
### 项目结构
```
cidservice/
├── consts/ # 常量定义
├── controller/ # 控制器层
│ ├── advertisement_controller.go
│ ├── advertiser_controller.go
│ ├── ad_position_controller.go
│ └── ad_statistics_controller.go
├── dao/ # 数据访问
│ ├── advertisement_dao.go
│ ├── advertiser_dao.go
│ ├── ad_position_dao.go
│ └── ad_statistics_dao.go
├── model/ # 模型定义
│ ├── dto/ # 数据传输对象
── entity/ # 实体对象
└── service/ # 服务层
── advertisement_service.go
├── advertiser_service.go
├── ad_position_service.go
── ad_statistics_service.go
│ ├── cid_controller.go
│ ├── ad_source_controller.go
│ ├── strategy_controller.go
│ └── ...
├── service/ # 服务
│ ├── cid_service.go
│ ├── ad_source_service.go
│ ├── strategy_service.go
│ └── ...
├── dao/ # 数据访问层
│ ├── cid_request_dao.go
── ad_source_dao.go
│ ├── strategy_dao.go
── ...
├── model/ # 数据模型
├── entity/ # 数据库实体
── dto/ # 数据传输对象
│ └── types/ # 类型定义
├── database/ # 数据库脚本
│ └── init.sql # 数据库初始化
├── config/ # 配置文件
│ └── config.example.yaml
└── README.md
```
## 架构说明
### 租户管理
- 租户信息不在当前项目中维护
- 通过common模块获取用户和租户信息
- 支持Basic、Standard、Premium三个级别的租户
### 广告源集成
- **自营广告**: 系统内置广告库存
- **Google Ads**: API集成
- **Facebook Ads**: API集成
- 可扩展支持更多广告源
### 策略引擎
- 基于租户级别的动态策略匹配
- 支持转化率阈值控制
- 灵活的广告源权重配置
## 使用示例
### 1. 生成CID广告
```json
POST /cid/generate
{
"request_type": "web_banner",
"position": "header",
"count": 5
}
Response:
{
"cid": "CID_1640995200000_1234",
"ads": [
{
"id": 10001,
"title": "优质产品推广",
"description": "高质量的产品广告",
"image_url": "https://example.com/ad.jpg",
"target_url": "https://example.com/product",
"conversion_rate": 0.08,
"source": "self",
"bid": 500
}
],
"total_ads": 1,
"tenant_id": 1,
"tenant_name": "示例公司",
"generated_at": "2023-12-31 16:00:00"
}
```
### 2. 创建策略
```json
POST /strategy/create
{
"name": "高级策略",
"description": "高级租户专用策略",
"tenant_level": "premium",
"min_conversion": 0.15,
"max_conversion": 1.0,
"source_weights": {
"self": 40,
"google": 30,
"facebook": 30
},
"max_ads_per_req": 10,
"priority": 100,
"status": "active"
}
```
## 部署说明
1. 配置MongoDB和Redis连接
2. 修改config.yml配置文件
3. 执行`go run main.go`启动服务
4. 服务默认运行在3002端口
1. 确保数据库连接配置正确
2. 执行数据库迁移脚本
3. 配置广告源API密钥
4. 启动服务
## API文档
## 扩展功能
API文档可以通过Swagger或Postman查看主要接口包括
### 添加新的广告源
1.`AdSource`表中添加新的广告源配置
2.`cid_service.go`中实现对应的广告获取方法
3. 在策略中配置相应权重
- 广告管理:/advertisement/add, /advertisement/update, /advertisement/list等
- 广告主管理:/advertiser/add, /advertiser/update, /advertiser/list等
- 广告位管理:/adposition/add, /adposition/update, /adposition/list等
- 广告统计:/statistics/list, /dashboard等
- 报表管理:/report/create, /report/list, /report/download等
### 自定义策略
通过策略管理API创建自定义匹配策略支持
- 自定义转化率阈值
- 灵活的权重分配
- 动态优先级调整
## 开发规范
## 监控与统计
项目遵循原customerservice项目的开发规范包括分层架构、命名规范和错误处理等。
系统提供完整的监控和统计功能:
- 请求量统计
- 成功率分析
- 处理时间监控
- 转化率追踪
- 广告源性能对比
## 扩展说明
## 安全特性
系统支持水平扩展可以通过增加广告服务实例来提高处理能力Redis用于缓存和队列MongoDB用于数据持久化。
- 用户身份验证
- 租户数据隔离
- API访问控制
- 敏感信息加密
这个CID服务商项目为企业提供了一个完整、可扩展的广告CID解决方案通过智能策略确保每个租户都能获得最适合其业务需求的广告服务。