在使用 Discourse 进行服务的时候,很多人可能会希望安装一些广告服务。
对 Discourse 的广告服务来说还是可以的,因为广告服务的位置不是非常影响阅读。
这篇文章将会描述如何在 Discourse 中提供广告服务。
安装插件
Discourse 的 Google Adsense 广告服务是使用插件进行安装的。
安装插件的方法,请参考: Install Plugins in Discourse - sysadmin - Discourse Meta 页面中的内容。
有关启用广告服务的文章,请参考页面:Discourse Advertising - plugin - Discourse Meta 中的内容。
广告服务的源代码,请参考: GitHub - discourse/discourse-adplugin: Official Discourse Advertising Plugin. Install & Start Serving Ads on Your Discourse Forum 代码仓库。
安装代码
根据提示,你首先需要添加插件代码,然后对 Discourse 进行重编译。
编辑 app.yml 文件,如果你有多个仓库,你可以进行添加在下面。
如下:
sudo -E -u discourse git clone https://github.com/discourse/discourse-adplugin.git
添加后进行保存。
然后依次运行下面的命令,对插件进行重编译:
cd /var/discourse
./launcher rebuild app
这个编译需要一些时间,你需要耐心等待编译的完成。
必要的话,你可以重新启动你的 Docker 的容器。
启动的命令为:
systemctl restart docker
确定安装
通过管理员控制台查看插件。
以编译确定你的插件已经被安装了。
通过上面安装的插件,你应该可以在插件部分找到已经安装的 ad 插件。
然后单击 插件右侧的设置。
可以进入到插件的配置界面中。
在插件的配置界面中,你需要对上面的一些插件配置进行配置。
需要配置的参数为: adsense publisher code 和 adsense topic list top code
这 2 个参数可以从你google Adsense 中找到。
登录 Google Adsense 账号,从左侧选项 Ads 下面的 Overview,然后选择你的广告中的 By ad Unit。
在这里,你可以看到所有你安装的广告列表。
然后选择一个你的广告。不建议选择固定格式的,建议选择 Responsive 格式的。
然后可以选择查看代码。
在查看的代码中你可以看到 data-ad-client 和 data-ad-slot 参数,这个 2 个参数就是你需要的值。
Discourse 中的 adsense publisher code 使用的是你代码中 ca-pub 开头的配置,在这里不需要输入 ca-pub-,你只需要输入这个配置后面的数字就可以了。
Discourse 中的 adsense topic list top code 使用的是你代码中 data-ad-slot 中配置参数后面的数字。
在这里,需要注意的是这 2 个字段都需要输入的是数字。
保存后再次访问 Discourse 网站。
广告被屏蔽
广告有可能被 Discourse 的安全配置所屏蔽而导致你没有办法进行查看。
在 Discourse 中搜索关键字 CSP ,然后选择安全。
你需要启用 CSP,同时还需要将 https 添加到你的安全选项中。
上图显示的是需要修改的安全选项。
下图显示的是修改安全选项的路径。
这个安全选项是在设置中的安全选项下面。
这个页面比较长,你需要拖动到页面中才可以看到。
校验安装
使用不同的浏览器或者清理掉当前浏览器的缓存后再次访问你的 Discourse 网站。
如果你能够看到你广告的展现,则说明配置已经成功了。
通过上面的配置我们已经可以看到展现的内容了。
如果你想取消广告,你可以将上上面的配置恢复默认,不输入上面提到的 2 个配置就可以禁用广告了。