Skip to main content
Depict tracking uses three id vocabularies. They look similar but are not interchangeable, and sending the wrong kind does not produce an error — the event is accepted and then silently fails to match anything, which quietly degrades your metrics. This page is the reference for which id each event needs.

Why the difference matters

  • Result ids are unique per API response, not per product — they tie a click to the exact search, listing or recommendation that produced it. That link is what powers surface-level performance metrics and lets ranking learn from real behaviour.
  • Product ids join PDP views and add-to-carts to your catalog. If the id you send doesn’t match the displays’ product_id, those events can’t be connected to products.
  • Transaction product ids join purchase line items to your catalog through a mapping that is refreshed on every catalog ingestion. A line item whose item_id doesn’t match drops out of per-product revenue, best-seller and funnel metrics — while still counting toward raw totals, which makes the gap easy to miss.
The most common integration mistake is sending the displays’ product_id as a purchase item_id (or vice versa). They are different vocabularies — purchases match on your SKUs, not on product_id — unless your catalog happens to use the same value for both.

Result-id lifetime and event validation

Rules that apply when sending events — DPC follows them automatically, so they matter mostly for server-side or custom event senders posting to /create-events:
  • A result id is attributable for 10 minutes after the API response that contained it was generated. Send click events promptly with the exact id from the clicked display — an event with an expired or unknown result id is accepted with a 200 but can no longer be attributed to its search, listing or recommendation.
  • Every event must carry at least one identity field: session_id, user_id or dsid. A batch containing an event without one is rejected with 422, naming the index of the failing event.
  • A click event must carry at least one of search_result_id, recommendation_id, product_listing_result_id or click_location — otherwise the batch is rejected with 422.
Which result id each endpoint returns:

How to verify

The “Tracking status” tab on app.depict.ai shows your incoming events live. The table at the bottom lists examples of valid product ids from your ingested catalog — compare them against what your events are sending. After your first test purchases, confirm they map to catalog products rather than only appearing in raw event counts.