DTMで動的にRSIDを切り替える方法
Post date: Mar 24, 2015 7:34:33 AM
DTMでは、本番とステージング(や開発環境)で、異なるDTM用コードを埋め込むことになっていますが、
この方式は以下の理由でイマイチです。
本番とコードが異なるのはステージングとはいえない(事前テストができない)
ステージング用タグが本番に流れてしまうリスクがある
人的ミスを防ぐためには、CMSなどで切り替えの仕組みを実装する必要がある
そこで、タグは本番用のみにして、DTM内で動的にRSIDを切り替える方法を紹介します。
DTMのTool設定で上書きする
環境を判定してRSIDを切り替えるためのJavaScriptコードを追加します。
方法1. ツール設定のカスタムコードに書く
DTMを途中から導入した場合は、ライブラリ管理を「カスタム」にしてs_code.jsの内容をベタ張りしているケースもあると思いますが、今後は基本ライブラリ部分はなるべく手を入れないようにしたいので、ツール設定の「ページコードをカスタマイズ」にコードを追加しましょう。
例えばこんなコードを書くことで、s.accountの値(つまりRSID)を書き換えます。
if (location.hostname != 's.evar7.org') {
s.account = 'dev-rsid';
}
判定ロジックは環境によって異なります。この例では、ホスト名の一致で判定しています。
複数のホスト名で構成されるサイトの場合は、もう少し複雑な判定になりますね。Cookieの有無で判定することもあります。
方法2. DynamicAccountSelectionを使う
レガシーなライブラリ(s_code.js)に含まれるDynamicAccountSelectionの機能を使うという手もあります。
ただし、新しいライブラリ(AppMeasurement.js)ではこの機能は削除されたので、今後は方法1がオススメです。
参考:Adobe DTM Tips & Tricks: Managing your multi-suite tagging implementation in DTM