# Website analytics

> Track visitors and pageviews on your own websites, without cookies, and record your own events.

Source: https://help.clockworkcrm.com/marketing/website-analytics
Last updated: 2026-09-28

Website analytics records visits to your own websites. It uses no cookies and stores nothing in the
visitor's browser. Each visitor is identified afresh every day, so the same person is counted once a
day.

Sites are managed at **Marketing → Website Analytics**.

## The website list

![The website list, showing each site's name, primary hostname, tracking tag and status](https://clockworkcrm.blob.core.windows.net/public-internal/docs/marketing/analytics-sites.png?v=423b4377)

| Column | What it shows |
|---|---|
| **Name** | The site's name, and the date it was added |
| **Primary hostname** | The site's main address |
| **Tag** | The site's tracking tag, which the snippet uses to identify it |
| **Status** | A green tick when the site is tracking |

The search box filters the list. Double-clicking a site opens its dashboard. The **⋮** menu on each
site has:

| Action | What it does |
|---|---|
| **Dashboard** | Opens the site's reports |
| **Settings & snippet** | Opens the site's settings and its tracking snippet |
| **Delete** | Stops tracking the site. The analytics already collected are kept |

## Adding a site

1. Go to **Marketing → Website Analytics** and select **Add Website**.
2. Fill in the settings below and select **Save**.
3. Select **Copy snippet** and paste the snippet into every page of your website.

Tracking starts as soon as the snippet is on your pages.

### Website settings

| Setting | What it does |
|---|---|
| **Name** | The site's name. Required |
| **Primary hostname (e.g. www.example.com)** | The site's main address |
| **Allowed hostnames** | The addresses visits are accepted from. Type one and press Enter. When the list is empty, visits from any address are accepted. The primary hostname is not added to the list for you |
| **Excluded IPs** | IP addresses or ranges, such as your own offices, whose visits are never recorded. Enter an address or a CIDR range and press Enter. This only affects visits from now on |
| **Timezone (IANA, e.g. Europe/London)** | The site's timezone, such as `Europe/London`. Left empty, UTC is used |
| **Tracking domain (first-party beaconing)** | Serves the snippet and records visits through your own tracking domain instead of **Use the shared platform domain**. Shown when you have a tracking domain. Save to update the snippet |
| **Honour Do-Not-Track / GPC** | When on, visitors whose browser asks not to be tracked are not recorded |

Once the site is saved, **Embed snippet** shows the code to add to your pages, and which host
records the visits. Tracking domains are set up by an administrator. See
[Sender and tracking domains](https://help.clockworkcrm.com/admin/domains).

### What the snippet records

- a pageview each time a page loads, including page changes in single-page apps
- how long the visitor spends on the page while it is visible
- the UTM tags in the page address, and the contact, when the visitor arrived from a link in a bulk
  email
- custom events you record. See [Custom events](https://help.clockworkcrm.com/marketing/website-analytics#custom-events)

Visitors without JavaScript, including search engine crawlers, are recorded by a small image in the
snippet. Crawlers are kept separate and do not count towards visitor figures.

When a visitor arrives from a link in a bulk email, their visits that day are linked to their
contact record.

## The dashboard

The dashboard reports on one site at a time. The **?** next to the heading opens help for the page.

![The website analytics dashboard: four totals, visitors and pageviews over time, top pages and top sources](https://clockworkcrm.blob.core.windows.net/public-internal/docs/marketing/analytics-dashboard.png?v=0f494046)

### Choosing what to look at

| Control | What it does |
|---|---|
| **7 days**, **30 days**, **90 days**, **Year to date**, **Last 12 months** | The period the dashboard covers. It opens on 30 days |
| **Custom** | Opens **Custom range** to pick a start and end date |
| **Filter pages** | Limits every report to pages whose path matches, such as `/blog/*`. Press Enter to apply |
| **online now** | The number of visitors active on the site in the last 5 minutes. It updates live |

Clicking a bar, slice or row in any report focuses the whole dashboard on it, for example one page,
source, country, device, browser or campaign. Each selection appears as a tag at the top. Select the
**×** on a tag to remove it.

### Totals

| Card | What it shows |
|---|---|
| **Unique Visitors** | The number of different visitors in the period |
| **Pageviews** | The total number of page loads |
| **Avg Time / View** | The average time visitors spent on a page while it was visible |
| **Views / Visitor** | Pageviews per unique visitor |

### Reports

| Report | What it shows |
|---|---|
| **Visitors & Pageviews Over Time** | Unique visitors and pageviews by day |
| **Top Pages** | The most viewed pages, by pageviews |
| **Top Sources** | The sites visitors came from, by visitors |
| **Countries**, **Regions** and **Cities** | Visitors by location |
| **Device Breakdown** | Visitors by type of device |
| **Operating System Breakdown** | Visitors by operating system |
| **Browser Breakdown** | Visitors by browser |
| **Campaigns**, **UTM Sources** and **UTM Mediums** | Visitors by the `utm_campaign`, `utm_source` and `utm_medium` tags in the page address |
| **Custom Events** | Each custom event, with **Occurrences** and **Unique Visitors**. Select an event to break it down by its properties |
| **Crawlers** | Search engine and bot visits, with the **Crawler (User-Agent)**, **Hits** and when it was **Last seen**. These are not counted in the visitor figures |

### Recent Activity

**Recent Activity** lists the latest pageviews, with the **Visitor**, **Page**, **Source**, **Country**,
**Device**, **Time on Page** and **When**. Visitors who are known contacts link to their record.
**Time on Page** shows **Calculating…** until the visitor leaves the page.

**Search activity** finds visits by page, source, city, country, browser or device. Select a column
heading to sort by it.

**Export** downloads the activity as CSV or Excel. The export keeps the filters you have applied. It
is prepared in the background and you are notified when it is ready.

## Custom events

A custom event records a specific action on your site, such as a sign-up, a download or a video play.
Once the snippet is installed, add one line of code where the action happens:

```js
// Record an event
window.cwTrack('signup');

// Include extra details if you like
window.cwTrack('download', { file: 'pricing.pdf', plan: 'pro' });
```

The event then appears in the **Custom Events** report, and its details can be used to break it
down. Give each event a short name and use the same name every time. An event can carry up to 50
details.

To record an event before the page has finished loading, queue it:

```js
window.cwq = window.cwq || [];
window.cwq.push(['signup']);
```

It is sent once tracking is ready.

Custom events can also be sent to other systems as webhooks. See
[API and webhooks](https://help.clockworkcrm.com/admin/api-and-webhooks).

## Related

- [Landing pages](https://help.clockworkcrm.com/marketing/landing-pages), statistics for pages published from Clockwork CRM
- [Forms](https://help.clockworkcrm.com/marketing/forms), submissions from pages on your site
- [Sender and tracking domains](https://help.clockworkcrm.com/admin/domains), serving tracking from your own domain
