###WEBやデータ分析に関する投稿をみんなでしてみよう Advent Calendar 2020の16日目の記事です。
#はじめに
2ヶ月ほど前、突如、それまでβ版であったApp + Wepプロパティが、「Google アナリティクス 4」として製品版になりました。ま、**「ベータの時点でデータを精査しておけよ」**という話ではあるのですが、ベータ版のデータを精査するエネルギーがなかなか湧いてこず、ほぼ何もしてませんでした。
しかし、製品版になった以上、かつ、1日や2日では終わらない作業である以上、GA4のデータについて精査を始めるべきでございましょう。
ということで、
- Universal AnalyticsのブラウザUI
- GA4のBigqueryにエクスポートされたデータ
- GA4のブラウザUI
の3種類を見比べつつ、a)とb)の差異であったり、b)(←これがGA4の生ログですね)のどの部分をどうやってc)として集計しているのか?などを調べながら、UAとGA4の間の指標としての継続性の有無をゆるゆると探っております。
そこで、気づいたことを1点記事にしたいと思います。
#Web解析製品が異なれば指標は異なるのが当然
私、意外と昔(2004年)にこの業界に入りまして、最初はWebTrendsという解析ソリューションの営業をしておりました。
その頃、Web解析ソリューションは群雄割拠の時代でして、「ツールの乗り換え」をされる事業者さんもいらっしゃいました。すると、気になるのが、ソリューション間の指標の差異です。
私は、何度も口を酸っぱくして「ツールが違えば、指標が異なるのは当然です。必ず誰得?の作業になるので、指標の差異の原因分析には踏み込まないで。お願い!」と言っていたのですが、ま、気になる事業者さんは気になるものです、誰得ワールドに突入した事業者さんもいたとかいないとか・・・。
Universal AalyticsとGA4は、ほぼ別製品と考えて良いので、指標(たとえば、ユーザー数、セッション、ページビュー)は微妙に異なるのが普通です。ですが、原因分析まではしない(=できない)」ものの、一応、プロとして、指標の差異について軽く見てみようと思いました。
#まずはPageviewから
製品が異なれど、一番差異がでにくい指標がPageviewです。
セッションのように、
- 参照元が切り替わったら切り替わる(とか切り替わらない)
- 夜中0時を過ぎたら切り替わる(切り替わらない)
- 30分以上インタラクションがなかったら切れる(切れない)
など、製品ごとの決め事が少なく、ログに記録されているページビューヒット(UA用語。GA4用語では、event_nameがpage_viewであるイベントヒット。です。 長い(^^; )をただ単純に足し上げれば良いからです。
#差異は、2%弱(あくまで一例です。)
12月6日(日曜日)のあるウェブサイトのPage Viewを比較してみました。すると、
Universal Analytics : 605
GA4 : 594
でした。
GA4が、UAに対して、98.2%となります。差異は1.8%。これを大きいと見るか小さいと見るかはサイト規模によって違ってくるかと思います。このサイトで言えば、わずか11PVの差なので、問題にする人はいないと思いますが、100倍ページビューがあるサイトでは60,500PVと59,400PVでその差は1100PV・・・ちょっと考えどころですね。
#BigQueryを確認したら、、、
そこで、もう少し深堀りしようと、BigQuery上page_viewイベントの個数と、GA4(ブラウザ上のUI)のpageviewを比較したところ、完全に一致しました。
##BigQueryでのpage_viewイベントのカウント
しかし、調査の過程で、**「ちゃんとページを閲覧しているはずなのにpage_viewイベントが記録されていないセッションが相当数ある」**のが分かりました。
##確認したSQL文
こんな感じ。(Qiitaらしくコードを挿入っと)
with master as (
select
user_pseudo_id
, (select value.int_value from unnest(event_params) where key="ga_session_id") as session_id
, FORMAT_TIMESTAMP('%F %H:%M:%S', TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') as timestamp
, event_name
FROM {プロジェクト名.データセット名}.events_*
where _table_suffix between '20201206' and '20201206'
)
select * from master
where session_id in(
select session_id from master
group by session_id
having max(if( event_name = 'page_view',1,0))<1
)
order by 1,3
##結果はこんな感じ。
4カラム目のevent_nameのところに、session_startと同時に記録されるべき、page_viewイベントがありません。
このようなセッションが48ありました。記録されていたページビューが594ですから、結構な割合です。
さらに、どのような場合に記録されていないのかを調べようと思い、ざっと「pageviewの記録されているセッションと記録されていないセッションの特徴」も見てみましたが、時間切れで規則性まではわかりませんでした。ごめんなさい。
#まとめ
では、以下にまとめです。
1. UAとGA4は別製品なので、指標の値が完全に一致することはないと考えた方が良いし、その原因分析はしない方が幸せ
2. GA4で記録されるべきPageviewが記録されていない場合が少なからずあった
3. 製品の初期バグかもしれないから右往左往する必要はないと思うけれど、一応、頭の片隅に置いておこう
それでは、皆さん、良い12月、良い年末をお過ごしください。