GTM (Google Tag Manager) でGAのClient IDを取得する最新で確実な方法について。
今までの問題点
Cookieから取得する、Callbackで取得するなど、いろいろな方法がありましたが、新規訪問の最初の1ページ目で取得できない、無駄なイベントトラッキングが増える、GAのタグをそのままカスタムJavaScriptタグとして貼り付けるので タグマネUIの便利機能を使えない、などの 不便な点があり、イマイチな状況が続いていました。
1. GA管理画面でカスタムディメンションを作る
Client IDを格納するカスタムディメンションをGAの管理画面で作成しておきます。範囲はユーザーで。
2. GTMのカスタムJavaScript変数を作る
カスタムJavaScript変数を作って以下のコードを入力します。
function() {
return function(model) {
model.set('dimension1', model.get('clientId'));
}
}
* カスタムディメンションの番号は適宜変更してください3. customTaskを追加する
GAのタグ(または使っている場合はGA設定の変数)で、「customTask」という名前のフィールドを作成し、値で前述の変数を指定します。
* フィールド名の名前は変更しないでください(頭のcは小文字、スペース無し)はい、これだけ。簡単ですねー。
とはいえ、公開前のテストをお忘れなく。
元ネタ:#GTMTips: Use customTask To Access Tracker Values In Google Tag Manager - Simo Ahava's blog
2018年7月追記:GTMを使わない場合はGAタグのsend previewよりも上に以下のコードを追加します。
ga('set', 'customTask', function(model) {
model.set('dimension9', model.get('clientId'));
};