--- title: Event tracking with Headless (SSR) slug: p3qc0096 canonical_url: https://docs.coveo.com/en/p3qc0096/ collection: coveo-for-commerce source_format: adoc --- # Event tracking with Headless (SSR) It's crucial that you track [touchpoints](https://docs.coveo.com/en/o6ha0421/) to analyze [storefront](https://docs.coveo.com/en/p33g0410/) performance, create reports, and power [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188/) [models](https://docs.coveo.com/en/1012/). You can do this by sending events to the [Coveo Analytics](https://docs.coveo.com/en/182/) service. If you use [Coveo Headless](https://docs.coveo.com/en/lcdf0493/) to build your [product discovery solutions](https://docs.coveo.com/en/o9cf0524/), track events using dedicated Headless controllers. These controllers automatically log specific commerce events, such as when a user makes a purchase or adds a product to a cart. Headless commerce controllers rely on the [Event Protocol](https://docs.coveo.com/en/o9je0592/) to log events. The following table shows the types of events to track and the corresponding controllers. [%header,cols="2*"] |=== |Event |Tracking controller |[Click](https://docs.coveo.com/en/o1n92447/) |[Use the `InteractiveProduct` controller to track clicks in product lists](https://docs.coveo.com/en/oc685393#displaying-lists-of-products) |[Product view](https://docs.coveo.com/en/o1n93101/) |[Use the `ProductView` controller to log view events when a user navigates to a PDP](https://docs.coveo.com/en/oc685393#displaying-a-product-on-a-product-detail-page) |[Cart](https://docs.coveo.com/en/o1n93466/) |[Use the `Cart` controller to update cart state when products are added or removed](https://docs.coveo.com/en/oc685394/) |[Purchase](https://docs.coveo.com/en/o1n93059/) |[Use the `Cart` controller to submit a purchase after a transaction is completed](https://docs.coveo.com/en/oc685394/) |===