If you run Facebook or Instagram ads in Bangladesh, your Ads Manager numbers are almost certainly lower than reality. Between iOS privacy limits, ad blockers, and cash-on-delivery orders that never touch a thank-you page, the browser Pixel alone loses a large share of conversions.
The fix Meta built for this is the Conversions API — usually called CAPI (and still widely searched as the Facebook Conversion API). Instead of relying only on the browser, your server sends events directly to Meta. This guide walks through the complete setup path we run for Bangladesh stores: from a fresh Pixel to a validated server-side pipeline.
What you need before starting
- A verified domain inside Meta Business Manager
- A Meta Pixel (now called a Dataset) firing PageView, ViewContent, InitiateCheckout, and Purchase
- A Google Tag Manager account — free, and you'll need both a Web and a Server container
- A way to point a subdomain CNAME at your tracking host (we use
connect.bonicbd.comin this guide) - A CAPI access token from Events Manager
If any of these are missing, set them up first — each step below assumes them.
Step 1 — Verify your domain and configure AEM
Inside Business Manager → Brand Safety → Domains, add and verify your store domain. Then in Events Manager, open Aggregated Event Measurement and rank your events with Purchase first.
Why this matters: without domain verification, AEM caps your configuration and iOS conversions get throttled before they ever reach reporting.
Step 2 — Keep the browser Pixel, but plan for server events
Do not remove the Pixel. Meta's recommended architecture in 2026 is browser + server together — the Pixel catches what it can, CAPI fills the gaps, and a shared event_id tells Meta the two are the same conversion.
Write down your event map before touching GTM:
| Event | Trigger | Value | ID source |
|---|---|---|---|
| ViewContent | Product page | No | Content ID |
| AddToCart | Cart action | Yes | Cart ID |
| InitiateCheckout | Checkout start | Yes | Cart ID |
| Purchase | Order success | Yes | Order ID |
That last column is the key: the order ID is your event_id, because it exists identically in the browser and on your server.
Step 3 — Create the GTM server container
In GTM → Admin → "+" → choose Server as the target platform. GTM gives you a container config string — copy it; the hosting layer uses it once and you never touch it again.
You can self-host this on Google Cloud, but that means managing Cloud Run billing, SSL, scaling, and monitoring yourself — the part most Bangladesh teams underestimate.
Step 4 — Point your tracking subdomain
Pick a subdomain like tracking.yourstore.com and add a single DNS record:
Type: CNAME
Name: tracking
Value: connect.bonicbd.com
TTL: 300 (or default)
Use DNS only (grey cloud) on Cloudflare — proxied records break SSL issuance. On BonicBD the certificate is issued automatically within about a minute.
First-party delivery is the whole point: a request to tracking.yourstore.com is your own domain, so ad blockers and iOS treat it very differently from a call to facebook.com.
Step 5 — Connect Meta CAPI to the server container
In Events Manager → your Pixel → Settings → Conversions API → generate an access token. In your server container, add the Meta CAPI tag (or configure it in the BonicBD dashboard): Pixel ID + access token, and map the incoming event data.
Step 6 — Preserve click IDs end to end
This is where most Bangladesh setups quietly fail. Meta matches server events using fbc/fbp cookies and the fbclid URL parameter — but between your landing page and checkout, redirects and page builders often strip them.
Click ID Restorer captures fbclid the instant the visitor lands, stores it redundantly (cookie + localStorage + IndexedDB), and re-attaches it to the server event weeks later if needed.
Step 7 — Handle COD orders correctly
Most Bangladesh ecommerce is cash-on-delivery — the order is confirmed by phone call, not a checkout page. A browser pixel never sees that conversion at all.
The correct pattern: fire Purchase server-side from your order-confirmation step — your order-management system, courier confirmation webhook, or the "order placed" event in your backend — not from a page the customer never visits.
Step 8 — Test, then watch EMQ
In Events Manager → Test Events, walk a real order end to end. You should see each event arrive twice (browser + server) and deduplicate into one. Then watch Event Match Quality — a healthy first-party setup typically climbs into the 7–9 range within days.
Check the dedup specifically: if Events Manager shows 2× purchases, your event_id isn't shared. If it shows half your real orders, your browser path is dropping.
Common mistakes we see in Bangladesh
- Pixel + CAPI without shared event_id → every purchase counts twice, ROAS looks fake-good, optimization learns from noise
- CAPI token pasted in the browser tag → the token is a secret; it belongs server-side only
track.oranalytics.subdomain names → some ad-block lists pattern-match these; usetracking.or a neutral name- Sending Purchase on checkout page-view → COD means the sale isn't real until the call-center confirms it
- Skipping Test Events → ten minutes there saves a month of bad reporting
FAQ
Is Facebook Conversion API the same as Meta CAPI? Yes — same product. Facebook renamed to Meta in 2021; older guides say "Facebook CAPI", newer ones say "Meta CAPI".
Does CAPI replace the Pixel? No. Run both with shared event_id deduplication — Meta's own documentation recommends the hybrid setup.
How much does CAPI setup cost in Bangladesh? DIY on Google Cloud runs $40+/month plus maintenance time. Managed platforms start around ৳1,000/month — see our pricing or the full Meta CAPI page.
How long until Meta learns from the new data? Expect the learning phase to re-run for ~7 days while Meta calibrates on cleaner signals.
The honest summary
CAPI isn't optional for serious Bangladesh advertisers anymore — it's how Meta counts what actually happened. The hard part isn't the API; it's the infrastructure around it: the subdomain, the deduplication, the click IDs, and knowing whether it worked.
If you'd rather not build that yourself, BonicBD runs the whole path on your own domain — and we audit existing setups on WhatsApp before you commit to anything.
Related reading: Meta CAPI setup checklist for Bangladesh · Click ID Restorer guide · Meta deduplication fix
Compare the BonicBD feature set, review the setup guide, or contact the team if you want help with a live server-side GTM rollout.