程序化广告
程序化广告——在毫秒内完成竞价、展示、追踪的自动化广告交易。
RTB 竞价流程
sequenceDiagram
participant U as 用户
participant P as 发布商网站
participant SSP as SSP 供给方
participant EX as Ad Exchange
participant DSP1 as DSP-A 品牌
participant DSP2 as DSP-B 电商
participant DMP as DMP 数据
U->>P: 访问页面
P->>SSP: 广告位请求
SSP->>EX: 发起竞价
EX->>DSP1: 竞价请求 (100ms)
EX->>DSP2: 竞价请求 (100ms)
DMP-->>DSP1: 用户画像数据
DMP-->>DSP2: 用户画像数据
DSP1->>EX: 出价 ¥30 CPM
DSP2->>EX: 出价 ¥45 CPM
EX->>SSP: 胜出 DSP-B
SSP->>P: 返回广告素材
P->>U: 展示广告
Note over U,DSP2: 全程 < 200ms
程序化广告术语
"""
程序化广告核心概念
"""
PROGRAMMATIC = {
"DSP": {
"全称": "Demand-Side Platform (需求方平台)",
"角色": "广告主端 — 设定受众/出价/预算",
"代表": "Google DV360, The Trade Desk, 巨量引擎",
"功能": ["受众定向", "实时竞价", "频次控制", "效果优化"],
},
"SSP": {
"全称": "Supply-Side Platform (供给方平台)",
"角色": "发布商端 — 管理广告位/最大化收益",
"代表": "Google Ad Manager, Magnite, 穿山甲",
"功能": ["广告位管理", "底价设定", "收益优化", "填充率"],
},
"Ad Exchange": {
"全称": "广告交易所",
"角色": "撮合 DSP 和 SSP 的竞价市场",
"代表": "Google AdX, OpenX",
"功能": ["实时竞价撮合", "透明拍卖", "第二价格"],
},
"DMP": {
"全称": "Data Management Platform (数据管理平台)",
"角色": "收集/整合/输出受众数据",
"代表": "Oracle BlueKai, Lotame",
"功能": ["第一方数据", "第三方数据", "受众细分", "跨渠道"],
},
}
print("=== 程序化广告参与方 ===")
for key, info in PROGRAMMATIC.items():
print(f"\n【{key}】 {info['全称']}")
print(f" 角色: {info['角色']}")
print(f" 代表: {', '.join(info['代表'])}")
交易模式
graph LR
subgraph 自动化程度
PG[程序化保量 PG] -->|100% 确定| FIX[固定价格+保量]
PMP[私有市场 PMP] -->|邀请制| INVITE[定向竞价]
PA[优先交易 PA] -->|优先权| PREFER[固定价优先]
OA[公开竞价 OA] -->|全开放| OPEN[RTB 实时竞价]
end
style PG fill:#e8f5e9,stroke:#2e7d32
style PMP fill:#fff3e0,stroke:#e65100
style OA fill:#fce4ec,stroke:#c62828
| 交易模式 | 价格 | 库存保证 | 适合 | CPM 范围 |
|---|---|---|---|---|
| 程序化保量 PG | 固定 | 保证 | 大品牌曝光 | ¥80-200 |
| 私有市场 PMP | 竞价 | 不保证 | 优质流量 | ¥40-100 |
| 优先交易 PA | 固定 | 不保证 | 品牌优先权 | ¥50-120 |
| 公开竞价 OA | 竞价 | 不保证 | 效果广告 | ¥10-50 |
品牌安全
"""
品牌安全策略
"""
from dataclasses import dataclass, field
@dataclass
class BrandSafety:
"""品牌安全配置"""
blacklist_categories: list[str] = field(default_factory=list)
blacklist_domains: list[str] = field(default_factory=list)
whitelist_domains: list[str] = field(default_factory=list)
verification_vendor: str = ""
def check(self, placement: str, category: str) -> dict:
"""检查投放安全"""
issues = []
if category in self.blacklist_categories:
issues.append(f"类别被屏蔽: {category}")
if placement in self.blacklist_domains:
issues.append(f"网站被拉黑: {placement}")
if self.whitelist_domains and placement not in self.whitelist_domains:
issues.append(f"不在白名单中: {placement}")
return {
"投放位": placement,
"安全": len(issues) == 0,
"问题": issues if issues else ["通过"],
}
safety = BrandSafety(
blacklist_categories=["暴力", "赌博", "成人", "政治敏感"],
blacklist_domains=["sketchy-site.com"],
verification_vendor="DoubleVerify",
)
tests = [
("news-portal.com", "新闻"),
("gaming-blog.com", "赌博"),
("sketchy-site.com", "娱乐"),
]
print("=== 品牌安全检查 ===")
for site, cat in tests:
result = safety.check(site, cat)
status = "✅" if result["安全"] else "❌"
print(f" {status} {site} [{cat}] → {result['问题'][0]}")
程序化广告优化
| 优化维度 | 策略 | 指标 |
|---|---|---|
| 受众 | 按效果排除低质受众 | CVR, CPA |
| 频次 | 控制每用户 3-5 次/周 | 频次, 疲劳度 |
| 出价 | 分时段/设备差异出价 | Win Rate, CPM |
| 素材 | 动态创意优化 DCO | CTR, 互动率 |
| 渠道 | 按 SSP/版位效果分配 | ROAS, Viewability |
小结
- RTB 在 200ms 内完成竞价和展示
- DSP/SSP/DMP/Ad Exchange 构成程序化广告基础设施
- 四种交易模式适合不同场景
- 品牌安全和频次控制是投放必须项
下一章: 电商广告