Show Menu
トピック×

Load order for rules

JavaScriptの読み込み順序に応じて、Dynamic Tag Managementの読み込み順序が決まります。
次の図に一般的なページ読み込み順序を示します。
上の図の赤のテキストは、非順次アクティビティを表しています。緑色のテキストは順次アクティビティを示しています。
次の節では、JavaScript およびサードパーティタグの各種スクリプトオプションが、4 段階のページ読み込みフェーズにおいてどのように利用されるかを説明します。
  • ページの先頭
    • 順次HTML: タグを使用して <HEAD/> いる場合 <SCRIPT/> はDTMライブラリインクルードスクリプトに挿入され、それ以外の場合は先頭に挿入されます <BODY/>
    • 順次JavaScriptのグローバル: JavaScriptインクルードスクリプト <HEAD/> の下に、JavaScriptインクルードスクリプトを挿入 <SCRIPT/>
    • ローカルの順次JavaScript: JavaScriptインクルードスクリプト <HEAD/> の下に、JavaScriptインクルードスクリプトを挿入 <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプトの下 <SCRIPT/> <HEAD> 非同期として挿入
    • 非順次 HTML: ​不可視 IFRAME として挿入され、ページの HTML には影響しない
  • ページの下部
    • 順次HTML: 可視ページを破棄することなく、DOMREADYより前の _satellite.pageBottom()``document.write() コールバックスクリプトの後に挿入されます
    • 順次JavaScriptのグローバル: JavaScriptのインクルード _satellite.pageBottom() 後に挿入される <SCRIPT/>
    • ローカルの順次JavaScript: JavaScriptのインクルード _satellite.pageBottom() 後に挿入される <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプトの下 <SCRIPT/> <HEAD> 非同期として挿入
    • 非順次 HTML: ​不可視 IFRAME として挿入され、ページの HTML には影響しない
  • DOM Ready イベント発生時
    • 順次HTML: アクティブ DOMREADY なため、ページが上書きさ document.write() れません
    • 順次JavaScriptのグローバル: JavaScriptインクルードスクリプト <HEAD/> の下に、JavaScriptインクルードスクリプトを挿入 <SCRIPT/>
    • ローカルの順次JavaScript: JavaScriptインクルードスクリプト <HEAD/> の下に、JavaScriptインクルードスクリプトを挿入 <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプトの下 <SCRIPT/> <HEAD> 非同期として挿入
    • 非順次 HTML: ​不可視 IFRAME として挿入され、ページの HTML には影響しない
  • Onload イベント発生時(ウィンドウ読み込み)
    • 順次HTML: アクティブ DOMREADY なため、ページが上書きさ document.write() れません
    • 順次JavaScriptのグローバル: JavaScriptインクルードスクリプト <HEAD/> の下に、JavaScriptインクルードスクリプトを挿入 <SCRIPT/>
    • ローカルの順次JavaScript: JavaScriptインクルードスクリプト <HEAD/> の下に、JavaScriptインクルードスクリプトを挿入 <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプトの下 <SCRIPT/> <HEAD> 非同期として挿入
    • 非順次 HTML: ​不可視 IFRAME として挿入され、ページの HTML には影響しない
非順次 HTML のサードパーティルールは、常に iFrame 内に配置されます。非同期HTMLとしては機能しないので、Dynamic Tag Managementはその名前を持つiFrame機能を参照します。
Even though scripts might be injected into the <HEAD/> later in the page processing like DOMREADY and ONLOAD , scripts will only appear in the proper timing sequence and be either global, local, synchronous, or asynchronous. Also, Dynamic Tag Management checks to make sure that the timing is being handled properly and if DOMREADY has already occurred, it will not attempt a page-destructive document.write() . 可能であれば、Dynamic Tag Managementはビジュアルページを分割しないことに専念しています。したがって、実際の環境が「非同期」向けにインストールされていないと考えられる場合、非同期インストールに関するエラーが発生することがあります。この種のエラーは単なる警告であり、ページ上のタイミングにやや疑わしい部分があること、同期型スクリプトの読み込みがすべて終了する前に DOMREADY が起動したので望ましい動作ではないことに気付かせるためのものです。If that happens, check to make sure that the pageBottom() callback is actually in the correct place immediately prior to the </body> tag. そうでないと、このようなエラーが発生することがあります。
Dynamic Tag Managementキューでは、上記の順序で処理されますが、ページ読み込み段階内のJavaScriptとHTMLスクリプトを区別しません。
すなわち、キュー内のページ型ルールの順序によって、各ルールを処理する順序が決まります。
A simple way to determine the queue order is to look at _satellite.configurationSettings.pageLoadRules in the JavaScript console and examine the sequence.
例えば、ページ型ルールキューの順序を完全に表示するには、JavaScript コンソールに次のコードを入力します。
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='pagetop')?_satellite.notify(i.event+': '+i.name,1):false})
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='pagebottom')?_satellite.notify(i.event+': '+i.name,1):false})
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='domready')?_satellite.notify(i.event+': '+i.name,1):false})
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='windowload')?_satellite.notify(i.event+': '+i.name,1):false})