dialed.evomarketing.co. Its source is published as packages/web-pixel/evo-pixel.js in the SDK repository if you want to read exactly what runs on your page.
Install
Paste this once, ideally in<head>:
Find your pixel key in the client portal under Results → Attribution, in the Developer setup section. It also shows the ready-to-paste snippet with your key already filled in.
The pixel exposes a global
evo() function. Calls made before the script finishes loading are drained from window.evo.q once it does, so a stub queue is safe.
Report a purchase
On your order-confirmation page:string
default:"purchase"
First argument.
purchase, renewal, refund, trial, signup, lead, or custom.string
Sent as
transaction_id. This is the deduplication key — the same order id never counts twice. transactionId is accepted as an alias.number
Purchase value in major units, for example
99.5. revenue is accepted as an alias.string
default:"USD"
USD, CAD, EUR, GBP, or AUD. Anything else falls back to USD.string
Sent as
external_user_id. Optional; useful for tying a web purchase to your own customer record.string
A creator code the customer typed at checkout. Attributes the sale on its own, with no click token in the picture.
click_token and an occurred_at timestamp.
Stripe Checkout
evo.token() returns the captured click token, or null when the visitor did not arrive through a creator link. Pass it when you create the Checkout Session:
metadata.evo_cid works the same way if client_reference_id is already spoken for.
Shopify
On a Shopify storefront the pixel does one extra thing automatically: the first time it captures a new token, it copies it into the cart attributes.evo_cid from the order’s landing site URL or from that note attribute.
What gets stored
Storage access throws in private mode and in some in-app webviews. The pixel catches that and behaves as if no token were present — the purchase still lands, just unattributed.
Test it
1
Load a real creator link
Open one of your brand’s creator links. It forwards to your site with
?evo_cid=evc_… in the URL.2
Confirm the token was captured
In the browser console:
null means the pixel did not see an evo_cid — check that the script actually loaded on the landing page.3
Fire a test purchase
/api/public/attribution/events should return 200 with {"ok":true,"duplicate":false}.4
Repeat it
Fire the exact same call again. It returns
{"ok":true,"duplicate":true} — proof that orderId is deduplicating.5
Check the portal
The conversion and its revenue appear against that creator’s link under Results → Attribution.
Troubleshooting
Nothing arrives at all
Check the pixel key. An unknown or blankpixel_key returns 403 with {"error":"invalid_pixel_key"}. Also confirm the script tag has data-pixel-key — without it the pixel loads and silently no-ops.
evo.token() returns null
The visitor did not arrive through a creator link on this browser, the token is older than 30 days, or localStorage is unavailable (private mode, some in-app webviews). Purchases still record; they resolve as unattributed unless a creator code is passed.
Ad blockers
The beacon is a normal cross-originfetch and can be blocked. Delivery is best-effort by design and never retried. If a meaningful share of your traffic blocks it, report purchases server-side through a billing connector instead — connectors are unaffected by the browser.
The purchase counted twice
It should not:(brand, event_type, transaction_id) is unique in the database. If you see two rows, you sent two different orderId values for one order.
Revenue is right but the creator is missing
The purchase landed without a click token. Common causes: the confirmation page is on a different domain than the landing page (separatelocalStorage), the checkout is hosted by a third party, or the visitor cleared storage. Use evo.token() at checkout, the Shopify cart attribute, or a creator code.