Lean Agencyleanagency
← Back to case studies

Case Study

How We Turned 100K Monthly Ad Clicks Into Actionable Landing Page Intelligence

Product analytics engagement for a DTC fitness equipment brand

PostHogDTC / E-commerceLanding Page Analytics

Context

The Client

  • DTC fitness equipment brand (vibration plates, recovery tools)
  • 100% of paid traffic from Facebook / Meta ads
  • 20+ landing pages in rotation: sale pages, advertorials, listicles, condition-specific angles
  • Each page tied to a different campaign and creative strategy
The core tension: Significant monthly ad spend driving tens of thousands of clicks, but no visibility into what happened after the click. Marketing was optimizing creative blind to page-level performance.

Problem

What Was Missing

“We're driving traffic. We don't know what happens after the click.”
  • No per-page conversion tracking
  • No engagement quality measurement
  • No page speed monitoring on LPs
  • No JavaScript error visibility
  • No revenue attribution per page
  • No device-level performance data

Solution

What We Built

A 16-chart PostHog dashboard covering 5 dimensions of landing page health:

Traffic and Channels

Session volume by campaign, source, and landing page

Engagement Quality

Scroll depth, time on page, CTR, composite page score (0-100)

Checkout Funnel

LP → Cart → Checkout → Purchase, per page

Revenue Attribution

14-day first-party attribution per campaign and LP

Page Performance

Core Web Vitals (LCP, FCP, INP) per page and device + JavaScript error monitoring

Scale

30-Day Snapshot

92K

Unique paid visitors

108K

Landing page sessions

$186K

Attributed revenue (14-day)

22

Active landing pages

Attribution method: If a paid visitor purchases within 14 days of their first landing page visit, the revenue is attributed to that campaign and page — independent, first-party validation separate from Meta.

The Funnel

Where Visitors Drop Off

Aggregate conversion funnel across all landing pages — the biggest leak is LP to Cart, not checkout.

Landing Page Sessions
108K
Add to Cart
5,027 (4.7%)-95%
Checkout Started
812 (0.8%)-84%
Purchase
64 (0.06%)-92%
94-97% of visitors never add to cart. Once in cart, completion rates are relatively stable. The problem isn't checkout — it's the page's ability to generate add-to-cart intent.

Finding 1

The Invisible Bug

A JavaScript error was crashing sessions for a third of all paid visitors.

397K

JavaScript exceptions in 30 days

30K+

Sessions affected

Root cause: A SlideshowComponent TypeError (classList undefined) on the image carousel. 98% of errors on paid landing pages. Nobody knew — there was no error monitoring.

This single finding justifies the entire analytics engagement. A third of paid sessions were hitting a JS crash that could interrupt the purchase flow.

Finding 2

The Conversion Illusion

The highest-traffic page had the lowest purchase rate.

Landing page typeSessionsLP → CartPurchase rate
Main sale page (highest traffic)47,8756.5%0.08%
Shoppable lander variant4,16813.3%0.31%
Condition-specific advertorial7,4384.3%0.11%

Add-to-Cart Rate by Page Type

Shoppable lander13.3%
Main sale page6.5%
Condition-specific4.3%
Sale page V24.1%

Purchase Rate by Page Type

Shoppable lander0.31%
Condition-specific0.11%
Main sale page0.08%
Sale page V20.04%
Key insight: The shoppable format (with direct add-to-cart) converted at 4x the rate of the main sale page, despite receiving 12x less traffic. Most ad spend was going to the worst-converting page.

Finding 3

The Desktop Penalty

16% of visitors had a significantly worse experience.

DeviceTrafficp75 LCPGoogle GoodCTR
Mobile84%1,255 ms91.5%27.6%
Desktop16%1,732 ms67%12.6%
Pages were optimized for mobile (sensible at 84% share), but desktop visitors saw 33% “poor” or “needs improvement” page loads. Core Web Vitals aren't just an SEO metric — for paid LPs, load time directly impacts whether someone stays long enough to buy.

Actions

What We Recommended

  1. 1

    Fix the SlideshowComponent bug immediately

    30K+ sessions per month crashing on landing pages

  2. 2

    Shift ad budget to the shoppable lander format

    4x higher conversion rate than the main sale page

  3. 3

    Investigate desktop page weight

    Images and scripts causing 1.7s LCP; 33% of desktop sessions failing Google's threshold

  4. 4

    Add condition-specific CTAs to advertorial pages

    High engagement but low conversion signals a missing call to action

  5. 5

    Instrument checkout events more granularly

    Payment method, success/failure events to diagnose cart-to-purchase drop-off

Impact

What This Engagement Delivered

Before

  • No per-page conversion visibility
  • No error monitoring on landing pages
  • No page speed data on paid LPs
  • Ad spend allocated by impressions alone
  • “Which page is best?” was a guess

After

  • Full LP → Cart → Checkout → Purchase funnel per page
  • JS error surfaced affecting 33% of paid sessions
  • Core Web Vitals tracked per page and device type
  • Revenue attributed per campaign and landing page
  • Composite score + conversion data = clear ranking

Want results like these?

I help product teams turn their analytics into decisions — not just dashboards. Book a free call and let's talk about your data.