いつからだったか Google Chrome では Flash バナー広告などの重要ではないプラグインコンテンツは、一度描画領域をクリックしないと実行されなくなった1。
結果として Flash バナー広告はバナー広告市場から消え、HTML5 バナー広告の時代が始まったのだった。
まぁそれはどうでもいいんだけど、プラグインコンテンツで 重要 か そうでないか というのはどうやって判別しているのだろうか?
と疑問に思ったので調べてみた。
調査結果
幅 398px 以上で、かつ高さ 298px 以上のプラグインコンテンツは重要なプラグインコンテンツとして判定される。
そして、重要なプラグインコンテンツかどうかの判定は完全修飾ドメイン名毎に判定される。
どういうことかというと
例えば 100x100 の大きさで埋め込まれたプラグインコンテンツは、1度クリックしないと実行されないが、同一の完全修飾ドメイン名を持つ a と b を同じページに埋め込み、a を 400x300 で埋め込んでおくと、b を 100x100 で埋め込んでも表示される。
ちなみに、一度実行可能な大きさでで表示してから JavaScript でサイズを小さくしても実行される。
上のキャプチャでもわかるように実行される前にサムネイルは表示される。
どうやら1度だけ描画することができるらしい。
例えば1分後に1度だけ描画されるようなつくりであれば、1分後に1度だけ描画され、それがサムネイルになる。
描画される前も描画された後も実はバックグラウンドでずっと実行されているらしい。
ただし制限はある。
タイマーは 500ms に制限されて、Socket などの通信系は実行できない。
ちなみに、1度描画されるまではマウスイベントも送出される2。
結論
バナー広告は動くな
もう Flashバナー広告は見ないけど HTML5 広告は同じ道を進み始めている。
先日若干重いと思ったらバナー広告内で Youtube の動画が再生されていた。
画像でいいよ画像で…。
