煩人的網頁廣告,討厭的頁面彈窗,想必你們都見過,對於這些亂七八糟的東西,我是最不能忍的,因此每次裝瀏覽器後的第一件事就是安裝瀏覽器插件去廣告,基本能屏蔽全部網頁廣告和彈窗(對於大部分用戶,中國主流視頻網站播放前、播放中插的視頻廣告最討厭,特別是播放中插廣告,簡直變態,非要套路用戶去衝會員),而這方面的瀏覽器插件也是比較多的,好比adblack等,做用基本同樣,根據一些寫好的正則去斷定廣告而後幹掉,給用戶一個原始、相對清爽的頁面;相信不少知道瀏覽器有這功能的會選擇使用,有些瀏覽器還會自帶廣告屏蔽功能,不用安裝插件;然而有些站點會偵測這些插件並反對這些插件,爲何那,下面就慢慢道來;javascript
今年年初的時候在Youtube投稿了一份原創視頻,注意到視頻有關投送廣告的信息,其實在這以前就知道頁面廣告,什麼百度聯盟啥的,不過也就是知道,沒啥特別的見解,Youtube給個人信息讓我瞭解投放廣告對於網站意味着什麼,Youtube上有專門的視頻科普教學如何投送廣告,視頻投送廣告的收益等問題,你們有興趣能夠去科普下,固然國內應該也有這樣的教程什麼的,過程大同小異,工做原理也類似,大體的運做流程是以一個身份去申請廣告聯盟的連接代碼,放置到站點頁面中,相似代碼以下:css
<script async src="//x.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
在頁面上就會展示相應的廣告內容,出現一些js變量,能夠設置出現的位置數量自動填充等:html
而且這些廣告的內容不是固定的,會根據用戶的搜索關鍵字、關注熱點來推薦相應的廣告,也就是說會抓取用戶在瀏覽器上的行爲歷史信息(廣告代碼:說的好像其餘的不抓同樣,別黑我一個),因此也建議在使用瀏覽器的時候用戶數據在退出的時候清掉,避免這些基本沒啥好事的抓取;前端
看一下頁面填充的dom,也還保留着很濃重的google色彩,一看就知道是google廣告的內容,因此相應的前端方面也會有這樣的要求,要求頁面上的id、class等不能用ad、adver等來命名,在不一樣的爬蟲規則下可能會被認爲是廣告而不收錄;java
值得注意的是,相關屏蔽廣告的插件是將廣告代碼隱藏,不是清除,恩就是一個display:none,這個關係到下面的檢測:瀏覽器
頁面投送廣告基本說完了,回到title,網站頁面廣告屏蔽監測,對於不少站點來講,廣告的贊助是一筆不小的支持,因此不但願站點廣告被屏蔽,或者就那麼簡單的被屏蔽,要「抵抗」屏蔽廣告插件,呵呵只對小白管用,什麼意思,就是這個:app
網站廣告被屏蔽的話,就會提示用戶關掉插件,以便他們能推送廣告,以便你會點廣告連接,以便你爲廣告連接增長流量進而廣告商會付錢給這個網站,咳咳,也許你會懷疑這能有多少刀,流量大的網站威力不容小覷;因此原理需求狀況都理清楚了,若是你有個站點不想被屏蔽廣告能夠這樣作:dom
jQuery(document).ready(function($) { //文檔加載完後檢查廣告聯盟代碼設置有沒有起效,或者簡單粗暴檢測廣告位置有沒有被"display:none" setTimeout(function() { //typeof(window.google_jobrunner) === "undefined" // document.getElementById("div").css("display")==='none' if ( $("#AD").is(":hidden") ) { //若是是就加載遮罩層提示 jQuery("body").html('<div class="san_wrapper"> \ <div class="san_inner"> \ <h2>We do not like AdBlock.</h2> \ </div>'); } }, 10000); });
簡單粗暴簡單粗暴有木有,相對於adblack裏對廣告的驗證正則,檢測廣告代碼是否被屏蔽很是簡單粗暴,就能達到目的,admin能夠根據自身需求定製相關的代碼提示,友好一點,留住用戶,保護流量;async
原版2016-12-08發佈於xuechenlei.com網站