こんにちは寝る

古い記事の情報は参考程度にお願いします

user_engagementが謎すぎるというメモ

22/07/29 更新
この記事のアクセス数がそこそこ多いので最近の情報を含めて記事を更新します。

user_engagement とは

以下の条件を満たすと自動的に送信されるイベントの事です

アプリがフォアグラウンド表示されているとき、またはウェブページが 1 秒以上フォーカスされているとき。

[GA4] 自動収集イベント - アナリティクス ヘルプ

ちなみに送信タイミングは

ユーザーがページから移動したとき(ユーザーがタブやウィンドウを閉じたとき、または別のページや画面に移動したとき)です

[GA4] ユーザー エンゲージメント - アナリティクス ヘルプ

勘違いをしていたところ

エンゲージメントのあったセッションの条件を満たす = user_engagement が動くと勘違いをしていた。

今思えば恥ずかしい話ではありますが、当時エンゲージメントという概念を間違って認識してしまっていてそのままドツボにはまってしまったという感じですね。

10 秒を超えて継続したセッション、コンバージョン イベントが発生したセッション、または 2 回以上のページビューもしくはスクリーン ビューが発生したセッションです。

[GA4] エンゲージメント率と直帰率 - アナリティクス ヘルプ

この条件を満たしているセッションの事自体をエンゲージメントのあったセッションと定義していただけでした。

アクティブユーザーについて

エンゲージメントのあったセッション or first_visit or engagement_time_msec が発生したユーザーの数

エンゲージメント セッションが発生するか、アナリティクスで以下の情報が収集されると、アクティブ ユーザーとして認識されます。ウェブサイトの first_visit イベントまたは engagement_time_msec パラメータ

[UA→GA4] 指標の比較: Google アナリティクス 4 とユニバーサル アナリティクス - アナリティクス ヘルプ

まだわからないこと

  • リアルタイムのユーザースナップショットの精度がよくわからない。user_engagement が動く条件を満たしているにも関わらず動いてないことがチラホラある。それとも満たしていない?別の条件が隠れてある?それともユーザー側の環境問題?
  • ユーザーやセッションの数値。探索で絞り込んだ数とGA4の管理画面の数が一致しないことがある( [GA4] セッションについて - Firebase ヘルプ で少し言及されていました)

結論

user_engagement の動作についてはあまり考慮せずに概念だけをちゃんと覚えておくべきなのかなと思いました。

1つ1つの情報取得の正しさより統計的に見るのが正しい使い方なのかもしれない…

参考

※ ここから先の内容は間違いを含む古い情報です

概要

GA4で自動的に取得されるイベントとして user_engagement というイベントがあるのですがこのイベントの挙動が謎すぎるという件についてのメモです。

※ 未確定情報なのであくまでも参考程度にお願いします

もしかするとブラウザで確認すると動いていないように見えるけどBigQueryにエクスポートした生データは存在するとかあるかもしれない…

UTMパラメーターをつけたイベントが動いた時にブラウザから確認できるリアルタイムのイベントのパラメーターにUTM関連のパラメーターがついたりついてなかったりするが、生データには存在していた過去があるので…

定義

user_engagement とはいつイベント発火するのか?

定期的。アプリがフォアグラウンドで動作していることが条件です。

[GA4] 自動収集イベント - アナリティクス ヘルプ

これぐらいしか情報が無いんです。

エンゲージメントとは?

そもそもGA4にはエンゲージメントという概念が生まれていて、そのエンゲージメントされたセッションの定義は

10 秒以上継続するか、コンバージョン イベントが発生するか、ページビューが 2 件以上発生したセッションの数。

[GA4] ディメンションと指標 - アナリティクス ヘルプ

なんです。

ではこのイベントもフォアグラウンドで動作しているときにこの条件を満たしたら自動的にイベント発火するのか?となるんですが、これもどうやらそうじゃないみたい。

環境問題かわからないのですが、少なくても現時点で first_visit を計測後に10秒過ぎても user_engagement は計測されませんでした。この定義が正とするとおかしいですよね?
(多分、正確に user_engagement を言い表したものではないのかなと推測)

この件で調査を進めていると10秒後に user_engagement が動いたとかそういう事を書いている方もチラホラ居て、一体何が正解なんだ…となっています。

おそらく

user_engagement は制御できるものではない。(自動的にって書いてあるし、気にしてはいけなさそう)

たまたま動いていることもあれば動かないこともある、とにかく動く条件が不明確。

定期的に動いて engagement_time_msec の値とかを見て10秒以上生きてたセッションじゃなかったらレポート上ではそのセッションをエンゲージメントされていないセッションとして見るみたいな事をしているんじゃないかな。

調査の中で動いていたタイミング

  • page_view イベント発生前にランダムに発火
  • タブを閉じたときに発火(こっちはほぼ確実に発火する→BeaconAPIなるもので動くらしい凄い)

参考になったサイト