feat(FN-297): add social proof impression tracking to landing page testimonials (+2 more)
Some checks failed
Sync dev → Gitea / Mirror dev to Gitea (push) Has been cancelled

Commits merged:
- docs(FN-297): update FN-275 audit with social proof event locations
- fix(FN-297): format IntersectionObserver mock in test file
- feat(FN-297): add social proof impression tracking to landing page testimonials

Files changed:
apps/web/src/routes/__tests__/index.test.tsx |   7 ++
 apps/web/src/routes/index.tsx                | 111 +++++++++++++++++++++++++--
 docs/product/funnel-audit-p1-cro-2026-05.md  |  19 ++++-
 3 files changed, 127 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-297
This commit is contained in:
Fusion
2026-05-13 07:28:25 +00:00
parent 80596a4ceb
commit 3dd4dc2f77
3 changed files with 127 additions and 10 deletions

View File

@@ -26,8 +26,8 @@ The baseline funnel — `plan_selected → checkout_started → payment_initiate
| FN-209 | `trial_banner_viewed` | ❌ Missing | Banner renders but sends no event |
| FN-209 | `trial_banner_dismissed` | ❌ Missing | Dismiss tracked only via localStorage |
| FN-209 | `trial_banner_converted` | ❌ Missing | CTA link navigates, no conversion event |
| FN-210 | `social_proof_impression` | ❌ Missing | Testimonial is static HTML, no visibility tracking |
| FN-210 | `social_proof_engagement` | ❌ Missing | No interaction tracking on social proof elements |
| FN-210 | `social_proof_impression` | ✅ Instrumented (FN-282, FN-297) | IntersectionObserver on landing/auth/subscription social proof |
| FN-210 | `social_proof_engagement` | ✅ Instrumented (FN-282, FN-297) | Click/keyboard interaction tracking on social proof elements |
| Baseline | `payment_success` | ❌ Missing | Gap documented in FN-101; never instrumented |
### 1.2 Existing Funnel Events (Available)
@@ -218,7 +218,16 @@ See the Fusion board for:
| `downgrade_offer_declined` | `apps/web/src/routes/dashboard/subscription/index.tsx` | 702 |
| `receipt_uploaded` | `apps/web/src/components/payment/payment-content.tsx` | 189 |
| Trial banner (no events) | `apps/web/src/components/trial-urgency-banner.tsx` | 23 |
| Social proof (no events) | `apps/web/src/routes/_auth.tsx` | 103 |
| `social_proof_impression` (hero badge) | `apps/web/src/routes/index.tsx` | 573 |
| `social_proof_impression` (testimonial strip) | `apps/web/src/routes/index.tsx` | 590 |
| `social_proof_impression` (testimonials) | `apps/web/src/routes/index.tsx` | 607 |
| `social_proof_engaged` (landing) | `apps/web/src/routes/index.tsx` | 616 |
| `social_proof_impression` (auth) | `apps/web/src/routes/_auth.tsx` | 23 |
| `social_proof_engaged` (auth) | `apps/web/src/routes/_auth.tsx` | 33 |
| `social_proof_impression` (subscription trust) | `apps/web/src/routes/dashboard/subscription/index.tsx` | 409 |
| `social_proof_impression` (subscription payment) | `apps/web/src/routes/dashboard/subscription/index.tsx` | 426 |
| `social_proof_engaged` (subscription trust) | `apps/web/src/routes/dashboard/subscription/index.tsx` | 436 |
| `social_proof_engaged` (subscription payment) | `apps/web/src/routes/dashboard/subscription/index.tsx` | 440 |
## Appendix B: Files Requiring Instrumentation
@@ -226,6 +235,8 @@ See the Fusion board for:
|------|--------------|
| `apps/web/src/components/trial-urgency-banner.tsx` | `trial_banner_viewed`, `trial_banner_dismissed`, `trial_banner_converted` |
| `apps/web/src/routes/dashboard/subscription/index.tsx` | `cancel_flow_viewed`, `cancel_save_clicked` (cancel dialog section) |
| `apps/web/src/routes/_auth.tsx` | `social_proof_impression` (IntersectionObserver on testimonial) |
| `apps/web/src/routes/_auth.tsx` | `social_proof_impression` (IntersectionObserver) → ✅ Done (FN-282) |
| `apps/web/src/routes/index.tsx` | `social_proof_impression`, `social_proof_engaged` (landing page social proof) → ✅ Done (FN-297) |
| `apps/web/src/routes/dashboard/subscription/index.tsx` | `social_proof_impression`, `social_proof_engaged` (trust badges, payment) → ✅ Done (FN-282) |
| `apps/api/src/payments/payments.controller.ts` | `payment_success`, `payment_failed` (Iyzico callback + EFT approval) |
| `apps/web/src/components/payment/payment-content.tsx` | `payment_success` (on Iyzico redirect return or EFT confirmation) |