Skip to content
Shopify / Analytics

GA4 setup for Shopify in India (and why Shopify analytics mislead)

How to install GA4 on a Shopify store, wire up the events and conversions that matter, and read the numbers correctly — including why native Shopify analytics and GA4 will never fully agree, and why you should track conversions, not pageviews.

Tanuj Rajput

Web developer & one-operator studio

·12 min read
GA4 setup for Shopify in India (and why Shopify analytics mislead)

Install GA4 on Shopify through the Google & YouTube channel (or the gtag snippet), then verify in DebugView that page_view and purchase fire before trusting anything. Use Shopify as your revenue source of truth and GA4 as the behaviour and attribution layer. Track conversions and revenue by channel — not pageviews.

I build and maintain Shopify stores for D2C brands in India and abroad, and analytics is where I see the most confident wrong decisions get made. Founders read a number, believe it, and pour spend behind it — without knowing that GA4 and Shopify are measuring two different things. This is the practical setup, and the honest explanation of why the numbers never quite match.

How do I install GA4 on Shopify the right way?

There are two clean ways to get GA4 onto a Shopify store, and one messy way to avoid.

The recommended route — the Google & YouTube channel. In your Shopify admin, add the Google & YouTube sales channel and connect your Google account. It links your GA4 property, drops the tag site-wide, and — this is the important part — wires up enhanced ecommerce events (view_item, add_to_cart, begin_checkout, purchase) without you writing a line of code. On standard Shopify, this is the only supported way to see checkout behaviour, because the checkout pages are locked down and you cannot inject your own script there.

The manual route — the gtag snippet. Create a GA4 property in Google Analytics, copy the Measurement ID (it starts with G-), and paste the gtag snippet into your theme's theme.liquid, just before the closing </head>. This gets you page views and custom events, but not checkout events on standard Shopify — for that you still need the channel or Google Tag Manager plus Customer Events.

The messy way to avoid — two tags fighting. I regularly inherit stores running the Google channel and a hardcoded gtag snippet and a GTM container, all firing the same GA4 property. That double- and triple-counts page views and inflates every number. Pick one primary method. If you use GTM, remove the hardcoded snippet.

Here is how the install options compare for a typical Indian D2C store:

MethodSets up ecommerce eventsNeeds codeBest for
Google & YouTube channelYes (automatic)NoMost stores — start here
gtag snippet in themeNoYes (paste)Page views only, simple sites
Google Tag ManagerYes (with config)Yes (config)Multi-tool tracking, agencies
Shopify Plus Customer EventsYes (full checkout)Yes (JS)Plus stores wanting checkout depth

Whichever you choose, the job is not done at install. It is done when you have verified the events fire — which almost nobody does.

Which GA4 events and conversions actually matter?

GA4's model is events, not pageviews. Out of the box, and via the Google channel, you get the ecommerce funnel events. Your job is to decide which of them count as conversions (in GA4's newer language, "key events") so the platform optimises and reports around them.

For a D2C store, mark these as key events:

  • purchase — the only one that maps to money. Non-negotiable.
  • begin_checkout — the top of your highest-intent funnel step.
  • add_to_cart — intent signal, useful for landing-page and PDP diagnosis.
  • A custom lead event if you also capture emails, WhatsApp opt-ins, or a quote request. If your store funnels serious buyers to a conversation — say a project intake flow for a custom build — fire an event when that form is submitted so you can see which traffic produces qualified leads, not just orders.

Leave page_view, session_start, and scroll as plain events. They are context, not outcomes. The single most common analytics mistake I see on Indian D2C stores is a dashboard built entirely on sessions and pageviews, with purchase never marked as a key event at all — so GA4 is technically installed but answering the wrong question.

Here is what to elevate and what to ignore:

GA4 eventMark as key event?What it tells you
purchaseYesRevenue, the only outcome that pays you
begin_checkoutYesHigh-intent step; checkout drop-off
add_to_cartOptionalPDP and offer effectiveness
generate_lead (custom)Yes, if you capture leadsWhich traffic produces conversations
page_viewNoTraffic arrived — context only
scroll / session_startNoEngagement noise

Verify each one in DebugView. Turn on debug mode (the GA Debugger extension, or ?_gl debug), then click through your store: view a product, add to cart, place a test order. If purchase does not appear in DebugView with the correct value and currency: INR, your revenue reporting is broken and every downstream report is fiction. Fix this before anything else.

Why do Shopify analytics and GA4 never agree?

This is the question that eats founders alive, so let me be blunt: Shopify and GA4 will never show the same numbers, and that is correct behaviour, not a bug. They measure from different places using different rules.

Shopify counts server-side. When an order is paid, Shopify's servers record it. Ad blockers, consent banners, and browser privacy settings cannot hide a completed order from Shopify, because the order lives on Shopify's side, not in the shopper's browser. This is why Shopify's revenue and order count is the source of truth — it matches your payouts, your bank, and your GST filings.

GA4 counts browser-side. GA4 fires from JavaScript in the shopper's browser. That tag gets blocked by ad blockers (common on Indian Android), skipped when someone declines the consent banner, dropped on flaky mobile connections, and confused when a shopper browses on mobile then buys on desktop. Every one of those is a session or a purchase GA4 quietly loses.

They attribute differently, too. Shopify shows revenue against the source it recorded; GA4 uses a last-non-direct default attribution model and its own channel groupings. So even the sales GA4 does capture get credited to different channels than Shopify credits them to. Neither is lying — they are answering different questions.

Here is the honest expectation for a healthy Indian D2C store:

MetricShopify (server-side)GA4 (browser-side)Typical gap
Orders / purchasesFull count (truth)85–95% of ordersGA4 undercounts 5–15%
RevenueExact, matches payouts85–95% of revenueGA4 lower
Sessions / trafficBasic, own definitionDetailed, own definitionNot comparable 1:1
Channel attributionSource at order timeLast-non-direct modelOften disagree

If your GA4 shows within roughly 10–15% of Shopify on orders and revenue, your setup is fine — stop trying to reconcile them to the rupee. If the gap is 40%, something is broken: a missing or double-firing purchase event, a consent banner blocking everything, or a currency mismatch. That is worth investigating. A 12% gap is not.

The rule I give every client: Shopify tells you how much you made; GA4 tells you why. Report revenue from Shopify. Use GA4 to explain which channels, campaigns, and landing pages produced it and where the funnel leaks. The moment you try to report revenue from GA4, or average the two, your dashboard starts lying to you.

What about UTM discipline — do I still need it?

Yes, and it is where most Indian D2C tracking quietly falls apart. GA4 auto-classifies organic search and direct traffic reasonably well. It does not correctly classify your paid ads, email blasts, WhatsApp broadcasts, influencer links, or the QR code on your packaging — unless you tag them with UTMs. Untagged, they mostly collapse into "Direct" or "Unassigned," and you lose the ability to say which campaign made money.

A UTM is just five parameters appended to a link:

?utm_source=instagram&utm_medium=paid&utm_campaign=diwali_sale&utm_content=carousel_a

The discipline that matters:

  • Lowercase everything, always. GA4 is case-sensitive: Instagram, instagram, and INSTAGRAM become three separate sources and shred your reports. Pick lowercase and never break it.
  • Standardise utm_medium to a fixed vocabulary. Use paid, email, social, whatsapp, affiliate, referral — and only those. Do not let one person write cpc, another paid, and a third ppc for the same thing.
  • Tag everything that is not organic. Every WhatsApp broadcast, every influencer link, every "link in bio," every printed QR code. If you paid for the click or pushed it yourself, it needs a UTM.
  • Keep a shared UTM sheet. One spreadsheet, one naming convention, everyone building links pulls from it. This single habit fixes more attribution problems than any tool.

Without UTM discipline, GA4's channel report is fantasy and you will make budget decisions on noise. With it, you can finally answer the only question that matters: which rupee of spend produced which rupee of revenue.

How do I read GA4 to grow, not just report?

Installing GA4 and staring at the default "Reports" home is not analytics. Here is the small set of things I actually watch for a D2C store, and why.

Conversion rate by channel, not sessions by channel. A channel sending 10,000 sessions at 0.4% is worth less than one sending 1,200 at 3.2%. Sessions flatter; conversion rate tells the truth. Build a report with session source/medium as the row and conversion rate plus revenue as the columns.

The add-to-cart → begin-checkout → purchase funnel. This is your leak map. If add_to_cart is healthy but begin_checkout collapses, your cart or shipping/COD messaging is the problem. If begin_checkout is fine but purchase drops, it is your checkout — payment options, COD friction, or trust. This maps directly to the fixes in why your Shopify store isn't converting.

Landing-page conversion rate. Which entry pages turn visitors into buyers? Slow pages bleed here disproportionately — a story I unpack in why a slow Shopify store fails Core Web Vitals. If a high-traffic landing page has a low conversion rate, that is your highest-leverage fix.

First-touch source, not just last-click. GA4's default is last-non-direct, which over-credits the bottom of the funnel (branded search, retargeting) and starves the top (the Instagram reel that started the journey). Look at first-user source/medium alongside the default to see what actually introduces buyers to you.

The through-line: track conversions, not pageviews. Pageviews tell you traffic arrived. Conversions tell you it was worth paying for. A report built on the first is a vanity dashboard; a report built on the second is a growth tool.

Does GA4 on Shopify raise any India-specific concerns?

A few worth flagging, because they trip up Indian stores specifically.

Consent and the DPDP Act. India's Digital Personal Data Protection framework expects a visible consent mechanism and a privacy policy that covers analytics cookies. Implement Google Consent Mode so GA4 respects a shopper's consent choice rather than firing regardless. This also explains part of the Shopify–GA4 gap: shoppers who decline consent are invisible to GA4 but still counted by Shopify.

Never send PII into events. Do not push email, phone, or full name into GA4 event parameters. It violates Google's terms and creates a data-protection liability. If you need to stitch a lead to a person, do that in your CRM or Shopify — not in analytics event fields.

Currency and value. Confirm purchase events carry currency: INR and the correct value. If you sell internationally through Shopify Markets, GA4 will report a blend of currencies — decide up front whether you report in INR or a base currency, and be consistent.

Ad blockers are heavier here. Ad-blocker and privacy-browser usage on Indian Android is high, which widens the GA4 undercount. This is one more reason to anchor revenue to Shopify and treat GA4 as directional, not absolute.

What does a correct GA4-on-Shopify setup look like, end to end?

Pulling it together, a store I would sign off on has:

  1. One GA4 install method (usually the Google & YouTube channel), no duplicate tags.
  2. purchase, begin_checkout, and any lead event marked as key events, all verified in DebugView with correct INR value.
  3. Consent Mode live and a privacy policy covering analytics.
  4. A UTM convention — lowercase, fixed utm_medium vocabulary, shared sheet — applied to every non-organic link.
  5. A reporting habit built on conversion rate, funnel drop-off, landing-page conversion, and revenue by source — with Shopify as the revenue source of truth.

Most stores I audit fail on points 2 and 4: events installed but never verified, and UTMs applied inconsistently or not at all. Those two gaps alone are why so many founders make confident decisions on numbers that were never trustworthy. Fix the plumbing first; the insights follow.

What's next

If your GA4 and Shopify numbers are wildly apart, or you suspect you have been optimising against broken tracking, the fastest fix is to have someone audit the actual event flow and the funnel behind it. Tell me what you are seeing — the numbers, the store, and what decision hangs on them — through the project intake at /start, and I will tell you honestly whether it is a tracking bug, an attribution misunderstanding, or a genuine conversion problem worth fixing. No pricing pitch until we know what is actually wrong.

Sources

FAQ

Frequently asked questions

  • How do I add GA4 to a Shopify store?

    Create a GA4 property, copy the Measurement ID (starts with G-), and connect it through the Google & YouTube channel in Shopify, or paste the gtag snippet into your theme. The channel route also enables enhanced ecommerce events. Then verify in GA4 DebugView that page_view and purchase events actually fire before you trust any report.
  • Why do Shopify analytics and GA4 show different numbers?

    They count different things. Shopify's numbers are server-side and order-of-truth for revenue. GA4 is browser-side and loses data to ad blockers, consent banners, cross-device journeys, and its own last-non-direct attribution model. A 5-15% gap on sessions and revenue is normal and healthy. Treat Shopify as the money source of truth and GA4 as the behaviour and marketing-attribution layer.
  • Which GA4 numbers should I actually watch for a D2C store?

    Watch conversion rate by channel, add-to-cart to purchase drop-off, landing-page conversion, and revenue by first-touch source — not raw pageviews or sessions. Pageviews tell you traffic arrived; conversions tell you it was worth paying for. Build one report that maps each traffic source to its actual revenue and cost, and ignore vanity metrics.
  • Do I still need UTM parameters if GA4 tracks channels automatically?

    Yes. GA4 auto-classifies organic and direct traffic, but every paid, email, WhatsApp, influencer, and QR-code link needs manual UTMs or it lands in a messy "direct" or "unassigned" bucket. Consistent lowercase utm_source, utm_medium, and utm_campaign tags are the difference between knowing which campaign made money and guessing.
  • Does GA4 work with Shopify checkout in India?

    On standard Shopify, GA4 can only see checkout via the Google & YouTube channel's enhanced ecommerce, since the checkout pages are locked. On Shopify Plus you can add checkout tracking through Customer Events and the Checkout Extensibility APIs. Either way, verify the purchase event fires with the correct value and INR currency before trusting funnel reports.
  • Is GA4 free, and does it cover Indian data rules?

    GA4 is free at the volumes almost every Indian D2C store operates at. For India's DPDP Act, you still need a visible consent mechanism and a privacy policy covering analytics cookies. Use Google Consent Mode so GA4 respects consent choices, and avoid sending personally identifiable information like email or phone into event parameters.
  • Should I use GA4 or Shopify analytics for reporting revenue?

    Report revenue from Shopify. It records every paid order server-side and matches your payouts and GST filings. Use GA4 to explain that revenue — which channels, campaigns, and landing pages drove it, and where the funnel leaks. Mixing the two sources in one revenue number is where most Indian D2C dashboards go wrong.
Revision history· 1 entry
  1. August 18, 2026

    Initial post. Practical GA4-on-Shopify setup for Indian D2C — install, key events and conversions, why native Shopify analytics and GA4 disagree, UTM discipline, and what to actually watch.

Last updated August 18, 2026

shopifyanalyticsga4d2cindia