ShopTools AI lets a shopper test coupons and separately choose an affiliate visit. A verified decrease is not a purchase, and a click is not commission. Diagnosis needs events on both sides of each boundary.

This is a reference analytics contract, not a report of current ShopTools results. Use it to test the links between events. Instrumentation in code does not establish complete production data.
Define the meaning of each event
- Track means a permitted affiliate route was selected. Fallback means an alternative route; retain the reason as well as the mode. Neither establishes that the store loaded.
- Landing records an observed arrival at the expected domain. Do not synthesize it from a successful resolver response.
- Scan describes one queue run. Split apply into field discovery, submission and response; a measured decrease is a separate result.
- Postback means a network notification. Receipt, matching, commission approval and payment are distinct states.
Impressions, copying and popup opening are not applications. A website visit may precede testing; an optional extension activation may follow it. Model event relationships rather than forcing every route into one linear funnel.
Separate click, scan and checkout identities
In this schema, checkout_id groups the checkout context, scan_id identifies one run and its attempts, and click_id identifies a requested visit. Give a new visit a new key; parent_click_id preserves the relationship without replacing it.
Offer ID, network, target host and code hash are context, not transaction keys. A reload should preserve the identity of an unfinished run. Do not merge two runs merely because they tested the same coupon.
A missing event is not a diagnosis
Distinguish observed, not_observed and unobservable stages. Landing telemetry may be absent because a tab closed, navigation was blocked, a script failed or an identifier was lost. A counter gap is not automatically lost visits.
Separate testing reasons too: not_cart, field_missing, button_missing, none, submitted_unconfirmed and restore_failed. An unknown result is not a retailer rejection, and a missing field does not establish that a code is invalid.
Postbacks need verification and history
Authenticate notifications using the mechanism specified by the integration. Deduplicate on the network and its transaction identifier. A repeated message must not create another sale; a changed status should preserve its history.
Match the permitted subid to click_id and check network, offer and timing context. Leave missing links unmatched. Do not attach them to the latest click or a code hash merely to complete the chart.
Reconcile notifications with the network report: status, amount, currency, commission and later changes. Separate approved, pending and paid amounts. Zero postbacks proves neither that no purchases occurred nor that the network is at fault.
Reconcile the data before calculating rates
- Choose the analysis unit: event, click_id, scan_id or transaction. Do not mix event counts with people in a conversion calculation.
- Align date ranges, time zones, arrival delays and schema versions. Separate test traffic and legacy events.
- Check missing IDs, duplicates, validation errors and telemetry lag, then reconcile aggregates with underlying records.
- Choose one unexplained gap and reproduce an authorized scenario. Fix instrumentation or behavior based on evidence rather than changing every stage at once.
Keep the diagnostic record small
Limit payloads to reasons, versions, domains, identifiers and necessary technical signals. Do not send the full DOM, input values, cart contents or token-bearing URLs. Even selectors require filtering for embedded data.
Define retention, access and session-level deduplication so an observer does not flood the log with one repeated failure. These are design requirements, not claims that ShopTools collects nothing or processes everything locally.
An actionable alert names the store, version, failure class and next check. It must not infer a shopper's motive from a missing event or display invented commission.
By the ShopTools AI editorial team.
Some ShopTools links are affiliate links. ShopTools may earn a commission on a qualifying purchase confirmed by the retailer; a click alone does not guarantee a commission.
Prepared with AI assistance. Product descriptions were checked against ShopTools code and interface; this is not a report of tests at every store.