← Projects

FAILURE / FIX / LEARNING LOG

Development
Notes

完成画面だけでは見えない問題、調査、修正、検証を、公開Git履歴で確認できる範囲に限定して記録します。

LOCALE / ROUTING

404ページとLocaleの不整合

Problem
通常ページ、404ページ、地域ヒントで言語判定の実装が分散し、保存済み言語が一貫して優先されない経路がありました。
Investigation / Root Cause
各ページ固有の判定と共通Resolverが並存し、優先順位と保存キーの扱いが揃っていませんでした。
Solution
明示指定 → 保存済み設定 → URL locale → ブラウザ言語 → 地域ヒント → 既定値の順へ統一し、共通キー koshi.preferredLocale を使用。zh-TW系は繁体字として分離しました。
Evidence
Commit 9ae13cd ↗ / Commit 72e77fc ↗
Lesson
多言語UIは翻訳データだけでなく、優先順位、永続化、404のような例外経路まで共通化して初めて一貫します。
Current Status / Known Limitations
静的ページ側は統一済み。外部サイトやブラウザのプライバシー設定により地域ヒントが得られない場合は、ブラウザ言語または既定値へ安全にフォールバックします。

CONTACT / ATTRIBUTION

問い合わせの流入元が追えない

Problem
送信結果だけでは、どのサイト・ページ・キャンペーンから相談に至ったかを判断できませんでした。
Investigation / Root Cause
フォームは送信ページと入力内容を扱っていましたが、referrer、UTM、問い合わせ種別を通知へ一貫して渡す契約が不足していました。
Solution
source site、送信ページ、初回ランディング、referrer、UTM、locale、問い合わせ種別をhidden fieldで渡し、サーバー側で再検証して通知へ記録します。成功応答後だけ generate_lead を送ります。
Evidence
Commit b61d594 ↗ / Commit 65dc296 ↗
Lesson
計測はクリックではなく成功時点に置き、メール配送と分析イベントの責務を分ける必要があります。
Current Status / Known Limitations
コード側は記録に対応。本番のメール到達とGA4 DebugViewは、デプロイ後に管理画面で確認が必要です。ブラウザがreferrerを送らない場合はDirect / Unavailableとして記録します。

NEXT

Evidence over
claims.

Case Studyと公開コードを確認し、案件の背景に合う相談をお送りください。