Set up Meta Pixel & Conversions API
Where to find your Meta Pixel ID and Conversions API token, and how IndiSell fires and deduplicates browser and server events.
IndiSell fires purchase events to Meta both in the browser (Pixel) and server-side (Conversions API), deduplicated by order id — so you get CAPI's reliability without double-counting.
What IndiSell needs
| IndiSell field (Conversions → Meta) | What it is | Looks like |
|---|---|---|
| Meta Pixel ID | Your pixel / dataset | a 15–16 digit number |
| Conversions API access token | Authorises server-side events | a long token |
| Test event code (optional) | For verifying setup | TEST12345 |
Step 1 — Pixel ID
Go to Meta Events Manager and select your Pixel / Dataset (create one via Connect data sources → Web if you don't have it).
The Dataset ID (a.k.a. Pixel ID) shows under the dataset name — a long number. Paste it into Meta (Facebook) Pixel ID.
Step 2 — Conversions API token
In the dataset, open Settings → scroll to Conversions API → Generate access token.
Copy it once (it's shown once) and paste into Conversions API access token in IndiSell. It's encrypted at rest.
Step 3 — Verify (optional)
Events Manager → your dataset → Test events tab → copy the Test event code (TESTxxxxx).
Put it in Test event code, place a test order, and watch it appear in the Test events tab. Remove the code when you're done.
How the events actually fire
IndiSell sends three events — InitiateCheckout (checkout opened), AddPaymentInfo (payment method chosen), and Purchase (order placed) — on two paths:
| Path | Needs | Fires for | Notes |
|---|---|---|---|
| Browser Pixel | Pixel ID only | Every shopper, all traffic | Runs in the shopper's browser; ad-blockers / iOS ITP silently eat ~10–30%. |
| Conversions API | Pixel ID + access token | The Purchase, server-side | Sends hashed phone/email + fbp/fbc + IP; recovers what the browser drops. |
Both carry the same event_id = the order id, so Meta deduplicates them — you never double-count.
Is the Conversions API token required?
No — the Pixel works with just the Pixel ID. With only the ID set, the browser Pixel still fires all three events. The token is what turns on the server-side Purchase.
It's optional but strongly recommended: without it you get browser-only tracking (lower match quality, conversions lost to ad-blockers and iOS). With it, IndiSell sends the server Purchase deduplicated against the browser event — the setup Meta recommends.
Does it only fire for shoppers from Meta ads?
No. The Pixel fires for every visitor and every purchase — organic, direct, Google, email, or Meta ads. What's ad-specific is attribution: Meta credits a sale to an ad only when the shopper arrived with a click id (fbclid → fbc, or a matching fbp). Non-ad orders still fire and feed audience building + pixel learning; they just aren't credited to ad spend. Passing fbc/fbclid via CAPI is what lets Meta attribute the server-side Purchase back to the ad that was clicked.
Multiple pixels
If your store has several pixels (common after agency changes, or from Shopify's "Facebook & Instagram" app stacking them):
- Server-side (CAPI) goes to only the one configured pixel.
- Browser-side,
Purchasefires to every pixel already initialised on the page — so if your theme/another app loaded 5 more, they'll receive the browser event too, but with no CAPI backing.
Meta's best practice is one pixel per website: pick the pixel your ads optimise against, put its ID here, and remove the extras in Events Manager. Segment with custom conversions and share audiences across ad accounts instead of running parallel pixels — multiple pixels fragment attribution and audiences.