The single most-watched GA4 number. Drops here are the cleanest canary for checkout / GTM regressions.
At a glance
The percentage of GA4 sessions that ended in a purchase event. The single most-watched GA4 number, and the cleanest early-warning signal for checkout, GTM, or consent regressions. GA4’s CR is structurally lower than your commerce platform’s CR because GA4 misses 10, 25% of purchase events to ad blockers and consent rejection (the denominator is healthy, the numerator is the gap).
| What it counts | sessionConversionRate, GA4’s native metric: sessions that fired any Key Event (typically purchase) divided by total sessions. Returned as a decimal (0.0234 = 2.34%). |
| Sample basis | Sessions. A session is a 30-min user-activity window. One user opening the site, idling, then returning 45 min later = two sessions. The denominator is robust; the numerator (sessions with a purchase event) carries the GA4 tracking gap. |
| Sampling threshold | None for Vortex IQ’s standard windows. GA4 only samples when cardinality exceeds ~10M events/property/month or with very long ranges (>14 months); T/7D/30D vsP are well below the threshold. |
| Bot traffic filter | GA4’s built-in Internal Traffic + IAB Tech Lab known-bot exclusions are applied. Vortex IQ uses GA4’s filtered runReport output without further filtering. Spider waves still leak through, see Bot Traffic Share. |
| Key Event dependency | Critical. Late-2024 GA4 renamed Conversions to Key Events. The purchase event MUST be marked as a Key Event in GA4 Admin → Events. If it’s not, this card returns 0 even when traffic is healthy and orders are flowing. The engine surfaces a setup-hint card when traffic > 0 but conversions = 0. |
| Time zone | The GA4 property’s configured timezone (set in Admin → Property Settings), NOT UTC. Day boundaries follow the property zone. |
| Currency (revenue events) | The purchase event carries value in the property’s reporting currency, with daily FX conversion at event time. CR itself is unitless (a ratio), but the underlying purchase events are FX-normalised. |
| Refunds | NOT subtracted. A refunded purchase still contributes to the conversion count. GA4’s refundAmount metric is separate. |
| Tracking gap framing | GA4 captures 75, 90% of real conversions. So GA4 CR ≈ Commerce CR × 0.85 typically. The CR will look lower than your Shopify/BC/Adobe CR; that’s the gap, not a bug. |
| Time window | T/7D/30D vsP (default 30D vs the prior 30D) |
| Alert trigger | drop >15% vsP, driven by sentiment_key: ga_conversion_rate. CR is the cleanest canary, when it drops, suspect checkout regression OR GA4 measurement regression FIRST. |
| Roles | owner, marketing |
Calculation
Calculated automatically from your Google Analytics 4 data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK home-goods brand on Shopify with GA4 connected. The 30-day window is 02 Apr 26 to 01 May 26.| Source | Sessions / Visits | Orders / Conversions | CR |
|---|---|---|---|
| Shopify (truth) | 184,300 sessions (Shopify-counted) | 4,720 orders | 2.56% |
| GA4 (this card) | 162,400 sessions | 3,890 conversions | 2.40% |
| The gap | 21,900 sessions (12% lower) | 830 orders missing (17.6% lower) | 0.16 pp lower |
- The structural gap is stable. GA4 CR sits ~6% below Shopify CR (2.40% vs 2.56%, a 0.16 pp difference). The underlying cause is that GA4 misses 17.6% of purchase events but only 12% of sessions, the numerator gap is bigger than the denominator gap because tracking failures cluster on the order-confirmation page (slow networks, ad blockers, consent banners). The gap is stable week-to-week, that’s the test of GA4 health. A widening gap means a tag regression, not a real CR drop.
- GA4 is for channel attribution, not the absolute number. This brand’s GA4 CR breaks down to 4.1% on Email, 2.8% on Organic Search, 2.4% on Direct, 0.9% on Paid Social. That relative picture (Email 4x Paid Social) is correct and actionable; the absolute 2.40% is not the truth. Use Shopify CR for the headline; use GA4 for the channel decomposition. See GA4 Revenue by Channel.
- Server-side tagging or Consent Mode v2 narrows the gap. This brand could close the 17.6% conversion gap to ~10% by deploying Google Tag Manager Server-Side, and to ~7, 8% by adding Consent Mode v2 with modelled conversions. Never to zero. The ad-blocker and consent-rejection populations are real human shoppers whose intent to be untracked is honoured by both technologies. Realistic best case: 7, 10% gap.
- The card alert won’t fire. GA4 CR is 2.40% this period vs 2.46% the prior 30D, a 2.4% drop, comfortably below the 15% trigger.
- What WOULD fire the alert. If GA4 CR dropped from 2.40% to 1.95% (an 18.7% drop) while Shopify CR held at 2.56%, that’s a measurement regression: the GTM container failed to publish, the
purchaseevent was deprioritised from Key Event status, or a consent-banner update started defaulting to Reject. GA4-only drops are measurement issues 9 times out of 10.
Sibling cards merchants should reference together
| Card | Why pair it with GA4 Conversion Rate |
|---|---|
| GA4 Sessions | The denominator. CR moves can come from numerator (fewer purchase events) or denominator (sudden traffic spike from low-intent source) shifts. Always check both. |
| GA4 Revenue Trend | The companion top-of-funnel metric. CR × Revenue per Conversion = Revenue per Session. |
| GA4 Add-to-Cart Rate | Earlier funnel step. If add-to-cart held steady but CR dropped, the regression is between cart and confirmation, usually checkout or payment. |
| GA4 Checkout Completion Rate | Even later funnel. If both add-to-cart and checkout-start are healthy, the issue is at the final payment step. |
| GA4 Cart Abandonment Rate | The mirror image. CR ↑ usually means abandonment ↓. |
| GA4 GTM Tag Fire | The first place to look when GA4 CR drops without an obvious checkout reason. Tag regressions hit CR before any other metric. |
| GA4 Tracking Gap vs Commerce | The broader measurement-health view. If the gap widens at the same time CR drops, you’ve identified a tag issue. |
| Shopify / BC / Adobe Conversion Rate | The truth side. Shopify-CR ÷ GA4-CR ratio should be stable around 1.05, 1.20. A diverging ratio = GA4 measurement issue. |
Reconciling against the vendor’s own dashboard
Where to look in GA4: Reports → Life cycle → Engagement → Pages and screens for session-scoped CR by page. The headline number lives at:Reports → Monetization → Ecommerce purchases → “Session conversion rate” column (top-right of the table).Or for the cleanest view:
Reports → Acquisition → Traffic acquisition → “Session key event rate” column.Other GA4 views that look like the same number but aren’t:
- User conversion rate (different metric):
users with conversion ÷ total users. Same merchant typically gets a higher number here than session-CR because one user can have multiple sessions but only one is needed to count. - Realtime → Conversions: 30-min lookback only. Useful for tag-fire validation, not for trend analysis.
- Explorations → Funnel exploration: custom funnels can use any conversion definition; the standard report uses Key Events only.
- Old-GA4 “conversion rate” (pre-2024): before the Key Events rename, GA4 had a
conversionRatemetric tied to all conversions including non-purchase events. Reports built before the rename may carry that broader definition.
| Reason | Direction of divergence |
|---|---|
| Currency conversion lag on the underlying revenue events. CR is a ratio, so this rarely affects CR directly, but session-keyed events with currency-conversion lag could shift counts at day boundaries. | <0.1% |
| Late-arriving event ingestion. GA4 ingests events with up to 4-hour delay. Vortex IQ reads the snapshot at sync time. | Marginal on the most recent 24h |
| Sampling on long ranges (>14 months). Vortex IQ’s standard windows are below the threshold. | None for standard windows |
| Explorations vs standard reports. Custom Exploration funnels can apply different filter/comparison logic; this card mirrors the standard report. | Variable |
| Card | Expected relationship | What causes the divergence |
|---|---|---|
shopify.ecommerce_conversion_rate | GA4 CR ≈ Shopify CR × (1 − tracking gap on numerator), typically 5, 15% lower in GA4. The denominator (sessions) gap is smaller than the numerator (purchases) gap because tracking failures cluster on the order-confirmation page. | Ad blockers (~5% loss on confirmation page), cookie consent rejection (~5, 10%), tag-fire failures on slow networks (~2, 5%), B2B / draft orders bypassing storefront. |
bigcommerce.ecommerce_conversion_rate | GA4 CR ≈ BC CR × (1 − tracking gap), typically 5, 15% lower in GA4. | Same shape. BC’s Incomplete and Declined orders aren’t in either number, so this comparison is cleaner than the revenue comparison. |
adobe_commerce.ecommerce_conversion_rate | GA4 CR ≈ Adobe CR × (1 − tracking gap), typically 5, 15% lower in GA4. | Same shape. Adobe Commerce’s pending_payment isn’t in either number. |
klaviyo.email_attributed_revenue | Klaviyo claims more email-driven conversions than GA4 attributes to the Email channel. Different attribution windows (Klaviyo: 5-day last-touch; GA4: last-non-direct click). | This is normal. |
Known limitations / merchant FAQs
Why is my GA4 conversion rate lower than Shopify’s? Is GA4 broken? GA4 isn’t broken; it’s structurally undercounting purchases. Thepurchase event must fire from the customer’s browser at the order-confirmation page. That event fails when ad blockers run, when cookie banners are rejected, when networks are slow, or when GTM containers are mis-configured. The aggregate miss rate sits at 10, 25%, with the impact concentrated on conversions (the confirmation page) more than on sessions (any page on the site). So GA4 CR sits 5, 15% below the commerce platform CR for healthy stores. Treat the commerce platform as the source of truth for the CR number; use GA4 to see which channels have which CR.
Can I “fix” the gap?
Partially. Server-side tagging via Google Tag Manager Server (or a Cloudflare Worker proxy) bypasses ad blockers on the client, recovering ~5, 10% of lost conversions. Consent Mode v2 with modelled conversions narrows the gap further (Google fills in some missing data using machine-learned models). Realistically you can shrink the gap from 15% to about 7, 10% with a serious tag-side investment, but never to zero.
My CR suddenly dropped 25% and Shopify CR is flat. What happened?
Almost always a tag regression. Check (1) your GTM container is publishing correctly (a Preview Mode test will confirm the purchase event still fires), (2) your purchase event is still marked as a Key Event in GA4 Admin → Events (this status can be silently dropped after a property setting change), (3) your consent banner hasn’t started defaulting to Reject, (4) your ecommerce JavaScript hasn’t been swapped (Shopify theme update, headless redeploy), (5) Apple’s Safari ITP rolled an update. GA4-only CR drops are measurement issues 9 times out of 10.
My GA4 CR is showing 0%. Is everything broken?
Probably not. The most common cause: your purchase event isn’t marked as a Key Event in GA4 Admin (this is the late-2024 GA4 change, formerly called “Conversions”). Go to Admin → Events in GA4, find your purchase event, and toggle the “Mark as key event” switch. The CR will repopulate within a few hours. The Vortex IQ engine detects this pattern (traffic > 0 AND all conversion metrics = 0) and surfaces a setup-hint card on the dashboard.
What’s the difference between this card and Shopify’s CR with a GA4 channel filter?
Different things. This card is GA4’s measurement of CR as fired by the GA4 tag. Shopify’s CR with a GA4-attributed-channel filter is Shopify’s own attribution of which marketing source drove the order. They use different attribution models and different event data. Shopify CR is the truth; GA4 CR is the GA4-measured shadow.
My multi-currency store, does GA4 CR show me the same number?
Yes. CR is a unitless ratio (sessions with purchase ÷ total sessions), so currency doesn’t enter directly. The underlying revenue values are FX-converted to the property’s reporting currency, but that doesn’t affect the CR calculation. This is one of the few areas where GA4 is cleaner than the commerce platform: a multi-currency Shopify store sees one CR per currency by default; GA4 unifies them.
Does Klaviyo-attributed revenue contribute to my CR?
Yes. Every session that fires a purchase event counts, regardless of which channel drove the session. To see CR by channel (including Email), use the GA4 Revenue by Channel view alongside GA4 Sessions by Channel. Note that GA4’s “Email” channel CR won’t equal Klaviyo’s claim because GA4 uses last-non-direct click and Klaviyo uses last-touch within 5 days.
Can I trust GA4’s “Today” CR?
Less than the rolling 7-day or 30-day numbers. GA4 has up to 4-hour event-ingestion delay, plus today’s data is incomplete, plus the tracking gap is structural. Use the rolling windows for trends; today’s number is an early-warning signal, not a measurement.
My GA4 CR is up but Shopify CR is flat. Is the lift real?
Usually it means either (a) you fixed a tagging issue that was previously suppressing GA4 conversions (good news, but the lift is artificial in the GA4 view), or (b) Google rolled out a Consent Mode v2 modelling improvement that increased modelled conversions for your account. Open the GA4 Tracking Gap vs Commerce card to see if the gap narrowed. If the gap narrowed, the lift is measurement-side, not behavioural.