0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Firebase Analytics ではデフォルト設定だと`setUserId()`で設定した User-ID が識別子として計測される

Last updated at Posted at 2025-11-12

はじめに

モバイルアプリにおいて、Firebase Analytics のsetUserId()で設定したIDとアクティブユーザー数の関係性を確認したく、今回の検証を行いました。

GAの計測方法には「ブレンド」、「計測データ」、「デバイスベース」の3つがあります。今回は、まずデフォルトで選択されている「ブレンド」で調査を行い、その後他の識別方法にした場合の変化も確認します。

スクリーンショット 2025-11-13 11.44.31.png
※コンソールの左下歯車の管理>データの表示>レポートIDから設定可能

検証の目的

  • 「ブレンド」の際にsetUserId()で設定した ID ごとに異なるユーザーとしてカウントされるか
  • 同じデバイスから異なる ID を設定した場合、アクティブユーザー数が増加するか
  • ユーザープロパティも ID ごとに正しく設定されるか

検証の結論

「ブレンド」ではsetUserId()で設定した ID 単位でアクティブユーザーがカウントされる

検証の結果、以下のことが確認できました:

  1. setUserId()で設定した ID ごとに異なるユーザーとしてカウントされる

    • 同じデバイスから異なる ID を設定しても、アクティブユーザー数が増加
    • 各 ID が独立したユーザーとして MAU にカウントされる
  2. ユーザープロパティも ID ごとに正しく設定される

    • 各 ID ごとにユーザープロパティが設定される
    • Firebase Console で確認可能
  3. イベントも ID ごとに記録される

    • 各 ID ごとにイベントが記録される
    • イベントパラメータに ID とユーザープロパティが含まれる

同じデバイスから異なる ID を設定して確認したGA探索レポート
ブレンド、計測データのそれぞれで値は変わらなかったのでUserIdが使用されている。
スクリーンショット 2025-11-13 9.10.15.png

識別方法を「デバイスベース」に選択したらデバイスごとになるため、1になった。
スクリーンショット 2025-11-13 11.38.27.png

検証方法

検証のために、以下のようなテスト機能を実装しました

  1. UUID テストページの作成

    • ボタンタップごとにランダムな UUID を生成
    • AnalyticsService.setUserId()で Firebase Analytics に設定
    • テスト用ユーザープロパティを設定
    • テスト用イベント(test_uuid_set)を記録
       
       
  2. 検証の実行

    • 同じデバイス(iOS 実機)から複数回ボタンをタップ
    • 毎回異なる UUID をsetUserId()で設定
    • Firebase Console でアクティブユーザー数の変化を確認
  3. 確認項目

    • アクティブユーザー数が UUID の数だけ増加するか
    • 新規ユーザー数はどう変化するか
    • ユーザープロパティが ID ごとに正しく設定されるか

検証結果

1. アクティブユーザー数の変化

結果: ✅ アクティブユーザー数が UUID の数だけ増加

同じデバイスから異なる UUID を設定するたびに、アクティブユーザー数が増加することが確認できました。

Firebase Console のリアルタイムレポートでは、以下のように表示されました:

過去 5 分間のアクティブユーザー数: 13
スクリーンショット 2025-11-12 23.50.48.png

同じデバイスから実行しているにもかかわらず、UUID を設定するたびにアクティブユーザー数が増加していることが分かります。これは、setUserId()で設定した ID ごとに異なるユーザーとしてカウントされていることを示しています。

ちなみにUUIDを変更せずに計測すると下記のようにアクティブユーザーは1のままです。
スクリーンショット 2025-11-13 0.36.34.png

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_grouptest_categorytest_segment のユーザープロパティが正しく設定されていることが確認できました。

4. イベントの記録

結果: ✅ 各 UUID ごとにイベントが正しく記録

DebugView で確認したところ、test_uuid_setイベントが各 UUID ごとに記録されていることが確認できました:

スクリーンショット 2025-11-12 23.50.13.png

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 つのオプションから選択できます:

  1. Blended: User-ID → Device ID → Modeling の順で使用
  2. Observed: User-ID → Device ID の順で使用
  3. Device based: Device ID のみを使用

詳細はGoogle Analytics の Reporting Identity ドキュメントを参照してください。

アクティブユーザーとして記録されるタイミング

Firebase Analytics では、以下のタイミングでユーザーがアクティブユーザーとして記録されるようです。

  1. アプリの初回起動時(first_open イベント)

    • ユーザーが初めてアプリを開いた時
  2. セッションの開始時

    • アプリがバックグラウンドから復帰した時(一定時間経過後)
    • 新しいセッションが開始された時
  3. イベントが送信された時

    • カスタムイベントや自動収集イベントが送信された時

今回の検証では、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 を設定してイベントを送信するたびに、新しいアクティブユーザーとしてカウントされることが確認できました。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?