IT web開発

Google Analytics4のUserIDについて

2023年1月18日


GA4では、今までのUAと同じように、user_idでの計測が可能です。
ここではそんなuser_idの計測方法であったり、管理画面上での表示、そしてBigQueryのローデータで吐き出fした際の表示などを確認していこうと思います。

そもそもuser_idとは?

まずUAやGA4を今回初めて触った方もいると思いますので、user_id(ユーザーID)とはなんぞやから説明をしたいと思います。
 

サイトにアクセスするユーザー1人1人に対して、UAやGA4のcookieである「_ga」というものが発行されます。
正式にはこの_gaはブラウザ×デバイス粒度で発行されます。
同じ例えばPCを使っている人が、safariとchromeの2つでサイトにアクセスすると、それぞれのブラウザで別々の「_ga」が発行されるので、同じ人がアクセスしても、ユーザーは2人とカウントされてしまいます。
なので、別々のユーザーとみなされてしまうので、GAで分析する際も、_gaごとにユーザーの動きを見て分析することができるので、別々のcookieが発行されてしまっている今、同じ人でもブラウザごとに分析を行うことになってしまいます。

 
しかし、できれば同じ人なら、別のブラウザであっても、そして別のデバイスであってもサイトに来た人が同じ人なら、ユーザーは1人とカウントして欲しいですよね!
別のデバイスや別のブラウザでアクセスしても、同じ人なのだから、サイト内の動きを完全に追いたいですよね!
これをクロスデバイストラッキングと言ったりします。
デバイス間の影響なしに同一ユーザーの行動を追うということです。
 

それを実現する機能が、user_id(ユーザーID)というものになります。
 

user_idはどういったときに使用するのか?

user_idを使用するのは、よくある例として、サイト内にログインがあるサイトで使用されます。

Webとアプリでのuser_id計測設定

GTMでは設定フィールドでuser_idに、アクセスユーザーの固有なID(上の例で言えば、ログインID)をセットします。

これだけです。
user_idにそのユーザーの固有なIDを入れるだけで、計測が可能になります。

 
user_idはユーザーに固有な値なので、ユーザー粒度の値になります。
そのため、設定フィールドに設定しなくても、ユーザープロパティでuser_idを設定することでも問題はないです。
 

アプリについては、以下で扱ってますので、ここでは簡単なプログラムだけをご紹介しておきます!

プラットフォーム 処理
iOSアプリ Analytics.setUserId()
Androidアプリ Analytics.setUserId()

それぞれ、setUserId()の引数にそのユーザーの固有なIDを入れるようにします。
ユーザーの固有IDが12345なら、setUserId("12345")という感じです。
これでアプリはuser_idが計測されるようになります。

 
※ Webとアプリで、ユーザーの行動を見たいのであれば、Webとアプリを両方でうまく同じ固有のuser_idを発行して、それぞれでuser_idにセットするといった処理の構築が必要です。

 

注意点:GA4の管理画面上でのユーザー数について

ここで注意点があります。
 

GA4では、レポート識別子というものがあり、GA4の標準レポートや探索レポートを構成する際に、ユーザーはどのデータで集計するかを指定することができます。
 

 

デフォルトでは、デバイスIDというものが設定されており、
このデバイスIDは以下で発行された値になります。

プラットフォーム 処理
Web GAのcookie「_ga」
iOSアプリ Analytics.getAppInstanceId()
Androidアプリ Analytics.getAppInstanceId()

 
つまり、cookieなど通常デフォルトで発行されるユーザーの識別子になります。
この値を用いて、デフォルトはユーザー数の集計を行います。

 
しかし、ここでuser_idを計測すると、user_idの値がnullではないユーザーは上記のcookieの値で計測ではなく、このuser_idの数値を使って集計し、user_idの値がnullのユーザーは、user_idがないので普通のcookieの値を採用し、この値を使って集計します。

 
このようにuser_idを計測すると、ユーザー数の集計方法に違いが出てきます。
 

デバイスIDはデフォルトで計測されるcookie値だが、user_idは固有のユーザーIDがあるユーザーが採用される。
至極当然ちゃ当然ですね!user_idというどのデバイスからでも同じユーザーとみなされるユーザーは1人として集計した方が、デバイスIDで集計するよりも精緻なユーザー数を出すことができるのは容易に想像できます。
 


 

GTMでの設定

そしてここからGTMでの計測設定をします。

設定フィールドにて、以下を設定します。

設定フィールド「user_id」値「アクセスユーザーごとの一意の値」

ただ今回は、user_idの値がある場合、ちゃんとGA4のユーザー数の集計などで反映されるのかを検証するため、アクセスユーザー全員同じ値を振って、ユーザー数が1となることを確認します。
以下のように同じuseridを付与します。
こうすることで、アクセスユーザー全員が同じuseridになるので、ユーザー数は1になるはずです。

 

実際上記設定をして公開し、実際にアクセスしてGA4の画面を見てみると、確かにユーザー数が1になっていました。

 

想定通りですね!
 

GA4でのローデータ

上で
user_idがないユーザーはデバイスIDを、
user_idがあるユーザーはuser_idを
それぞれ採用して集計するとお話ししました。
 

実際、それぞれを計測している場合、BigQueryのローデータにはどのように吐き出されているのでしょうか?

上のように、カラムuser_idには、GTMで設定フィールドのuser_idで指定した値が入るようになっていますね!
そして、レポートで集計はされないが、cookieの値もuser_pseudo_idに入るようになっています!

-IT, web開発
-,

© 2024 Yosshi Labo. Powered by AFFINGER5