Before you start
Contact support to have your shared secret installed. Postbacks start once it is in place.Connect
1
Open the source
Open Sources, find Checkout Champ, and select connect.
2
Install the tracking script
Copy the Global Head Script. It is the standard Datalyr
dl.js snippet.3
Paste it into Checkout Champ
Open Account Settings → Global Scripts. Paste the script. Save.
4
Publish the funnel
Open Events. Confirm a
pageview row arrives from your funnel.5
Create five Export Profiles
Copy each URL from the connection dialog into its own Checkout Champ Export Profile.
[orderId] are Checkout Champ field tokens.
The five Export Profiles
Every URL is aGET to https://webhooks.datalyr.com/checkoutchamp/YOUR_WORKSPACE_PUBLIC_ID.
Create all five. Refunds, rebills, chargebacks, and cancellations reach Datalyr only through their own Export Profile.
Add the Purchase profile to the main order and to every upsell.
Auth
We compare a shared secret in constant time. There is no HMAC signature. Send the secret as thesecret query parameter, or as the X-CheckoutChamp-Secret header. The query parameter wins when both are present.
Event mapping
We lowercase and trimevent_type, then normalize it.
Any other value passes through lowercased and counts as no revenue. A missing
event_type or order_id returns HTTP 400.
Link purchases to a web visitor
We resolve the visitor in this order, stopping at the first useful match.
No match sets
visitor_id to cc_<order_id>.
Keep the email parameter on every Export Profile. Without it, no Checkout Champ transaction can be attributed.
When nothing resolves, we queue the postback, retry the lookup after 20 seconds, then write the event.
Revenue
The eventvalue is gross, taken from the amount parameter.
Checkout Champ revenue is gross only. No commission, tax, or fee is subtracted.
We record 0 when amount is missing, negative, above 1000000, non-numeric, or a string containing the letter e.
Currency is the currency parameter uppercased, or USD when absent.
Test orders
We mark an order test whencard_last4 is 0000. Reports exclude those rows, but conversion rules still fire on them.
Delivery behavior
Add
&transaction_id=[transactionId] to the Recurring URL. Without it, a rebill deduplicates on the order ID and the UTC date. A redelivery crossing midnight then records it twice.
Every HTTP status
Verify
- Open the funnel landing page in a private window with
?utm_source=doctest. - Open Events. Confirm a
pageviewrow exists. - Complete one order with a card ending
0000. - Open Events. Find the
purchaserow. - Confirm
value,currency, andevent_data.order_id. - Confirm
event_data.is_testis true. - Refund that order in Checkout Champ. Confirm a
refundrow arrives.
When it does not work
A Shopify store behind a Checkout Champ funnel needs no extra work, because we drop the Shopify copy. See Shopify.
Next, create a conversion rule so these orders reach your ad platforms.