跳到主要内容

广告与变现

本站支持通过 Google AdSense 在文档页展示广告,用于补贴域名与写作成本。样式已预留位置,未配置环境变量时生产环境不显示广告

广告位置

位置环境变量说明
正文上方ADSENSE_SLOT_ARTICLE_TOP面包屑下方
正文下方ADSENSE_SLOT_ARTICLE_BOTTOM页脚导航上方
右侧栏ADSENSE_SLOT_SIDEBAR仅桌面端(有目录时)

开发环境下会显示 虚线占位框,便于预览版式。

配置步骤

  1. Google AdSense 注册并通过站点审核。
  2. 获取发布商 ID 与各广告单元 slot ID(参考项目根目录 .env.example)。

根域(apex)与子域 doc.

项目说明
本站实际访问地址**https://doc.abcreatoris.com**(须与 docusaurus.config.tsurl 一致)
AdSense「网站」里添加什么通常只能添加 根域 abcreatoris.com(或 https://abcreatoris.com),不能单独再添加 doc.abcreatoris.com 为第二个站点
子域是否可投放根域验证通过后,同一发布商账号下的子域(含 doc.)一般自动纳入;无需在控制台重复添加 doc.
ads.txt / 脚本仍部署在 doc 子域根路径(如 https://doc.abcreatoris.com/ads.txt),与文档站 Vercel 项目一致

若控制台只显示根域 Ready,但 doc. 上仍长期 data-ad-status="unfilled",多为填充尚未放开或自动广告与手动单元冲突,见下文「合规与体验建议」。

连接站点(AdSense「Connect your site」)

AdSense 审核通过后,控制台会要求 Connect your site to AdSense。本站已在代码侧完成脚本与 ads.txt 配置;你只需在控制台填写正确 URL 并等待 Google 抓取。

控制台应填写的 URL

项目正确值常见错误
站点 URLhttps://abcreatoris.com(根域)或按控制台提示;文档站实际域名为 doc.abcreatoris.com填成 docs.、单独添加无法识别的子域、带 /docs/intro 路径、或 http://
发布商 IDca-pub-2085315988106926与 ads.txt 中的 pub-2085315988106926 为同一账号

部署后自检清单

部署到 Vercel 后,用浏览器或 curl 确认以下三项均可公开访问:

  1. AdSense 脚本(全站 <head>
    打开 首页 与任意文档页(如 /docs/intro),查看页面源代码,应包含:

    <script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2085315988106926" async crossorigin="anonymous"></script>

    脚本由 docusaurus.config.tsscripts 配置注入,首页与文档页均会加载,无需单独改首页组件。

  2. ads.txt(站点根目录)
    访问 https://doc.abcreatoris.com/ads.txt,应返回一行:

    google.com, pub-2085315988106926, DIRECT, f08c47fec0942fa0

    文件位于仓库 static/ads.txt,构建后复制到站点根路径。

  3. robots.txt
    本站未配置会屏蔽 Google 的 robots.txt;若后续添加,请勿对 //ads.txt 使用 Disallow

控制台操作步骤

  1. 登录 AdSenseSites(网站)。
  2. 点击 Add site 或待连接站点的 Connect site
  3. 输入 https://abcreatoris.com(根域,不要带子路径);若界面仅接受根域,不要强行填 doc. 子域。
  4. 若提示粘贴代码:本站已部署脚本,选择 I've placed the code / 代码已放置 即可。
  5. 提交后等待 Google 抓取(通常 数小时至 48 小时);状态变为 Ready已关联 即完成。

连接失败常见原因

现象可能原因处理
找不到 AdSense 代码脚本未部署或 ADSENSE_CLIENT 未在 Vercel 构建时注入确认 Vercel 环境变量后 Redeploy
ads.txt 无效 / 404static/ads.txt 未合并进部署产物确认最新 commit 已部署,直接访问 /ads.txt
URL 不匹配控制台填了错误子域或路径改为 https://doc.abcreatoris.com
站点无法访问DNS、HTTPS 或 Vercel 部署异常确认首页可打开且无登录墙
长时间 PendingGoogle 尚未完成抓取等待 24–48 小时后再在控制台点 Check status

生产环境(Vercel)

本站部署在 Vercel。AdSense 变量在 构建时 注入,需在 Vercel 控制台配置:

  1. 打开 Vercel Dashboard → 选择本项目 → SettingsEnvironment Variables
  2. 添加以下 4 个变量(Production 环境,建议 Preview / Development 同步配置以便预览):
变量名说明
ADSENSE_CLIENTAdSense 发布商 ID(ca-pub-…
ADSENSE_SLOT_ARTICLE_TOP正文上方广告单元 slot
ADSENSE_SLOT_ARTICLE_BOTTOM正文下方广告单元 slot
ADSENSE_SLOT_SIDEBAR右侧栏广告单元 slot
  1. 保存后 重新部署(Deployments → 最新部署 → Redeploy,或推送新 commit 触发构建),否则变量不会生效。
注意

请勿将 .env 提交到 Git。.gitignore 已忽略该文件。

本地开发

复制 .env.example.env 并填入上述变量。docusaurus.config.ts 通过 dotenv 在构建时读取 .env

npm run build

合规与体验建议

  • 若使用上述 手动广告单元,请在 AdSense 控制台 关闭自动广告(Auto ads)(站点 → 自动广告 → 全部关闭)。自动广告会额外插入 <ins>,与手动 push({}) 抢同一队列,常见现象是只显示「广告」标签、正文下方位永远不填充。
  • 本站为 Docusaurus 客户端路由:已在 src/theme/Root.tsxAdSlot 中在路由切换时重新请求填充;部署后请用「硬刷新」或隐身窗口测试,并在多篇文章间点击侧栏链接验证三个位是否都会出现。
  • 根域刚变为 Ready 后,子域填充可能仍需 数小时至数天unfilled 在审核通过初期也属常见,并非一定是代码错误。
  • 隐私政策(或独立页面)中说明使用 Cookie / 广告合作伙伴。
  • 投资、健康类内容避免误导性广告文案与正文混淆;本站已在广告块上标注「广告」字样。
  • 若 AdSense 审核未通过,可考虑 CarbonEthicalAds 等替代,需自行改 src/components/AdSlot 组件。

关闭广告

删除 ADSENSE_CLIENT 或留空即可;重新部署后全站不加载 AdSense 脚本。