如何根据引荐流量隐藏页面上的某些元素?

时间:2011-07-12 04:05:58

标签: javascript

更具体地说,我如何隐藏广告?我读完这篇文章后提出这个问题: coding horror entry

其中,他声明

  

为了礼貌,请关闭Digg,Reddit和其他热门广告   引用网址。这些观众不喜欢广告,他们就是   最不可能点击它们。

我同意他所说的话。那我该怎么做呢?

3 个答案:

答案 0 :(得分:2)

我会使用PHP,因为用于隐藏广告的JavaScript代码会让你看起来像是在隐藏每个人的广告并从中获取收入(Google很聪明,所以他们会找到你做某事那样的。)

但是,使用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不是网址,但您明白了这一点;检查reddit.com的网址。

答案 1 :(得分:1)

好吧,我不知道你网站上的广告是如何处理的,但是在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()

答案 2 :(得分:0)

您需要在适当的时候展示广告,如果不合适则不要隐藏广告 - 否则您可能违反了AdSense的条款,例如:在广告显示后隐藏广告。至少,等到您检查引荐来源之前显示广告(可能也违反了条款,但可能性更小)。另请查看广告服务的条款,以确保使用javascript等客户端技术动态展示广告不符合条款。

要回答您的问题,只需检测HTTP Referrer(该字段实际上称为HTTP“Referer”,这是拼写错误)并插入广告(如果它不是来自您“喜欢”的网站)。对于API /示例,您可以google http referrer your_language。例如,在PHP中它是$_SERVER['HTTP_REFERER']。在python中,它取决于您正在使用的Web框架。正如其他人在javascript中提到的那样document.referrer等等.Javascript是最简单的解决方案,但请再次阅读这些条款。