如何根据推介流量隐藏我的网页上的某些元素?
更具体地说,我该如何隐藏广告? 我在阅读后提出这个问题:编码恐怖条目
其中,他说
为了礼貌,请关闭Digg,Reddit和其他流行的引荐网址的广告。 这些受众不喜欢广告,而且他们最不可能点击它们。
我同意他所说的。 那么,我该如何做到这一点?
我会用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,但你明白了; 检查reddit.com
的URL。
那么,我不知道你的网站是如何处理广告的,但是在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是最简单的解决方案,但是再次阅读条款。
上一篇: How do I hide certain elements on my page, based on referral traffic?
下一篇: TYPO3: 404 for restricted access page instead of login form