Shopify GA4 and Pixel Tracking in Singapore: Set Up Analytics You Can Trust
Short answer: Shopify's own Google and YouTube app and the official Meta and TikTok apps send purchase events to GA4 and ad platforms without custom code. The common problems are duplicate tags, missing consent handling and test orders counted as sales. Soodo sets up tracking correctly in every new Shopify store, from SGD 8,500.
For most Shopify stores, GA4 ecommerce tracking takes three steps. Create a GA4 property and web data stream, install Shopify’s Google & YouTube channel, and connect the stream through the app. Google calls this connection the preferred way to set up Shopify. The harder part comes afterwards: checking that purchases fire once, that revenue is plausible, and that consent settings are not quietly hiding half your visitors.
This guide covers the setup, the events you get, when to bring in Google Tag Manager, and how to test before you trust a single report. It is written for Singapore brand owners who want numbers they can make decisions with.
TL;DR
- Use the Google & YouTube channel first. It sends the standard funnel from page_view to purchase without code.
- Do not add a second GA4 tag or a GTM ecommerce setup on top of it. Shopify warns this can duplicate page views, carts and purchases.
- Validate in DebugView and Realtime, then place a real test order. Standard reports can take 24 to 48 hours to fill.
- GA4 will not match Shopify’s order totals exactly. Treat Shopify as the ledger and GA4 as the behaviour layer.
- If you sell abroad, set up Shopify’s customer privacy banner by region and confirm consent signals reach Google.
Table of Contents
- What you need before you start
- Connect GA4 through the Google & YouTube channel
- Which ecommerce events you actually get
- Native integration, custom pixel or GTM?
- Test before you trust the data
- Why GA4 and Shopify revenue never match exactly
- Consent and privacy for Singapore stores
- Our perspective: measure first, then optimise
- When to bring in an expert
- FAQ
- Sources
What you need before you start
Google lists the requirements for the Shopify connection: a Google sign-in, an active Shopify account, a GA4 property, a web data stream and the Tag ID. A Merchant Center connection is not needed to finish GA4 setup. All of this is in Google’s Shopify guide.
Two small decisions save trouble later:
- Own the property. Create the GA4 property under a Google account the business controls, not a freelancer’s or an old agency’s. We regularly see stores whose analytics sits in a former developer’s account.
- Set the currency and time zone. Pick SGD and Singapore time if that is how you report. Mismatches here are a common reason GA4 and Shopify disagree on daily revenue.
Shopify’s own Google Analytics 4 setup page walks through the same prerequisites if you prefer the platform’s version.
Connect GA4 through the Google & YouTube channel
- In GA4, create a property and a web data stream for your store domain. Copy the Tag ID that starts with G-.
- In Shopify admin, install the Google & YouTube channel and sign in with the Google account that owns the property.
- Connect the Analytics web stream inside the app. Pick the property you created.
- Publish, then browse your store and open GA4 Realtime to confirm you appear.
Manual entry of the Google tag is the alternative. Google positions it for stores that need multiple properties or cannot use the connection flow. If you have no such reason, stay with the connection.
One gotcha from merchant forums: if GA4 shows only automatic events such as page_view and scroll, check that the property is actually linked inside the app and that no separate GA tag is also installed. Replies in this Shopify Community thread point to those same two checks, plus testing with a real published product.
Which ecommerce events you actually get
People search for “enhanced ecommerce” because that was the Universal Analytics name. In GA4 it is simply the set of recommended ecommerce events. With the native Shopify integration, the standard journey includes page_view, search, view_item, add_to_cart, begin_checkout, add_payment_info and purchase. Google’s documentation also describes an expanded range, such as view_item_list when a collection is viewed.
For reference, Google recommends this fuller list for deeper measurement: view_item_list, select_item, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase, refund, view_promotion and select_promotion. These populate GA4’s ecommerce dimensions and metrics and can be used in standard reports, Explorations, BigQuery and the Data API.
| Funnel stage | GA4 event | What it tells you |
|---|---|---|
| Browse | view_item_list, select_item | Which collections and products attract clicks |
| Consider | view_item, add_to_cart | Product page appeal and add-to-cart rate |
| Checkout | begin_checkout, add_shipping_info, add_payment_info | Where shoppers drop out of checkout |
| Buy | purchase | Revenue, transaction count, product performance |
| After | refund | Net performance (needs extra work, see below) |
Why event names matter
GA4 builds its ecommerce reports around recognised event names. A custom event called product_added may fire perfectly well, but it will not behave like add_to_cart in the reports. Keep Google’s names and parameters exactly.
The payload matters too. Google recommends sending currency whenever you send value, plus a transaction ID and a complete items array. Missing currency or transaction IDs makes reconciliation much harder. The items array also takes up to 27 custom parameters on top of the prescribed ones, which is useful for attributes such as margin group or merchandising category.
What native tracking does not cover
The native connection handles the core funnel. It does not automatically represent every business-specific event or every promotion and refund requirement. Typical gaps for Singapore stores:
- Refunds and cancellations processed in Shopify admin, which GA4 does not see unless you send them.
- Subscription or pre-order flows with their own logic.
- Custom product attributes you want to analyse, such as bundle type.
- Clicks on a WhatsApp button, which many local shoppers use before buying.
Native integration, custom pixel or GTM?
Google Tag Manager is a tag-delivery tool, not a replacement for GA4. Shopify recommends its built-in integration because it contains the logic for Enhanced Ecommerce data. Layering GA4 through GTM on top of it is the most common cause of double-counted purchases.
The pragmatic order is:
- Native channel for the standard funnel.
- Custom pixel for exceptional requirements. Shopify’s checkout runs in a sandbox, so a custom pixel means recreating events by hand that GA4 would otherwise infer. Shopify also directs merchants to custom web pixels rather than deprecated checkout.liquid or old additional-script methods.
- GTM only when there is a clear governance reason: several marketing vendors, a team that publishes tags without a developer, or a need for one container across properties. Shopify has a tutorial for setting up GTM as a custom pixel.
If you go the GTM route, switch the native GA4 connection off first so only one system owns the purchase event. If you are weighing up tooling and want a broader view of how Shopify’s measurement and SEO tools fit together, this Shopify SEO academy is a useful companion read.
The same rule applies to ad pixels. Our guide to setting up the TikTok pixel on Shopify explains how duplicate firing inflates conversions, and the logic is identical for GA4.
Test before you trust the data
Google’s guidance is that data typically begins appearing within 24 to 48 hours once events are implemented and users interact with the store. DebugView and Realtime are the right places to validate first, not the standard reports.
Here is the QA routine we would run on a new store:
- Open GA4 DebugView with a debug-enabled browser session.
- Walk the journey: collection, product, add to cart, begin checkout, shipping, payment.
- Place a real low-value order, then refund it in Shopify.
- Confirm one purchase event, with the right transaction_id, currency (SGD) and value.
- Reload the thank-you page. The purchase should not fire a second time.
- Repeat with accelerated checkout buttons and, if you use one, a post-purchase upsell.
Steps 5 and 6 matter because of how Shopify’s event works. checkout_completed normally fires once, typically on the Thank you page, but it may fire on a post-purchase upsell page instead, and may not fire if the expected page fails to load. A completed checkout is not a guaranteed purchase event.
Why GA4 and Shopify revenue never match exactly
GA4 measures tagged behaviour and transaction payloads. Shopify remains the operational source for orders. Google’s ecommerce documentation and Shopify’s guidance both point to the usual causes of gaps: consent choices, ad blockers, checkout behaviour, refunds, time zones, currencies and implementation errors.

A sensible habit is to compare weekly totals rather than individual days. A gap of a few percent that stays stable is normal. A gap that suddenly widens usually means a broken tag, a duplicated tag or a consent change. Use Shopify reports for finance and stock, and GA4 for funnels, channels and product behaviour.
Consent and privacy for Singapore stores
Singapore’s PDPA has no dedicated cookie law, but analytics cookies tied to an identifier can fall within its scope, and consent is one of its obligations. If you sell to the EU, the UK or other regions, their rules can apply too. Check your obligations with a qualified adviser if you are unsure.
On the technical side, Shopify states that cookie banner and data-sharing settings can be managed per region through Customer Privacy settings. Google explains how to set up Shopify to obtain user consent, and says Shopify’s Google & YouTube conversion setup can work automatically with a compatible consent management setup.
The effect on your numbers is real. Under Google’s consent mode, when analytics_storage is denied, Google does not read or write first-party analytics cookies and may send cookieless pings instead. GA4 may model some of the gaps.
This changes how you read conversion rate. A drop after you add a banner is not automatically a design failure. Separate real funnel deterioration from a change in measurement coverage before you redesign anything. We cover the front-end side in our guide to mapping your cookie consent UI to the Customer Privacy API and PDPA.
Our perspective: measure first, then optimise
We have consulted on over 100 Shopify stores, and the pattern is consistent. Owners ask us for a redesign when what they need first is trustworthy data. A conversion rate built on duplicated purchases or missing consent coverage sends you in the wrong direction, and you pay for fixes to problems that do not exist.
Our view is simple. Use the native integration until you have a specific reason not to. Name that reason in writing before anyone adds GTM. Test with a real order every time you change themes, apps or checkout settings. And keep one person accountable for the GA4 property, ideally you.
As a founder-led agency, we also care about what the data is for: deciding which pages to fix, which products to push and which channels to fund. If you want to see how we think about baselines, read our piece on measurement-first conversion rate benchmarks.
— Soodo
When to bring in an expert
Google makes a useful distinction: Shopify provides built-in ecommerce events, but a developer is still needed when the business wants features beyond the platform’s standard functionality. That is the practical line between a straightforward connection and a tracking project.
You probably do not need help if you run a standard theme, one GA4 property and one checkout. You probably do if you are migrating from WooCommerce or Magento, running several markets, using custom checkout logic, or seeing purchase numbers you cannot explain.
Our Shopify revamp service starts from SGD 3,000 and includes the measurement checks that make design changes measurable. If you are rebuilding, tracking is part of the plan from day one on a new Shopify website, which starts from SGD 8,500. For stores moving platforms, migration starts from SGD 6,000. Historical Universal Analytics data should not be treated as a live baseline, so we set the new GA4 property up before the switch.
Not sure which applies? Message us and we will tell you honestly whether you need a project or just a checklist. Our Shopify optimisation checklist is a free place to start.

Setting up the TikTok Pixel
How to choose between the official app, third-party apps, and custom pixels
The official TikTok sales-channel app is the right starting point for the vast majority of Shopify merchants. It connects your store to TikTok Business and Ads Manager, and Shopify handles pixel installation and event mapping automatically once you complete onboarding. There’s no code to touch, and Shopify’s App pixels documentation confirms this runs through the sandboxed Shopify Web Pixels API, which is the supported and secure method for web tracking.
Third-party pixel apps earn their keep when you’re running multiple ad platforms at once or need server-side tracking. Many implement TikTok’s Events API alongside the standard browser pixel, which matters because pairing server-side and web pixels together improves how many customer events actually reach TikTok, particularly with iOS privacy restrictions and ad blockers thinning out browser-only data.
A custom pixel through Google Tag Manager sits at the far end of the spectrum: maximum flexibility, but you’re responsible for correctly subscribing to Shopify’s customer events and mapping every parameter yourself.
| Official TikTok app | Third-party pixel apps | Custom pixel / GTM | |
|---|---|---|---|
| Installation complexity | Low, guided onboarding | Moderate, app-specific setup | High, manual configuration |
| Server-side / Events API | Limited | Often included | Possible, but you build it |
| Multi-pixel support | One TikTok pixel | Usually yes | Yes, fully custom |
| Cost | Free to install | Typically subscription-based | Free tool, but needs developer time |
| Ease of testing / debugging | Straightforward with Pixel Helper | Varies by app | Requires manual verification |
A few things worth weighing before you commit to a route:
- If you only advertise on TikTok and nowhere else, the official app removes almost all the setup risk.
- Running Meta, Google, and TikTok pixels together usually justifies a third-party app or a GTM container.
- Server-side tracking is worth the extra effort once ad spend is significant enough that missed conversions cost real money.
- Custom pixels make sense mainly when your developer team already manages tracking through GTM for other platforms.
How do you set up the TikTok Pixel on Shopify?
Getting the pixel firing correctly depends on which path you’ve chosen. Here’s how each one actually plays out in the Shopify admin.
Installing the TikTok sales channel (the recommended default):
- In your Shopify admin, go to Sales channels and click the plus icon to add a new channel.
- Search for and add TikTok.
- Connect your TikTok Business account and Ads Manager when prompted.
- Follow the onboarding flow, TikTok will ask you to confirm your ad account, pixel, and catalogue settings.
- Shopify automatically installs the pixel and maps standard events (ViewContent, AddToCart, InitiateCheckout, Purchase) without you writing any code.
Adding a custom pixel manually:
- Go to Settings > Customer events in your Shopify admin.
- Select Add custom pixel, name it, and paste your tracking JavaScript into the code window.
- Save and connect the pixel, then subscribe to the specific customer events you want tracked.
- Remove any old pixel snippets from theme files first, Shopify’s custom pixel guidance is explicit that leftover code causes double counting.
Using Google Tag Manager as a custom pixel:
- Install your GTM container through the custom pixel option in Customer events.
- Subscribe to Shopify events using
analytics.publishand map them to your TikTok tags inside GTM. - Follow Shopify’s GTM tutorial closely, event names and parameters need to match exactly or TikTok will receive incomplete data.
Pro Tip: Before you touch any custom code, check whether your theme already fires a manual TikTok snippet from a previous setup. Installing a second pixel on top of an old one is the single most common cause of inflated conversion numbers we see in Shopify audits.
How do you test and debug a TikTok Pixel on Shopify?
Never assume a pixel is working just because the install finished without errors. Two tools do the real verification work: Shopify Pixel Helper, which shows events firing in real time as you browse your own store, and TikTok Test Events inside Ads Manager, which confirms TikTok actually received what your store sent.
Run through a full purchase journey (view a product, add to cart, start checkout, complete an order) while watching both tools simultaneously. An effective check pairs browser-side confirmation with server-side logs: the same purchase should appear in both your Shopify orders and TikTok’s Events Manager, and a mismatch usually points to a dropped event rather than a lost sale.
Common problems to check for:
- Missing value parameters on AddToCart or ViewContent events, TikTok can’t optimise for ROAS without currency and value data attached.
- Duplicate events, usually caused by manual pixel code left in
theme.liquidor in Additional Scripts under checkout settings alongside the app-installed pixel. - No AddToCart firing at all, often a theme conflict where a custom “add to cart” button bypasses Shopify’s standard event triggers.
If a fix doesn’t resolve within an hour of troubleshooting, reinstalling the app on a fresh Dawn theme copy usually isolates whether the problem is app-side or theme-side.
Which Shopify privacy settings can block your TikTok Pixel?
Even a correctly installed pixel can fail silently if your consent settings don’t line up with it. Shopify’s Customer Privacy controls determine whether marketing and analytics pixels are allowed to fire at all, and if your cookie banner doesn’t sync consent choices to Shopify through the Customer Privacy API, the pixel may stay dormant even after a visitor accepts cookies.
Worth checking before you assume a tracking gap is a technical bug:
- Confirm your Permission and Data sale settings under Customer privacy allow marketing and analytics pixels where it’s lawful to do so.
- Verify your cookie consent banner actually calls the Customer Privacy API rather than just displaying a banner with no backend connection.
- Document how consent settings differ by region, requirements under UK, EU, and other frameworks aren’t identical.
Pro Tip: Test your consent flow in an incognito window from a fresh session. If the pixel fires before you’ve clicked “accept” on the cookie banner, your consent sync isn’t wired up correctly, regardless of what your privacy policy says.
Specific legal thresholds vary by jurisdiction, so treat this as a starting checklist rather than legal advice, and loop in counsel for anything region-specific.
Tracking for Singapore stores
- One source per platform: use the official app and remove old hard-coded tags so purchases are not counted twice.
- Consent: under the PDPA, explain tracking in your cookie banner and privacy policy, and check tags respect consent.
- Currency: make sure revenue reports in SGD so it matches your Shopify reports.
- Check with a real order before you trust the numbers.
If your reports and Shopify sales do not match, a Shopify revamp includes a tracking check. New stores get it from day one in a new Shopify build.
FAQ
Does Shopify set up GA4 ecommerce tracking automatically?
Not on its own. You need a GA4 property and web data stream, then you connect it through the Google & YouTube channel. Once connected, the standard funnel events, including purchase, are sent without code.
Do I need Google Tag Manager for GA4 on Shopify?
Usually not. Shopify recommends its built-in integration for Enhanced Ecommerce data. Use GTM only when you have a clear reason, such as managing several vendors’ tags, and then turn off the native GA4 connection to avoid duplicates.
How long until ecommerce data appears in GA4?
Google says data typically appears within 24 to 48 hours of correct implementation and real visits. Use DebugView and Realtime to check events straight away rather than waiting for standard reports.
Why is GA4 revenue different from my Shopify sales?
GA4 measures tagged behaviour, so consent choices, blockers, refunds, currency and time zone differences all create gaps. Duplicate or missing tags can widen them. Use Shopify as the source of truth for orders and compare GA4 with it weekly.
Sources
- Shopify: Set up your Google tag, Analytics Help
- Set up ecommerce events, Analytics Help
- Measure ecommerce, Google for Developers
- Shopify Help Center: Google Tag Manager
- Shopify Help Center: Create a Google Tag Manager custom pixel
- Shopify Help Center: Setting up Google Analytics 4
- Shopify.dev: checkout_completed
- Analytics Help: data availability guidance
- Analytics Help: Set up Shopify to obtain user consent
- Analytics Help: Consent mode reference
- Shopify Help Center: Customer privacy settings
- Shopify Community: Enabling all events in GA4
- Kukie: Singapore PDPA cookie consent guide