2013-07-05 71 views
2

我想顯示一個div如果訪問者正在使用adblock。顯示圖片,如果adblock塊adsense

我最初使用的是背景圖片,但大多數用戶在廣告初始化之前,即使沒有屏蔽廣告,也會在一秒或兩秒內看到該消息。

我搜查了網站和這個網站,它似乎javascript是最好的解決方案。我遇到的唯一問題是,似乎這裏的每個答案都缺少一些關鍵信息,例如我自己的結點。

所以我很好奇,我將如何展示div來代替adsense廣告,具體如何?

到目前爲止,我已經嘗試過一些成功的東西,看看廣告容器沒有高度,然後顯示一個彈出窗口(從線上教程獲得代碼)。但我不想要一個彈出窗口,只是在與廣告相同的位置顯示div。

<script type="text/javascript"> 
    function TestPage() { 
     if ($('.ad').height() == 0) 
      $('.adblocked').show(); 

    } 

    $(TestPage); 
</script> 

以上不工作,以顯示DIV,但它確實在廣告被封鎖,只是有麻煩顯示它該div .adblocked的地方檢測。

+1

瞭解這一http://idahospuds.blogspot.co.il/2013/03/how-to-detect-block-ads-using-google.html – raam86

+0

謝謝,已經讀通過,我這對我來說非常新穎,所以我希望只要掌握了js知識,就能得到一份只有很少期望的教程。 – HelloWorld

回答

1
<script type="text/javascript"> 
    function TestPage() { 
     if (jQuery('.ad').height() == 0) 
      document.getElementById("test").className += " adblocked"; 

    } 

    jQuery(TestPage); 
</script> 

明白了;一些教程的一些部分幫助我到達那裏。

如果任何人試圖在這裏做,這是我做的事:這裏

一些答覆和在線教程建議試圖找出如果廣告被「堵塞」或不獲取adlibraryname或東西等效負載。我不知道如何找到那個,所以我在高度上做了。

我在廣告上放了一個div,名爲.ad,並在上面的jquery函數中查看div的高度是否爲0(廣告未加載)。在同一個主廣告框中(.ad被包裝在父div中,我們稱之爲#wrap)我把另一個div叫做#test

在我的樣式表中,我製作了另一個div,名爲.adblocked,它有一個background-image,其中包含一個用於人員封鎖的好消息。

因此,當廣告被阻止時,它會用.adblocked填充#test

這裏是一個小提琴:http://jsfiddle.net/VZdzX/(改變.ad高度看)

現在我唯一關心的是,是否該將調用.adblocked如果實際的廣告不會阻止,但只是把長期加載...

2

Adblock可能需要幾秒鐘才能隱藏元素,因此請設置超時時間,如下所示。你可以增加延遲,但3000通常會訣竅。

<script type="text/javascript"> 

function TestPage() { 
if (jQuery('.ad').height() == 0) { 
    document.getElementById("test").className += " adblocked"; 
} 
} 

jQuery(document).ready(function() { 
window.setTimeout('TestPage()', 3000); 
} 

</script>