簡體   English   中英

如何根據推薦流量隱藏頁面上的某些元素?

[英]How do I hide certain elements on my page, based on referral traffic?

更具體地說,如何隱藏廣告? 讀完這篇文章后我提出了這個問題: 編碼恐怖條目

他在其中指出

出於禮貌,請關閉 Digg、Reddit 和其他流行的引用 URL 的廣告。 這些受眾不喜歡廣告,而且他們最不可能點擊廣告。

我同意他所說的。 那么我該怎么做呢?

我會為此使用 PHP ,因為 JavaScript 代碼隱藏廣告會讓你看起來像是在為每個人隱藏廣告並只是從他們那里獲得收入(谷歌很聰明,所以他們會找到你做類似的事情) .

但是,使用 PHP,您可以在頁面到達用戶之前對其進行修改,從而消除該問題。 基本上,您有條件地檢查瀏覽器的來源:

<?php
  $sites = array("reddit.com", "digg.com");

  if (!in_array(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST), $sites)) :
?>

  <div>your ads</div>

<?php else:?>

  <div>Hello reddit person</div>

<?php endif; ?>

您必須讓您的網站運行 PHP 代碼(它將是動態的)以有條件地展示您的廣告。 但是,此代碼不起作用,因為reddit不是 URL,但您明白了; 檢查 URL 的reddit.com

好吧,我不知道您網站上的廣告是如何處理的,但在 StackOverflow 上可能類似於

function hideAds()
{
    var elems = document.getElementsByClassName( "everyonelovesstackoverflow" )
    for( var i = 0; i < elems.length; i++ ) 
          elems[ i ].parentNode.removeChild( elems[ i ] )
}
// change the logic as you like. You may need to parse document.referrer
if( document.referrer == <some referrer url> ) hideAds()

您將希望在適當的情況下顯示廣告,而不是在不適當的情況下隱藏廣告——否則您可能違反了 AdSense 的條款,例如在廣告顯示后隱藏。 至少,等到您檢查推薦人后才顯示廣告(也可能違反條款,但可能性要小得多)。 還要查看您的廣告服務條款,以確保使用 javascript 等客戶端技術來動態展示廣告不違反條款。

要回答您的問題,只需檢測 HTTP Referrer(該字段實際上稱為 HTTP “Referer”,這是一個拼寫錯誤),如果它不是來自您“喜歡”的網站,則插入廣告。 對於 API / 示例,您可以搜索http referrer your_language 例如,在 PHP 中,它是$_SERVER['HTTP_REFERER'] 在 python 中,它取決於您使用的 web 框架。 正如其他人在 javascript 中提到的那樣,它是document.referrer等。 Javascript 是最簡單的解決方案,但請再次閱讀條款。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM