Skip to content

feat(analytics): 共有導線に share イベントを計装 - #6

Merged
appdevelopsk merged 1 commit into
mainfrom
feat/share-events
Sep 17, 2026
Merged

appdevelopsk merged 1 commit into
mainfrom
feat/share-events

Conversation

@appdevelopsk

@appdevelopsk appdevelopsk commented Sep 17, 2026

Copy link
Copy Markdown
Owner

背景

ShareBar の共有導線が 一切計測されていなかった

events.ts には trackCalculate / trackCopyResult / trackPresetClick /
trackFavoriteToggle / trackToolSearch と 5本の tracker があるが、
share に相当するものだけが存在しなかった。結果として:

導線 計装
nativeShare() (navigator.share) ❌ なし
X / Facebook / LINE / WhatsApp / Reddit ❌ なし
クリップボード copy() ✅ あり

共有ボタンは押されているのに GA4 では常にゼロで、共有施策の効果判定が原理的に不可能だった。
お気に入りや検索まで計測されている中で、共有だけが漏れていた形。

変更 (3ファイル・28行)

  • events.tstrackShare を既存の emit/toParams 形に合わせて追加
  • useToolEvents.tsshare を返す。calculate と違い 間引かない
    (共有先ごとの内訳が目的で、同一着地で複数先へ共有するのは正当な行動のため)
  • ShareBar.tsxnavigator.share 成功時に share("native")、各 SNS の <a>onClick

二重計上を避けた箇所

nativeShare() のフォールバックは copy() を呼び、その中で既に copy_result("link") が送られる
ここで share も送ると 1操作が 2イベントになり共有率が水増しされるため、
送出は navigator.share 成功パスだけに限定した。キャンセルは reject されるので成功パスには来ない。

適用範囲

ShareBarToolFrame.tsx:52 の 1箇所からのみ使われ、ToolFrame は全ツール共通。
この 1ファイルの修正で全ツールの共有計装が有効になる (個別ツールの改修は不要)。

⚠️ マージ後に必要な作業

events.ts のヘッダコメントの通り、GA4 Admin > カスタム定義に event-scoped の
custom dimension として label を登録しないと Data API 側が空になる

コードだけでは集計に出ない。登録対象の値: native / X / Facebook / LINE / WhatsApp / Reddit

なお GA4 のカスタムディメンションは 登録時点以降のデータにしか適用されず遡及しない
本 PR は未マージ=まだ share イベントが飛んでいないため、先に登録しておけば取りこぼしはゼロ。

検証

  • npm run typecheck → exit 0 (origin/main ベースで cherry-pick 後に再確認済み)
  • npm run audit:i18n → ✓ i18n consistency OK (17言語)
  • 翻訳キーは追加していないため messages/ の変更なし

https://claude.ai/code/session_01ENHPNZ5ngcdrTHJ2H6oAFd

ShareBar の共有導線が一切計測されていなかった。events.ts の export は
trackCalculate / trackCopyResult / trackPresetClick の3本のみで share は
関数すら存在せず、nativeShare() と SNS 5件(X / Facebook / LINE /
WhatsApp / Reddit)は無計装。クリップボードの copy_result だけが計測され
ていたため、共有施策の効果判定が原理的に不可能だった。

- events.ts: trackShare を既存の emit/toParams 形に合わせて追加
- useToolEvents.ts: share を返す。calculate と違い間引かない
  (共有先ごとの内訳が目的で、複数先への共有は正当な行動のため)
- ShareBar.tsx: navigator.share 成功時と各 SNS リンクの onClick で送出

nativeShare() のフォールバックは copy() が copy_result("link") を送るため
share は送らない(1操作を2イベントで数えると共有率が二重計上になる)。
ShareBar は ToolFrame からのみ使われるため全ツールへ一括で効く。

GA4 Admin > Custom definitions への label 登録が別途必要
(未登録だと Data API 側が空になる)。

npm run typecheck / audit:i18n ともに PASS。

Claude-Session: https://claude.ai/code/session_01ENHPNZ5ngcdrTHJ2H6oAFd
@appdevelopsk
appdevelopsk merged commit a1657e3 into main Sep 17, 2026
2 checks passed
@appdevelopsk
appdevelopsk deleted the feat/share-events branch September 17, 2026 14:31
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