ブラウザの広告ブロッカーを検知し、ブロックしている場合は何らかの処理を行う方法
2023/08/09
普段何らかのサイトを見る際はAdBlock等の広告ブロッカー系プラグインを導入したブラウザで閲覧することが多い。その際稀に「広告ブロッカーを解除してください」みたいなアラートが表示されるサイトに出くわすことがある。どういった方法で検知しているか気になったので調査及び導入メモ。
BlockAdblock
BlockAdblockというJSプラグインがあり、こちらを利用することで簡単に導入できる模様。
尚、CDN版もあるので必要に応じて利用する。また、他のプラグインやツールを用いたい場合はこちらの記事が参考になりそう。
ソースコード
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
<div class="adBlockAlert" style="display:none;">広告ブロッカーを解除してください。</div>
<script type="text/javascript" src="//code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/blockadblock/3.2.1/blockadblock.min.js" integrity="sha512-EFY34xQ/AKRSb4EfjeRCO1TXnLuDQrYlo3BVId+DU8J4BiKUezCWK93bUlXTkEf4a8rMRroouaPXHnq/WTK4pA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
function adBlockDetected() {
$(".adBlockAlert").show();
}
function adBlockNotDetected() {
$(".adBlockAlert").hide();
}
if (typeof blockAdBlock === "undefined") {
adBlockDetected();
} else {
blockAdBlock.onDetected(adBlockDetected);
blockAdBlock.onNotDetected(adBlockNotDetected);
}
</script>
</body>
</html>
広告ブロッカーが検知された場合はclass="adBlockAlert"要素が表示されるので、該当部分をモーダルウィンドウで大きく表示する(他のコンテンツを見づらくする)等が使い道になりそう。
参考サイト
関連記事
-
-
JavaScriptでオブジェクトをzlib圧縮してCookieに保存できる「zcookies」ライブラリの利用方法
あるシステムでCookieを保存している部分があった。ただ、日本語を保存している ...
-
-
JavaScriptでフォーム送信の際に禁止ワードのチェック及び制限をかける方法
掲示板等で本文を送信する際に予め定めていた禁止ワードが含まれていないかチェックし ...
-
-
郵便番号を入力すると住所を自動で入力してくれる「ajaxzip3」ライブラリの利用方法
お問い合わせフォームのようなページで郵便番号及び住所欄がある場合、ユーザーが郵便 ...
-
-
jQuery UIを使って簡単にダイアログを表示させる方法
ブラウザ上でユーザーに対してちょっとした確認を行いたい場合はJavaScript ...
-
-
FileReader APIを用いて画像をアップロードせずにサムネイル表示
以前にFile APIを用いてファイル名やサイズ、形式(拡張子)を取得するメモを ...