当前位置

设置CMS模板让网站部分页面不包含广告代码

James Qi 在 2019年8月9日 - 09:59 提交

  去年AdSense推出了网页级违规通知,我们一些网站就经常收到违规通知,例如这样的页面:

example.com/user/login?destination=node/462%23comment-form

  这是Drupal创建的网站,在某个页面的留言处提示用户需要登录的链接,这个页面被AdSense提示违规情况为“有价值的广告资源:没有内容”,这个用户登录页面确实没有什么内容,不值得放置广告,但问题是我们使用了内容管理系统CMS来建站,整站网页顶部和底部嵌入的广告代码都是通过皮肤模板文件控制的,没有管是哪个具体页面。

  我前一阵子试图用设置robots.txt来处理,添加了以下代码:

User-agent:Mediapartners-Google
Disallow: /*user/log*

  想让adsense爬虫不来爬取这种页面,但adsense后台依然看到这种违规提示,那这种办法不可行。

  今天干脆修改了Drupal的主题模板文件html.tpl.php以及page.tpl.php,判断REQUEST URI,是/user开头的就不显示广告代码,这个应该是可以彻底解决问题:

<?php
$request_uri = $_SERVER['REQUEST_URI'];
if (substr($request_uri,0,5) == '/user') {
$ad_display = false;
} else {
$ad_display = true;
}
if ($ad_display) {
print '
...广告代码...
';
}
?>

  涉及到的主题皮肤都可以这样改,例如响应式版本、AMP版本、MIP版本。如果是更详细的分类或者单个URL等,也可以在node.tpl.php里面设置来控制广告代码。

  MediaWiki等其它CMS也可以做类似修改,我刚看到 2016年7月22日我还写过一篇《在网站中一部分页面禁止投放联盟广告》,都是类似的思路和解决办法。

  修改完毕,在浏览器中查看验证无误后,可以在AdSense后台提交审核。

评论

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。