僕のサイトではGoogle AdSenseの自動広告を使用しています。
しかし自動広告と自サイト内のダウンロードリンクの相性がよくないということが最近判明しました。
ダウンロードリンクをクリックすると広告が表示され、それ以降広告が消えてくれません。
致命的な問題なので、暫定的な対処法をお伝えします。
問題の詳細
サーバーに置いてあるファイルをダウンロードさせたい場合、僕は次のように単純にリンクを貼っています。
リンクがクリックされた後は、ブラウザに全部お任せ。
ブラウザの判断で、ファイルを保存してくれます。
一方Google AdSenseの自動広告はサイト内のリンクがクリックされると、次のような自動広告を表示します。

リンク先がWebページだろうが、ファイルだろうが関係ありません。
ダウンロードのときも、表示されます。
ここで「閉じる」を押すとダウンロードが始まるのですが、自動広告はそのまま残るため閲覧中のWebページに戻ることができません。
非常に困ります。
致命的な不具合と呼んでいいかもしれません。
この問題に関して将来的にグーグルが対処するのか不明ですが、とりあえず自分でなんとかする必要があります。
暫定的な対処
今回は次のようなスクリプトを作成しました。
<script>
(()=>{
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);
}
}
});
})();
</script>
これをWebページに貼り付けます。
場所はどこでもいいですが、head内か最終行付近(</body>の前)が望ましいです。
コードの説明は別のサイトでしているので、興味がある方はみてください。
■【JavaScript】 Adsenseの画面遷移時の自動広告を無効にする
注意点
今後のAdSenseのアップデートによっては、上のコードでは対処できなくなる可能性があります。
また、AdSenseのスクリプトを解析したわけではないので、全ての状況に置いて上のコードで対処できるかどうかわかりません。
あくまで、やってみたらうまくいったというレベルのコードです。
この点をご了承ください。
■Googleで他サイト検索
■僕がおススメするアフィリエイト教材
■マーケティング施策ツール





こんにちは。