camouflage

音楽は素晴らしい。管理職(という仕事)は素晴らしくない。

全体表示

[ リスト ]

show_ads.js

決意 から約一ヶ月、ようやく序章がまとまったのでレポートします。
AdSense は google_enable_async 変数で同期/非同期モードを選択できます。
同期モードでは、アドタグ直下に show_ads_impl.js を src とした SCRIPT 要素を document.write() します。
以降、広告の取得や枠装飾などの処理を実行します。

同期モードコンテンツ構成 :
[SCRIPT] show_ads.js
    │
    └→ [SCRIPT] show_ads_impl.js
            │
            ├→ [SCRIPT] etc ...
            │
            └→ [IFRAME]
                    │
                    └→ [HTML] ※ 掲載面ではなく google ドメインの広告コンテンツ
                            │
                            └→ [SCRIPT] graphics.js

同期モードの処理はシンプルですが UX 上の問題があります。
show_ads_impl.js の取得と実行がアドタグ以降の掲載面のレンダリングをブロックしてしまうことです。
他方、非同期モードでは IFRAME とタイマーを用いてこの問題を軽減しています。
以下、非同期モードの処理概要です。

非同期モードコンテンツ構成 :
[SCRIPT] show_ads.js
    │
    └→ [IFRAME] ※ 3. 参照
            │
            └→ [HTML] ※ 4. 参照
                    │
                    └→ [SCRIPT] show_ads_impl.js
                            │
                            ├→ [SCRIPT] etc ...
                            │
                            └→ [IFRAME]
                                    │
                                    └→ [HTML] ※ 掲載面ではなく google ドメインの広告コンテンツ
                                            │
                                            └→ [SCRIPT] graphics.js

タイマーを用いていることで IFRAME 内の HTML のレンダリングは遅延されます(解説はこちら)。
また show_ads_impl.js の取得と実行も待つ必要がなくなります。
結果、掲載面のレンダリングを優先的に進めることが出来ます。

とことで、条件文からはどうすれば javascript スキームを利用する状態が発生するのか分かりませんでしたが、以下のような javascript スキームで HTML コンテンツがレンダリングされることを初めて知りました。

javascript:"<a href='http://www.google.co.jp'>google</a>"

また 5, 6 より AdSense の処理はリスクに対する備えも重厚であることが伺えます。
さらに AdSense では乱数を用い 低い割合 で詳細なログやページの情報をサーバに送信(= beacon の取得)したり experiment(実験?)パラメータを付与しています。

次回は巨大な show_ads_impl.js についてレポートします。期待せずにお待ちください。

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

開く トラックバック(0)


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事