去年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的區塊裡,然後設置登錄頁面不顯示區塊。嗯,這也是很好的辦法,可以精準控制需要投放的頁面👍
嗯,這也是很好的辦法,可以精準控制需要投放的頁面👍