部署和配置文档

📋 站点信息

属性 值
主机名 lab.geekbulletin.com
CF Pages 项目 ad-lab
CF Zone ID cf47e6ab4553b87fce7ef96a9b379476
CF Account ID 53fa73b7af5fd89d4deb782c5cb2e64d
仓库路径 experiments/ad-lab

🚀 部署步骤

1. Cloudflare Pages 项目创建

选项 A:通过 Wrangler CLI 部署

cd experiments/ad-lab
env -u CLOUDFLARE_API_TOKEN npx wrangler pages deploy . \
  --project-name ad-lab \
  --branch main \
  --commit-dirty=true

选项 B:通过 CF Dashboard

  1. 访问 Cloudflare Dashboard → Pages
  2. 创建新项目 ad-lab
  3. 连接 GitHub 仓库 jo886123-netizen/ad-sites
  4. 设置构建路径为 experiments/ad-lab
  5. 构建命令留空(静态文件)
  6. 输出目录设为 .

2. 自定义域名配置

  1. 在 CF Pages 项目设置中添加自定义域名 lab.geekbulletin.com
  2. DNS 记录会自动创建(CNAME 指向 ad-lab.pages.dev)
  3. 等待 SSL 证书自动配置(通常 1-5 分钟)

3. 验证部署

  • 访问 https://lab.geekbulletin.com 确认站点可访问
  • 检查 HTTPS 证书有效
  • 验证所有页面和资源加载正常

🎯 广告单元配置

⚠️ 重要:站点必须先上线并可通过 HTTPS 访问后,才能在提供商控制台创建广告单元。

Monetag 配置步骤

  1. 登录 Monetag Publishers Dashboard
  2. 添加新网站 lab.geekbulletin.com
  3. 等待网站审核通过
  4. 为每个格式创建专用 Zone:
    • Vignette Zone
    • OnClick/Popunder Zone
    • Push Notification Zone(需上传提供商 sw.js)
    • In-Page Push Zone
    • Direct Link Zone
    • MultiTag Zone(可选,替代独立格式)
  5. 获取每个 Zone 的 ID
  6. 更新 assets/js/ad-config.js 中的配置

Adsterra 配置步骤

  1. 登录 Adsterra Publishers
  2. 添加新网站 lab.geekbulletin.com
  3. 等待网站审核通过
  4. 为每个格式创建广告单元:
    • Native Banner
    • Social Bar
    • Popunder
    • Display Banners(每种尺寸独立):
      • 160x300, 160x600
      • 300x250
      • 320x50 (mobile sticky)
      • 468x60, 728x90
    • Smartlink
  5. 获取每个单元的 Key
  6. 更新 assets/js/ad-config.js 中的配置

ads.txt 更新

  1. 从 Monetag 和 Adsterra 控制台获取 ads.txt 条目
  2. 更新 ads.txt 文件
  3. 重新部署站点

⚙️ 配置文件说明

ad-formats-inventory.json

广告格式清单,包含所有支持格式的元数据和状态。

assets/js/ad-config.js

广告配置文件,包含:

  • 提供商单元 ID 和 Zone ID
  • 格式启用/禁用开关
  • 频率控制参数
  • Anti-IVT 设置
  • 测试模式开关

assets/js/ad-engine.js

广告引擎,负责:

  • 广告脚本动态加载
  • 侵入式广告全局锁定
  • 频率控制和会话管理
  • 指标收集和上报
  • 降级和回退处理

📊 指标和监控

跟踪指标

  • 会话:总会话数、合格会话数(通过 Anti-IVT)
  • 请求:广告请求数、填充率
  • 展示:实际展示数、可见度
  • 收入:总收入、CPM、每千合格会话收入
  • 用户体验:跳出率、停留时间、页面浏览深度

对比维度

  • 站点/路径/区域
  • 提供商和格式
  • 变体和策略模式
  • 设备类型
  • GEO 和时区(UTC 24小时窗口)

数据收集方式

使用 Cloudflare Workers Analytics Engine 或 Web Analytics 收集指标。配置说明:

  1. 创建 Analytics Engine 绑定
  2. 配置 wrangler.toml
  3. 更新 ad-engine.js 中的上报端点

🔧 特性开关和回滚

配置特性开关

在 ad-config.js 中设置:

window.AD_LAB_CONFIG = {
  features: {
    monetagVignette: false,  // 禁用 Vignette
    adsterraSocialBar: true, // 启用 Social Bar
    // ...
  },
  testMode: true,  // 测试模式(不记录真实指标)
}

应急回滚

  1. 通过 Git:git revert 并重新部署
  2. 通过 CF Pages:在 Dashboard 中回滚到之前的部署
  3. 通过配置:禁用特定格式的开关

✅ 测试清单

部署后验证

  • [ ] HTTPS 可访问
  • [ ] 所有页面加载正常
  • [ ] CSS 和 JS 资源加载
  • [ ] 导航功能正常
  • [ ] 移动端响应式正常

广告配置后验证

  • [ ] ads.txt 可访问
  • [ ] 广告脚本加载(开发者工具检查)
  • [ ] 广告容器创建
  • [ ] 侵入式广告频率控制生效
  • [ ] 指标上报正常
  • [ ] 提供商控制台显示展示数据

最低测试周期

每个配置变更需要至少 3 个完整 UTC 日 的数据才能评估效果。不要基于单日数据做决策。

⚠️ 重要约束

  • 不要生成虚假流量:禁止自动化点击、虚假展示或测试流量膨胀
  • 不要篡改提供商代码:不修改压缩的供应商标签或隐藏设置
  • 尊重提供商限制:遵守频率上限和服务条款
  • 真实流量测试:仅使用真实用户流量评估
  • 用户体验优先:避免过度侵入和欺骗性交互
  • 合规操作:遵守隐私法规和广告标准

📞 支持

配置问题或技术支持,请联系仓库维护者或查看: