Event schemas

One page per event of the FitMyType event catalogue, generated from the JSON schemas the API checks events against. Each page shows when the event is sent, its required and optional fields, an example, and the checks that Tracking debug in your back office makes, with the same messages.

Every event needs a tracking_id

Send a non-null tracking_id with every event: the visitor id that the widget and the tag keep in fmt_device_id. It joins the events of one visitor. An event without it is rejected, except carts and orders: those are kept but marked untracked, and they cannot be joined to the visitor's size answer.

What POST /events answers

Send one event, a JSON array of events or {"events": [...]} (at most 50 per call) to POST /events. Once the call is safely queued it answers 202 with {received, accepted, rejected}:

{
  "received": 3,
  "accepted": 2,
  "rejected": [
    {
      "index": 2,
      "error": "unknown_event"
    }
  ]
}

A rejected event is not stored and not counted: fix it and send it again. An accepted event that fails a field check later is stored as invalid: it is never counted in your dashboards, and Tracking debug shows it with the reason, using the messages listed on each event's page.

Events

EventWhat it meansSent by
product A product page with the size widget was shown to a shopper. Widget SDK, once per widget when it is created (or when analytics consent arrives later).
widget_click The shopper clicked the size widget's button. Widget SDK, on each click of the widget button.
tooltip_viewed The shopper saw the widget's tooltip (an info text or the last recommended size). Widget SDK, when the tooltip shows.
usual_size_add_to_cart The shopper added the size found with the usual-size path to the cart. Widget SDK, on add to cart after a usual-size answer.
plugin_open The size finder panel opened. Shopper app, once each time the panel opens.
reco A size answer was shown to the shopper: the status, the sizes and the answers' summary, never a body measurement. Shopper app, after each size answer shown (T07.09.10).
auto_reco A size answer computed from the shopper's saved answers on a later product page. Shopper app, when a saved profile answers on a new product (S06.07).
plugin_end The shopper left the size finder: chose a size or went back to shopping. Shopper app, when the shopper chooses a size or closes the result.
user_survey The shopper rated the recommendation (1 to 4) and may have left a short comment. Shopper app, when the survey is sent.
usual_size_step_completed The shopper finished one step (1, 2 or 3) of the usual-size path. Shopper app, after each usual-size step.
usual_size_reco_requested The shopper asked for a size from their usual size in another brand. Shopper app, when the usual-size answer is requested.
usual_size_reco_result The usual-size answer: the size and how far it moved from the usual size. Shopper app, when the usual-size answer arrives.
body_view_opened The fit was first shown on the 3D body for one result. Shopper app, once per result when the fit first shows on the 3D body (D90).
reco_displayed The result screen showed a size answer. Shopper app, once per result shown (T07.09.01).
size_validated The shopper chose a size on the result screen, the same as, larger or smaller than the recommendation. Shopper app, when the shopper confirms a size.
survey_dismissed The shopper closed the survey without answering. Shopper app, when the survey is closed unanswered.
physical_info_displayed The step with the body questions (age, height, weight) was shown. Shopper app, when the step shows (D87).
physical_info_submitted The shopper answered the body questions; only the unit system is sent, never the answers. Shopper app, when the step is continued (D87).
body_shape_submitted The shopper chose a body shape, and how many shapes they looked at. Shopper app, when the body shape step is continued (T07.06.03).
bra_displayed The bra size step was shown. Shopper app, when the step shows (S07.05).
bra_submitted The shopper gave a bra size; only the size system's region is sent, never the band or the cup. Shopper app, when the step is continued.
bra_skipped The shopper skipped the bra size step. Shopper app, on skip.
references_displayed The reference brands step was shown. Shopper app, when the step shows (S07.07).
references_submitted The shopper gave reference brands; only how many is sent (the brands go in the reco event). Shopper app, when the step is continued with references.
references_skipped The shopper skipped the reference brands step. Shopper app, on skip.
measure_offer_displayed The result offered to measure one body measurement for a more exact size. Shopper app, when the offer card shows (D97, D101).
measure_offer_opened The shopper opened the measuring guide of the offer. Shopper app, when the guide opens.
measure_offer_used A measurement the shopper typed changed the size answer; the value is never sent. Shopper app, when the typed value changes the answer.
body_config_saved The shopper saved a body on this device; only the number of saved bodies is sent. Shopper app, after a save (S14.11).
body_config_loaded The shopper picked one of their saved bodies. Shopper app, when a saved body is loaded.
body_config_deleted The shopper deleted a saved body from this device. Shopper app, after a delete.
cross_sell_tab_opened The shopper opened a tab of the suggestions on the result screen (latest releases, you might like, people like you, bought together). Shopper app, once each time a suggestions tab is opened (S07.12).
cross_sell_clicked The shopper clicked a suggested product: the tab, the product, its place in the list and the size shown on its card. Shopper app, when a suggestion card is clicked, before the product page opens (S07.12).
cart A product in a size was added to the cart. Merchant tag `fmttag` or the Shopify pixel, on add to cart.
transaction_end An order was placed: its lines, sizes and total. Merchant tag `fmttag` on the order page, or the Shopify pixel's `checkout`.
bracketing_start A cart holds two or more sizes of the same product. Our server, from the cart analysis (S08.06).
return An ordered item was returned, with the return's reason code. Our server, from the shop's returns (S08.06).
__debug__ A heartbeat or debug message from an integration script. Integration scripts, through `/debug` or `sendDebugEvent`.