【JavaScript】 Adsenseの画面遷移時の自動広告を無効にする
更新日:2021/04/15
僕が運営している別のサイトで、ダウンロードリンクをクリックすると自動広告が表示されたままになるという記事を書きました。
この記事内でお伝えしているJavaScriptコードを、こちらの記事で解説します。
リンククリック後のAdsense広告表示の仮説
コードを作成するにあたり、ページ内のリンクがクリックされてからAdsenseの自動広告が表示されるまでの流れを考察してみます。
Adsenseのスクリプトコードを解説している余裕がないので、あくまで、仮説です。
- デベロッパツールでaタグを確認すると、Adsenseはリンククリック時のイベントをセットしていないのがわかった。
- 画面遷移を検知して、遷移前に自動広告を表示していると仮説を立てる。
- だとしたら、通常の動作で遷移させなければ自動広告が表示されないはず。
この仮説から、コードを作成してみました。
スクリプトコード
作成したスクリプトコードがこちら。
ダウンロードリンクの自動広告を無効にするスクリプト
window.addEventListener("DOMContentLoaded", function() {
// [ ]内に、対象となる拡張子を記述 [ "zip" , "jpg" , "png" ]等
const checkExt = [
"zip"
].map( e=>e.toUpperCase() );
const a = document.getElementsByTagName("a");
for( let i = 0;i < a.length ; i ++ ){
const orgHref = a[i].href;
if( orgHref ){
const href = orgHref.toUpperCase();
if( checkExt.some( e => href.endsWith( e ) ) )
a[i].addEventListener( "click" , e=>{
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
location.href = orgHref;
return false;
},true);
}
}
});
})();
aタグを全て抜き出して、遷移先のURLが特定の拡張子を持っているときだけ、デフォルトの遷移動作をおこなわずにlocation.hrefで遷移させています。
上のコードは、一部の拡張子を持つリンクのみ無効にしていますが、拡張子チェックを外せば全てのリンククリックを無効にできます。
まあそんなことをするよりも、Adsenseの設定でモバイル全画面広告を無効にすべきですね。
最後に
特に解説するほどではなかった気がしますね…
更新日:2021/04/15
関連記事
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。