# Page and click types

Kontala sorts every page view into a page type and every click into a click type, so reports speak in business terms without a tagging plan.

## Page types

| Code | Page type |
| --- | --- |
| `landing` | Landing |
| `plp` | Product listing |
| `search` | Search results |
| `pdp` | Product detail |
| `cart` | Cart |
| `checkout` | Checkout |
| `order_confirmation` | Order confirmation |
| `pricing` | Pricing |
| `form` | Form |
| `form_confirmation` | Form confirmation |
| `other` | Other |

A page view nothing classifies shows as **Unclassified**.

## Click types

| Code | Click type |
| --- | --- |
| `view_item_list` | View item list |
| `filter_sort` | Filter or sort |
| `select_item` | Select item |
| `compare` | Compare |
| `variant_select` | Select variant |
| `add_to_cart` | Add to cart |
| `remove_from_cart` | Remove from cart |
| `begin_checkout` | Begin checkout |
| `promo_code` | Promo code |
| `checkout_contact_info_submitted` | Checkout contact info submitted |
| `checkout_address_info_submitted` | Checkout address info submitted |
| `checkout_shipping_info_submitted` | Checkout shipping info submitted |
| `add_payment_info` | Add payment info |
| `purchase` | Purchase |
| `search` | Search |
| `select_offer` | Select offer |
| `start_trial` | Start trial |
| `request_demo` | Request demo |
| `begin_application` | Begin application |
| `submit_application` | Submit application |
| `track_order` | Track order |
| `cancel_order` | Cancel order |
| `return_order` | Return order |
| `download` | Download |
| `login` | Log in |
| `sign_up` | Sign up |
| `newsletter_signup` | Newsletter signup |
| `chat` | Chat |
| `contact` | Contact |
| `support` | Support |

A click nothing classifies shows as **Unclassified**.
The three checkout step types and Remove from cart come from the [Shopify pixel](/docs/data-capture/shopify-checkout), or from your own declarations and rules.

## How a type is decided

For each page view or click, the first of these that applies wins:

1. **Your site declares it.**
2. **A rule you confirmed** matches it.
3. **Kontala's model** recognises it, if you turned the model on for the property.
4. Otherwise it is Unclassified.

## Declare types on your site

Declare a page's type from your own code:

```js
window.pageTracker.pageType('pdp');
```

Before the tag has loaded, queue it instead:

```js
window.pageTrackerQueue = window.pageTrackerQueue || [];
window.pageTrackerQueue.push(['pageType', 'pdp']);
```

Declare what a click does with `data-ac-event` on the element, any element around it, or its form:

```html
<button data-ac-event="add_to_cart">Add to basket</button>
```

Values outside the lists above are ignored.
Shopify stores declare their own product, collection, search, checkout and order confirmation pages.

## Rules and proposals

The **Page types** and **Click types** pages each have these tabs:

- **Proposals**: rules Kontala suggests from your traffic, with how confident it is.
- **Rules**: the rules you confirmed.
- **Unclassified**: what nothing classifies yet.
- **Turned down**: proposals you rejected.
- **Model**: whether Kontala's model classifies what your rules do not.

Page type rules can read the page's data layer, its platform, its URL, its structured data and markers such as a form or a payment field.
Click type rules can read the words on the element and its attributes, its link or form, its place on the page and the page's path.

## Publish and history

Types are worked out when a chart is drawn, never stored with the event.
When you press **Publish**, every confirmed, changed or retired rule applies to all of your history.
Rules are retired rather than deleted, so saved charts keep working.

## What counts as a click

Links, buttons, radios, checkboxes and anything marked with `data-ac-event`, plus a form sent without a click and Enter in a search box.
Clicks made by scripts are ignored, and two clicks on the same element within half a second count once.
