【人気サイトは必須】「uBlock Origin」による広告ブロック対策
あれ、広告が表示されていない。
「uBlock Origin」などは個人が設定した広告までブロックします。
アドセンスだけでなく、Amazonや楽天の広告が入った要素まで除外される。
これは熱心な広告ブロッカー(人間)による成果です。
有志によって「除外タグ一覧!」みたいなのも公開されていたり。
「Adblock Plus」もそういう設定ができます。
さすがにやりすぎなので、そんなのを対策する方法を紹介する。
1、Class名をランダムにする
これで一時的には対策可能。
//10文字のランダム文字を作成する
<?php
global $randtext;
$randtext = substr(str_shuffle("abcdefghijkmnpqrstuvwxyz"), 0, 10);
?>
<style type="text/css">
.<?php echo $randtext ?>{
margin-top:0px;
margin-bottom:20px;
padding: 15px;
}
</style>
まずは「<head></head>」内にランダム文字の作成を。
そしてランダム文字に適用されるCSSを記載します。
現在使っている変数名と被る可能性があるので、桁数は多い方が良い。
他のテンプレートに変数を反映するため「global」は指定します。
<?php global $randtext; ?>
<div class="<?php echo $randtext ?>">
<p>広告</p>
</div>
あとは広告となる要素にそのCSSを適用させるだけ。
これで表示されるたびにClass名が変わるので、除外が難しくなる。
2、まとめ
自分のサイトが除外されていないか確認を。
「uBlock Origin」はかなり多くの広告を除外しています。
個人サイトの謙虚な広告も狙い撃ちされているので確認必須。
もしされていなくても、このランダム設定をやっておくのが吉です。
全てのClass名が毎回変わるとスクレイピング対策にもなる。
データベース系サイトはやったほうが良いだろう。
無意味にDIVを増やしたりするのも良い。
毎回ランダム文字列を取得すると少し負荷がかかるので、
キャッシュして1時間に1回の更新とするのもいいと思う。
そのあたりはお好みで。
もちろん、これは「一時的な対策」です。
やる気になれば「AmazonのURLの要素を削除」とかもできるので、
さすがにそれは防ぎようがない。
ここまでやられている被害者は多いので、
Amazonはリダイレクトでの広告貼付を許可してほしいものです。
--
全ての広告を非表示にするユーザーはただの負荷でしかない。
頼む。テキスト広告くらい表示させてほしい・・・