去年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后台提交审核。
评论2
我是直接把广告代码放到drupal的区块里
我是直接把广告代码放到drupal的区块里,然后设置登录页面不显示区块。嗯,这也是很好的办法,可以精准控制需要投放的页面👍
嗯,这也是很好的办法,可以精准控制需要投放的页面👍