Appearance
Analytics and Conversion Tracking β
If you cannot measure it, you cannot improve it β proper analytics setup is the foundation of every optimization decision you will ever make.
Why This Matters β
- π» Dev: You are responsible for instrumenting every meaningful interaction on the page. Misconfigured events, missing UTM parameters, or broken tracking pixels mean the entire team operates on bad data. Getting analytics right is invisible work that makes every other team's job possible.
- π PM: Analytics is how you prove what is working and build the case for what to change next. Without clean data, you are guessing β and guessing is expensive when the roadmap depends on it.
- π¨ Designer: Heatmaps, scroll depth data, and click maps tell you what visitors actually do versus what you designed them to do. This data is the fastest feedback loop on your design decisions.
The Concept (Simple) β
Imagine flying a plane by looking out the window. On a clear day over flat terrain, you might manage. But at night, in fog, over mountains? You need instruments β altitude, airspeed, heading, fuel level, engine temperature. Each instrument answers a specific question about the state of the aircraft.
Your landing page analytics is that cockpit dashboard. Page views tell you altitude. Scroll depth tells you airspeed. Conversion rate is your heading. Bounce rate is your engine warning light. Without these instruments, you are flying blind β and in digital marketing, flying blind means burning budget without knowing why.
The goal is not to track everything. It is to track the right things, label them consistently, and build a dashboard that lets you answer the question: "Is this page doing its job, and if not, where is it failing?"
How It Works (Detailed) β
The Analytics Data Flow β
Every piece of analytics data follows this path from visitor action to team decision:
ββββββββββββ ββββββββββββ ββββββββββββββββ βββββββββββββ
β Visitor β β Events β β Analytics β β Dashboard β
β arrives βββββΆβ fire βββββΆβ Platform βββββΆβ / Report β
β on page β β (JS SDK) β β (GA4, etc.) β β β
ββββββββββββ ββββββββββββ ββββββββββββββββ βββββββ¬ββββββ
β
βΌ
βββββββββββββ
β Insights β
β & Action β
βββββββββββββData without action is just storage costs. Every metric you track should connect to a decision you might make.
The Analytics Stack β
A complete landing page analytics setup has four layers:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ANALYTICS STACK β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β Layer 4: DECISIONS β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Dashboards, reports, experiment results β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β² β
β Layer 3: ANALYSIS β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Funnels, segments, cohorts, attribution β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β² β
β Layer 2: COLLECTION β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β GA4, Amplitude, Mixpanel, PostHog β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β² β
β Layer 1: INSTRUMENTATION β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Event tracking, UTM parameters, pixels, tag mgmt β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββGA4 Setup Essentials β
GA4 is event-based, not session-based. Every interaction is an event with parameters. Set up these three components:
Events β the raw interactions you track (see the essential events table below).
Conversions β flag your most important events (form submission, CTA click) as conversions so GA4 optimizes reporting around them.
Audiences β define visitor segments for analysis: visitors from paid campaigns, visitors who scrolled past 75%, visitors who started but did not complete the form.
UTM Parameter Taxonomy β
UTM parameters are how you know where visitors came from. Inconsistent naming is the number-one analytics data quality problem. Adopt a convention and enforce it.
ββββββββββββββββ¬ββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β Parameter β Purpose β Naming Convention β
ββββββββββββββββΌββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β utm_source β Where the β Lowercase, platform name. β
β β traffic comes β google, facebook, linkedin, β
β β from β newsletter, partner-name β
ββββββββββββββββΌββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β utm_medium β How the traffic β Use standard values only: β
β β gets to you β cpc, organic, email, social, β
β β β referral, display, affiliate β
ββββββββββββββββΌββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β utm_campaign β Which campaign β Lowercase, hyphens, descriptive. β
β β β spring-2026-launch, β
β β β free-trial-promo, webinar-feb β
ββββββββββββββββΌββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β utm_content β Which ad or β Describes the creative variant. β
β β link variant β headline-a, cta-red, banner-top β
ββββββββββββββββΌββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β utm_term β Which keyword β The keyword or targeting term. β
β β (paid search) β project-management-software β
ββββββββββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββRules to enforce:
- Always lowercase.
Googleandgooglecreate two separate sources. - Use hyphens, not underscores or spaces.
spring-launchnotspring_launch. - Never leave parameters blank β omit them entirely if not applicable.
- Document your conventions in a shared spreadsheet that anyone creating links must use.
Essential Events to Track β
Every landing page should fire these events. Use consistent naming across all pages:
βββββββββββββββββββββββββββ¬βββββββββββββββββββββ¬ββββββββββββββββββββββ
β Event Name β Trigger β Key Parameters β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β page_view β Page loads β page_title, β
β β β page_location, β
β β β traffic_source β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β scroll_depth β 25%, 50%, 75%, β percent_scrolled, β
β β 90% thresholds β page_section β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β cta_click β Any CTA button β cta_text, cta_id, β
β β clicked β cta_position β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β form_start β First field in β form_id, form_name β
β β form receives focusβ β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β form_field_complete β Each field filled β form_id, field_name β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β form_submit β Form submitted β form_id, form_name, β
β β successfully β field_count β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β video_play β Video play clicked β video_title, β
β β β video_duration β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β video_progress β 25%, 50%, 75%, β video_title, β
β β 100% watched β percent_watched β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β social_proof_visible β Testimonial or β proof_type, β
β β logo section β proof_position β
β β enters viewport β β
βββββββββββββββββββββββββββΌβββββββββββββββββββββΌββββββββββββββββββββββ€
β exit_intent β Mouse moves toward β time_on_page, β
β β browser chrome β scroll_depth β
β β (desktop only) β β
βββββββββββββββββββββββββββ΄βββββββββββββββββββββ΄ββββββββββββββββββββββHeatmaps, Click Maps, and Session Recordings β
Quantitative data (GA4, Amplitude) tells you what is happening. Qualitative tools tell you why.
Heatmaps and click maps (Hotjar, Microsoft Clarity) show you aggregate behavior β where visitors click, how far they scroll, what they hover over. Use them to identify:
- Elements visitors click that are not actually clickable (false affordance)
- Content below the fold that gets ignored
- Distracting elements that pull attention away from the CTA
Session recordings show individual visitor journeys. They reveal confusion, rage clicks, and unexpected navigation patterns. Use them when:
- Conversion drops suddenly and you need to diagnose why
- A new page launches and you want to validate the user journey
- Form abandonment is high and you need to see where people struggle
Privacy considerations: Always disclose recording in your privacy policy. Mask sensitive form fields (email, phone, credit card) in recordings. Tools like Clarity provide automatic masking. Do not record pages that collect payment information.
Attribution Models β
Visitors rarely convert on their first visit. Attribution answers: which touchpoint gets credit for the conversion?
Last-click attribution β the final touchpoint before conversion gets 100% of the credit. Simple but misleading. It ignores the blog post, the ad, and the email that built awareness first.
Multi-touch attribution β distributes credit across all touchpoints. More accurate but harder to implement. Models include linear (equal credit), time-decay (recent touchpoints get more credit), and position-based (first and last touchpoints get 40% each, middle touchpoints split 20%).
For most landing page teams, start with last-click but track the full journey so you can move to multi-touch when your analysis matures.
In Practice β
How Stripe Tracks API Documentation Page Engagement β
Stripe's developer-facing pages are not typical marketing landing pages, but their analytics approach is instructive. Stripe tracks:
- Scroll depth by section β they know exactly which API documentation sections developers read and which they skip
- Code snippet copy events β every time a developer copies a code example, Stripe logs it as an engagement signal
- Time-to-first-action β how long after page load before a developer interacts with the interactive API console
This granular tracking lets Stripe's team identify which documentation sections need rewriting (low scroll-through), which code examples are most useful (high copy rate), and where developers get stuck (long time-to-first-action in specific sections).
The lesson for landing pages: do not just track page views and conversions. Track the micro-interactions that reveal how visitors engage with your content section by section.
How Airbnb Uses Scroll Depth to Optimize Page Length β
Airbnb's growth team discovered through scroll depth analysis that their host sign-up landing page was too long. Analytics showed a sharp drop-off at 60% scroll depth β visitors were not reaching the final CTA or the trust-building content near the bottom.
Their response was not to shorten the page arbitrarily. They:
- Moved the highest-performing social proof (host earnings data) above the 60% scroll threshold
- Added a sticky CTA that appeared after 30% scroll depth
- Removed two sections that heatmap data showed visitors skipped entirely
The result: a 15% increase in host sign-up form starts without reducing the page's information density. The content was the same β the order and access to CTAs changed.
Key Takeaways β
- Analytics is a four-layer stack: instrumentation, collection, analysis, and decisions β skipping layers means bad data or unused insights
- GA4 is event-based; define your events, mark conversions, and build audiences before you launch a page
- UTM parameter consistency is the most common analytics problem β enforce lowercase, hyphens, and a documented naming convention
- Track the essential events (page view, scroll depth, CTA click, form start, form submit) on every landing page from day one
- Combine quantitative data (GA4) with qualitative tools (heatmaps, session recordings) to understand both what and why
- Start with last-click attribution but capture the full touchpoint journey for future multi-touch analysis
- Privacy matters β always disclose recording, mask sensitive fields, and follow GDPR/CCPA requirements
Action Items β
ββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π» Dev β β Implement the essential events table using GA4 β
β β or your analytics platform of choice β
β β β Set up scroll depth tracking at 25/50/75/90% β
β β thresholds with section-level granularity β
β β β Build a UTM parameter validation script that β
β β enforces naming conventions on inbound links β
β β β Add Hotjar or Microsoft Clarity for heatmaps β
β β and session recordings with field masking β
ββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π PM β β Create and distribute a UTM naming convention β
β β document to everyone who creates campaign links β
β β β Define the 3-5 conversion events that matter β
β β most for each landing page and mark them in GA4 β
β β β Set up a weekly analytics review to catch data β
β β quality issues before they compound β
β β β Build a simple dashboard showing conversion rate, β
β β traffic sources, and scroll depth for each page β
ββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π¨ Designβ β Review heatmap and click map data for the β
β β current landing page to identify dead zones β
β β β Watch 10 session recordings per week to build β
β β intuition about how visitors navigate your page β
β β β Use scroll depth data to validate whether key β
β β content is placed above the typical drop-off β
β β β Identify false affordances (non-clickable β
β β elements that visitors try to click) and fix them β
ββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββ