私はGoogle Chromeブラウザを使っていて、WordPressに機能を追加して管理者権限のユーザー(つまり私)にはGoogle Adsense広告を出力しないようにしているので、普段私が自身のサイトを運営する中でアドセンス広告を見ることはありません(これはプレビューなどを頻繁に行ったことでGoogle側から嫌疑をかけられることを避けるためでもあります)。
ただ、たまに「どんな風になってるんだろう?」とわざとログアウトした状態で見たりすることはあります。そんな中でたまたまMicrosoft EDGEで確認してみると、標準で備わっている広告ブロック機能によってちょっと不味い状況になっていることに気づきました。
Microsoft EDGEの広告ブロック機能については多分詳しい技術情報は決して公開されないと思うので、あくまでも私のパソコンでのGoogle Adsense広告に対する処理はこんな感じでした。
- 固定広告(ディスプレイ広告など)は表示されず空白になる
- 自動広告は1か所のみ許可されている
まあ、これも想像の域を超えないものの、広告ブロック機能については、Google Adsense側でも「広告をブロックするならページは見せないよ!」というようなオーバーレイを表示する、これに対してMicrosoft Edge側ではそれを表示させるポップアップすら無効にする..などといったいたちごっこがずっと続いていくのだろうと思われるし、何より不安定なのが個人的にどうなの?という感じがするので、思い切って、EDGEでは固定広告を挿入した部分へ別のプラットフォームの広告を表示させるか、非表示にするかといった対処をした方が、実際に訪問する人が「何この不自然な空白..」とならずに済むのではないか?ということで、ショートコードを使ってこの機構を実装してみることにしました。
WordPressでサイト運営をしていて、Google Adsenseの広告を挿入している方は、一度ご自身のサイトをMicrosoft EDGEで表示させて確認してみてください。もしも私と同じ状況であれば、本ページの対処が役に立つかも知れません。
現在、このサイトでもアイキャッチ画像下、本文下、サイドバーに挿入しているGoogle Adsenseのディスプレイ広告は別のもの、もしくは表示させないようにしていますので、EDGEブラウザと他のブラウザで表示させて比較いただければと思います(すべての環境でうまくいく保証はありません..)。
EDGEだけ別の広告を表示させるショートコードの作り方
何かを任意の場所に表示するショートコードの基本的な作り方は以下をご覧ください。
今回はこれを応用して、「Microsoft EDGEだったら..」というのを追加します。
WordPressにはこの「Microsoft EDGEだったら..」というのを判別してくれるグローバル変数というのが用意されているので実装は案外簡単です。
以下が具体的なコードです。
function pwcn_adsense_shortcode_init(){
global $is_edge;//EDGEで閲覧しているかどうかを判断するグローバル関数の呼び出し
$ad_code = 'ここにアドセンスの広告コード';
$edge_ad_code = 'ここにEDGE用のコード';
if($is_edge){//EDGEかどうかで出力するものを分岐
$content = $edge_ad_code;
}else{
$content = $ad_code;
}
return $content;
}
add_shortcode('pwcn-adsense-ad','pwcn_adsense_shortcode_init');
そしてこれを現在カスタムHTMLブロックを使ったりして挿入している場所へ変わりに挿入すれば、Microsoft EDGEからのアクセス時には上記コードの「ここにEDGE用のコード」の内容が出力され、それ以外のブラウザでは「ここにアドセンスの広告コード」の内容が出力されます。
「ここにEDGE用のコード」の部分を空白にすれば何も出力されなくなります
コメントを残す