Google Analyticsで設定すべきカスタムディメンション(Client ID/Session ID/Timestamp)

スポンサーリンク
Google Analytics
スポンサーリンク

Google Analyticsに設定すべきものとしてカスタムディメンションがあります。クライアント(ユーザー)が取得できる「Client ID」、ユーザー毎のセッション単位で取得できる「Session ID」、正確な時刻が取得できる「Timestamp」です。

これらはGoogle Tag Managerから簡単に設定できるので、まだの人は是非トライしてみてください。

 

Simo Ahavaさんの下記の記事を参考に設定しました。

13 Useful Custom Dimensions For Google Analytics
Implementation guide for useful Google Analytics Custom Dimensions, such as Hit Type, Session ID, Payload Length, and many more. The guide is for Google Tag Man...

 

スポンサーリンク

紹介するカスタムディメンション

紹介するカスタムディメンションは「Client ID」「Session ID」「Timestamp」の4つです。

「User ID」は異なるブラウザを利用しているユーザーを結びつけています。これはサイトにログイン する機能がある場合に利用することができるので、今回は紹介だけで、実装はスキップします。

 

「Client ID」は同じユーザーであってもデバイス/ブラウザによって異なります。「Client ID」は「User ID」で束ねます。

 

「Session ID」はセッションが変わると異なるIDが発行されます。デフォルトのセッション時間は30分なので、変更していない人は30分なにもしないとタイムアウトします。

 

ちなみに確認の方法は下記の通りです。

プロパティ->トラッキング情報->セッション設定で時間の変更ができます。

 

「Timestamp」は時間を「2019-02-05T08:43:58.71+09:00」の形式で発行します。タイムゾーンがあることで、

 

User ID

User IDはユーザーが特定されているIDです。サイト内のログイン機能を利用してUser IDをセットします。Google AnalyticsのUser IDと、自社内のUser ID-名前のデータベースを利用して、特定の個人の動きを追跡することができます。

User IDに、メールアドレス等、それだけで個人が特定されるデータをUser IDにすることは禁止されています。なのでランダムなデータをUser IDにはセットします。

 

今回はスキップします。

 

Client ID

Client IDとはブラウザ毎に異なる個人が特定できないクッキー情報です。Google AnalyticsはClient IDをUser情報として扱っています。これは通常のユーザーは同一ユーザーであっても、ブラウザ/端末が異なると、異なるユーザーとしてジャッジしているということです。

User IDでわからないユーザーの動きを追うにはClient IDの情報が欠かせません。User IDはログインする必要があるので、ログインをあまり促さないサイトだと、かなりの割合のユーザーの動きはClient IDで追う必要がでてくるからです。

 

Google Analyticsへの設定

カスタムディメンションにて、範囲=ユーザーでセット。

 

Google Tag Managerへの設定

カスタム JavaScriptにて、Client IDを取得して、カスタムディメンション1にセットするJavascriptを定義する。

function() {
  var clientIdIndex = 1; 
  return function(model) {
    model.set('dimension' + clientIdIndex, model.get('clientId'));
  };
}

 

変数のGoogleアナリティクス設定の、customTaskで、Javascriptでセットしたカスタムディメンションとセットした値を結びつける。

 

 

 

Session ID

Session IDは、セッションを特定するIDです。同じSession内では同じSession IDを付与します。Google Analyticsのデフォルトでは30分でタイムアウトします。ブラウザを変えても、タブを変えてもSession IDは変わります。

設定することで、同じSessionでどのような動きをしたのかをチェックすることができます。

 

Google Analyticsへの設定

カスタムディメンションにて、範囲=セッションでセット。

 

Google Tag Managerへの設定

カスタム JavaScriptにて、GUIDをセットするJavascriptを定義する。

function () { // Public Domain/MIT
    var d = new Date().getTime();
    if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
        d += performance.now(); //use high-precision timer if available
    }
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
}

 

変数のGoogleアナリティクス設定にて、カスタムディメンションのインデックスと、Javascriptの計算結果を結びつける。

 

Timestamp

Google Analyticのデフォルトでの最小の時間単位は、分単位です。これでは異なるページを1分間のうちに見られた場合は時系列で並べることができません。同じ分で記録されているので、どちらが先か後かはわからないので、新しく秒とミリ秒を加えたTimestampディメンションを用意します。

海外展開している企業では、世界中からアクセスがくるので、タイムゾーンを表記します。「2019-02-05T08:43:58.71+09:00」はスタンダードで用いられている形式なので、データベースに入れたときも解釈してくれるはずです(すみません、検証はしていません)。

 

Google Analyticsへの設定

カスタムディメンションにて、範囲=ヒットでセット。これは最小単位で記録しておきたいため。

 

Google Tag Managerへの設定

変数のカスタム JavaScriptにて、timestampを秒、ミリ秒まで取得し、タイムゾーンをセットするJavascriptを記載する。

function() {
    // Get local time as ISO string with offset at the end
    var now = new Date();
    var tzo = -now.getTimezoneOffset();
    var dif = tzo >= 0 ? '+' : '-';
    var pad = function(num) {
        var norm = Math.abs(Math.floor(num));
        return (norm < 10 ? '0' : '') + norm;
    };
    return now.getFullYear() 
        + '-' + pad(now.getMonth()+1)
        + '-' + pad(now.getDate())
        + 'T' + pad(now.getHours())
        + ':' + pad(now.getMinutes()) 
        + ':' + pad(now.getSeconds())
        + '.' + pad(now.getMilliseconds())
        + dif + pad(tzo / 60) 
        + ':' + pad(tzo % 60);
}

 

変数のGoogleアナリティクス設定で、カスタムディメンションのインデックスと、Javascriptの計算結果を結びつける。

 

コメント

タイトルとURLをコピーしました