# QRMaster Tracking Spec ## Why this exists QRMaster growth pages should not be judged by traffic alone. Each page must support a measurable movement into signup or first product value. ## Core event set Required marketing events: - `landing_page_viewed` - `cta_clicked` - `signup_started` - `signup_completed` - `login_started` - `login_completed` - `qr_created_first` - `tool_qr_generated` (optional, for free tools) ## Required properties Use these whenever possible: - `landing_page_slug` - `page_type` - `cluster` - `use_case` - `cta_label` - `cta_location` - `destination` - `utm_source` - `utm_medium` - `utm_campaign` - `utm_content` ## Page-type model Recommended `page_type` values: - `homepage` - `commercial` - `use_case_hub` - `use_case` - `blog_post` - `learn_hub` - `pillar` - `tool` - `auth` ## Funnel interpretation The minimum useful path is: `landing_page_viewed -> cta_clicked -> signup_started -> signup_completed -> qr_created_first` Use this to answer: - which pages bring qualified visitors - which pages push users into signup - which signups actually reach first QR creation ## Known repo findings from prior QRMaster review - PostHog is the real custom-event system. - GA is wired mainly for pageviews. - Cookie consent is client-side via `localStorage['cookieConsent']`. - CTA tracking was previously inconsistent. - Prior analysis suggested likely duplicate pageviews from repeated PostHog/Facebook pixel mounts. If you implement tracking later in the QRMaster repo, verify those points again before shipping changes. ## Decision rules - do not create new events that do not support a decision - do not track only clicks without tying them to page context - do not judge SEO pages only by sessions; inspect signup and activation movement too