ログインや会員という概念をもつWEBサービスなら絶対に導入したい、GoogleアナリティクスのユーザID機能。WEBサービス側で持っている会員IDをGoogleアナリティクスに送信することで、会員の動向が見れるようになります。
当記事では設定方法と活用方法についてまとめます。タグマネージャを利用していることが前提の記事になっています。
ユーザID機能のメリット
Googleアナリティクスではユーザを識別するためにクライアントIDを使用していますが、クライアントIDはブラウザのCookieに保存する情報のため、以下のようなデメリットがあります。
- ブラウザやデバイスが変わると異なるクライアントIDとなる。
- 永続化できる期間はCookieの有効期限まで。
- iphoneの場合、GoogleアナリティクスのCookieの有効期限は、ITP関連の仕様により7日間に限られてしまう。(2020年8月現在)
詳細:AppleがITP 2.1導入決定。JavaScript生成cookieの保存期間が7日間へ。どう対処するかまとめた
特に1つ目の問題について、ユーザID機能を使えば、会員IDを持っているユーザについてはブラウザやデバイスをまたいでも同一ユーザと特定することができます。2つ目、3つ目の問題についても、会員の場合には解決できます。
また、Googleアナリティクスで会員IDが見れるようになることから、会員と非会員の動向の違いを分析することもできます。
Googleアナリティクスヘルプ > Cookie とユーザーの識別
Googleアナリティクスヘルプ > User-ID 機能について
以下からは、ユーザID機能の設定方法を解説します。
ソースコードの修正
対象となる全ページのheadタグの中に、データレイヤ変数を埋め込みます。データレイヤ変数とは、タグマネージャに渡すことができるjavaScriptのオブジェクトです。データレイヤ変数に会員IDを入れておくと、自動的にタグマネージャに送信されます。
データレイヤ変数は以下の書式で記述します。
<script>
dataLayer = [];
dataLayer.push({
'データレイヤ変数名': 渡したい値
});
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
データレイヤ変数はGTMタグよりも前に記述する必要があります。GTMタグより後に書くとdataLayer変数が読み取れず、正しく動作しない可能性があります。
また、非会員や、会員でもログインしていない場合はnullやundefinedを送ってしまう可能性があります。それは避けたいため、今回は以下のように実装しました。(Ruby on Railsのerbで実装しています)
<script>
dataLayer = [];
<%- if mypage_signed_in? %>
dataLayer.push({
'member_id': <%= current_mypage.id %>
});
<%- end %>
</script>
データレイヤ変数について詳細はこちら
Googleタグマネージャ > デベロッパーガイド > データレイヤーを使用する
Googleアナリティクスの設定
次の手順で行います。
- ユーザIDの有効化を設定
- ユーザIDレポートビューを作成する
- カスタムディメンションの作成
ユーザIDの有効化を設定
デフォルトではユーザID機能はオフになっていますので、有効化します。
管理から、プロパティのトラッキング情報 > User-ID へ遷移します。

User-IDの機能の有効化
文章を読み、同意できる場合は「User-ID に関するポリシーに同意します」のトグルをオンにします。個人を特定できるデータは送ってはいけない、と記載がありますが、一般的には会員IDのみでは個人情報にはあたりません。

User-ID の設定
トラッキングコードの変更方法が書かれていますが、今回はタグマネージャを利用するため、この指示通りの変更は行いません。前述の「ソースコードの修正」の手順を行っておけばOKです。
「セッションの統合」のトグルはオンにします。会員IDはログイン中しかタグマネージャに送信されませんが、ここをオンにしておくと、ログイン前のセッションの情報も会員IDに関連付けられる便利機能です。ただし、ログイン→ログアウト→ログインという操作を行うと、ログアウト中の情報は関連付けられない…というものだそうです。最初のログインより前のセッションのみ統合されます。

User-ID ビューの作成
作成ボタンをクリックします。

ユーザIDレポートビュー
ユーザIDレポートビューの情報を入力します。
レポートビューの名前:
User-ID機能が有効化されているビューだとわかるように命名すると良いです。
レポートのタイムゾーン:
日本だったら、日本を選択
User-IDレポート:
必ずトグルをオンにしてください。

「ビューを作成」クリックで新しいビューができます。
ここまでの手順を図解すると以下となります。

いつも使っているメインのビューとは別に、新しく会員ビューを作成しました。会員ビューはUser-ID機能がオンになっています。
会員ビューは基本的には会員IDを持っているユーザしか表示されません。以下、Googleアナリティクスヘルプからの引用です。
User-ID ビューはフィルタリングされています。このビューのレポートには、User-ID で検出されたセッションからのデータが表示されます。User-ID が検出されていないセッションからのデータを見るには別のビューを使用します。
会員ビューを作成したことで、メインのビュー、会員ビューの双方に専用の機能が追加されています。詳しくはできるようになることセクションで後述します。
カスタムディメンションの作成
カスタムディメンションとは、Googleアナリティクスにオリジナルの分析軸を追加できる機能です。カスタムディメンションにも会員IDを設定することで、会員IDでスライスができるようになります。こちらはユーザID機能とは別物で、設定は任意です。
プロパティの カスタム定義 > カスタムディメンション へ遷移します。

以下の通りに新しいカスタムディメンションを作成します。作成時にトラッキングのサンプルコードが表示されますが、こちらも収集はタグマネージャのデータレイヤ変数を利用しますので、サンプルコードのような修正は不要です。

Googleアナリティクスでの設定は以上です。ビューが新しくなったので、目標やフィルタの設定等を忘れずに行いましょう。
Googleタグマネージャの設定
次の手順で行います。
- 変数の作成
- タグの作成
- プレビュー、公開
変数の作成
以下の通りデータレイヤー変数を作成します。データレイヤの変数名は、ソースコードの修正で定義した名前と合わせる必要があります。

タグの作成
以下の通りタグを作成します。

設定フィールド
ユーザIDビューに渡す会員IDを設定します。フィールド名は「userId」とし、値はさきほど作成した変数の保存名とします。
カスタムディメンション
こちらの設定は任意です。Googleアナリティクスでカスタムディメンションを作成したときのインデックスを設定します。この例ではカスタムディメンションを初めて作成したため、インデックスが1になっていますが、それぞれの環境で異なりますのでご確認ください。
注意点
この例ではタグを新規作成しましたが、タグの種類が「ユニバーサルアナリティクス」で、トリガーが「ページビュー」になっているタグがすでにある場合は、タグを新規作成せずに、既存のタグに設定を追加してください。
そうしないと、GAに2重に送信されてPVが2倍になる不具合が発生します。(恐怖の体験談…。)
プレビュー、公開
プレビューモードに変更し、公開画面にアクセスします。会員ログインすると、会員IDが送信されることが確認できました。
プレビュー画面のTags
設定フィールドとカスタムディメンションが設定されている状態です。

プレビュー画面のVariables
実際に送信している会員IDが確認できました。

うまくいったら、プレビューモードを終了して変更箇所の公開をします。Googleアナリティクスでも動作確認をしましょう。公開後に半日ほど経過すると、ユーザエクスプローラなどで会員IDの確認ができるはずです。
できるようになること
ユーザID機能をONにしたことで、会員IDビューとメインのビューのそれぞれに新しい機能が追加されています。
ユーザエクスプローラ
会員IDビューのユーザエクスプローラは、会員IDごとに表示されるようになります。前述の通り、永続化できる時間は長くなっており、ブラウザ、デバイスをまたいでも、同一ユーザとして表示されます。

会員IDによるスライス
イベントトラッキングのレポートなどで、セカンダリディメンションに「会員ID」を設定できます。これはカスタムディメンションを設定したことでできるようになっています。
クロスデバイスレポート
クロスデバイスレポートはメインビューにもともとありますが、ユーザID機能を利用することでより正確な情報を得ることができます。
会員IDビューを開き、ユーザ > クロスデバイス に専用のレポートがいくつかあります。以下はデバイス経路です。こちらはあまりデバイスの使い分けが発生しないサービスなので良い例ではないですね…ECサイトだともっと分析に使えそうです。

User-ID カバレッジレポート
ログイン中と非ログイン(または非会員)の比率をみることができる画面です。比率が見れる、というだけで、各ユーザやセッションの詳細は別のビューと組み合わせて検証する必要があります。
メインビューを開き、ユーザ > 行動 > User-IDカバレッジ に遷移すると以下のような画面が確認できます。

これはユーザID機能をONにすると、メインのビューに追加される機能です。会員IDビュー側に追加されるものではないのでご注意ください。
コメント
以下の通りに新しいカスタムディメンションを作成します。作成時にトラッキングのサンプルコードが表示されますが、こちらも収集はタグマネージャのデータレイヤ変数を利用しますので、サンプルコードのような修正は不要です。
の部分の画像がリンク切れを起こしているようですので、もし可能であれば再アップをお願いできますでしょうか。
反応が遅れて申し訳ありません。修正しました。教えていただき、ありがとうございます!