ルールの読み込み順序

JavaScriptの読み込み順序に関連したDynamic Tag Managementの読み込み順序。

次の図に、一般的なページ読み込み順序を示します。

メモ

上の図の赤いテキストは、非順次アクティビティを表しています。 緑のテキストは順次アクティビティを表します。

次の節では、JavaScriptとサードパーティタグの各スクリプトオプションが、4段階のページ読み込みフェーズでどのように利用されるかについて説明します。

  • ページの先頭

    • 順次HTML: タグを使用している場合はDTMライブラリインクルードスクリプトの <HEAD/> 下に挿入され、 <SCRIPT/> それ以外の場合は <BODY/>
    • グローバルな順次JavaScript: JavaScriptインクルードのと <HEAD/> してDTMインクルードスクリプトの後に挿入される <SCRIPT/>
    • ローカルな順次JavaScript: JavaScriptインクルードのと <HEAD/> してDTMインクルードスクリプトの後に挿入される <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプト <SCRIPT/><HEAD> 下に非同期として挿入される
    • 非順次HTML: 非表示として挿入され、ページHTML IFRAME に影響を与えません。
  • ページの下部

    • 順次HTML: 表示されているページを破壊しないように、DOMREADY _satellite.pageBottom() document.write() の前にコールバックスクリプトの後に挿入される

    • グローバルな順次JavaScript: JavaScriptインクルードの後 _satellite.pageBottom() に挿入される <SCRIPT/>

    • ローカルな順次JavaScript: JavaScriptインクルードの後 _satellite.pageBottom() に挿入される <SCRIPT/>

    • 非順次JavaScript: DTMライブラリインクルードスクリプト <SCRIPT/><HEAD> 下に非同期として挿入される

    • 非順次HTML: 非表示として挿入され、ページHTML IFRAME に影響を与えません。

  • DOM Ready

    • 順次HTML: がアクティブなため、 DOMREADY は動作しません。ページ document.write() は上書きされます。
    • グローバルな順次JavaScript: JavaScriptインクルードのと <HEAD/> してDTMインクルードスクリプトの後に挿入される <SCRIPT/>
    • ローカルな順次JavaScript: JavaScriptインクルードのと <HEAD/> してDTMインクルードスクリプトの後に挿入される <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプト <SCRIPT/><HEAD> 下に非同期として挿入される
    • 非順次HTML: 非表示として挿入され、ページHTML IFRAME に影響を与えません。
  • Onload(ウィンドウ読み込み)

    • 順次HTML: がアクティブなため、 DOMREADY は動作しません。ページ document.write() は上書きされます。
    • グローバルな順次JavaScript: JavaScriptインクルードのと <HEAD/> してDTMインクルードスクリプトの後に挿入される <SCRIPT/>
    • ローカルな順次JavaScript: JavaScriptインクルードのと <HEAD/> してDTMインクルードスクリプトの後に挿入される <SCRIPT/>
    • 非順次JavaScript: DTMライブラリインクルードスクリプト <SCRIPT/><HEAD> 下に非同期として挿入される
    • 非順次HTML: 非表示として挿入され、ページHTML IFRAME に影響を与えません。

非順次HTMLのサードパーティルールは、常にiFrameに配置されます。 非同期HTMLは存在しないので、Dynamic Tag ManagementはiFrame機能をその名前で参照します。

メモ

ページ処理の <HEAD/> DOMREADY ONLOAD後半に、やのようにスクリプトが挿入される場合もありますが、スクリプトは適切なタイミングシーケンスにのみ出現し、グローバル、ローカル、同期、または非同期のいずれかになります。 また、Dynamic Tag Managementは、タイミングが正しく処理されているかどうかをチェックします。既に発生している場合 DOMREADY は、ページを乱す処理は行われません document.write()。 Dynamic Tag Managementは、可能な限り視覚的なページを乱さないことに注意しています。 このため、実際には「非同期」でない場合は、非同期インストールのエラーが発生する可能性があります。 これは単なる警告で、ページのタイミングにやや疑わしい点があり、同期スクリプトの読み込みがすべて完了する前 DOMREADY に実行されたので、適切なタイミングであることを認識するのに役立ちます。 この場合は、 pageBottom() コールバックが実際にはタグの直前にある正しい場所にあることを確認してく </body> ださい。 そうしないと、この種のエラーが発生する可能性があります。

Dynamic Tag Managementキューでは、上記の順に処理されますが、ページ読み込みの段階ではJavaScriptとHTMLスクリプトを区別しません。

つまり、キュー内のページ型ルールの順序によって、ルールがデキューされる順序が決まります。

キューの順序を簡単に判断するには、JavaScriptコンソールで順序 _satellite.configurationSettings.pageLoadRules を調べ、調べます。

例えば、ページ型ルールキューの順序の完全な表示は、次のコードを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})

このページ