当日のセミナー動画
※開始後、約2分のところから開始いたしますのでご了承ください。(一部でモザイクを掛けるとカット編集ができないというYouTube Studioの仕様により、カット編集ができておりません。)
今回のセミナーでは、 GA4 の ユーザー プロパティ設定 について解説しています。
このセミナーのテキストのダウンロードはこちらから

ユーザー プロパティとは?
ユーザー ディメンション | アプリ | ウェブ | タイプ | 説明 |
年齢 | 〇 | 〇 | テキスト | ユーザーの年齢層: 18~24 歳、25~34 歳、35~44 歳、45~54 歳、55~64 歳、65 歳以上。 |
アプリストア | 〇 | × | テキスト | インストールしたアプリのダウンロード元のストア。 |
アプリのバージョン | 〇 | × | テキスト | versionName(Android)またはバンドルのバージョン(iOS)。 |
ブラウザ | × | 〇 | テキスト | ユーザー アクションが発生したブラウザ。 |
市区町村 | 〇 | 〇 | テキスト | ユーザー アクションが発生した都市。 |
大陸 | 〇 | 〇 | テキスト | ユーザー アクションが発生した大陸。 |
国 | 〇 | 〇 | テキスト | ユーザー アクションが発生した国。 |
デバイスのブランド | 〇 | 〇 | テキスト | モバイル デバイスのブランドの名前(Motorola、LG、Samsung など)。 |
デバイス カテゴリ | 〇 | 〇 | テキスト | モバイル デバイスのカテゴリ(モバイル、タブレットなど)。 |
デバイスの機種 | 〇 | × | テキスト | モバイル デバイスの機種名(iPhone 5s、SM-J500M など)。 |
性別 | 〇 | 〇 | テキスト | ユーザーの性別(男性または女性)。 |
インタレスト カテゴリ | 〇 | 〇 | テキスト | ユーザーの興味や関心(アート、エンターテイメント、ゲーム、スポーツなど)。 |
言語 | 〇 | 〇 | テキスト | デバイスの OS の言語設定(en-us、pt-br など)。 |
新規 / 既存 | 〇 | × | 対象外 | 新規: 最初にアプリを起動したのが過去 7 日以内。 既存: 最初にアプリを起動したのが 7 日以上前。 |
OS | 〇 | 〇 | テキスト | ウェブサイトまたはモバイルアプリのユーザーが使用したオペレーティング システム。 |
OS バージョン | 〇 | 〇 | テキスト | ウェブサイトまたはモバイルアプリのユーザーが使用したオペレーティング システムのバージョン(9.3.2、5.1.1 など)。 |
プラットフォーム | 〇 | 〇 | テキスト | ウェブサイトまたはモバイルアプリが実行されたプラットフォーム(ウェブ、iOS、Android など)。 |
地域 | 〇 | 〇 | テキスト | ユーザー アクションが発生した地域。 |
亜大陸 | 〇 | 〇 | テキスト | ユーザー アクションが発生した亜大陸。 |
ユーザー プロパティとは、地域やメディアの会員情報など、ユーザーを表す属性を意味します。GA4では一部の情報が自動で保存されています(上記の表の通り)。
自動保存情報(上記の表で見た情報)以外で、個別に情報を付与したいケースがあります。例えば、有料会員 or 無料会員別にサイト内の行動にどういう違いがあるか、などの分析をしたい場合です。
その場合は、自分で「ユーザー プロパティ」を設定し、GA4画面上で「ユーザー プロパティ」を「カスタム ディメンション」に設定することで、比較することが可能です。
GTM、GA4を使用することで「ユーザー プロパティ」を設定して、GA4上でユーザー別にレポートを確認することが可能です。
最大25個(有料版なら100個)の「ユーザー プロパティ」を追加設定することができます。
ユーザー プロパティの設定例

「ユーザー プロパティ」とは、ユーザーを表す属性を意味します。
ここでは、本セミナーに申し込んで頂いたユーザーに
‘seminar_participants’: ‘true’
という値を付与するという例を考えます。
セミナー申込完了ページに到達したら、
‘seminar_participants’: ‘true’
というユーザー プロパティが与えらえられるようにします。

「セミナー申込完了ページ」に、上記のようなデータレイヤーを記述します。
(参考) データレイヤーの記述方法
データレイヤーの値の渡し方は「=」と「.push」の2種類
具体的にデータレイヤー変数へデータを渡す手段としては、JavaScriptで以下どちらかの処理を行います。下記を()内の例で処理した場合、「seminar_participants」というデータレイヤーの変数へ対して「true」という値が渡されることになります。
<script>
dataLayer = [{'データレイヤー変数名(例:seminar_participants)': '渡したい値(例:true)'}];
</script>
<script>
dataLayer.push({'データレイヤー変数名(例:seminar_participants)': '渡したい値(例:true)'});
</script>
上記の通り、値を渡すための書式は2種類あります。動作可能なタイミングが異なっています。
書式 | ページ内で一番最初に 記述された場合 | ページ内で二番目以降に 記述された場合 |
dataLayer = [{~~}]; | 動作する | エラーになる |
dataLayer.push({~~}); | エラーになる | 動作する |
ページ内で一番最初にdataLayerを記述する場合は「=」で、二番目以降に記述する場合が「.push」となります。
JavaScriptのルールとして「『=』は値を『代入』」する、「『.push』は値を『追加』」する、という違いがあります。
GTMの画面

まず、ユーザー ID 向けにデータレイヤー変数を作成します。
Google タグ マネージャーで、「変数」をクリックします。
「ユーザー定義変数」の「新規」をクリックします。

「データレイヤーの変数」を選択します。

上部に変数の名前を入力します。
「データレイヤーの変数名」フィールドに、ユーザー ID 変数の名前(「seminar_participants」)を入力します。
「デフォルト値」は「false」(フォールス)に設定しておきます。
「保存」をクリックします。

Google タグ マネージャーで、「タグ」をクリックします。
「Google アナリティクス 4 設定タグ」を選択します。

「タグの設定」で「ユーザー プロパティ」をクリックします。
「行を追加]」をクリックします。

「ユーザー プロパティ」の「フィールド名」に「seminar_participants」と入力します。
「値」フィールドで、作成したデータレイヤー変数を選択します。
「保存」をクリックします。

「ユーザー プロパティ」とは、ユーザーを表す属性を意味します。
ここでは、本セミナーに申し込んで頂いたユーザーに
‘seminar_participants’: ‘true’
という値を付与するという例を考えます。
セミナー申込完了ページに到達したら、
‘seminar_participants’: ‘true’
というユーザー プロパティが与えらえられるようにします。
カスタム ディメンション の設定

設定 > カスタム定義 > カスタム ディメンションを作成をクリックします。

「ユーザー プロパティ」に「 seminar_participants 」指定して、「ディメンション名」を「 seminar_participants 」設定。

(1)プルダウン メニューから 「ユーザー」を選択します。
(2)カスタム ディメンションの 「説明」 を入力します。
(3)リストから 「ユーザー プロパティ」を選択するか、今後収集する「プロパティ」の名前を入力します。
(4)「保存」をクリックします。

作成した「カスタム ディメンション」は、「比較を追加+」をクリックして、右サイドで検索して呼び出すことができます。反映されるまで、しばらく時間が掛かります。

作成した「カスタム ディメンション」は、「比較を追加+」をクリックして、右サイドで「←比較の作成」を呼び出します。

カスタムディメンション「seminar_participants :true」が掛かった状態でグラフを見ています。
「ユーザー ID」と「ユーザー プロパティ」(1)
「ユーザー ID」の設定
ユーザー ID(User-ID)は、もともとGA側が用意したユーザーに紐づく機能ですが、ユーザープロパティと似ている部分もあります。
今回は、ユーザープロパティの説明する回ですが、ユーザー IDについてもご説明します。
ユーザー ID(User-ID) 機能を使用すると、自社で生成したユーザー ID を個々のユーザーに関連付け、さまざまな •セッション
•デバイス
•プラットフォーム
をまたいで各ユーザーの行動を把握できます。
アナリティクスでは、ユーザー ID(User-ID)によって個々のユーザーを判別するため、ユーザーの数をより正確にカウントすることができます。
公式ヘルプ https://developers.google.com/analytics/devguides/collection/ga4/user-id?technology=tagmanager
ユーザー ID(補足資料)
ユーザーが、ユーザー ID との関連付けがない状態でセッションを開始し、イベント 1 とイベント 2 を発生させたとします。
この時点では、これらのイベントにユーザー ID は関連付けられていません。
次に、ユーザーがログインしたうえで、イベント 3 を発生させたとします。この時点で、イベント 1~3 がすべてそのユーザーの ID と関連付けられます。

最後に、ユーザーがログアウトした上でイベント 4 を発生させたとします。イベント 4 にはユーザー ID が関連付けられません。イベント 1~3 はそのユーザーに関連付けられたままとなります。
公式ヘルプ https://support.google.com/analytics/answer/9213390?hl=ja

ログインしているユーザーとログインしていないユーザーを比較する
ログインしているユーザーとログインしていないユーザーの行動を比較するには、「ユーザー ID でログイン済」ディメンションを使用して比較を作成し、「ディメンションの値」を「yes」に設定します。
公式ヘルプ:https://support.google.com/analytics/answer/9213390#what-you-can-do-with-user-id

上記のように「『ユーザー IDでログイン済み』に含まれる要素 yes」のセグメントを取り出して見ることができるようになります。
ステップ 1: ユーザー ID を生成する
各ユーザーに自身で一意の ID を作成するほか、新しいユーザーに ID を割り当て、リピーターには同じ ID を継続的に再割り当てする必要があります。
データレイヤーにユーザー IDが出力されるようにするには、システム開発が必要です。
これは通常、ログイン中に行われます。
たとえば、ユーザーがログインした時に、そのユーザーのメールアドレスを使って、サイト全体で参照することができる一意の ID を生成できます。
各ユーザー ID は 256 文字未満で指定する必要があります。
公式ヘルプ https://developers.google.com/analytics/devguides/collection/ga4/user-id?technology=tagmanager

ステップ 2: ユーザー ID を Google アナリティクスに送信する
ユーザー ID をアナリティクスに送信する前に、GA4設定タグを作成して、以下のように生成されたユーザー ID をデータレイヤーに追加します。
公式ヘルプ https://developers.google.com/analytics/devguides/collection/ga4/user-id?technology=tagmanager

例として、このセミナーの登録完了ページに、下記のようなデータレイヤーを書き込みました。
https://ga4-quick.and-aaa.com/thanks/ga4_thanks20220616.html

まず、ユーザー ID 用のデータレイヤー変数を作成します。
Google タグ マネージャーで、「変数」をクリックします。
「ユーザー定義変数」で「新規」をクリックします。

「データレイヤーの変数」を選択します。

上部に変数の名前を入力します。
「データレイヤーの変数名」フィールドに、ユーザー ID 変数名=「user_id」を入力します。「保存」をクリックします。
下記では「デフォルト値」を「NON_MEMBER」に設定してあります。(ここは設定しなくても構いません。)

Google タグ マネージャーで、「タグ」をクリックします。
「Google アナリティクス 4 設定タグ」を選択します。

「タグの設定」で「設定フィールド」をクリックします。(user_idの設定は、「ユーザー プロパティ」ではなく「設定フィールド」を使用する。 )「行を追加」をクリックします。
公式ヘルプ https://developers.google.com/analytics/devguides/collection/ga4/user-id?technology=tagmanager

「設定フィールド」 の「フィールド名」に「user_id」と入力して、アナリティクスでユーザー ID が認識されるようにします。
「値」フィールドで、作成したデータレイヤー変数を選択します。
「保存」をクリックします。

例でDataLayerを書いた
https://ga4-quick.and-aaa.com/ga4_seminar_thanks/ga4_thanks20220616.html
が閲覧されると、セミナー第3回でご紹介した「設定 > DebugView」で、ユーザー プロパティとしてuser_idが計測されたことが確認されます。

ユーザー ID 向けにデータレイヤー変数を作成した際に、「デフォルト値を設定」にチェックを入れて、デフォルト値が設定してありました。デフォルト値を取得したことも、DebugViewで確認できます。
「ユーザー ID」と「ユーザー プロパティ」(2)
user_id は予約済みのプロパティ名のため、レポートやデータ探索で直接アクセスすることが出来ない件
ID にアクセスする
「user_id」 は「予約済みのプロパティ名」のため、レポートや「探索」(別の回に解説)で直接アクセスすることはできません。すなわち、「カスタム ディメンション」として使うことができません。
予約済みの名前
一部のユーザー プロパティ名は予約済みのため、測定では使用できません。
first_open_time
first_visit_time
last_deep_link_referrer
user_id
first_open_after_install
また、ユーザー プロパティ名の先頭を以下にすることはできません。
google_
ga_
firebase_ 公式ヘルプhttps://developers.google.com/analytics/devguides/collection/protocol/ga4/user-properties?hl=ja&client_type=firebase
「user_id」を「カスタム ディメンション」として使おうとすると、何が起こるか、やってみましょう。
公式ヘルプ:https://developers.google.com/analytics/devguides/collection/ga4/user-id?technology=tagmanager

「user_id」の値を、 「カスタム ディメンション」として使いたい場合、 「user_id」 という名前の「カスタム ディメンション」を作ることができるか、確認します。
設定 > カスタム定義で、「カスタムディメンションを作成」 をクリック。

上記のように、「user_id」という名前の「ユーザー プロパティ」を使って「カスタム ディメンション」を作成しようとすると、 「『ユーザー プロパティ名』を『user_id』にすることはできません。」と表示されます。
「user_id」を「カスタム ディメンション」に使いたいなら、「user_id」と同じ値を持つ、「ユーザー プロパティ」を別途作っておく必要があります。
【2022/07/22】以下でご紹介する、「『user_id』を『カスタム ディメンション』に使いたいなら、『user_id』と同じ値を持つ、「ユーザー プロパティ」を別途作っておく必要があります。」という方法は、以前は、GA4の公式ヘルプでも見られたのですが、2022/07/22時点では、公式ヘルプで見られなくなりました。その理由は、
の下記の解説にある点が問題となるからのようです。
標準的なプロパティがある場合は、高基数のカスタム ディメンションは作成しないでください。高基数のディメンションとは、1 日あたりの固有の値の数が 500 を超えるディメンションです。このようなディメンションを作成すると、レポートに悪影響が生じ、データが「(other)」行に集約される可能性があります。ユーザー ID のような高基数のディメンションの場合(例: ユーザーごとの ID を収集したい場合)は、User-ID 機能を使用してください。
https://support.google.com/analytics/answer/10075209?hl=ja#zippy=%2C%E3%81%93%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%AE%E5%86%85%E5%AE%B9
以下、この点を踏まえてご覧ください。
レポートおよびデータ探索で ID にアクセスするには、別の「ユーザー プロパティ」 (crm_id など)を設定し、その「ユーザー プロパティ」を「カスタム ディメンション」として保存します。たとえば、以下の例では、レポートとデータ探索でユーザー ID を確認できるように 2 つのパラメータを送信しています。
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
user_id: "USER_ID",
crm_id: "USER_ID"
});
</script>

(この部分を訂正させていただきます。2023年3月2日。すぐ次の段落をご参照ください。)「ユーザー プロパティ」の設定を行います。「プロパティ名」に「crm_id」、「値」には、「user_id」用に作成したデータレイヤー変数と同じデータレイヤー変数を選択します。
「crm_id」を設定するという上記のキャプチャーにある設定は、現在では、推奨されておりません。
以前、GA4の公式ヘルプ内に、以下の趣旨の記述がありました。
「user_id」はカスタムディメンションとして使用できない。 もし「user_id」の値をカスタムディメンションとして使用したいなら、たとえば同じ値を「crm_id」として取得し、それをカスタムディメンションとして使用するとよい
という説明がありました。 しばらくして、その説明は公式ヘルプから削除され、現在では、
ユーザー ID は、カスタム ディメンションとして登録しないことが推奨されています。
https://support.google.com/analytics/answer/12675187?hl=ja
と書かれております。 古い情報をお読みいただいた方、申し訳ございません。

正しく設定できていれば、DebugViewで「crm_id」が確認できます。
user_idを カスタムディメンションに設定

設定 > カスタム定義 > カスタム ディメンションを作成をクリックします。

(1)プルダウン メニューから 「ユーザー」を選択します。
(2)カスタム ディメンションの [説明] を入力します。
(3)リストから 「ユーザー プロパティ」を選択するか、今後収集する「プロパティ」の名前を入力します。
(4)「保存」をクリックします。

作成した「カスタム ディメンション」は、「比較を追加+」をクリックして、右サイドで検索して呼び出すことができます。反映されるまで、しばらく時間が掛かります。

ユーザーIDでセグメントを掛けた状態で、レポートを見ることができます。
今回のセミナーはここまでとなります。
コメント