Tracking · Guide
Meta CAPI setup for BD Shopify and WooCommerce (2026)
The exact CAPI setup I run for Bangladesh Shopify and WooCommerce stores in 2026: event dedup, PII hashing, cash-on-delivery event routing and the payback window you can expect on Meta CPA and ROAS after the switch.
Updated 2026-12-15.

Why CAPI matters more in Bangladesh than in the US in 2026
Bangladeshi stores have three signal-loss stacks working against them at once: iOS Safari (roughly 20 percent of BD traffic) with ITP stripping the pixel cookie, Chrome Android with Privacy Sandbox now active in Dhaka, and cash-on-delivery flows where the actual purchase happens 3 to 7 days after the ad click without ever hitting a thank-you page.
The browser pixel captures maybe 55 to 70 percent of these events, which is why Meta keeps reporting CPA that does not match your revenue. CAPI plus event dedup plus proper COD routing is the fix. Everything below is that setup.
Shopify: the fastest correct path
- Verify your store domain in Meta Business Manager. Without this, Aggregated Event Measurement caps at 4 events.
- Install the Meta sales channel from the Shopify App Store. Grant Business Manager access.
- Turn on Conversions API inside the app settings. Enable Advanced Matching and Automatic Advanced Matching.
- Configure your 8 AEM events, prioritising Purchase, Initiate Checkout, Add to Cart, then top of funnel.
- Wait 48 hours, then check Events Manager Diagnostics. All events should show "browser and server" delivery with dedup confirmed.
This handles roughly 90 percent of BD Shopify stores below ৳3L monthly ad spend. Above that threshold, move to GTM server-side for finer control over custom parameters and catalog matching.
WooCommerce: three viable stacks
Event dedup: the single setting most stores get wrong
Meta dedupes browser and server events by matching (event_name, event_id) within a two-hour window. If either side is missing the ID or the IDs do not match, Meta counts the event twice. On WooCommerce, the correct pattern:
- Generate a UUID inside your order-creation hook and store it as order meta.
- Echo that UUID as the pixel's eventID on the thank-you page.
- Pass the same UUID as event_id in the CAPI Purchase request from the server.
- Validate inside Events Manager Diagnostics: dedup rate should show above 95 percent within 48 hours.
COD event routing: the BD-specific move
Firing Purchase at checkout on a COD store teaches Meta to optimise for orders that get cancelled at the door. The correct pattern is a two-event flow:
- Lead / InitiateCheckout at checkout with a small custom value.
- Purchase fired server-side only when the order transitions to "delivered and paid" (Shopify order tag, WooCommerce order status hook).
This trains the algorithm on the money that actually landed, not the intent that got returned. In my BD audits this single change delivers the largest CAPI performance lift.
What CAPI actually returns
- EMQ score moves from typical browser 4 to 5 up to server-hashed 7 to 9.
- Purchase CPA drops 12 to 22 percent within 14 to 30 days on Shopify stores.
- ROAS lifts 15 to 30 percent within 30 days, larger on COD-heavy WooCommerce stores.
- Catalog ad relevance improves once content_ids match Meta's product feed cleanly.
- Attribution windows report closer to actual revenue, so reconciliation with Shopify or WooCommerce reports finally matches.
Meta CAPI Shopify WooCommerce FAQ 2026
Do I need Conversions API if I already have the Meta Pixel installed?
Yes. In 2026 the browser pixel alone catches roughly 55 to 70 percent of purchase events on iOS Safari and 70 to 85 percent on Chrome Android. CAPI closes that gap by sending the same event server-side with hashed customer data, lifting Event Match Quality from typical browser scores of 4 to 5 into the 7 to 9 range Meta rewards with lower CPA.
Shopify native Meta app vs GTM server-side CAPI: which is right for BD stores?
Below ৳3L monthly ad spend the Shopify Meta sales channel with Conversions API is enough. It ships with automatic event dedup and the built-in ID matching is decent. Above ৳3L, move to GTM server-side. You get access to the raw request, custom parameters like content_ids for catalog ads, and a single tagging server for Meta, TikTok, Google Ads and GA4.
How do I stop double-counting purchases when both pixel and CAPI fire?
Send the same event_id from both the browser and the server for every event. Meta then dedupes on that ID inside a two-hour window. Shopify's native integration handles this automatically. On WooCommerce, the standard pattern is generating a UUID at order creation, storing it on the order, echoing it to the pixel and to the CAPI request. Skipping dedup double-inflates ROAS by 40 to 90 percent on the reporting side.
What customer data should I hash and send with CAPI?
The five high-value fields are email, phone, first name, last name and external_id (usually the customer or Shopify customer_id). Also include client_ip_address, client_user_agent and fbp cookie automatically. All PII must be SHA-256 hashed before leaving your server. Sending all five lifts EMQ from around 5 to above 8 on most BD DTC stores I audit.
Does CAPI work with cash-on-delivery orders in Bangladesh?
Yes, and this is where CAPI matters most in BD. COD orders complete offline days after the ad click, so the browser pixel misses the actual revenue moment entirely. With CAPI, fire the Purchase event server-side when the order is marked delivered and paid, not at checkout. That single change tightens the feedback loop the Meta algorithm learns from and typically cuts CPA 15 to 25 percent inside 30 days on COD-heavy stores.
How do I set up Meta CAPI on WooCommerce without a developer?
PixelYourSite Pro or Independent Analytics Meta plugin handles it for most stores under 5,000 orders a month. Both include event dedup, hashed customer data and product catalog IDs out of the box. Above 5,000 orders or with custom checkout flows, hire a developer for the WooCommerce hooks or use a GTM server-side setup. Do not use free CAPI plugins that skip hashing or dedup, they create more attribution problems than they solve.
How long until CAPI improves Meta ad performance after setup?
Meta needs 7 to 14 days to relearn on the new signal. In my BD Shopify audits, CPA typically drops 12 to 22 percent by day 14, ROAS lifts 15 to 30 percent by day 30. If nothing has moved by day 21, the setup is wrong, usually a missing event_id causing dedup to fail or unhashed PII being stripped by Meta.
Do I still need iOS 14 opt-in prompt handling in 2026?
Yes for ATT-required apps, no for web pageviews. On the web, iOS 17 and 18 route the traffic through Private Relay and ITP regardless of what the user tapped years ago. CAPI plus Aggregated Event Measurement plus a proper first-party CDP is the current stack. iOS 14 as a discrete milestone stopped mattering around 2023, the ongoing problem is Safari and browser-level tracking prevention.
Frequently asked questions
Do I need Conversions API if I already have the Meta Pixel installed?
Yes. In 2026 the browser pixel alone catches roughly 55 to 70 percent of purchase events on iOS Safari and 70 to 85 percent on Chrome Android. CAPI closes that gap by sending the same event server-side with hashed customer data, lifting Event Match Quality from typical browser scores of 4 to 5 into the 7 to 9 range Meta rewards with lower CPA.
Shopify native Meta app vs GTM server-side CAPI: which is right for BD stores?
Below ৳3L monthly ad spend the Shopify Meta sales channel with Conversions API is enough. It ships with automatic event dedup and the built-in ID matching is decent. Above ৳3L, move to GTM server-side. You get access to the raw request, custom parameters like content_ids for catalog ads, and a single tagging server for Meta, TikTok, Google Ads and GA4.
How do I stop double-counting purchases when both pixel and CAPI fire?
Send the same event_id from both the browser and the server for every event. Meta then dedupes on that ID inside a two-hour window. Shopify's native integration handles this automatically. On WooCommerce, the standard pattern is generating a UUID at order creation, storing it on the order, echoing it to the pixel and to the CAPI request. Skipping dedup double-inflates ROAS by 40 to 90 percent on the reporting side.
What customer data should I hash and send with CAPI?
The five high-value fields are email, phone, first name, last name and external_id (usually the customer or Shopify customer_id). Also include client_ip_address, client_user_agent and fbp cookie automatically. All PII must be SHA-256 hashed before leaving your server. Sending all five lifts EMQ from around 5 to above 8 on most BD DTC stores I audit.
Does CAPI work with cash-on-delivery orders in Bangladesh?
Yes, and this is where CAPI matters most in BD. COD orders complete offline days after the ad click, so the browser pixel misses the actual revenue moment entirely. With CAPI, fire the Purchase event server-side when the order is marked delivered and paid, not at checkout. That single change tightens the feedback loop the Meta algorithm learns from and typically cuts CPA 15 to 25 percent inside 30 days on COD-heavy stores.
How do I set up Meta CAPI on WooCommerce without a developer?
PixelYourSite Pro or Independent Analytics Meta plugin handles it for most stores under 5,000 orders a month. Both include event dedup, hashed customer data and product catalog IDs out of the box. Above 5,000 orders or with custom checkout flows, hire a developer for the WooCommerce hooks or use a GTM server-side setup. Do not use free CAPI plugins that skip hashing or dedup, they create more attribution problems than they solve.
How long until CAPI improves Meta ad performance after setup?
Meta needs 7 to 14 days to relearn on the new signal. In my BD Shopify audits, CPA typically drops 12 to 22 percent by day 14, ROAS lifts 15 to 30 percent by day 30. If nothing has moved by day 21, the setup is wrong, usually a missing event_id causing dedup to fail or unhashed PII being stripped by Meta.
Do I still need iOS 14 opt-in prompt handling in 2026?
Yes for ATT-required apps, no for web pageviews. On the web, iOS 17 and 18 route the traffic through Private Relay and ITP regardless of what the user tapped years ago. CAPI plus Aggregated Event Measurement plus a proper first-party CDP is the current stack. iOS 14 as a discrete milestone stopped mattering around 2023, the ongoing problem is Safari and browser-level tracking prevention.
Want me to audit your CAPI setup?
Send Events Manager access and your store URL. I return a one-page report with EMQ scores, dedup health and the top 3 fixes inside four working hours.