中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

如何檢測(cè)廣告攔截器

發(fā)布于:2021-01-23 00:00:28

0

981

0

攔截器 Ad Blocker JavaScript

互聯(lián)網(wǎng)的潛規(guī)則之一是大多數(shù)內(nèi)容都是“免費(fèi)的”……代價(jià)是網(wǎng)頁(yè)上到處都是廣告和追蹤器。在早期的互聯(lián)網(wǎng)時(shí)代,這并不是一個(gè)大問(wèn)題,但追蹤器和廣告已經(jīng)變得如此具有侵入性和不可原諒的侵犯性,以至于你幾乎需要使用一個(gè)廣告攔截瀏覽器擴(kuò)展。

廣告攔截器非常流行,像Brave這樣的瀏覽器吹噓自己圍繞著廣告攔截展開(kāi)。我經(jīng)常去一個(gè)網(wǎng)站,看到一個(gè)模態(tài),我禁用了我的廣告攔截器,這讓我思考最好的方法來(lái)檢測(cè)廣告攔截器。經(jīng)過(guò)各種測(cè)試和實(shí)驗(yàn),我發(fā)現(xiàn)了一個(gè)非常簡(jiǎn)單的方法來(lái)檢測(cè)廣告攔截器!

本質(zhì)上,我的方法試圖加載谷歌的廣告服務(wù)JavaScript文件,如果請(qǐng)求失敗,這可能是由于用戶(hù)有一個(gè)廣告攔截器:

// Determines if the user is likely using an ad block extension
async function checkAdBlocker() {
 // Used to cache the result
 let isBlocked;

 async function tryRequest() {
   try {
     return fetch(
       new Request("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js", {
         method: 'HEAD',
         mode: 'no-cors'
       }))
       .then(function(response) {
         // Google Ads request succeeded, so likely no ad blocker
         isBlocked = false;
         return isBlocked;
       }).catch(function(e) {
         // Request failed, likely due to ad blocker
         isBlocked = true;
         return isBlocked;
       });
   } catch (error) {
     // fetch API error; possible fetch not supported (old browser)
     // Marking as a blocker since there was an error and so
     // we can prevent continued requests when this function is run
     console.log(error);
     isBlocked = true;
     return isBlocked;
   }
 }

 return isBlocked !== undefined ? isBlocked : await tryRequest();
}

// Using the ad block checker
const usingBlocker = await checkAdBlocker();

這背后的邏輯如下:

谷歌的廣告文件,adsbygoogle.js是一個(gè)完美的示例文件,因?yàn)樗徽J(rèn)為是頭號(hào)敵人——由于谷歌的廣告服務(wù)受歡迎,廣告攔截器想要攔截的第一個(gè)文件

該文件也是至關(guān)重要的谷歌的業(yè)務(wù),因此99.999999999%的正常運(yùn)行時(shí)間幾乎得到了保證

幾乎不可能出現(xiàn)網(wǎng)絡(luò)問(wèn)題;誤報(bào)可能來(lái)自網(wǎng)絡(luò)連接問(wèn)題或壞的服務(wù)工作者

如果你不認(rèn)為adsbygoogle.js是最好的示例文件,你可以很容易地將它切換到其他URL

從內(nèi)容創(chuàng)建者的角度來(lái)看,一個(gè)導(dǎo)航屬性可以讓你知道是否使用了廣告攔截器是最理想的……但這不會(huì)很快發(fā)生(…沒(méi)有,真的)。然而,使用這樣簡(jiǎn)單的代碼片段,可以為用戶(hù)啟用廣告攔截器提供一個(gè)合理的提示!