# Tracking & events

URL: https://docs.ablyft.com/developers/tracking-and-events/

> How conversions get from your website to ABlyft, from codeless click goals to JavaScript events and data layer entries.



An experiment needs at least one **goal**, a definition of what counts as success. This section explains how each goal type
is triggered on your website and what you need to implement.

Shopify shops use dedicated tracking through a webhook or a customer event pixel, see
[Shopify tracking](https://docs.ablyft.com/developers/tracking-and-events/shopify/).

| Goal type    | How it is triggered                                     | Code needed | Read                                                                                |
| ------------ | ------------------------------------------------------- | ----------- | ----------------------------------------------------------------------------------- |
| **Pageview** | A linked page becomes active                            | None        | [Click & pageview goals](https://docs.ablyft.com/developers/tracking-and-events/click-and-pageview-goals/) |
| **Click**    | A visitor clicks an element that matches a CSS selector | None        | [Click & pageview goals](https://docs.ablyft.com/developers/tracking-and-events/click-and-pageview-goals/) |
| **Custom**   | Your code calls `ablyft.push()`                         | One line    | [Custom goals](https://docs.ablyft.com/developers/tracking-and-events/custom-goals/)                       |
| **Revenue**  | Your code calls `ablyft.push()` with a value            | One line    | [Revenue tracking](https://docs.ablyft.com/developers/tracking-and-events/revenue-tracking/)               |

Data layer entries (for example from Google Tag Manager) are not a goal type, but you can use them to start audiences
and to run your own code. See [Data layer events](https://docs.ablyft.com/developers/tracking-and-events/datalayer-events/).

The business side of goals, such as creating a goal, assigning it to an experiment and choosing the counting method,
is covered in [Configure goals](https://docs.ablyft.com/guides/goals-and-measurement/configure-goals/).

> **Consent:** If you use a consent manager, ABlyft may hold back events until tracking is allowed. See
> [Consent manager](https://docs.ablyft.com/developers/consent-and-security/consent-manager/).

- [Click & pageview goals](https://docs.ablyft.com/developers/tracking-and-events/click-and-pageview-goals/): Goals without custom code.
- [Custom goals](https://docs.ablyft.com/developers/tracking-and-events/custom-goals/): Trigger goals from JavaScript.
- [Revenue tracking](https://docs.ablyft.com/developers/tracking-and-events/revenue-tracking/): Send revenue values.
- [Shopify tracking](https://docs.ablyft.com/developers/tracking-and-events/shopify/): Purchases and checkout steps in Shopify shops.
- [Data layer events](https://docs.ablyft.com/developers/tracking-and-events/datalayer-events/): Use data layer events for audiences and your own code.

