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.

    Md Morshed Parvej Patwary
    By
    Updated · Next review

    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

    1. Verify your store domain in Meta Business Manager. Without this, Aggregated Event Measurement caps at 4 events.
    2. Install the Meta sales channel from the Shopify App Store. Grant Business Manager access.
    3. Turn on Conversions API inside the app settings. Enable Advanced Matching and Automatic Advanced Matching.
    4. Configure your 8 AEM events, prioritising Purchase, Initiate Checkout, Add to Cart, then top of funnel.
    5. 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

    PixelYourSite Pro (recommended for most)
    One-time BDT 8,500 to 12,000 licence, handles pixel + CAPI + event dedup + hashed PII + WooCommerce hooks. Ideal for stores under 5,000 orders a month.
    Independent Analytics Meta plugin (free tier viable)
    Free plan covers basic CAPI with dedup. Paid plan (roughly BDT 4,000/mo) adds catalog support and advanced matching. Solid for smaller stores.
    GTM server-side + custom Meta client
    For stores above 5,000 orders a month or with custom checkout flows. Sits behind your own tagging subdomain (see the sGTM cost guide). Requires developer time for the WooCommerce order hooks.

    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:

    1. Generate a UUID inside your order-creation hook and store it as order meta.
    2. Echo that UUID as the pixel's eventID on the thank-you page.
    3. Pass the same UUID as event_id in the CAPI Purchase request from the server.
    4. 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.

    See the full guides hub for every playbook, teardown and buyer's guide.