您在這裡

在網站中一部分頁面禁止投放聯盟廣告

James Qi 在 2016年7月22日 - 15:25 發表

  今天收到過來自Google AdSense的警告信,某系列網站中有部分違規頁面,我查看了一下,批量導入的内容中确實有一些不适合放置AdSense廣告,查了一下以前遇到類似情況,一般都是删除Google信中指定的頁面,但這次類似頁面很多,有幾百個吧,隻删除一個不行,都删除起來比較麻煩,于是就想辦法來讓這一批頁面都不顯示Google提供的廣告。

  以前在MediaWiki網站中也做過類似工作,因為廣告代碼是通過LocalSettings.php文件來加入,所以是修改LocalSettings.php來實現,對$_SERVER['REQUEST_URI']進行判斷,符合某些條件就不投放廣告。

  這次涉及到的是Drupal網站,廣告代碼是通過網頁模闆page.tpl.php和node.tpl.php分别投放的,于是就需要修改這兩個模闆文件,代碼示範如下:

  page.tpl.php中加入:

<?php
    $allow_ad = TRUE;//默認允許廣告投放
    if (isset($node->field_sic['und'][0]['value'])) {//是否有要判斷的字段
        $field_sic = $node->field_sic['und'][0]['value'];
        if ($field_sic == '123 - XXX') {//該字段是否符合屏蔽條件
            $allow_ad = FALSE;//符合則不允許投放廣告
        }
    }
?>

...其它顯示内容代碼...

<?php
if ($allow_ad) {//如果允許投放廣告才加入廣告代碼,否則無廣告代碼
    print '
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
...廣告代碼...
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
';
}
?>

  node.tpl.php中加入:

<?php
$allow_ad = TRUE;//默認允許投放廣告
if (isset($field_sic[0]['value'])) {//是否有要判斷的字段
  $sic=$field_sic[0]['value'];
  if ($sic == '123 - XXX') {//該字段是否符合屏蔽條件
    $allow_ad = FALSE;//符合則不允許投放廣告
  }
} else {
  $sic=NULL;
}
?>

...其它顯示内容代碼...

<?php 
if ($allow_ad) {//如果允許投放廣告才加入廣告代碼
$ad = ' 
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
...廣告代碼...
(adsbygoogle = window.adsbygoogle || []).push({}); </script> 
';
} else {//否則廣告代碼為空
$ad = ''; 
}
print $ad;//顯示廣告代碼
?>

  如果是html.tpl.php或者其它什麼頁面、其它什麼模闆中有廣告代碼,也都是去這些地方加判斷來決定是否投放廣告。


  補充一個在MediaWiki中屏蔽不存在頁面的例子:

  收到Google警告郵件:

您需要采取行動,确保您的 AdSense 帳戶符合 AdSense 合作規範。請在三個工作日之内對以上網站作出更改。我們可能會在此期限後再次抽檢該網站。在完成必要的更改後,請點擊下面的“标記為已解決”按鈕,并填寫随後顯示的簡表。請注意,如果您不進行更改以使網站符合要求,我們可能會針對以上所列網站停止廣告投放服務。了解詳情

示例網址:  http://...

為了确保提供高質量的用戶體驗和恰當定位的廣告,Google 廣告隻能展示在便于用戶導航且信息豐富的原創内容上。

廣告不應成為網頁的主要焦點,也/或不應比内容本身更醒目。此處所指的網頁包括用戶訪問後可能會退出某個域的網頁(即“退出頁”或“非常感謝”頁)、404 錯誤頁以及一些登錄頁面。由于我們的廣告是根據内容定位的,因此包含文字很少的圖庫也不是展示廣告的最佳位置。

網站應該擁有合理的結構,可讓用戶輕松點擊轉到您的網頁,找到他們所需的信息。我們建議網站建立清晰的層次并提供文字鍊接,以便能從至少一個靜态文字鍊接到達每個網頁。

有關詳情,請參閱以下資源:

關于制作高質量網站的提示(第 1 部分)
關于制作高質量網站的提示(第 2 部分)
網站站長質量指南
AdSense 合作規範

  檢查發現是MediaWiki中有一些紅色的鍊接,是為了讓用戶更方便創建還不存在的詞條,可以找出規律:網址中都帶有&action=edit&redlink=1,所以可以把網址是否包含redlink這個詞來作為判斷,存在這個詞就禁止投放廣告代碼,我以在LocalSettings.php中投放廣告代碼為示範,具體程序如下:

$request_uri = $_SERVER['REQUEST_URI'];
if (strpos($request_uri,'redlink') != FALSE) {
  $ad_code = '';
} else {
  $ad_code = '
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    ...廣告代碼...
    (adsbygoogle = window.adsbygoogle || []).push({}); </script>
  ';
}

  這樣就可以屏蔽紅色鍊接頁面中的廣告了。

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。