最近费了一些周折,终于解决了困扰已久的You already have an existing AdSense account问题。Google AdSense通过了审核。下面记录一下添加Google AdSense代码到基于Hexo博客的解决方案,一是备查,二是没准可以帮到新手。

Hexo博客,使用了maupassant模板。如果是别的模板,解决方案应该也可以参考。

首先在Hexo的_config.yml文件中添加下面一行(注意替换自己的AdSense ID):

1
google_adsense: ca-pub-7680017147908727

进入manupassant模板目录themes/maupassant,在layout/_partial目录中可以看到一系列子模块文件。找到head.pug,添加下面的代码。

1
2
if config.google_adsense
script(data-ad-client=config.google_adsense, async src='https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js')

调试,完工。


2019年12月28日更新手动指定位置添加广告模块内容。

以上为Google提供的Auto ads服务,即Google自动确定广告展示的位置和尺度,初步测试该自动方式仍然存在一定的局限性,通常会导致页面博客页面混乱。下面是更为常规的方案,即用户自己指定广告展示的位置和尺寸。

用户需要通过Google Adsense的By ad unit根据需求创建广告模块,获取代码。然后将代码添加到页面的相应位置。比如,如果想要在Hexo maupassant博客文章的末尾添加广告,便可以参考下面的代码将相关代码添加到layout/post.pug最后的位置(注意根据自己的代码修改相关信息)。添加到其他位置也可以参考下面的代码。

1
2
3
4
5
if theme.show_ad_unit_post == true
script(async src='https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js')
ins.adsbygoogle(style='display:block', data-ad-client='ca-pub-7680017147908727', data-ad-slot='2051716958', data-ad-format='auto', data-full-width-responsive='true')
script.
(adsbygoogle = window.adsbygoogle || []).push({});