What counts as an attributed sale
It’s the value of the products the shopper added from a recommendation and actually bought. Attribution happens order by order. These don’t count:- the product the shopper had already picked;
- recommendations that were dismissed;
- orders without an accepted recommendation.
The seven signals
Each signal carries its own change, never the whole cart. There’s no
purchase signal.
How the sale is tied
- Your store sends its cart id (
cart_id) when asking for the recommendation and with the signals. With the SDK, once: thecartIdoption. - The cart signals say what the shopper added from each recommendation.
- The order arrives from your platform —the CrossUp app or your connector—
with that same id as its
external_id. CrossUp matches the order against what was added and attributes the lines that were bought.
cart_id the recommendation still works, but that decision can’t be
tied to any order. How the order has to arrive:
The canonical model.
When to report each one
impressionwhen the recommendation enters the screen, not when it’s generated.clickon the click, before navigating; the SDK sends it even if the page changes.add_to_cartwith the quantity added, not the line total.checkout_startedwhen the shopper heads to checkout, once.
How they’re sent
You report and move on: the SDK batches, sends and retries without holding up the page. Eachtrack.* takes the recommendation you showed (in the API, Decision: the list of products recommended for that moment).
What you will see
One response per signal: accepted, duplicate or rejected with a reason. In the SDK they reachonSignalResult.
What never travels
The visitor is an id made up by the SDK: never an email, a phone number or the platform’s customer id.If you don’t see it
Report signals with the SDK
track.*: the seven signals and when to send each one.Record signals via API
The operation, with a playground.