はじめに
モバイルアプリにおいて、Firebase Analytics のsetUserId()で設定したIDとアクティブユーザー数の関係性を確認したく、今回の検証を行いました。
GAの計測方法には「ブレンド」、「計測データ」、「デバイスベース」の3つがあります。今回は、まずデフォルトで選択されている「ブレンド」で調査を行い、その後他の識別方法にした場合の変化も確認します。

※コンソールの左下歯車の管理>データの表示>レポートIDから設定可能
検証の目的
- 「ブレンド」の際に
setUserId()で設定した ID ごとに異なるユーザーとしてカウントされるか - 同じデバイスから異なる ID を設定した場合、アクティブユーザー数が増加するか
- ユーザープロパティも ID ごとに正しく設定されるか
検証の結論
「ブレンド」ではsetUserId()で設定した ID 単位でアクティブユーザーがカウントされる
検証の結果、以下のことが確認できました:
-
setUserId()で設定した ID ごとに異なるユーザーとしてカウントされる- 同じデバイスから異なる ID を設定しても、アクティブユーザー数が増加
- 各 ID が独立したユーザーとして MAU にカウントされる
-
ユーザープロパティも ID ごとに正しく設定される
- 各 ID ごとにユーザープロパティが設定される
- Firebase Console で確認可能
-
イベントも ID ごとに記録される
- 各 ID ごとにイベントが記録される
- イベントパラメータに ID とユーザープロパティが含まれる
同じデバイスから異なる ID を設定して確認したGA探索レポート
ブレンド、計測データのそれぞれで値は変わらなかったのでUserIdが使用されている。

識別方法を「デバイスベース」に選択したらデバイスごとになるため、1になった。

検証方法
検証のために、以下のようなテスト機能を実装しました
-
UUID テストページの作成
-
検証の実行
- 同じデバイス(iOS 実機)から複数回ボタンをタップ
- 毎回異なる UUID を
setUserId()で設定 - Firebase Console でアクティブユーザー数の変化を確認
-
確認項目
- アクティブユーザー数が UUID の数だけ増加するか
- 新規ユーザー数はどう変化するか
- ユーザープロパティが ID ごとに正しく設定されるか
検証結果
1. アクティブユーザー数の変化
結果: ✅ アクティブユーザー数が UUID の数だけ増加
同じデバイスから異なる UUID を設定するたびに、アクティブユーザー数が増加することが確認できました。
Firebase Console のリアルタイムレポートでは、以下のように表示されました:
同じデバイスから実行しているにもかかわらず、UUID を設定するたびにアクティブユーザー数が増加していることが分かります。これは、setUserId()で設定した ID ごとに異なるユーザーとしてカウントされていることを示しています。
ちなみにUUIDを変更せずに計測すると下記のようにアクティブユーザーは1のままです。

2. 新規ユーザー数の変化
結果: ✅ 新規ユーザー数は 1 のまま(想定通り)
- 新規ユーザーはデバイス単位で判定されるため、同じデバイスから実行している限り 1 のまま
- これは Firebase Analytics の仕様通り
3. ユーザープロパティの設定
結果: ✅ 各 UUID ごとにユーザープロパティが正しく設定
Firebase Console で確認したところ、以下のように各 UUID ごとにユーザープロパティが記録されていました:
user_id: dae87114-7e4b-4733-932f-4259fef1a78c
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: 48316173-f4c8-46c9-ba18-a510252d3b24
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: d2dc8e14-21a4-4086-af72-1918900782c5
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: 38f75703-0882-4a87-813b-503ea579b476
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: 770b9e56-e7c8-46db-874f-43a9fe162b78
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: d7327c7d-3cd0-4ff3-a89f-ac129bc9b0cc
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: cbe7308b-4477-42eb-90fc-c7645f16c752
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: e937fe1d-26c2-4379-8623-417b192f5450
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: 3ba2e336-36b6-4162-bdee-bb36f9bcfcdb
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
user_id: b2f2e96f-35cd-40f7-a9d3-66a4e0b0ed2c
test_group: test_group_value
test_category: test_category_value
test_segment: test_segment_value
各 UUID ごとに、test_group、test_category、test_segment のユーザープロパティが正しく設定されていることが確認できました。
4. イベントの記録
結果: ✅ 各 UUID ごとにイベントが正しく記録
DebugView で確認したところ、test_uuid_setイベントが各 UUID ごとに記録されていることが確認できました:
DebugView のイベントタイムラインには、以下のように各 UUID ごとにイベントが記録されていました:
-
user_id = dae87114-7e4b...(23:49:49) -
user_id = 48316173-f4c8...(23:49:42) -
user_id = d2dc8e14-21a4...(23:49:36) -
user_id = 38f75703-0882...(23:49:28) -
user_id = 770b9e56-e7c8...(23:49:21) -
user_id = d7327c7d-3cd0...(23:49:14) -
user_id = cbe7308b-4477...(23:49:06) -
user_id = e937fe1d-26c2...(23:48:56) -
user_id = 3ba2e336-36b6...(23:48:47) -
user_id = b2f2e96f-35cd...(23:48:31)
また、DebugView の「現在アクティブなユーザープロパティ」には、最新の UUID とユーザープロパティが表示されていました:
-
user_id:dae87114...ef1a78c -
test_group:test_group_value -
test_category:test_category_value -
test_segment:test_segment_value
これにより、各 UUID ごとにイベントが正しく記録され、ユーザープロパティも設定されていることが確認できました。
Firebase Analytics の Reporting Identity について
Firebase Analytics(Google Analytics)では、ユーザーを識別するためにReporting Identityという仕組みを使用しています。Reporting Identity には以下の 3 つの識別方法(Identity Space)があります:
1. User-ID(優先度:最高)
setUserId()で設定した ID は、この User-ID として扱われます。User-ID は最も正確な識別方法で、以下の特徴があります:
- サインインユーザーに対して一貫した ID を設定できる
- デバイスをまたいだユーザージャーニーを追跡できる
- 最も正確なユーザー識別が可能
2. Device ID(優先度:中)
User-ID が設定されていない場合、デバイス ID が使用されます:
- Web: クライアント ID(Cookie)
- アプリ: アプリインスタンス ID
デバイス単位での識別となるため、同じユーザーが異なるデバイスを使用すると、別のユーザーとしてカウントされます。
3. Modeling(優先度:低)
Analytics 識別子(Cookie など)を拒否したユーザーの行動を、類似ユーザーのデータからモデル化します。
Reporting Identity の設定オプション
Firebase Analytics では、以下の 3 つのオプションから選択できます:
- Blended: User-ID → Device ID → Modeling の順で使用
- Observed: User-ID → Device ID の順で使用
- Device based: Device ID のみを使用
詳細はGoogle Analytics の Reporting Identity ドキュメントを参照してください。
アクティブユーザーとして記録されるタイミング
Firebase Analytics では、以下のタイミングでユーザーがアクティブユーザーとして記録されるようです。
-
アプリの初回起動時(first_open イベント)
- ユーザーが初めてアプリを開いた時
-
セッションの開始時
- アプリがバックグラウンドから復帰した時(一定時間経過後)
- 新しいセッションが開始された時
-
イベントが送信された時
- カスタムイベントや自動収集イベントが送信された時
今回の検証では、setUserId()で UUID を設定した後にtest_uuid_setイベントを送信しているため、イベント送信時点でアクティブユーザーとして記録されています。そのため、各 UUID を設定するたびに、その UUID が新しいアクティブユーザーとしてカウントされます。
参考:https://support.google.com/analytics/answer/12253918?hl=en&utm_source=chatgpt.com
今回の検証との関係
今回の検証では、setUserId()で設定した UUID が User-ID として扱われ、各 UUID ごとに異なるユーザーとしてカウントされることを確認しました。これは、User-ID が Device ID よりも優先度が高く、User-ID が設定されている場合は Device ID ではなく User-ID でユーザーが識別されるためです。
また、setUserId()を設定した後にイベントを送信することで、その User-ID がアクティブユーザーとして記録されます。そのため、同じデバイスから異なる UUID を設定してイベントを送信するたびに、新しいアクティブユーザーとしてカウントされることが確認できました。


