How to Compare Landing Page Variants with Events
Multiple landing pages per campaign, one clean readout: UTM content tags, conversion events, and per-variant load-time comparison.
Running several landing pages per campaign — one per audience, one per ad group, one per bold idea — is cheap to ship and chaotic to evaluate unless the measurement is set up before launch. The clean pattern uses URLs as the variant identifier and one shared conversion event, which means no testing platform, no flicker, and a readout anyone can audit.
Setup: distinct URLs, tagged inbound, shared conversion
/lp/devs ← ad group: developers
/lp/founders ← ad group: founders
/lp/agencies ← ad group: agencies
Inbound ads tagged:
?utm_campaign=launch_jun26&utm_content=devs_v2Each page fires the same conversion event with its variant baked in:
window.webanalytics?.track('lp_converted', {
variant: 'devs', // matches the path
cta: 'start_free',
});utm_content carries the ad-side variant; the path carries the page-side variant. Keeping both lets you separate 'the ad targeting worked' from 'the page persuaded' — the two claims every post-campaign meeting conflates.
The readout, per variant
- Conversion rate (lp_converted ÷ pageviews), segmented by source — a variant can win on newsletter traffic and lose on cold ads; the denominator discipline matters.
- Engagement depth: automatic scroll and click data shows whether losing variants lose at the headline (instant exits) or at the offer (deep scroll, no click) — different rewrites entirely.
- Load time per variant: the classic silent confound. The variant with the video hero loses 400 ms of LCP; per-visit load times tell you whether design or kilobytes lost the test.
- Downstream quality: because converters get identified, you can check 30 days later which variant's signups activated — pages that convert tourists look great until this report.
Variants vs. proper A/B tests
Distinct-URL variants are not randomized: each sees its own audience, so cross-variant comparisons carry targeting bias. That is fine — usually it is the point (matching message to audience). When you need a causal answer on one audience, run a true split on a single URL with randomized assignment and its sample-size discipline. Knowing which question you are asking — fit or causality — is most of landing-page measurement.
Total infrastructure: paths, UTM hygiene, one event. Ship the pages.