Architecture
- Umami instance: separate Vercel project
cnsvs-analytics(Phase 2 — Mark/Claude provisions Neon + website ID). - First-party proxy:
/q/s.js→ analytics script;/q/e→ collect endpoint (see vercel.json rewrites). - Snippet on every page:
<script defer src="/q/s.js" data-website-id="56f2ba51-5e23-47a7-9b14-0d4818073576">— replace placeholder after instance exists. - GTM/GA4: placeholder container
GTM-XXXXXXXuntil Jason delivers IDs. Needed for Google Ads conversion optimization; kept off sync.
Event dictionary
| Event | When | Notes |
|---|---|---|
demo_submit | Demo form success / thank-you | Primary conversion |
guide_download | Guide form submit | Soft offer conversion |
oth_referral | One True Health outbound click | patients.html — rev-share conversation |
schedule_call | Call CTA where tagged | Secondary intent |
sample_report_view | Sample report PDF open | Mid-funnel interest |
cta_demo / cta_guide | Per-page CTA clicks | data-umami-event attributes |
Umami auto-captures UTMs on pageviews — that feed is the campaign dashboard for persona pages.
Reading performance
- Filter sessions by path:
/nurse-practitioners,/adhd-testing,/memory-mci, etc. - Cross with
utm_campaign/utm_source. - Conversion rate ≈
demo_submit(and secondarilyguide_download) / sessions for that path. - Share view-only Umami URL with Alan / JSJD (Phase 3 handoff).
Phase 2 reminder: swap
56f2ba51-5e23-47a7-9b14-0d4818073576, drop in GA4/GTM IDs, and run one coordinated live demo lead with Dave before scaling traffic.