On this page · 12 sections
Google Analytics 4 (GA4) is now the only Google-supported web analytics platform — Universal Analytics stopped processing data in July 2024. Yet in Bangladesh, most eCommerce brands are still running GA4 in an unconfigured 'default' state that misses 40–60% of purchase events, doesn't distinguish bKash from card checkouts, and can't attribute Meta or TikTok traffic properly. This is the complete setup we use for Bangladeshi eCommerce brands doing BDT 5,00,000 to BDT 5,00,00,000 per month in online revenue.
Why GA4 setup in Bangladesh is different#
Bangladeshi eCommerce has three quirks that break default GA4 setups: (1) heavy Cash on Delivery (COD) which means 'purchase' on the site is really 'order placed' — actual revenue happens on delivery, (2) multiple payment gateways (bKash, Nagad, Rocket, cards via SSLCommerz/ShurjoPay/AmarPay, Stripe for international), each with a different callback and confirmation UX, and (3) mobile-first traffic where 78%+ of sessions come from Android under 3G/4G, so any performance overhead in tracking materially hurts conversion.
A default GA4 install misses all three. It counts every 'order placed' as a purchase (inflating revenue by 20–40% because BD COD return rates run 15–30%), can't tell you which payment method drives highest AOV, and adds 400–800ms of tracking latency on 4G connections. This guide fixes all three.
Step 1 — Create GA4 property with the right Bangladesh settings#
In analytics.google.com, create a new property. Set Reporting time zone to Asia/Dhaka (UTC+6), currency to BDT (Bangladeshi Taka). Both are irreversible in reports — pick correctly the first time. In Property Settings → Data collection, enable Google Signals only if you serve mostly signed-in Google users (rare in Bangladesh eCommerce) — otherwise leave it off to reduce sampled reports.
Set Data retention to 14 months (the maximum on free GA4). Default is 2 months, which cripples year-over-year analysis. Turn on Enhanced Measurement for scrolls, outbound clicks, site search, video, and file downloads — these are free and add rich engagement data with zero code.
Step 2 — Install via Google Tag Manager (never hardcode)#
Install GTM (googletagmanager.com/) on your site with two snippets — head and body. Then in GTM, add a GA4 Configuration tag firing on All Pages. Send Page View is on by default; leave it. Add fields to override cookie_domain (auto), send_page_view (true), and set user_properties for country ('BD'), city (dynamic), and payment_type when known.
Never install GA4 by pasting the gtag.js snippet directly on the site — you lose GTM's versioning, preview, and ability to add server-side tagging later. Every serious Bangladeshi eCommerce brand should run GA4 through GTM.
Step 3 — Enhanced ecommerce event architecture for BD#
GA4 requires you to send ecommerce events manually — nothing auto-populates on custom-built or heavily customised BD sites. The seven events every store needs: view_item_list, view_item, add_to_cart, remove_from_cart, begin_checkout, add_payment_info, purchase. Each fires with an items[] array containing item_id, item_name, price, quantity, item_brand, item_category.
For Bangladeshi COD-heavy stores, add two custom events: order_placed (fires on the thank-you page for every order regardless of payment) and order_confirmed (fires from a server-side callback when the order actually completes — payment received for prepaid, delivery accepted for COD). Split purchase into these two and your revenue reporting suddenly matches your bank statement.
- view_item_list → view_item → add_to_cart → begin_checkout → add_payment_info → purchase
- Custom: order_placed (all orders) + order_confirmed (revenue-verified)
- Every event includes items[] array with full product context
- currency: 'BDT' on every ecommerce event
Step 4 — Payment method tracking (the BD superpower)#
Add a custom event parameter payment_type to add_payment_info and purchase: 'bkash', 'nagad', 'rocket', 'card', 'cod', or 'international'. Register it as a custom dimension in GA4 (Admin → Custom definitions). Now every report can be sliced by payment method — AOV, conversion rate, LTV, refund rate.
This single data point often reveals BDT 5,00,000+/month optimisation opportunities. In our 2025 client audits: bKash checkouts had 22% higher completion rate than card, but card AOV was 2.4x higher. COD had 34% lower AOV and 24% return rate. Knowing this lets you route Meta ad delivery to card users for premium SKUs and bKash for volume SKUs.
Step 5 — GTM data layer for eCommerce#
Push a clean dataLayer.push({event: 'purchase', ecommerce: {...}}) on every ecommerce step. This is platform-specific: Shopify has a native data layer plus a customer events API; WooCommerce needs a plugin (GTM4WP is the standard); custom PHP/Laravel/Node sites need dev work but it's ~1 day for a competent developer.
In GTM, set up a GA4 Event tag per event, mapped to a Data Layer Variable for each field. Use a lookup table on payment_gateway to normalise 'SSLCommerz-bKash', 'ShurjoPay-bKash', 'bKash-Direct' all into 'bkash' before sending to GA4. Clean payment_type reporting is worth an extra hour of setup.
Step 6 — Consent Mode v2 for Bangladesh#
Google Consent Mode v2 became mandatory in Europe in 2024 and is best-practice globally in 2026. Bangladesh has no legal requirement yet, but implementing Consent Mode is now the safest default because it: (1) future-proofs for the upcoming BD Personal Data Protection Act, (2) improves cookie-blocked measurement via conversion modelling, (3) is required if you serve any international traffic.
Deploy a consent banner (Cookiebot, Osano, or a custom banner) and wire it to Consent Mode via GTM. Set default consent to 'denied' before user interaction and 'granted' after opt-in. Modelled conversions recover 15–30% of the data you'd otherwise lose to cookie rejection.
Step 7 — Server-side GTM for iOS performance#
Server-side GTM (sGTM) moves tracking calls from the browser to your own server. Benefits for Bangladeshi eCommerce: (1) fewer browser requests → faster site → higher conversion, especially on 3G/4G, (2) first-party cookies survive Safari ITP and iOS 17+ tracking prevention, (3) one server endpoint feeds GA4, Meta CAPI, TikTok Events API, and Google Ads Enhanced Conversions from one clean data source.
Deploy sGTM on Google Cloud Run (~USD 25/month for typical BD store traffic) or via a managed service like Stape.io (~USD 20/month). ROI is typically 3–8x within the first month from recovered conversion signal alone.
Step 8 — Google Ads and Meta linking#
Link your GA4 property to Google Ads (Admin → Product links → Google Ads). This enables Enhanced Conversions, imports GA4 conversion events into Google Ads, and lets you build audiences from GA4 for remarketing. Do the same for Search Ads 360 and Merchant Center if used.
GA4 does not natively link to Meta Ads, but you can use GA4 audiences via Google Ads for Google Display remarketing and set up parallel Meta Pixel + CAPI tracking (covered in our Meta Business Manager guide). For unified reporting, pull GA4 + Meta + TikTok into Looker Studio and blend on transaction_id.
Step 9 — Key reports every BD eCommerce brand should build#
Beyond default reports, build these five in GA4 Explore: (1) Payment Type performance — sessions, conversion rate, AOV, revenue split by payment_type, (2) Landing Page → Payment funnel — where users drop off between landing and payment, (3) City-level report — Dhaka vs Chittagong vs Sylhet performance, (4) Device Model report — Android budget devices vs iPhones vs mid-range, (5) COD vs Prepaid revenue variance — the delta between order_placed and order_confirmed.
These five reports typically reveal BDT 1,00,000–5,00,000/month optimisation opportunities each — better than most premium analytics tools sold in Bangladesh for USD 300+/month.
Step 10 — Data governance and quality assurance#
Set up DebugView (GA4 → Admin → DebugView) and QA every event before it hits production. Use GTM Preview mode with Tag Assistant Companion in Chrome. Have someone other than the developer test complete purchase flows on both Android and iOS, on both bKash and card, at least once per week for the first month.
Also enable Data Import for offline conversions — critical for COD-heavy Bangladeshi stores. Upload delivered-order data weekly (transaction_id + delivered/returned status) so GA4 and downstream Meta/Google Ads optimisation learn from actual revenue, not order placement.
Common GA4 mistakes we see in Bangladeshi eCommerce audits#
The top six: (1) two GA4 tags firing on the same page (double-counting), (2) purchase events firing on every thank-you page reload, (3) no payment_type dimension, (4) missing items[] arrays (so item-level reports are empty), (5) COD orders counted as revenue with no reconciliation, (6) no server-side tagging or Consent Mode. Fix all six and your GA4 becomes a genuine decision-making tool instead of a dashboard nobody trusts.
GA4 for Bangladeshi eCommerce is not plug-and-play — it needs deliberate configuration around COD, multiple payment gateways, and mobile-first traffic. Get the property settings right, install via GTM, ship a clean ecommerce data layer, track payment_type as a custom dimension, split order_placed vs order_confirmed, deploy Consent Mode and server-side GTM, and QA weekly. The reward is analytics that match your bank statement and inform every Meta/Google Ads decision downstream.
Questions Dhaka founders ask us
Is GA4 free for Bangladeshi eCommerce businesses?
Yes — Google Analytics 4 is free with generous limits (10 million events/month per property). GA4 360, the paid enterprise tier, is only needed at very high traffic (~10M+ monthly sessions). Every Bangladeshi eCommerce store from BDT 5,00,000 to BDT 50,00,00,000/month revenue can run on free GA4.
How do I track bKash and Nagad payments separately in GA4?
Add a custom event parameter payment_type to add_payment_info and purchase events with values like 'bkash', 'nagad', 'rocket', 'card', 'cod'. Register it as a custom dimension in GA4 Admin → Custom definitions. Then every report can be sliced by payment method — AOV, conversion rate, and refund rate by gateway.
Should I track COD orders as revenue in GA4?
No, not as a single purchase event. Bangladeshi COD return rates run 15–30%, so counting order-placement as revenue inflates reported revenue by 20–40%. Split into two events: order_placed (all orders) and order_confirmed (revenue-verified after payment or delivery). This matches your bank reality.
Do I need server-side GTM for a Bangladeshi eCommerce store?
Highly recommended once you're spending BDT 1,00,000+/month on ads. Server-side GTM recovers 20–35% of tracking lost to iOS 17+, ad blockers, and cookie rejection — and speeds up the site. Cost is ~USD 20–25/month on Google Cloud Run or Stape.io; ROI is typically 3–8x in month one.
What's the difference between GA4 and Meta Pixel?
GA4 tracks user behaviour across your site (pageviews, engagement, funnels, revenue attribution). Meta Pixel tracks conversions specifically for Facebook and Instagram ad optimisation. You need both — GA4 for analysis and cross-channel reporting, Meta Pixel + CAPI for feeding Meta's ad optimiser. They complement, they don't replace.
Can I connect GA4 to Google Ads for Bangladesh campaigns?
Yes and you should. Go to GA4 Admin → Product links → Google Ads. Linking enables Enhanced Conversions (recovers ~15% of iOS-lost signal), imports GA4 conversions into Google Ads as bidding events, and lets you build remarketing audiences from GA4 behaviour. Setup takes 5 minutes and unlocks significant campaign performance.
Want us to execute this for you?
Want us to run this for you?
Get a free 24-hour audit and a 90-day plan tailored to your brand.
Get a proposal →


