Loading tutorials…
Loading tutorials…
Most BigCommerce stores install GA4 in 5 minutes — but only fire half the ecommerce events. Reports show pageviews but miss add_to_cart, begin_checkout, and item-level revenue. This is the full enhanced-ecommerce setup that actually drives decisions.
Who this is forBigCommerce owners who want real funnel data: which products drive revenue, where shoppers drop off, which channels actually convert. Especially relevant if you're spending on Google Ads and need accurate conversion data for Smart Bidding.
What you'll need
Step 1
analytics.google.com → Admin → Create property (or find existing). Choose Web stream, get the Measurement ID (G-XXXXXXXXXX).
Go to analytics.google.com. If new to GA4: click "Create" → Account → fill business name → Create Property → name your property → Web → enter your store URL.
If you have an existing GA4 property: Admin (bottom left gear) → Property → Data Streams → Web → click the existing stream OR add a new one if you have multiple stores.
Copy the Measurement ID — it starts with "G-" followed by 10 alphanumeric characters (e.g., G-XYZ123ABC4). This is what BigCommerce needs.
Note the property timezone. If your store is in EST but GA4 was created with UTC, all reports show data shifted by 5 hours. Set it to match your business timezone now — changing later resets some historical data.
Disable "Google signals" if you do not want Google to attempt cross-device user matching (privacy-conservative stores often disable this). Most ecommerce stores leave it on for better attribution.
Step 2
BigCommerce admin → Storefront → Web Analytics → Google Analytics 4. Paste the Measurement ID. Save. GA4 auto-installs on every page.
BigCommerce admin → Storefront → Web Analytics. Find the "Google Analytics 4" tile (separate from legacy "Google Analytics" which is for Universal Analytics — deprecated).
Click "Configure." Paste your G-XXXXXXXXXX Measurement ID. Save.
BigCommerce auto-injects the GA4 gtag JavaScript into every storefront page header. The default install fires: page_view (every page), view_item (product detail), add_to_cart, begin_checkout, purchase (Thank You page).
Critically, BigCommerce native integration fires these with the correct enhanced-ecommerce parameters: item_id, item_name, item_category, price, quantity, currency, value. Without these, GA4 reports show pageviews but no item-level revenue.
Do NOT also install GA4 via Google Tag Manager OR custom theme HTML. Doing so creates duplicate tag firings and breaks event deduplication. Native is the only install path.
Step 3
GA4 → Reports → Realtime. Open your store in another tab. Walk through home → product → add to cart → checkout. Confirm each event appears in Realtime with correct parameters.
Open GA4 → Reports → Realtime. Open your storefront in another browser tab (same browser is fine but use incognito to avoid your own GA4 exclusion filters).
Trigger events one at a time, watching Realtime:
- Visit home page → page_view appears within 30 seconds.
- Visit a product page → view_item appears with item_id, item_name, currency, price.
- Add to cart → add_to_cart appears with items array (including the product just added) and total value.
- Click "Check Out" → begin_checkout appears.
- Complete checkout → purchase appears with items array, total value, transaction_id.
If any event is missing in Realtime, the BigCommerce → GA4 integration has a problem. Re-check the Measurement ID and re-save. Wait 5 minutes for propagation.
Step 4
GA4 → Admin → Events → find "purchase" → toggle "Mark as key event." This is what enables purchase data to flow into Google Ads conversion imports.
GA4 → Admin → Events. After your test purchase, "purchase" should appear in the events list (may take 24 hours).
Toggle "Mark as key event" (formerly "Mark as conversion") for "purchase." This designates Purchase as the primary business outcome.
Also mark these as key events if relevant: begin_checkout (for funnel reporting), generate_lead (if you have lead-magnet forms), sign_up (for account creation as a soft conversion).
Don't over-mark. Every key event becomes a conversion target in Google Ads — too many dilute optimization signal. 1 primary + 1-2 secondary is the right number for most ecommerce stores.
After marking, the event icon changes (small flag). Reports → Engagement → Conversions now includes purchase counts and value.
Step 5
GA4 → Admin → Google Ads Links → link account. Import the "purchase" key event as a Google Ads conversion. Smart Bidding can now optimize toward GA4 purchase signal.
GA4 → Admin → Product Links → Google Ads Links → "Link."
Choose your Google Ads account. Confirm linking. Enable "Personalized advertising" and "Auto-tagging" — both are needed for accurate attribution.
In Google Ads → Goals → Conversions → "+ New conversion action" → "Import" → "Google Analytics 4 properties" → select your property → check "purchase" event → Import.
Now Google Ads has the GA4 purchase event as a conversion action. This is the cleanest path for Smart Bidding to optimize toward — better than separately tracking purchases via the Google Ads tag because GA4 has richer attribution data.
Wait 24-48 hours for the first imported conversions to appear in Google Ads → Conversions. Check status shows "Recording."
Step 6
GA4 → Admin → Data Streams → Web stream → Enhanced measurement (all ON). Then Admin → Data Filters → exclude internal traffic via IP filter.
GA4 → Admin → Data Streams → click your web stream. Find "Enhanced measurement" section. Confirm all toggles are ON: Page views, Scrolls, Outbound clicks, Site search, Video engagement, File downloads, Form interactions.
Enhanced measurement adds automatic events without requiring code — gives you free scroll-depth and outbound-click tracking that are useful for content pages.
Internal traffic exclusion: GA4 → Admin → Data Streams → web stream → "Configure tag settings" → "Define internal traffic" → add your office/home IP as "internal."
Then GA4 → Admin → Data Filters → "Create Filter" → name "Internal Traffic" → Filter operation "Exclude" → State "Active." Save.
Without internal exclusion: your own testing inflates pageviews 10-30%. Conversion rate reports look artificially low. Heatmaps show you, not customers.
Step 7
GA4 default reports do not show product-level revenue well. Build a custom Explore report: Items by Category, Source/Medium → Purchase Revenue.
GA4 → Explore (left sidebar) → "Blank" → create a new exploration. Name it "Ecommerce Pulse."
Add dimensions: Item name, Item category, Session source / medium, Device category.
Add metrics: Items purchased, Item revenue, Sessions, Conversions, Ecommerce purchases.
Build a Free Form report: rows = Item name, columns = Source / medium, values = Item revenue. This single report answers: which products generate revenue from which channels.
Save the report and bookmark it. The default GA4 reports buried in "Monetization → Ecommerce purchases" are useful but not as actionable as a custom Explore.
Run this report monthly. Patterns emerge: 'Product X is 80% of Meta revenue, 20% of Google.' Then you reallocate budget intentionally.
Common mistakes
Installing GA4 via theme custom HTML AND native integration
What goes wrong: Both fire. Every event counts twice. Reports show inflated traffic and 2x revenue. Bidding strategies optimize against fake numbers. Trust in the data collapses within 60 days.
How to avoid: Remove the custom HTML GA4 install from the theme. Keep only the native BigCommerce integration. Validate with the GA4 DebugView that events fire exactly once.
Forgetting to mark Purchase as a key event
What goes wrong: GA4 records purchases but they are not flagged as conversions. Cannot import into Google Ads. Cannot use as Smart Bidding target. Smart Bidding has no signal and bids by default rules. CPCs spike, ROAS tanks.
How to avoid: GA4 → Admin → Events → "purchase" → toggle "Mark as key event." Re-import into Google Ads.
Not excluding internal traffic
What goes wrong: You and your team contribute 15-30% of pageviews. Bounce rate looks higher than it is. Conversion rate looks lower than it is. Internal staging URLs appear in 'Top pages' reports.
How to avoid: GA4 → Admin → Data Streams → "Define internal traffic" with your IP. Admin → Data Filters → "Internal Traffic" filter set to Active.
Using Universal Analytics tracking ID (UA-XXXXXX) instead of GA4
What goes wrong: Universal Analytics stopped processing data July 2023. UA-tagged data goes nowhere. You have zero analytics for months without realizing because the integration shows 'Connected.'
How to avoid: Confirm the Measurement ID starts with "G-" not "UA-". If it starts with UA-, you are on the legacy property — create a new GA4 property and re-paste the G- ID into BigCommerce.
Skipping the test purchase validation
What goes wrong: GA4 looks connected, page views accumulate, but purchase event never fires. You ship a month before noticing. All historical ecommerce data is missing items array, transaction_id, and revenue.
How to avoid: Always validate with one real test purchase: walk through the entire funnel, watch Realtime in GA4. If purchase does not appear with items + value within 30 seconds, the integration is broken.
Trusting GA4 numbers without cross-checking with Shopify/BigCommerce admin
What goes wrong: GA4 reports 80 orders this week. BigCommerce admin shows 95. The 15-order gap is uninvestigated. Decisions are made from incomplete data.
How to avoid: Monthly reconciliation: GA4 purchase count vs BigCommerce admin order count. Discrepancies under 5% are normal (ad blockers, consent rejections). Over 10% means integration issues — investigate.
Recap
Done — what's next
How to set up a BigCommerce store from scratch
Read the next tutorial
Hand it off
GA4 setup looks simple and is genuinely deep once enhanced ecommerce, conversions, attribution, and reporting are wired correctly. A vetted BigCommerce specialist can install, validate, and build a usable reporting setup in one session at $14-16/hr — typically $200-400 total, plus ongoing monthly reporting at $150-300/mo.
See specialist rates
No. The BigCommerce native GA4 integration is more reliable than GTM-installed for standard ecommerce. Use GTM only if you have a specific need: custom event tracking beyond ecommerce, multiple analytics platforms via one container, or A/B test events. For most stores, native is better.
No. Expect 90-95% match. The gap is ad blockers, consent banners blocking GA4, and customers completing purchase across sessions where attribution is incomplete. Above 10% gap usually means a real integration problem; under 10% is normal.
GA4 starts collecting from the moment you install. There is no retroactive history. If you switched from Universal Analytics, that historical data does NOT migrate — UA reports are read-only and will be deleted by Google eventually. Export anything you need from UA before it goes away.
Universal Analytics stopped processing data in July 2023. You cannot use it for new data. If you have a UA property, treat it as read-only historical reference and migrate fully to GA4.
GA4 uses data-driven attribution (DDA) by default — more accurate than the last-click most ad platforms default to. But each ad platform also uses its own platform-specific data. Expect: GA4 shows lower channel-specific conversion counts than Meta's in-platform reporting, because Meta uses view-through credit GA4 doesn't have. Both are 'right' — they measure different things.
For most multi-store BigCommerce setups: yes. Separate properties = clean reports per brand. For multi-region single-brand setups: one property with separate Data Streams per region works and lets you compare regions easily.
BigCommerce
Most new BigCommerce stores go live with broken tax rules, missing shipping zones, and unverified payment flows. Then the first 30 orders surface every gap one customer at a time. Here's the systematic setup that catches these before launch.
BigCommerce
Most BigCommerce stores 'install Meta Pixel' and call it done — but without Conversions API (CAPI) and event deduplication, you lose 20-40% of attribution on iOS and ITP. This is the full setup that ad-platform optimization actually needs.
Google Analytics 4
GA4 isn't hard to install — it's hard to install *correctly* so the data is actually usable six months from now. This is the walkthrough that prevents the rebuild most owners do at month four.
Google Analytics 4
Ecommerce tracking in GA4 isn't optional — it's the foundation of every revenue report, ROAS calculation, and ad-platform optimization decision. Done right it pays back forever. Done wrong it produces numbers that everyone in the org argues about for months.
Google Analytics 4
Linking these two correctly is what makes Google's stack actually function as a stack. Done wrong, you'll have two systems that disagree about reality for years. Here's the right setup, in order.