How do I build an accurate GA4 funnel exploration?
Build a GA4 funnel exploration by navigating to Explore → Funnel Exploration, choosing closed funnel for sequential processes (checkout, onboarding) and open funnel for content or micro-conversion flows. Define each step using the specific event name AND relevant parameter conditions — not just event names alone.
A checkout funnel built only on event names will overcount step completions because GA4 can fire the same event in multiple contexts. The most important funnel decision: closed vs open. Closed funnel conversion rates are typically 20–40% lower than open funnel rates for the same steps, because open funnels allow mid-funnel entries that inflate the denominator for each step.
Use closed funnel for stakeholder-facing conversion rate reporting unless mid-funnel entry is genuinely meaningful for your analysis.
The closed vs open funnel decision
Closed funnel
Users must complete step 1 before step 2 is counted. If a user completes step 3 without completing step 1, they are excluded from the funnel entirely.
Use closed funnel for:
- E-commerce checkout (view item → add to cart → begin checkout → purchase)
- Lead gen signup flow (landing page → form view → form submit → thank you)
- App onboarding (install → account creation → profile setup → first key action)
- Any sequential process where skipping steps is logically impossible or meaningless
Conversion rate truth: Closed funnel conversion rate = real, conservative funnel performance. This is the number to report to stakeholders and to optimisation teams.
Open funnel
Users can enter at any step. A user who lands directly on the checkout page counts as entering at step 2 or later.
Use open funnel for:
- Content engagement flows (blog read → related post read → newsletter signup) where users enter at different content pieces
- Multi-path user journeys where multiple routes lead to the same step
- Diagnostic funnels where you want to understand all routes to a step, not just the intended route
Why open funnels inflate conversion rates: If 1,000 users reach step 3 directly (bypassing steps 1 and 2), open funnel counts those 1,000 in the denominator for step 3 only. Closed funnel would exclude them entirely. The open funnel step-3 completion rate appears higher because users who were "gifted" step 3 without earning steps 1 and 2 are counted.
Building a checkout funnel
Standard GA4 e-commerce checkout funnel using GA4's recommended e-commerce events:
| Step | Event name | Parameter condition |
|---|---|---|
| 1 | view_item | (none required) |
| 2 | add_to_cart | (none required) |
| 3 | begin_checkout | (none required) |
| 4 | add_payment_info | (none required) |
| 5 | purchase | (none required) |
Funnel type: Closed
Breakdown dimension: Add Device category or Session default channel group as a breakdown to see conversion rates by device or acquisition channel. This is where most optimisation insights come from.
Segment comparison: Apply two segments — New users vs Returning users — to see if returning users convert at significantly higher rates (they almost always do: typically 2–4x higher purchase conversion rate).
Adding parameter conditions for accuracy
A bare add_to_cart event fires correctly on most implementations. But view_item can fire on page load for multiple items simultaneously (e.g., a product listing page). Add parameter conditions to ensure the funnel measures the right event:
Want to see whether purchase, revenue, or item-level tracking is drifting in your property?
Step 1 with parameter condition:
- Event name:
view_item - Condition:
item_iddoes not match(not set)— ensures only events with a real item ID count
Step 5 with parameter condition:
- Event name:
purchase - Condition:
transaction_iddoes not match(not set)— ensures only events with a real transaction ID count (filters accidental double-fires with missing IDs)
Building a lead generation funnel
For a B2B lead gen funnel (landing page → form view → form start → form complete):
| Step | Event name | Parameter condition |
|---|---|---|
| 1 | page_view | page_location contains /landing-page-slug |
| 2 | form_view | form_id = contact-form |
| 3 | form_start | form_id = contact-form |
| 4 | generate_lead | (none required) |
Funnel type: Closed
Key insight this funnel gives: The drop between step 2 (form view) and step 3 (form start) reveals how many users see the form but never interact with it — a friction indicator. Drop between step 3 and step 4 reveals form abandonment after starting.
Important: form_view, form_start, and form_submit events require custom event implementation or a GTM form interaction trigger. They are not automatically collected by GA4. Verify they're firing correctly before building the funnel.
Common funnel problems and fixes
Problem 1 — Step N has more users than Step N-1 (closed funnel)
In a closed funnel, step 2 should never exceed step 1. If it does:
Cause: The event in step 2 is firing before step 1 in some user journeys, or step 2's event fires multiple times in a session (and the funnel counts each unique user who hit step 2 regardless of step 1 completion). For the second case, add a user scope (vs event scope) to the funnel — user-scoped funnels count each user once per step regardless of how many times the event fires.
Funnel scope setting: In the funnel configuration, under "Make this funnel user-scoped" — enable this for purchase and lead-gen funnels to prevent multiple event fires per user from inflating step counts.
Problem 2 — 0% completion on step 1
Cause: The event name in step 1 doesn't match what's actually being tracked. GA4 event names are case-sensitive. Page_View ≠ page_view. Check the exact event names in the Realtime report or the Events report before building the funnel.
Problem 3 — Conversion rate is implausibly high (>40% checkout conversion)
Cause: Using open funnel when closed is appropriate. Users entering directly at the purchase confirmation page (after payment processor redirect) are counted as funnel completions without having gone through steps 1–4. Switch to closed funnel and add begin_checkout as a mandatory step to filter direct post-payment page views.
Problem 4 — Funnel shows different numbers every time it refreshes
Cause: The exploration is sampling. Large date ranges or large user volumes trigger sampling. Add a sampling note to any stakeholder communication, or switch to a BigQuery-based funnel query for definitive numbers:
FAQ: GA4 Funnel Exploration: Building Checkout and Lead-Gen Funnels That Don't Lie
What is the first thing to verify when ga4 funnel exploration: building checkout and lead-gen funnels that don't lie affects revenue?
Should I compare GA4 only to the ecommerce platform total?
How do I keep this from breaking after the next release?
Related guides for GA4 Funnel Exploration: Building Checkout and Lead-Gen Funnels That Don't Lie
Shopify GA4 Setup: Web Pixel vs theme.liquid in 2026
The 2026 best practice for Shopify GA4 is Web Pixel via Customer Events API — Shopify's sandboxed pixel system that runs GA4 in isolation, supports the Customer Privacy API for consent, fires standard e-commerce events automatically, and works on all Shopify plans (including Basic)…
Item Array Integrity: What Stops Items Reporting in GA4 (2026)
Items fail to appear in GA4 e-commerce reports when the items array is missing, malformed, or inconsistent across the funnel. Eight common bugs: (1) missing item_id (the only required field — items without it are dropped), (2) item_id mismatched between view_item and purchase (same product reports as different items)…
Audit GA4 Funnel Exploration: Building Checkout and Lead-Gen Funnels That Don't Lie before revenue reporting drifts further
Run a free GA4 audit to catch purchase, refund, item-array, and attribution issues before they distort ecommerce decision-making.