Skip to content

fix(ga4): 再入場 page_view を config 再実行に変更し (not set) を解消 - #26

Open
appdevelopsk wants to merge 1 commit into
mainfrom
fix/ga4-reenter-session
Open

fix(ga4): 再入場 page_view を config 再実行に変更し (not set) を解消#26
appdevelopsk wants to merge 1 commit into
mainfrom
fix/ga4-reenter-session

Conversation

@appdevelopsk

Copy link
Copy Markdown
Owner

問題

2026-09-08 の PR #14「GA4 Unassigned 対策」で追加した reenter() が、狙いと逆に Unassigned を 17 → 64 に増やしていた。

原因

reenter()gtag('event', 'page_view', {...}) を送っていた。event スコープの page_viewページコンテキストを張り直さないため、30分アイドル後のタブ復帰で始まる新セッションは landingPage / チャネルを決定できず (not set) / Unassigned に落ちる。

さらにこの経路のセッションは定義上スクロールもクリックもしていない(lastActivity を更新するのはその2つだけ)ので、エンゲージメント率が構造的に 0 になる。監査が報告した「46セッション / ER 0」の層と一致する。

修正

gtag('config', GA_ID, { send_page_view: true, page_location, page_path, page_title }) の再実行に置き換え、ページコンテキストごと張り直す。GA_IDlayout.tsx<head> 直書き config と同じ解決順(NEXT_PUBLIC_GA_MEASUREMENT_IDG-M7SF83B60R)。

検証

  • tsc --noEmit エラー0
  • 変更は1ファイル・+18/-5

https://claude.ai/code/session_01D41rnpZ7nmdkNHNJgWn2wp

2026-09-08 の PR #14 が入れた reenter() は gtag('event','page_view') を
送っていたが、event スコープの page_view はページコンテキストを張り直さない。
そのため 30分アイドル後のタブ復帰で始まる新セッションは landingPage を
決定できず「(not set) / Unassigned」に落ちていた。Unassigned は 17→64 と
逆に増えていた。

また、この経路のセッションはスクロール/クリックを一度もしていない
(lastActivity を更新するのはその2つだけ)ため、エンゲージメント率が
構造的に 0 になる。監査の「46セッション / ER 0」はこの層と一致する。

gtag('config', GA_ID, {send_page_view:true, page_location, page_path,
page_title}) の再実行に置き換え、ページコンテキストごと張り直す。
GA_ID は layout.tsx の <head> 直書き config と同じ解決順にした。

Claude-Session: https://claude.ai/code/session_01D41rnpZ7nmdkNHNJgWn2wp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant