皆さま、いかがお過ごしでしょうか。歌乃です。
当サイトはアフィリエイト(広告)として忍者ツールズさんの「忍者AdMax」を利用させていただいてます。
この記事は陳腐化しました( ゚Д゚)
事の顛末はこちらの記事「怪しいスクリプトとか書かなくても忍者Admax公式に解決策が提示されてた」をご覧ください。
いつものごとく内容の八割は「戯言」になってます。
本題である「忍者AdMaxの読み込みが終わらない事への対処」をさっさと話せ、というかたは、こちら。
忍者AdMax で検索をかけると「稼げない」とか「広告が表示されない」とか「サイトが重くなる」とか、ネガティブなコンテンツが散見されますが、はっきり言って
です (´・ω・`) (否定するんじゃないんカーイ
まあ、実際に利用している立場として補足させていただくと
反論は認めます。当然あると思います。しかしデメリットが上回ると思っているなら使用しなければいいだけです。
使いにくい(と感じる)ものにこだわってる時間がもったいないし、ストレスになりますしね。
それは当然、デメリットよりもメリットが上回っていると考えているからです。
私が考えるメリットは
当サイトのような不定期更新の木っ端サイトは継続性が高く少ない発生報酬でもしっかり換金できる、というメリットがかなり大きいと考えてます。
例え一日10円とかだったとしても、それがサイト更新のモチベーションになるからです。
他のサービスでも報酬は発生しますが、換金に最低5000円からとか10000円からとかだと、初心者や木っ端サイトの管理者ではそこにたどり着くまでにフェードアウトしてしまうんですよ。
心当たりのある人多いんじゃないでしょうか。
アフィリエイトでガツガツ稼ぐぞ、とか、WEBビジネスを本業にしよう、とか考えている諸兄にはお薦めできませんが、細く長く続けているブログでお小遣い程度でも収入が上がったらうれしいな、といったユーザーには使って損はないサービスだと言えるでしょう。
08/04 追記
忍者ツールズでよくよく確認してみたら紹介者報酬のサービス(このリンクから新規登録すると管理者に報酬が出ます)がありました。そりゃアフィリエイトの会社だし、あってもおかしくないよなぁ。
まあこの記事を見に来る人はすでに忍者ツール使ってるとは思うけど(´・ω・`)
せっかくなのでバナー貼っておきますねー。
閑話休題(`・ω・´)
本題です。
これたぶん使ってる人は結構な頻度で体験してると思うんですが、AdMaxの広告は表示されても読み込みが終わらず「ブラウザのローディング状態(ぐるぐる状態)が止まらない」という現象が高頻度で起こります。
これの原因ですが「広告に使用されているiframeが入れ子になっていて何らかの理由で孫やひ孫iframeの読み込みが正常に終わらないためにページの読み込みが続いている状態が維持されている」という事のようです。
読み込みエラーの原因は、コンテンツが見つからないとか読み込み先のサーバーが応答しないとかコンテンツが重すぎてタイムアウトしてるとか、パターンはいろいろです。
iframeの内容が表示されようが表示されなかろう(実際にはなんらかのエラー表示が出るので表示されないことはまずない)がDOMContentの読み込みは完了しているので、広告を載せたページ自体は最後まで表示されます。
ページ自体が表示されない場合はAdMaxの広告よりもコンテンツ内の画像やメディアファイル(動画とか)を疑ったほうがいいでしょう。
ちなみにiframe内のコンテンツのエラーによって広告は表示されなくなるので「広告が表示されない」の原因もこれでしょう。
さて、ページの表示はされているけど読み込みが終わらないのは問題です。
「広告が見えない時はあるかもしれないけど、サイトのコンテンツは正常に見えるならいいのでは?」
たしかにコンテンツを閲覧するのには問題ありません。広告が表示されなくて逆に見やすいまであります。
グーグルの検索結果には「サイトの表示速度(page speed)」が影響します。これはgoogleが公式に提示している情報で、実際にページの読み込み速度を計測するためのサービスも提供されています。
ただ、前述したようにiframeの読み込みが終わっていなくてもページコンテンツ自体の表示は終わっているので、サイトの表示速度には影響はありません。実際に当サイトの計測をおこなってもPC版では問題なし(1~2秒で表示完了)となります。
mobile版ではスコアがかなり落ちますが、これは当サイト側で用意した jquery などのスクリプト読み込みやそれによるコンテンツ描画の遅延によるもので、広告が原因ではありません。
しかし、ページの読み込みが終わっていない「loading」状態のままというのは問題です。
何が問題かと言うと「見ている人が不安になる」からです。
むしろ管理人である私の方が不安になります。なにか怪しいところにアクセスしてるんじゃなかろうか、とか、裏で変なスクリプトが動いてるんじゃなかろうかとか。
ということで、この無限読み込み状態を強制的に終わらせるスクリプトをサイトに追加しました。
// admax loading issue stopgap
window.addEventListener('DOMContentLoaded', function() {
console.log("DOMContents loaded:")
setTimeout(function(){
window.stop();
console.log('...load timeout!');
}, 3000);
});
仕組みは単純で、DOM(メインページのHTML)の読み込みが終わったらタイマーを使って3秒後に読み込みを強制停止する、だけです。
当然メインコンテンツの読み込みも停止するので3秒以上かかるような大きな画像などを置いている場合は画像の読み込みが止まります(表示されません)。
3000の部分が秒数(ミリ秒)なのでサイトのコンテンツに合わせて変更してください。
console.logの部分は動作確認用なので、コンソールへの出力が必要ない場合はコメントアウトしてください。
単体で動作するはずなので、設置の仕方はお好きに。
私はこれで問題なく運用できてますが、ご利用は自己責任でお願いします。Please use at your own RISK.
これでブラウザのぐるぐるが止まらないというもやもやから(3秒は耐えなければいけませんが)解放されました。
一応 3秒に設定した理由的なものをリンクしておきます。2017年と古いですが、googleの調査ではページの表示が1秒以上~3秒程度の場合32%のユーザーがページから離脱(直帰)したそうです 。3秒以上かかった場合はお察しですね (`・ω・´)。