Internal
Conversion & Tracking Checklist
QA reference for outbound links, CTAs, and events. This page is noindexed.
1. Tracking overview
- utm_source:
aluxreviews - utm_medium:
review_site - utm_campaign: derived from page intent via
classifyPage()insrc/lib/tracking.ts - utm_content: CTA location (e.g.
hero_cta,final_cta,app_store_button) - utm_term: page slug or comparison target (e.g.
alux_vs_masterclass) - All outbound Alux links must flow through
TrackedCTA,AppStoreButton, orGooglePlayButtoninsrc/components/tracked.tsx
2. Priority outbound links
| Page | Type | CTA | Location | Dest type | Campaign | Content | Term | Event |
|---|---|---|---|---|---|---|---|---|
/ | homepage | Visit Alux (official site card) | trust_summary_cta | official_site | homepage_trust | trust_summary_cta | home | outbound_click_alux |
/ | homepage | App Store | app_store_button | app_store | homepage_trust | app_store_button | home | app_store_click |
/ | homepage | Google Play | google_play_button | google_play | homepage_trust | google_play_button | home | google_play_click |
/blog/* | blog_article | Visit Alux | final_cta | official_site | research_blog | final_cta | <post_slug> | outbound_click_alux |
3. Priority events
| Event | Trigger | Required payload |
|---|---|---|
outbound_click_alux | Any outbound click to alux.com / app store / play store via TrackedCTA | page_path, page_type, page_intent, cta_text, cta_location, destination_url, destination_type, utm_* |
app_store_click | AppStoreButton click | page_path, page_type, cta_location, utm_campaign, utm_content, destination_type=app_store |
google_play_click | GooglePlayButton click | page_path, page_type, cta_location, utm_campaign, utm_content, destination_type=google_play |
internal_cta_click | InternalTrackedLink click | page_path, page_type, cta_location, destination_path, destination_page_type |
scroll_depth | 25/50/75/90% on high-intent pages (review, legit, scam, pricing, complaints, alternatives, comparisons) | page_path, page_type, scroll_percent |
faq_expand | Open a question in <Faq /> on any page | page_path, page_type, question_text |
4. Manual QA checklist
- Every outbound Alux link uses TrackedCTA / AppStoreButton / GooglePlayButton
- utm_source = aluxreviews on every outbound Alux URL
- utm_medium = review_site on every outbound Alux URL
- utm_campaign matches page intent (see classifyPage in src/lib/tracking.ts)
- utm_content matches the CTA location enum
- outbound_click_alux fires (verify in DevTools network or console in dev)
- app_store_click fires on App Store buttons
- google_play_click fires on Google Play buttons
- internal_cta_click fires on key internal CTAs
- scroll_depth fires at 25/50/75/90 on high-intent pages
- faq_expand fires when an FAQ item is opened
- Skeptical pages (/is-alux-a-scam, /alux-complaints) lead with internal review CTA before external Alux CTA
- No hardcoded https://alux.com or app-store links bypass TrackedCTA (search the repo before shipping)
- Mobile: tracked CTAs are tappable and use full-width spacing
- GA4 / PostHog absent: tracking calls no-op without console spam in production
5. Analytics setup
The tracking layer dispatches to window.gtag (GA4) and window.posthogwhen present, and no-ops otherwise. To enable GA4, set the GA_MEASUREMENT_ID env variable and add the GA4 snippet to the document head (TODO: not yet installed). Tracking will start populating events automatically — no per-link changes required.
See /launch-checklist for indexing and Search Console steps.