83 lines
3.4 KiB
Go
83 lines
3.4 KiB
Go
|
|
package entity
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"gitee.com/red-future---jilin-g/common/do"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
const AdPositionCollection = "ad_position"
|
|||
|
|
|
|||
|
|
// AdPosition 广告位实体
|
|||
|
|
type AdPosition struct {
|
|||
|
|
do.MongoBaseDO `bson:",inline"` // 嵌入基础字段:Id, Creator, CreatedAt, Updater, UpdatedAt, TenantId, IsDeleted
|
|||
|
|
|
|||
|
|
// 基本信息
|
|||
|
|
Name string `bson:"name" json:"name"` // 广告位名称
|
|||
|
|
Description string `bson:"description" json:"description"` // 广告位描述
|
|||
|
|
PositionCode string `bson:"positionCode" json:"positionCode"` // 广告位编码,用于标识
|
|||
|
|
AdFormat string `bson:"adFormat" json:"adFormat"` // 支持的广告格式
|
|||
|
|
|
|||
|
|
// 尺寸信息
|
|||
|
|
Width int `bson:"width" json:"width"` // 宽度(px)
|
|||
|
|
Height int `bson:"height" json:"height"` // 高度(px)
|
|||
|
|
|
|||
|
|
// 位置信息
|
|||
|
|
Page string `bson:"page" json:"page"` // 所属页面
|
|||
|
|
Section string `bson:"section" json:"section"` // 页面区域
|
|||
|
|
Location string `bson:"location" json:"location"` // 具体位置
|
|||
|
|
|
|||
|
|
// 展示设置
|
|||
|
|
MaxAds int `bson:"maxAds" json:"maxAds"` // 最大广告数量
|
|||
|
|
RefreshInterval int `bson:"refreshInterval" json:"refreshInterval"` // 刷新间隔(秒)
|
|||
|
|
IsLazyLoad bool `bson:"isLazyLoad" json:"isLazyLoad"` // 是否懒加载
|
|||
|
|
|
|||
|
|
// 定价设置
|
|||
|
|
PricingModel string `bson:"pricingModel" json:"pricingModel"` // 计费模型:CPC、CPM、CPA等
|
|||
|
|
BasePrice int64 `bson:"basePrice" json:"basePrice"` // 基础价格(分)
|
|||
|
|
FloorPrice int64 `bson:"floorPrice" json:"floorPrice"` // 底价(分)
|
|||
|
|
PriceUnit string `bson:"priceUnit" json:"priceUnit"` // 价格单位:千次展示、单次点击、单次转化等
|
|||
|
|
|
|||
|
|
// 展示规则
|
|||
|
|
DisplayRules *DisplayRules `bson:"displayRules" json:"displayRules"` // 展示规则
|
|||
|
|
|
|||
|
|
// 状态信息
|
|||
|
|
Status string `bson:"status" json:"status"` // 广告位状态:启用、禁用、测试
|
|||
|
|
IsExclusive bool `bson:"isExclusive" json:"isExclusive"` // 是否独占广告位
|
|||
|
|
|
|||
|
|
// 统计信息
|
|||
|
|
DailyImpressions int64 `bson:"dailyImpressions" json:"dailyImpressions"` // 日均展示量
|
|||
|
|
DailyClicks int64 `bson:"dailyClicks" json:"dailyClicks"` // 日均点击量
|
|||
|
|
DailyRevenue int64 `bson:"dailyRevenue" json:"dailyRevenue"` // 日均收入(分)
|
|||
|
|
CTR float64 `bson:"ctr" json:"ctr"` // 点击率
|
|||
|
|
eCPM int64 `bson:"ecpm" json:"ecpm"` // 有效千次展示收入
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// DisplayRules 广告位展示规则
|
|||
|
|
type DisplayRules struct {
|
|||
|
|
// 频次控制
|
|||
|
|
FrequencyCap *FrequencyCap `bson:"frequencyCap" json:"frequencyCap"` // 频次控制
|
|||
|
|
|
|||
|
|
// 展示条件
|
|||
|
|
DisplayConditions []DisplayCondition `bson:"displayConditions" json:"displayConditions"` // 展示条件
|
|||
|
|
|
|||
|
|
// 排除条件
|
|||
|
|
ExcludeConditions []ExcludeCondition `bson:"excludeConditions" json:"excludeConditions"` // 排除条件
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// FrequencyCap 频次控制
|
|||
|
|
type FrequencyCap struct {
|
|||
|
|
Impressions int `bson:"impressions" json:"impressions"` // 展示次数
|
|||
|
|
TimeWindow int `bson:"timeWindow" json:"timeWindow"` // 时间窗口(小时)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// DisplayCondition 展示条件
|
|||
|
|
type DisplayCondition struct {
|
|||
|
|
Type string `bson:"type" json:"type"` // 条件类型
|
|||
|
|
Value interface{} `bson:"value" json:"value"` // 条件值
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ExcludeCondition 排除条件
|
|||
|
|
type ExcludeCondition struct {
|
|||
|
|
Type string `bson:"type" json:"type"` // 条件类型
|
|||
|
|
Value interface{} `bson:"value" json:"value"` // 条件值
|
|||
|
|
}
|