HelpAd Autopilot

Track your sales

Send every paid order to Meta as a server event, deduplicated against the pixel, so your campaigns learn from real purchases.

Meta only optimizes toward sales it can see. Browsers, ad blockers and privacy settings hide a share of them from the pixel. Server events (Meta calls them the Conversions API) fix that: your store tells CamClo about each paid order, CamClo forwards it to Meta with the buyer details Meta matches on, and Meta counts it once. Set-up is two pastes for Shopify, two tags for a custom site, or two pastes and one webhook for WooCommerce. Open the Tracking Doctor from Settings, your Meta account, to get your own copy of every tag and URL.

At a glance

Where
Ad Studio, Settings, your Meta account, Tracking Doctor, Fix it step
Shopify
Paste one pixel, create one webhook, turn Shopify's own Meta sharing off
Custom site
Paste a base tag on every page and a purchase tag on the confirmation page
WooCommerce
Paste a base tag and a purchase tag, then create one order webhook
What Meta gets
One Purchase per order with hashed email, phone, name, address, plus the browser and click ids
What CamClo keeps
Event name, order id, value, currency and yes-or-no flags. Never the person. Rows expire after 90 days
Cost
Free. No Meta review needed on your side
One source only

If Shopify's Facebook & Instagram app, Facebook for WooCommerce or another pixel app already sends server events, turn that sharing off before you use CamClo's, or leave CamClo's off. Two sources make Meta count every sale twice.

Shopify

No app, no theme edits. The pixel runs on every page and in the checkout. The webhook sends each paid order from Shopify's servers, so the Purchase reaches Meta even when the browser blocked everything.

  1. 1

    Turn on server events

    In the Tracking Doctor pick Shopify, enter your store's myshopify.com domain (Settings, Domains in Shopify shows it) and click Turn on server events.

  2. 2

    Paste the CamClo pixel

    Shopify admin: Settings, Customer events, Add custom pixel. Name it CamClo pixel, click Add pixel, replace the editor's code with the pixel from the Doctor, click Save, then Connect. Leave Permission on Marketing and Analytics so it follows each visitor's consent choice. Open your store once: the pixel counter in the Doctor should move.

  3. 3

    Create the order webhook

    Shopify admin: Settings, Notifications, Webhooks, Create webhook. Event Order payment, format JSON, latest API version, URL copied from the Doctor. Save, then copy the signing secret shown at the bottom of the Webhooks page into the Doctor and save it. Optional: two more webhooks with the same URL for Refund create and Order cancellation so net revenue stays right.

  4. 4

    Make CamClo the only source

    If the Facebook & Instagram app is installed: Settings, Apps and sales channels, Facebook & Instagram, App settings, turn Share data off. Catalog and shop features keep working. Remove any other pixel app.

  5. 5

    Verify

    Place a test order, then press Done, verify it in the Doctor. The order shows in What we have taken in as sent, and in Meta Events Manager within minutes.

Why not Shopify's own Maximum sharing?

It works with one switch, but it sends less identity and merchants report lower match scores with it. If you prefer it anyway, set it to Maximum in that app and leave CamClo's server events off.

Custom site or any other platform

Two ways. Option A needs no developer: two tags. Option B is for whoever runs your backend: one request per paid order. Both start with Turn on server events in the Doctor and your store address, which is the only site the tags may report from.

  1. 1

    Option A, base tag

    Paste the base tag once before </head> on every page. It loads the Meta pixel, remembers which ad brought the visitor, and defines camcloTrack, which fires the pixel and sends the same event to CamClo with one shared id. Squarespace: Settings, Developer Tools, Code Injection, Header. BigCommerce: Storefront, Script Manager, placement Head.

  2. 2

    Option A, purchase tag

    Paste the purchase tag on the order confirmation page, after the base tag. Fill in the order id, total and currency; email, phone, name and address are optional but lift the match score. Squarespace and BigCommerce fill their own order variables for you. Wix has its own Meta integration: use that instead and leave CamClo's server events off.

  3. 3

    Option B, your backend

    When an order is paid, POST JSON to the Any backend URL from the Doctor. Required: event_name Purchase, event_id = the order id, value, currency, and at least one of email, phone, external_id, fbp, fbc, or ip plus user_agent. Send user_agent and source_url so Meta counts it as a website event. Up to 100 events per request; the same event id sent twice is ignored. The Doctor has curl, Node and PHP samples and a note you can hand to your developer.

  4. 4

    Verify

    Open your site or place a test order, then press Done, verify it. Optional: Send a test event from the Doctor proves the relay works without touching your reporting.

Extra events

The Doctor also offers ViewContent, AddToCart, InitiateCheckout and Lead tags. Meta learns from these before the purchase. Paste them where the action happens.

WooCommerce

Two pastes in WordPress and one webhook, all processed by CamClo. The base tag remembers the ad click and reports the funnel; the purchase tag on the order-received page passes the browser id and click id along; the webhook sends each paid order from your server with the buyer details.

  1. 1

    Turn on server events

    In the Tracking Doctor pick WooCommerce, enter your store address and click Turn on server events.

  2. 2

    Paste the base tag

    Before </head> on every page, with a headers-and-footers plugin or in your child theme's header.

  3. 3

    Paste the purchase tag

    It is PHP. Paste it into a code snippets plugin (PHP, run everywhere) or your child theme's functions.php. WooCommerce fills the order id, total, currency, email, phone, name and address for you.

  4. 4

    Create the order webhook

    WordPress admin: WooCommerce, Settings, Advanced, Webhooks, Add webhook. Status Active, topic Order updated, delivery URL from the Doctor, any long random string as the secret, API version WP REST API Integration v3. Paste the same secret into the Doctor. Orders count once they are Processing or Completed with a paid date.

  5. 5

    Make CamClo the only source

    If Facebook for WooCommerce is installed, switch its Conversions API option off or remove the plugin. Otherwise Meta counts every sale twice.

  6. 6

    Verify

    Place a test order, then press Done, verify it in the Doctor.

Prefer the plugin?

Facebook for WooCommerce can send orders to Meta on its own. It bypasses CamClo, so you lose the first-party order count beside Meta's figures and the click attribution. If you keep it, leave CamClo's server events off.

What we send and what we keep

  • Sent to Meta: email, phone, first name, last name, city, state, zip and country, each hashed. The browser id and click id, the buyer's ip and browser, the order value, currency and product ids.

  • Hashed on the way: the tags hash email and phone in the browser when they can, so contact details never leave your site in clear text.

  • Kept by CamClo: event name, order id, value, currency, time and which fields were present. Refunds are recorded for your net revenue and never sent to Meta.

  • Attribution: every ad link carries the campaign, ad set and ad ids. The tags remember them for 28 days, so the campaign page can show your store's own orders by click beside Meta's attributed count.

Troubleshooting

The pixel counter never moves

Check the pixel shows Connected in Customer events and that server events are on. Open your store in a normal window; consent banners and ad blockers can hold it back on a quiet day.

Orders show as failed in What we have taken in

Read the reason on the row. A Purchase without value and currency is refused. A wrong signing secret makes every Shopify delivery fail: paste it again from the bottom of the Webhooks page.

Meta counts two sales per order

Another source is sending the same order. Turn off Shopify's Share data or the other pixel app, or give both events the same id.

The tags stopped reporting after I changed my domain

Update the store address in the Doctor. Only pages on that address may report through the tags.

I rotated the key

Every URL and tag you installed changes. Paste the new pixel and update the webhook URL.

Use next