未分類

GA4にユーザーIDを渡す

1. 目的と背景

GA4はユーザースコープアナリティクスです。SDKが発行する、ga_cidから抜け出て、サービスが発行するユーザーIDベースの分析を進めていきましょう。
一番重要なメリットは(ネイティブアプリやブラウザサービス、TVデバイスといった)マルチアプリ、マルチデバイスでサービスを提供している際に、ユーザーを一意に捉えるために各デバイスで同じユーザーIDを管理、タグ発行する事です。
参照:オーディエンス、リマーケティング、User-ID > [GA4] レポート用識別子

2. 渡し方と使い方

2-1. 要件の整理

少し、要件を整理すると、以下のような目的を満たす必要がある。

①GA4の標準、探究レポートをユーザーIDベースとする
②BigQueryをユーザーID毎に集計できるようにする
③GA4の標準、探究レポートのフィルターやディメンジョンとしてユーザーIDを利用できるようにする

 ①と②を満たす事と、③を満たす事では、異なる対応が必要となります。
①と②は、GA4やBigQueryに対して、お決まりのルールがありそれを実装する必要があります。しかし、この対応だけでは、レポート上でフィルターとしてユーザーIDを利用することが出来ません。別途「カスタムプロパティー(カスタムディメンジョン)」にユーザIDを別名でセットする必要があります。
前者はレポート上では扱うことが出来ない、システム設定を意味しております。※例:SDKがIPアドレスを取得しているがレポート上では利用できないのと一緒?わかりずらい説明すみません。

2-2. 設定方法

  • ①②の設定
    お決まりの設定があり、アプリは実装。WebサイトはGTMの設定例を記載します。目的はGA4にサービスUserIdを渡す実装です。

    – アプリ(FirebaseSDK):SDKからsetUserIDを呼び出してください。
    GTMでは制御できず、エンジニアに実装してもらう必要があります。

- Androidの場合
mFirebaseAnalytics.setUserId("123456");


- Objective-Cの場合
[FIRAnalytics setUserID:@"123456"]


- Swiftの場合:
Analytics.setUserID("123456")

 

 – Webサイト(GTM):GTMで渡すことが出来ます。
 「タグの種類」から「Googleアナリティクス: GA4 設定」を選択し
 「ユーザープロパティ」内のプロパティ名として「user_id」と定義し
 値(datalayer.pushされるパラメータKey名)は各自となります。
 この設定タグ「Googleアナリティクス: GA4 設定」は、すべてのGA4用の
 GTMタグで呼び出されるので、必ずuser_idというプロパティ名(予約語)
 で値が渡されることになります。

  • ③の設定
    上記の設定、「user_id 」はGA4の予約済みのプロパティ名のため、レポートやデータ探索で直接アクセスすることはできません。レポートおよびデータ探索で ID にアクセスするには、別のパラメータ(crm_id など)を使用し、そのパラメータをカスタム ディメンションとして保存します。

 - アプリ(FirebaseSDK)SDKからFirebaseAnalyticsのlogEvent Method
 を使って、カスタムパラメータ(もしくはユーザーパラメータ)として
 crm_idというパラメータ名で送ってください。
 
 - Webサイト(GTM):GTMで渡すことが出来ます。
 
これは、GA4イベント(カスタムタグ)の設定となりますが、イベント
 パラメータとして、user_idとは別のパラメータ名としてcrm_idのような
 別名で渡します。※user_idはGA4の予約語のため

3-3. User-ID の制限事項

  • ガイドラインとポリシーが適用されます
    User-ID は Google アナリティクス用に構築された機能です。この機能の実装については、すべて、アナリティクス SDK と User-ID 機能に関するポリシーが遵守されている必要があります。

  • ユーザー ID の文字制限
    Google アナリティクスに送信するユーザー ID は 256 文字未満でなければなりません。

  • User-ID は過去のデータには適用されない
    User-ID 機能を実装する前に収集、記録されたアナリティクス アカウントのデータを再処理してユーザー ID に関連付けることはできません。

  • プロパティをまたいで User-ID データを結合することはできない
    あるプロパティで収集された User-ID データを、別のプロパティのデータと共有したり統合したりすることはできません。

3-4. レポートでの使い方

カスタムパラメータcrm_idとしてGA4にデータを渡していれば、カスタムディメンションの設定ができて、レポートで自由にディメンジョン、フィルター、セグメントなどで利用できます。
GA4の管理画面からカスタムディメンションの設定をしましょう。

手順:
①GA4にログインし
②一番左の縦メニューが4つアイコンで並んでいる4つ目の「設定」をクリック※一番下の「管理」ではない
③上から4つ目の「カスタム定義」を選択
④カスタム定義にはディメンジョンと指標があるが、カスタムディメンジョンタブを選択し、作成をクリックすると下記の設定画面が出てくる

この設定をしないと、レポート上でカスタムディメンジョンを利用できないのがGA4の面倒な点
その後のレポートでの活用なここでは省略しますが、通常のディメンジョンの扱いと一緒です。
UAでは「カスタムディメンジョン1」は「linki_id」のようにタギング(タグの発火)時にパラメータキーと変数キーを紐づけていたが、GA4は集計後にレポートで利用するために管理画面からディメンジョンン名を付けるという操作が必要になりました。慣れるまで時間かかりますよね。

新しいカスタムディメンションの設定

3. 予約後user_idのセット状況の確認

[GA4] 複数のプラットフォームをまたいでアクティビティを測定することが正常に設定できていることを確認する方法となります。
つまり、①②の確認方法となります。

・BigQueryでGA4のデータ取得状況を確認します。
・user_idというスキーマに値が入っていることが確認できれば正常に取得で来ています。
・user_pseude_idがWEB用のSDKが発行するcidですね。アプリの場合は、同様のSDKが発行するdevice_idベースのユーザを識別できるIDが入っています。

CREATE TEMPORARY FUNCTION fromDate() AS (DATE('2022-01-19'));
CREATE TEMPORARY FUNCTION toDate()  AS (DATE('2022-01-19'));

SELECT
  PARSE_DATE("%Y%m%d", event_date) AS datetime,
  device.category AS device,
  platform,
  COUNT(DISTINCT user_pseudo_id) AS users_pseudo,
  COUNT(DISTINCT user_id) AS users
FROM
  `analytics_123456789.events_*`
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', fromDate()) AND FORMAT_DATE('%Y%m%d', toDate())
  AND event_name = 'session_start'
GROUP BY 1,2,3
ORDER BY 1,2,3

4.最後に

ユーザーがログインする前の行動とログインした後の行動をGA4は紐づけてくれます。その際の紐づけはセッションIDです。しかしログアウト後に発生したイベント(行動)は、ユーザーIDを紐づけられることはありません。ログアウトした時点でイベントとユーザーIDとの関連は停止します。ちょっとここが複雑ですが、GoogleシグナルやUser-IDを使うとユーザー数の少なく見えるよう用です。device_id以上にはならずGoogleシグナルとUser_idにてさらにユーザーを紐づける処理がされるようです。

コメント

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