Hexo 博客接入广告变现: AdSense 与百度联盟的完整配置
前言
域名每年要钱, 服务器(如果是静态托管)也要钱, 有人会问: 个人博客靠什么覆盖成本?
常见的路径有三条:
- 流量主 —— 最常见, 靠展示广告
- 联盟推广 —— 靠推广产品拿佣金
- 知识付费/赞助 —— 靠内容本身
这篇先写最实际的: 展示广告怎么接。同时也会说清楚收益的现实预期 —— 不吹数字,免得你按错误的期望去规划。
先算一笔账
假设你的硬成本是:
- 域名: 95 元/年
- 服务器/CDN: 静态托管可以是 0, 用云服务器约 100-300 元/年
- 合计约 200-400 元/年, 折合 每天 0.5-1.1 元
那么问题变成: 需要多少流量才能覆盖?
AdSense 的收益量级
AdSense 的收益和 CPM(每千次展示收益) 直接相关, 而 CPM 差异极大:
| 地区 | CPM(美元/千次) | 说明 |
|---|---|---|
| 美国、加拿大、西欧 | 10 - 30 | 最高, 竞争激烈 |
| 日本、韩国、新加坡 | 8 - 20 | 较高 |
| 港澳台 | 5 - 15 | 中上 |
| 中国大陆 | 1 - 4 | 受 AdSense 在中国大陆的投放限制影响 |
| 东南亚、南亚 | 0.3 - 1.5 | 最低 |
再叠加一个关键指标: RPM(每千次页面浏览的实际收益), 因为不是每个访客都会看到广告(要看展示率和点击率)。
RPM 通常只有 CPM 的 1/5 到 1/10。 举例,CPM 假设 20 美元, RPM 大概 2-4 美元。
需要多少流量
按国内流量、RPM 约 0.3 美元(约 2 元人民币)算:
| 日均 PV | 月 RPM 收入 | 覆盖 300 元/年 |
|---|---|---|
| 100 | 6 元 | 需要 50 个月 |
| 500 | 30 元 | 需要 10 个月 |
| 1000 | 60 元 | 需要 5 个月 |
| 5000 | 300 元 | 需要 1 个月 |
结论很清楚: 靠 AdSense 覆盖成本, 需要日均几百到一两千 PV。 这不是个小数目。
如果你的站点是国内技术博客, 走百度联盟(百度的 RPM 对国内流量给得相对合理)会比 AdSense 稍好一些, 但量级是一样的。
顺便一提: 我自己的站点还挂了又拍云的联盟推广链接(CDN 和云存储), 这种”顺带推荐”的转化率不高, 但成本是零, 可以作为补充。
AdSense 接入流程
第一步: 申请账号
地址: https://www.google.com/adsense/
需要准备:
- 站点必须已经上线, 域名可访问
- 站点内容要够, 一般要求 20-30 篇有实质内容的文章
- 一个 Google 账号
- 收款信息(国内常见是招商银行/中国银行的双币账户, 或电汇)
第二步: 验证域名
在 AdSense 后台添加站点, 填写:
- 网站地址:
https://zsyyblog.com - 流量来源: 填”您在博客中撰写的内容”这类
然后它会给你一段验证代码, 放到网站 <head> 里。
Hexo 里怎么放? 两种方式, 选一种就行:
方式一(推荐): 用 Butterfly 内置的 google_adsense 配置
Butterfly 主题本身就预留了 AdSense 的加载位置(layout/includes/head/google_adsense.pug), 直接在 _config.butterfly.yml 里填发布商 ID 即可, 不用手写代码:
1 | google_adsense: |
主题会自动把脚本注入到 <head>。
方式二: 手动用 inject 注入
如果不想用内置配置(比如想同时接多个广告平台), 自己注入:
1 | inject: |
不要两个方式同时用, 脚本会被加载两次, 导致广告重复展示或报错。
第三步: 配广告位
验证通过后, 后台会生成多个广告位(代码形如):
1 | <ins class="adsbygoogle" |
关键点:
data-ad-client—— 你的发布商 IDdata-ad-slot—— 广告位 ID(在后台创建广告单元时拿到)data-ad-format="auto"—— 自适应尺寸, 强烈建议保留data-full-width-responsive="true"—— 移动端适配
每创建一个广告单元, 就有一个新的 slot ID。 可以在同一个网站下建多个(比如”文章底部”、”侧边栏”、”首页顶部”), 分别配置不同内容。
第四步: 放到文章里
Butterfly 把广告分成两块配置, 别搞混。
4.1 全局开关: google_adsense
这块负责加载 AdSense 的 JS 脚本, 在 _config.butterfly.yml:
1 | google_adsense: |
字段说明:
| 字段 | 说明 |
|---|---|
enable |
总开关, 填了 client 记得打开 |
auto_ads |
开启自动广告, 由 Google 自动决定广告位置 |
js |
脚本地址, 一般不用改 |
client |
你的发布商 ID |
enable_page_level_ads |
页面级自动广告 |
auto_ads: true是最省事的方式。 Google 的自动广告会自己挑位置, 新手直接用这个, 不用手动插代码。但自动广告的样式不可控, 有时位置很怪。想精细控制就关掉它, 用下面的手动广告位。
4.2 手动广告位: ad
这块是你自己贴的广告代码, 主题会把它插到指定位置:
1 | ad: |
注意这三个位置的准确含义(看主题模板源码最准):
| 位置 | 实际插入点 |
|---|---|
ad.index |
首页文章列表, 每 3 篇插一次 |
ad.aside |
侧边栏 |
ad.post |
文章页, 上一篇/下一篇导航之前 |
不确定的话直接翻模板看:
1 | # 文章页广告插在哪 |
踩坑提醒:
ad段下面的三个字段默认都是空的, 必须整段贴 HTML 才会生效。填了enable: true之类的主题并不支持, 贴上去会被当成广告 HTML 直接输出到页面上。
第五步: 手动插入自定义广告位
内置的三个位置不够用时(比如想放文章末尾), 用 inject 自己插:
1 | inject: |
注意:
inject只有head和bottom两个键, **没有post-bottom**。上面这段是全站生效的, 如果只想要文章页有广告, 还是在post.pug里加更精准。另外 inject 的内容是纯字符串(源码里
data.join('')), 不能在里面写模板变量。上面这段广告代码的 ID 是固定的, 所以没问题; 但如果你想动态取当前文章的 ID, 就得改主题模板。
广告放在哪里最合适
这不是随便放的, 位置直接决定点击率。
推荐位置
| 位置 | 效果 | 说明 |
|---|---|---|
| 文章末尾 | 最好 | 读者已经读完, 注意力集中 |
| 文章中段 | 好 | 打断阅读体验, 需谨慎 |
| 侧边栏 | 中 | 常年可见, 但位置固定易被忽略 |
| 首页顶部 | 中 | 首屏, 存在”点击诱饵”嫌疑 |
| 评论区上方 | 好 | 互动意愿强的位置 |
| 弹窗/浮层 | 短期高, 长期伤体验 | 不建议 |
一个重要原则
Google 对”误点”非常敏感。 如果广告做得像网站原生按钮, 用户以为是点别的东西, 点错了 —— 这算”无效点击”。
后果: AdSense 会警告, 严重时直接封号, 严重的会封整个 AdSense 账号(所有站点一起完)。
所以:
- 广告要有明确的”广告”标识
- 不要做”继续阅读”这种伪装成功能按钮的样式
- 不要用会自动跳转的浮层广告
- 不要自己点自己的广告
百度联盟接入
与 AdSense 的差异
| 方面 | AdSense | 百度联盟 |
|---|---|---|
| 结算 | 美元, 需绑国际账户 | 人民币, 绑国内银行卡 |
| 审核 | 相对宽松 | 相对严格 |
| 流量要求 | 需一定内容量 | 需备案(国内域名) |
| 覆盖 | 全球 | 主要是百度联盟的推广范围 |
| 收益 | 国外流量高 | 国内流量相对合理 |
已备案的国内站点, 百度联盟往往比 AdSense 更实际。
配置流程
- 访问 https://union.baidu.com/ 注册
- 提交网站信息 + 备案号
- 等待审核(通常 1-3 天)
- 审核通过后创建广告位, 拿到推广位 ID
- 在页面里放推广代码
1 | <div id="BAIDU_ADC_xxx" class="baidu_ad"></div> |
具体的推广代码从百度联盟后台直接复制, 不用手写。
被封号的几个雷区
这个话题值得单独说, 因为很多新手是”莫名其妙”被封的。
1. 点击率异常高
CTR(点击率)如果长期超过 10% 左右, 会被判定为无效点击。正常文章博客的 CTR 通常在 1-5%。
2. 误点设计
前面说过,这是最常见的原因。
3. 内容不足以申请
刚建站、没几篇文章就挂广告, 审核可能不通过; 或者通过后没有真实流量, 收益太低, 账号反而处于”低质”状态。
4. 流量来源不健康
买来的垃圾流量是最大的雷。 短期能刷出可观收益, 但被检测到后基本是永久封禁, 账号里的所有站点一起没。
5. 广告和内容不匹配
技术博客里放游戏广告、或者放高利贷类广告, 会被判定为”低质量内容变现”, 影响账号信誉。
6. 用多个账号规避
被封后开新号继续挂, 系统会通过设备、IP、支付账户关联识别, 结果是全部封禁。这是最不划算的”聪明做法”。
提升收益的实际手段
广告收益的天花板不高, 想提高只能从这几个方向:
提高 PV 而不是 CTR
CTR 提升空间有限(而且提太高有风险), 但流量增长是线性收益。
具体做法: 提升搜索排名(SEO)、做 RSS 分发(见 518 篇)、在技术社区分享。
提高 RPM 而不只是 PV
RPM 取决于访问者所在地区和广告类型。欧美访客的 RPM 是国内访客的 5-10 倍。
如果你的内容是中文技术教程, 目标读者天然在国内。想接高价值广告, 可以考虑:
- 写英文版(用翻译工具 + 人工润色)
- 面向海外华人的内容
混合变现
只靠展示广告太单薄, 可以叠加:
| 方式 | 难度 | 见效 | 说明 |
|---|---|---|---|
| 联盟推广 | 低 | 中 | 云服务/CDN/主机厂商, 按成交付费 |
| 赞助 | 中 | 低但单笔高 | 页脚赞助位, 适合有稳定粉丝的 |
| 付费内容 | 高 | 高 | 需要足够的内容深度和信任度 |
| 买断广告位 | 中 | 稳定 | 一次性卖断某个月的位置 |
对技术博客来说, 联盟推广其实比展示广告更划算 —— 因为它不打扰阅读, 成交佣金还比 RPM 高。接云服务、域名、主机这类推广, 和内容天然相关。
上线前的检查清单
准备提交审核前, 逐条确认:
- 站点能正常访问, HTTPS 有效
- 至少 20-30 篇有实质内容的文章
- 没有空分类、空标签页
- 移动端显示正常(现在大部分流量来自移动)
- 广告位置不会误触
- 隐私政策页面(欧美站点必备, AdSense 要求)
- 备案号展示(国内备案要求)
隐私政策页面可以用 Butterfly 自带的页面功能建一个, 简单说明用了哪些 Cookie 和第三方服务即可。
小结
- 先想清楚收益预期 —— 覆盖域名费需要日均几百到一两千 PV, 别指望几百 IP 就能赚钱
- AdSense 适合有海外流量或英文内容的站, 百度联盟适合已备案的国内站
- 广告位置优先选文章末尾, 收益最好且不伤体验
- 千万别碰”无效点击” —— 那是封号的主要原因, 而且会连累所有关联站点
- 别买垃圾流量 —— 短期收益长期封号
- 展示广告之外, 联盟推广对技术博客更划算
最后一条我的体会尤其深: 技术博客的用户信任度是最值钱的资产。 为了几十块钱的展示收益, 把用户体验做烂, 是很不划算的买卖。联盟推广、原创内容、良好的阅读体验, 这些才是能长期做下去的路子。
参考链接:
💡 准备购买云服务器 / 域名来搭建或部署站点?
通过下面的链接下单,通常能领到新用户专属优惠,也能小额支持本站持续更新:
阿里云(返现) |
腾讯云 2核2G 99元/年 |
腾讯云 云产品特惠












