ユーザーが私のウェブサイトを訪問したときに、広告ブロックソフトウェアを使用しているかどうかを検出できるようにしたいと考えています。使用している場合は、プロジェクトをサポートするためにそれをオフにするように求めるメッセージを表示したいと思います。このウェブサイトそうします。
そのサイトにアクセスし、ブラウザで何らかの広告ブロック ソフトウェアが有効になっている場合、サイトは実際の広告を表示する代わりに、広告収入はプロジェクトのホスティングに使用されているため、Adblock をオフにすることを検討するようユーザーに伝える小さなバナーを表示します。
自分のウェブサイトでそれをやりたいのですが、AdSense 広告を使用しています。どうすればよいですか?
ベストアンサー1
私のソリューションは特定の広告ネットワークに限定されたものではなく、非常に軽量です。私はこれを数年間本番環境で実行してきました。AdBlock は、「ads」または「prebid」という単語を含むすべての URL をブロックします。そこで、次の操作を実行しました。
私はウェブルートに小さなjsファイルを追加しました。prebid-ads.js
これはそのファイル内の唯一のコード行です。2022-04-26 更新この変数を別の名前で呼び出すには、以下を参照してください。
var canRunAds = true;
次に、ページのどこかに次の内容を入力します。
<html>
<head>
<script src="/js/prebid-ads.js"></script>
</head>
<body>
<script>
if( window.canRunAds === undefined ){
// adblocker detected, show fallback
showFallbackImage();
}
</script>
</body>
</html>
2022-04-26 更新uBlock Origin は、この回答で説明されているトリックを元に戻す独自の ads-prebid.js をロードします (誇りに思います!)。そのファイルには次の内容が含まれています。
(function() {
'use strict';
window.canRunAds = true;
window.isAdBlockActive = false;
})();
解決策としては、変数の名前をや のcanRunAds
ような面白い名前に変更するだけです。window.adsAreWithUs
window.moneyAbovePrivacy
発見と回避策アンス・デ・ニイス。 ありがとう!
拡張機能のサポート
ads.js のようなファイルは、少なくとも Chrome 上の次の広告ブロッカーによってブロックされます。
- 広告ブロック
- アドブロックプラス
- アドブロックプロ
- ゴーステリー
以下の場合には動作しません:
プライバシーバジャー