OpenAds Protocol 去中心化广告网络产品设计文档

去中心化广告网络产品设计文档 V0.1
1. 产品概述
OpenAds Protocol 是一个面向去中心化应用的开放广告协议。
它不建立一个统一控制所有广告主、广告内容和流量的平台,而是把传统广告网络拆成两个可以独立部署、自由组合的 Blocklet:
AdHub Blocklet
负责广告主、广告活动、广告素材、广告价格、预算、广告策略、资金管理和广告结算。
AdSlot Blocklet
负责嵌入不同 DApp,在页面中提供统一广告位,发现可用 AdHub,选择广告源、请求广告、展示广告、记录广告事件并完成计费。
整体关系为:
Advertiser
│
│ 购买广告
▼
┌───────────────────┐
│ AdHub Blocklet │
│ │
│ 广告主 │
│ Campaign │
│ Creative │
│ Budget │
│ Pricing │
│ Targeting │
│ Settlement │
└─────────┬─────────┘
│
│ OpenAds API
│
▼
┌───────────────────┐
│ AdSlot Blocklet │
│ │
│ AdHub Discovery │
│ Ad Selection │
│ Rendering │
│ Measurement │
│ Billing │
└─────────┬─────────┘
│
│ Embed / SDK
▼
┌───────────────────┐
│ DApp │
│ │
│ Content │
│ Service │
│ Marketplace │
│ Community │
└───────────────────┘
│
▼
User
OpenAds 的核心目标不是创建另一个 Google Ads。
而是:
建立一个任何人都可以运营广告网络、任何 DApp 都可以接入广告收入的开放协议。
2. 为什么需要两个 Blocklet
传统广告平台实际上同时控制了两个市场:
广告主
↓
广告平台
↓
网站 / App
广告主只能向平台购买广告。
开发者也只能接受平台提供的广告。
平台因此同时控制:
- 广告主;
- 广告价格;
- 广告库存;
- 广告选择;
- 用户数据;
- 广告计费;
- 收益分配。
OpenAds 将其拆开:
AdHub A
/
Advertisers → AdHub B
\
AdHub C
↓
OpenAds Protocol
↓
AdSlot Blocklet
↓
DApp A / B / C / D
任何人都可以运营 AdHub。
任何 DApp 都可以部署 AdSlot。
一个 DApp 可以选择:
AdHub A
也可以以后同时连接:
AdHub A
AdHub B
AdHub C
让不同广告网络之间竞争。
因此系统中不存在唯一的“广告平台”。
3. 三类核心参与者
3.1 Advertiser
广告主。
可以是:
- DApp;
- Blocklet 开发者;
- Web3 项目;
- AI 产品;
- 电商;
- 游戏;
- SaaS;
- 社区;
- 传统互联网企业。
广告主向某个 AdHub 提交 Campaign。
例如:
Campaign
Product:
AIGNE Studio
Budget:
10,000 USDC
Price:
5 USDC CPM
Region:
Global
Category:
AI / Developer
Start:
2026-09-01
End:
2026-09-30
4. AdHub Blocklet
AdHub 可以理解为:
一个独立运营的去中心化广告网络节点。
任何团队都可以部署。
例如:
ArcBlock Ads
Developer Ads
AI Ads
Gaming Ads
Photography Ads
Web3 Ads
Seattle Local Ads
这些都可以是不同的 AdHub。
不同 AdHub 可以形成自己的广告市场定位。
4.1 广告主接入
AdHub 提供 Advertiser Console。
广告主通过 DID Connect 登录。
然后:
Create Campaign
↓
Upload Creative
↓
Set Budget
↓
Select Target
↓
Deposit Funds
↓
Review
↓
Active
AdHub 运营者可以:
接受广告主主动提交;
也可以主动寻找广告主并代为创建 Campaign。
因此一个 AdHub 既可以完全自动运行,也可以采用传统广告公司的运营模式。
5. AdHub 的广告审核
去中心化并不意味着:
什么广告都必须展示。
每一个 AdHub 都拥有自己的内容政策。
例如:
AdHub A
Developer / AI Ads Only
AdHub B
General Ads
AdHub C
Family Safe
AdHub D
Crypto / Web3 Only
AdHub Operator 可以审核:
- 广告内容;
- 目标网址;
- 广告素材;
- 产品真实性;
- 法律风险;
- 恶意软件;
- 色情;
- 赌博;
- 欺诈;
- 政治广告;
- 地区限制。
因此:
OpenAds 去中心化的是广告网络的所有权,而不是取消广告运营责任。
6. Campaign 数据结构
一个标准 Campaign 可以包含:
Campaign
├── campaignDID
├── advertiserDID
├── adHubDID
│
├── name
├── category
├── description
│
├── startTime
├── endTime
│
├── totalBudget
├── remainingBudget
│
├── pricingModel
│ ├── CPM
│ ├── CPC
│ └── CPA
│
├── bidPrice
│
├── targeting
│ ├── language
│ ├── country
│ ├── category
│ ├── device
│ └── context
│
└── creatives[]
一个 Campaign 可以包含多个 Creative。
7. Creative
Creative 是真正展示给用户的广告。
V1 建议只支持三种标准格式:
Native Card
适合社区、内容应用、Marketplace。
Image
Title
Description
CTA
Destination
Banner
例如:
728 × 90
320 × 100
300 × 250
Compact Card
适合侧栏、小组件和移动应用。
未来再扩展:
Video
Interactive
Mini DApp
Playable
Sponsored Content
8. AdSlot Blocklet
AdSlot 是整个系统最重要的公共组件。
它不是广告运营平台。
它代表:
DApp 中的一个开放广告位。
例如一个 Discuss 社区:
Article
Article
Article
──────────────
AdSlot
──────────────
Article
Article
Marketplace:
Product
Product
Product
Sponsored
[ AdSlot ]
Product
Product
GLOFTER:
Photographer
Photographer
Sponsored
Camera / Travel / Print Ad
Photographer
开发者只需要把 AdSlot 嵌入自己的 Blocklet。
9. AdSlot 应该成为标准 Blocklet Component
理想的开发体验应该非常简单。
例如:
<AdSlot
slot="article-feed"
category="technology"
format="native"
/>
或者:
<openads-slot
slot="sidebar"
format="300x250">
</openads-slot>
AdSlot 自己负责:
发现 AdHub
↓
连接 AdHub
↓
请求广告
↓
选择广告
↓
展示
↓
记录 Impression
↓
记录 Click
↓
计费
↓
结算
DApp 开发者不需要实现这些逻辑。
10. AdHub NFT:去中心化广告网络发现
这是整个方案里非常有 Web3 特征的一部分。
每一个正式运行的 AdHub 都拥有一个:
AdHub NFT
这个 NFT 表示:
一个正在提供 OpenAds 服务的广告网络节点。
可以包含:
AdHub NFT
Name
DID
Operator DID
Endpoint
Protocol Version
Categories
Regions
Pricing Models
Policy
Reputation
Manifest Hash
NFT 本身不需要保存所有动态信息。
可以保存:
AdHub DID
+
Manifest URI
+
Manifest Hash
真正的动态信息通过 AdHub DID / Manifest 获取。
11. AdHub Registry
AdHub NFT 被质押到:
OpenAds Registry
形成公开广告网络列表。
例如:
OpenAds Registry
AdHub NFT #182
ArcBlock Developer Ads
AdHub NFT #327
Web3 Global Ads
AdHub NFT #672
AI Product Ads
AdHub NFT #983
Photography Ads
AdSlot 查询 Registry:
AdSlot
↓
OpenAds Registry
↓
发现 AdHub NFT
↓
读取 AdHub DID
↓
读取 Service Endpoint
↓
连接 AdHub
因此不需要:
ads.openads.com
这样的中心服务器保存所有广告节点。
12. NFT 与经济质押应该分离
这里建议区分两个概念。
AdHub NFT
表示服务身份。
Stake
表示经济保证。
因此:
AdHub NFT
+
ABT / Stablecoin Stake
共同注册到 Registry。
原因很简单:
NFT 本身代表身份,但未必具有足够经济价值。
如果 AdHub 从事:
- 欺诈;
- 恶意广告;
- 不支付 Publisher;
- 伪造结算;
协议未来可以通过 Governance / Arbitration 对保证金进行处罚。
这会形成:
身份
+
信誉
+
经济责任
三个层次。
13. DApp 如何选择 AdHub
DApp Operator 打开 AdSlot 管理界面后,可以看到:
Available Ad Networks
ArcBlock Developer Ads
★★★★★
CPM $3.20
Revenue Share 80%
AI / Developer
Web3 Global Ads
★★★★☆
CPM $4.10
Revenue Share 75%
Web3 / Crypto
General Ads
★★★★☆
CPM $2.30
Revenue Share 85%
General
DApp 可以选择一个 AdHub:
Primary AdHub:
ArcBlock Developer Ads
V1 建议:
一个 AdSlot 只连接一个 AdHub。
保持系统简单。
未来 V2 再支持:
AdHub A
AdHub B
AdHub C
动态竞争。
14. 广告请求流程
用户打开 DApp 页面:
User
↓
DApp
↓
AdSlot
↓
AdHub
AdSlot 发送:
AdRequest
slot
format
pageCategory
language
country
deviceType
context
anonymousSession
例如:
{
"slot": "article-feed",
"format": "native",
"category": "AI",
"language": "zh",
"country": "US"
}
AdHub 返回:
AdResponse
campaignId
creativeId
creative
destination
price
billingModel
requestToken
expiry
signature
15. 广告选择权属于 AdHub
V1 中建议:
AdSlot:
描述当前广告位。
AdHub:
决定展示哪个广告。
例如 AdHub 内部可以采用:
Campaign targeting
+
Budget
+
Bid
+
Frequency
+
Ad quality
+
Remaining budget
计算广告。
因此不同 AdHub 可以发展自己的广告算法。
OpenAds Protocol 不强制所有广告网络使用同一种推荐算法。
16. 广告价格
AdHub 可以定义自己的价格体系。
初期支持:
CPM
每 1000 次有效展示收费。
CPC
有效点击收费。
CPA
有效转化收费。
V1 最适合首先支持:
CPM
+
CPC
CPA 涉及跨应用 Conversion Proof,可以放到后续版本。
17. 为什么计费应该由 AdSlot 负责
这是这个架构非常关键的一点。
传统广告平台:
广告平台
说展示了多少次
↓
广告主相信平台
OpenAds 可以设计成:
AdHub
提供广告
AdSlot
确认展示
也就是说:
卖广告的人和证明广告被展示的人不是同一个节点。
这比完全由 AdHub 自己统计更合理。
18. Delivery Receipt
每一个有效广告事件由 AdSlot 生成:
Delivery Receipt
例如:
campaignId
creativeId
adHubDID
slotDID
publisherDID
eventType:
IMPRESSION
timestamp
requestToken
eventNonce
viewability
signature
AdSlot 使用自己的 DID 签名:
AdSlot Signature
AdHub 验证以后:
Valid
↓
Billable Event
19. 广告展示计费
资金流建议设计成:
Advertiser
│
│ 预存预算
▼
AdHub Escrow
│
│
│ 广告展示
▼
AdSlot
│
│ Delivery Receipt
▼
AdHub
│
│ Settlement
▼
┌──────────────┐
Publisher
AdHub Operator
Protocol
└──────────────┘
例如:
广告 CPM:
$10
1000 次有效展示:
Advertiser Cost
$10
分配:
Publisher $8.00
AdHub Operator $1.50
OpenAds $0.50
具体比例完全由 AdHub 和 Publisher 协商。
20. AdSlot 计费,AdHub 扣款
这里需要明确两个职责:
AdSlot:
产生可计费事件。
AdHub:
根据 Campaign 价格扣除广告主 Budget。
因此不是 AdSlot 直接从广告主钱包取钱。
完整逻辑是:
AdSlot
↓
Billable Event
↓
AdHub
↓
Verify
↓
Campaign Budget - Price
↓
Publisher Balance + Revenue
这样职责非常清晰。
21. Publisher Revenue
每个 DApp 都有自己的:
Publisher Account
例如:
Discuss Kit
Publisher DID:
did:abt:xxx
Balance:
1,283 USDC
Publisher 可以:
Withdraw
也可以设置:
Auto Settlement
Daily
Weekly
Monthly
22. 与 Reward Protocol 结合
OpenAds 可以和前面提出的 Reward Protocol 形成非常有意思的组合。
例如一个 DApp:
广告收入
↓
Publisher Revenue
↓
90% DApp Operator
10% Community Reward Pool
最终形成:
Advertiser
↓
OpenAds
↓
DApp
↓
Advertising Revenue
↓
Reward Protocol
↓
Users
这意味着用户即使没有直接购买商品,也可能因为使用 DApp、创造广告价值而参与应用经济。
于是两个公共组件分别解决:
OpenAds Protocol
= DApp 如何获得收入
Reward Protocol
= DApp 如何把部分收入返还给用户
组合起来可能形成完整的:
Decentralized Growth Infrastructure
23. 不建立全球用户广告画像
OpenAds 不应该复制传统互联网广告最大的争议:
跨网站追踪用户。
V1 建议优先采用:
Contextual Advertising
广告根据:
当前 DApp
当前页面
内容分类
语言
粗粒度地区
设备类型
选择。
而不是:
这个用户昨天搜索了什么
访问了什么网站
买过什么
住在哪里
收入多少
24. DID 与隐私
用户真实 DID 不应该直接发送给 AdHub。
AdSlot 可以生成:
Epoch User ID
例如:
hash(
userDID
+ adHubDID
+ epoch
)
得到临时标识。
于是 AdHub 可以实现:
Frequency Cap
例如:
同一个用户一天最多看到某广告 3 次。
但无法轻易跨不同 AdHub 建立永久用户画像。
25. 广告欺诈
去中心化广告系统最大的技术挑战不是展示广告,而是:
Ad Fraud
例如 DApp Operator 可以自己制造:
1,000,000 fake impressions
骗取广告费。
因此必须建立反作弊体系。
V1 可以采用:
AdHub Request Token
+
AdSlot DID Signature
+
Session Nonce
+
Rate Limit
+
Viewability
+
Publisher Reputation
后续可以进一步增加:
User Proof
Risk Model
Challenge Protocol
Stake
Fraud Arbitration
26. Publisher Reputation
每个 AdSlot / Publisher 可以形成公开信誉:
Publisher
DID
Traffic
Valid Impression Rate
Click Rate
Fraud Rate
Dispute Rate
AdHub Relationships
Account Age
Stake
AdHub 可以设置:
Minimum Reputation
例如新 Publisher:
CPM $1
高信誉 Publisher:
CPM $8
由市场自然形成价格差异。
27. AdHub Reputation
同样,Publisher 也需要判断 AdHub。
例如:
AdHub Reputation
Campaign Volume
Payment Volume
Settlement Rate
Advertisers
Publishers
Disputes
Account Age
Stake
因此关系不是:
广告平台挑网站
而是:
AdHub 挑 Publisher
+
Publisher 挑 AdHub
双方共同选择。
28. OpenAds Registry
最终 Registry 可以成为整个生态的服务发现层:
OpenAds Registry
│
┌─────────────┼─────────────┐
│ │ │
AdHub A AdHub B AdHub C
│ │ │
│ │ │
AdSlot AdSlot AdSlot
│ │ │
DApp DApp DApp
Registry 不负责:
广告内容
广告算法
广告资金
广告展示
它只负责:
Discovery
Identity
Stake
Metadata
Reputation reference
Protocol compatibility
这样 Registry 很难成为新的中心化平台。
29. OpenAds 标准接口
协议建议定义六组核心 API。
/.well-known/openads
GET /manifest
GET /campaigns/quote
POST /ads/request
POST /events
POST /settlements
GET /publisher/account
其中:
Manifest
告诉 AdSlot:
我是谁
支持哪个协议版本
支持哪些广告类型
覆盖哪些地区
支持什么计价方式
API Endpoint
30. AdHub Manifest
示例:
{
"protocol": "openads",
"version": "1.0",
"name": "Developer Ads",
"did": "did:abt:...",
"categories": [
"developer",
"ai",
"web3"
],
"formats": [
"native",
"banner"
],
"pricing": [
"CPM",
"CPC"
],
"regions": [
"GLOBAL"
]
}
所有 AdHub 使用统一格式。
这样 AdSlot 才能自由切换广告网络。
31. AdSlot 管理界面
DApp Operator 看到:
OpenAds
Ad Slots
Article Feed
Native
ACTIVE
Sidebar
300 × 250
ACTIVE
Footer
728 × 90
DISABLED
进入某个 Slot:
Ad Network
● Developer Ads
○ Web3 Global
○ General Ads
Category
Developer
AI
Minimum CPM
$3.00
Blocked Categories
Gambling
Adult
Politics
无需写代码即可管理。
32. AdHub 管理界面
运营者看到:
Advertisers
Campaigns
Creatives
Publishers
Revenue
Settlement
Review Queue
Fraud
Analytics
Dashboard:
Active Campaigns 127
Advertiser Balance $182,381
Today Impressions 3,281,223
Today Clicks 38,173
Publisher Revenue $12,837
AdHub Revenue $2,193
这使 AdHub 本身可以成为一个完整商业产品。
33. 谁可以运营 AdHub?
任何人。
这是这个系统最重要的地方之一。
例如一家摄影行业公司可以运营:
Photography AdHub
专门接受:
Camera
Lens
Travel
Print
Photo Software
Studio
GLOFTER 等摄影 DApp 可以优先选择这个网络。
另一个团队可以运营:
Developer AdHub
广告主可能是:
AI API
Cloud
Database
Developer Tools
Blocklets
开发者社区接入它。
这样出现的不是一个巨大的通用广告公司,而是:
大量垂直广告市场。
34. AdHub 之间最终可以竞争
当系统成熟后,AdSlot 可以同时连接:
AdHub A
AdHub B
AdHub C
发送:
AdOpportunity
三个 AdHub 返回:
A → CPM $4.20
B → CPM $5.10
C → CPM $3.80
AdSlot 可以选择:
B
这实际上会形成一个去中心化:
Real-Time Ad Marketplace
但这应该属于 V2/V3。
第一版完全没有必要做 RTB。
35. 商业模型
OpenAds Protocol 本身也需要收入。
建议每一次广告结算收取:
0.5% ~ 3%
协议费。
例如:
Advertiser Spend
$100
Publisher
$80
AdHub
$18
OpenAds Protocol
$2
不同 AdHub 可以自行决定自己的佣金。
OpenAds 只收统一协议费。
36. 一个非常重要的市场机制
传统广告平台存在一个问题:
平台规模越大,广告主和 Publisher 越难离开。
OpenAds 应该反过来。
如果 Publisher 不喜欢 AdHub A:
AdHub A
↓
Disconnect
然后:
AdHub B
↓
Connect
DApp 页面中的:
<AdSlot />
完全不需要修改。
广告网络成为:
Replaceable Provider
这可能是 OpenAds 最核心的产品价值之一。
37. MVP
第一阶段应该非常克制。
OpenAds V0.1
只实现:
1 个 AdHub Blocklet
1 个 AdSlot Blocklet
DID Login
AdHub NFT
Registry Discovery
Campaign
Creative
Native Ad
Banner Ad
CPM
CPC
Campaign Budget
Ad Request
Impression
Click
Delivery Receipt
Publisher Revenue
Settlement
不要一开始开发:
RTB
AI Targeting
CPA
Conversion Network
Cross-chain
Video Ads
Global User Profile
复杂机器学习
先验证最核心的问题:
一个独立 AdHub 能不能通过标准接口给多个完全不同的 DApp 提供广告,并自动完成计费和收入分配。
38. 第二阶段
V0.5:
多个 AdHub
AdHub Registry
AdHub NFT Staking
Publisher Reputation
AdHub Reputation
Fraud Detection
Multiple Pricing
39. 第三阶段
V1.0:
Multi-AdHub
Dynamic Routing
Competitive Bidding
Contextual Targeting
Reward Protocol Integration
Public Analytics
Governance
Dispute Resolution
最终再考虑:
Decentralized Ad Exchange
40. 整个系统最终的形态
Advertisers
│
┌───────────────┼───────────────┐
▼ ▼ ▼
AdHub A AdHub B AdHub C
│ │ │
│ AdHub NFT │ AdHub NFT │ AdHub NFT
└───────────────┼───────────────┘
│
OpenAds Registry
│
NFT / DID Discovery
│
┌───────────────┼───────────────┐
▼ ▼ ▼
AdSlot AdSlot AdSlot
│ │ │
▼ ▼ ▼
DApp A DApp B DApp C
│ │ │
└───────────────┼───────────────┘
▼
Users
资金流:
Advertiser
↓
Campaign Budget
↓
AdHub
↓
Ad Delivered
↓
AdSlot Proof
↓
Settlement
↓
┌───────────────┐
│ Publisher │
│ AdHub │
│ OpenAds │
└───────────────┘
服务发现:
AdHub
↓
AdHub NFT
↓
Stake
↓
OpenAds Registry
↓
AdSlot Discovery
↓
Connect
41. 产品定位
OpenAds 不应该被描述成:
一个去中心化 Google Ads。
更加准确的是:
An Open Advertising Infrastructure for DApps.
中文:
面向 DApp 的开放广告基础设施
它提供的不是一个广告平台,而是一套标准:
广告网络如何被发现
广告如何被请求
广告如何被展示
广告事件如何被证明
广告费用如何计算
Publisher 如何获得收入
AdHub 如何竞争
一旦这些接口成为标准,任何团队都可以进入其中任何一个角色。
42. OpenAds + Reward Protocol
如果把前面提出的 Reward Protocol 和 OpenAds 放在一起,会形成一个更加完整的 DApp 商业基础设施:
DApp
│
┌─────┴─────┐
│ │
用户付费 广告收入
│ │
│ OpenAds
│ │
└─────┬─────┘
│
Protocol Revenue
│
Reward Protocol
│
▼
Users
OpenAds 回答:
DApp 如何通过流量赚钱?
Reward Protocol 回答:
DApp 如何把部分增长收益返给用户?
Payment Kit 回答:
用户如何付款?
DID 回答:
参与者是谁?
Blocklet 回答:
这些能力如何被组件化和部署?
如果这些模块最终可以组合起来,那么一个新 DApp 的商业能力也可以像软件组件一样被安装:
Identity
Payment
Storage
Advertising
Rewards
这可能是比单独开发一个广告产品更值得探索的方向。
43. 核心原则
OpenAds Protocol 最终应该坚持六个原则:
广告网络去中心化
任何人都可以运营 AdHub。
广告位标准化
任何 DApp 都可以嵌入 AdSlot。
服务自由选择
Publisher 可以随时切换 AdHub。
资金可验证
广告预算、计费和结算可以被验证。
隐私优先
默认采用 Contextual Advertising,而不是跨站用户追踪。
协议而不是平台
OpenAds 自己不应该成为新的广告垄断者。
最终目标不是建立:
One Advertising Company
而是建立:
One Advertising Protocol
↓
Thousands of Ad Networks
↓
Thousands of DApps
这才是 OpenAds 真正去中心化的意义。