---
title: Templating
date: 2026-07-02T15:06:00+01:00
author: John Henry Donovan
canonical_url: "https://johnhenry.ie/plugins/clicky-analytics/docs/guide/templating"
section: Plugins
---
esc

↑↓ to navigate↵ to selectesc to close

Menu On this page 

- [Return to top](#)

Documentation

Documentation

# Templating

The plugin registers a `<strong>craft.clickyAnalytics</strong>` Twig variable so you can read the same analytics that power the dashboard from your own templates, whether front end or control panel.

Tip Every call hits the [`Api` service](http://localhost:5174/clicky/api/services.html), which caches responses for the configured [cache duration](http://localhost:5174/clicky/guide/configuration.html). Reading the same report twice in one request costs you next to nothing.

## Quick examples

```twig
{# Visitors online right now #}
{{ craft.clickyAnalytics.visitorsOnline }}

{# Top 10 pages over the last 7 days #}
{% for page in craft.clickyAnalytics.topPages('last-7-days', 10) %}
  {{ page.title }}: {{ page.value }}
{% endfor %}

{# Recent visitors feed #}
{% for v in craft.clickyAnalytics.recentVisitors('today', 20) %}
  {{ v.geolocation }}: {{ v.landingPath }} ({{ v.ago }})
{% endfor %}
```

Guard reads when credentials may be missing:

```twig
{% if craft.clickyAnalytics.isConfigured %}
  {{ craft.clickyAnalytics.visitorsOnline }} online
{% endif %}
```

## Date expressions

Methods take a Clicky **date expression** as their first argument. The values used throughout the plugin are:

`today`, `yesterday`, `2-days-ago`, `last-7-days`, `last-14-days`, `last-28-days`, `last-60-days`, `last-90-days`.

## Available methods

All ranked methods take `(date = 'last-7-days', limit = 10)` unless noted.

MethodReturns`isConfigured`Whether a Site ID and Sitekey are configured.`visitorsOnline`The number of visitors online now (int).`overview(date)`Headline tallies: visitors, actions, bounce rate, average time`topPages(date, limit)`Most-visited pages.`topSources(date, limit)`Top traffic sources.`topReferrers(date, limit)`Top referring domains.`topSearchEngines(date, limit)`Searches grouped by engine.`topCountries(date, limit)`Visitors by country (with ISO `code`).`topCities(date, limit)`Visitors by city.`topRegions(date, limit)`Visitors by region.`topBrowsers(date, limit)`Web browsers.`topOperatingSystems(date, limit)`Operating systems.`topDevices(date, limit)`Hardware device types.`topScreenResolutions(date, limit)`Screen resolutions.`entryPages(date, limit)`Landing pages.`exitPages(date, limit)`Exit pages.`topDownloads(date, limit)`Downloaded files.`topGoals(date, limit)`Goal completions.`topCampaigns(date, limit)`Campaign performance.`recentVisitors(date, limit)`Recent individual visits (limit defaults to `12`).`pageStats(href, date, visitorLimit)`Analytics for a single page path (date defaults to `last-90-days`, `visitorLimit` to `5`).

### **Per-page stats**

```twig
{% set stats = craft.clickyAnalytics.pageStats(entry.url, 'last-28-days') %}
{{ stats.visitors }} visitors, {{ stats.unique }} unique, {{ stats.time }} avg.
```

## **Theming helpers**

If you're building your own dashboards, you can match the plugin's [colour scheme](http://localhost:5174/clicky-analytics/guide/colour-schemes.html) and reuse its bundled SVG assets:

MethodReturns`primaryColor`The primary accent hex for the active scheme.`accent(role)`The accent hex for a widget role (e.g. `accent('sources')`).`pieColors`The pie-slice palette (array of hex strings).`secondaryColor`The secondary accent hex (the New vs Returning donut's second slice).`softFillColor`The soft pastel fill hex (the Overview chart's area fill).`rankBarColors`The four rank-tint hexes (array), used to shade ranked-list rows by position`assetUrl(path)`Published URL for a bundled asset, e.g. `assetUrl('flags/ie.svg')`.

```twig
<span style="color: {{ craft.clickyAnalytics.primaryColor }}">
  <img src="{{ craft.clickyAnalytics.assetUrl('browsers/chrome.svg') }}" alt="Chrome" width="16">
</span>
```

On this page
