How Clicky Works
Clicky is a real-time web analytics platform that processes visitor data with zero delay between action and dashboard availability. Every pageview, click, and custom event is recorded and queryable immediately.
The data model is visitor-centric rather than session-centric:
- Visitors -- Identified by a persistent cookie (
_jsuid). Each visitor has a timeline of all visits across sessions. Logged-in users can be tagged with a custom username for cross-device tracking. - Actions -- Page views, outbound link clicks, download clicks, and custom events. Each action has a timestamp, referrer, page title, and optional custom properties.
- Goals -- Named conversion events with optional revenue values. Goals can be triggered by page URLs, custom events, or JavaScript calls.
- Heatmaps -- Click coordinate data collected per page, aggregated across visitors.
Clicky uses a first-party JavaScript tracker that sends data to in.getclicky.com. Data appears in the dashboard within seconds. The Spy feature provides a live stream of individual visitor actions as they happen.
The on-site analytics widget allows embedding a real-time visitor count and stats overlay directly on your website pages, visible only to site administrators.
Installing the Tracking Script
Standard Installation
Add the Clicky tracking code before the closing </body> tag:
<script>var clicky_site_ids = clicky_site_ids || []; clicky_site_ids.push(YOUR_SITE_ID);</script>
<script async src="//static.getclicky.com/js"></script>
<noscript><p><img alt="Clicky" width="1" height="1" src="//in.getclicky.com/YOUR_SITE_IDns.gif" /></p></noscript>
Replace YOUR_SITE_ID with the numeric site ID from your Clicky dashboard (e.g., 101234567).
Advanced Configuration
Configure Clicky behavior using the clicky_custom global object. Define it before the tracking script loads:
<script>
var clicky_custom = {
// Custom visitor data
visitor: {
username: "jane_doe",
email: "jane@example.com",
plan: "enterprise"
},
// Track dynamic page title
pageview: {
title: document.querySelector('h1')?.textContent || document.title,
type: "click" // or "pageview" (default), "download", "outbound"
},
// Goal tracking on page load
goal: {
id: "signup", // Goal name or numeric ID
revenue: "49.99" // Optional revenue value
},
// Heatmap configuration
heatmap: {
disabled: false // Set true to disable heatmaps on this page
},
// Cookie settings
cookies: {
domain: ".example.com", // Share across subdomains
path: "/"
},
// Privacy
dnt: true, // Respect Do Not Track header
timeout: 10 // Session timeout in minutes (default: 30)
};
</script>
<script>var clicky_site_ids = clicky_site_ids || []; clicky_site_ids.push(YOUR_SITE_ID);</script>
<script async src="//static.getclicky.com/js"></script>
WordPress Plugin
Install the "Clicky by Yoast" plugin or add the tracking code directly to your theme's footer.php or via a custom code snippets plugin.
Single-Page Applications
For SPAs, manually log pageviews on route changes:
// React Router example
useEffect(() => {
if (window.clicky) {
clicky.log(window.location.pathname, document.title, "pageview");
}
}, [location.pathname]);
Event Tracking and Data Collection
clicky.log() API
The clicky.log() function is the primary method for tracking custom interactions:
// Signature: clicky.log(href, title, type)
// type: "pageview" (default), "click", "download", "outbound"
// Track a virtual pageview (e.g., SPA route change)
clicky.log('/app/dashboard', 'Dashboard', 'pageview');
// Track a button click as a custom event
clicky.log('/actions/export', 'Exported CSV Report', 'click');
// Track a file download
clicky.log('/files/whitepaper.pdf', 'Whitepaper Download', 'download');
// Track an outbound link click
clicky.log('https://partner.example.com', 'Partner Site Visit', 'outbound');
Goal Tracking
Trigger goals programmatically with optional revenue:
// Track a goal by name
clicky.goal('signup');
// Track a goal with revenue
clicky.goal('purchase', 149.99);
// Track a goal by numeric ID (from Clicky dashboard)
clicky.goal(12345, 49.00);
Goals can also be configured in the Clicky dashboard to trigger automatically when specific page URLs are visited, without any JavaScript code.
Custom Data
Attach arbitrary key-value data to the current pageview via clicky_custom:
// Set custom data for the current page
var clicky_custom = {
session: {
ab_test: "variant_b",
referral_code: "FRIEND100"
}
};
Visitor Tagging
Tag visitors with identifiable information for cross-session tracking:
var clicky_custom = {
visitor: {
username: "user-123",
email: "user@example.com",
company: "Acme Corp",
plan: "pro"
}
};
Tagged visitors appear in the Clicky dashboard with their custom username, making it possible to search for specific users and view their complete visit history.
Identity and User Tracking
Cookie-Based Identification
Clicky sets a _jsuid cookie to identify returning visitors. The cookie persists for 1 year by default. When a visitor returns, Clicky links the new session to their visitor profile, building a complete history of all visits.
Cross-Subdomain Tracking
To track visitors across subdomains, configure the cookie domain:
var clicky_custom = {
cookies: {
domain: ".example.com" // Shared across app.example.com, www.example.com, etc.
}
};
Logged-In User Tracking
When users authenticate, set the visitor.username property. Clicky uses this to identify the user across devices and browsers:
var clicky_custom = {
visitor: {
username: "db-user-id-456"
}
};
All future sessions with the same username are linked to the same visitor profile regardless of which device or browser is used.
Privacy / Cookieless Mode
Clicky supports cookieless tracking to avoid GDPR consent requirements for cookies:
var clicky_custom = {
cookies: {
disabled: true // No cookies set; visitors tracked by IP + UA fingerprint
}
};
In cookieless mode, returning visitor detection is less accurate since it relies on IP and user-agent matching rather than a persistent identifier.
API and Data Export
Clicky Stats API
The Clicky API returns site statistics in JSON or XML format:
# Base URL
# https://api.clicky.com/api/stats/4
# Get visitor counts for the last 7 days
curl "https://api.clicky.com/api/stats/4?site_id=YOUR_SITE_ID&sitekey=YOUR_SITE_KEY&type=visitors&date=last-7-days&output=json"
Required parameters:
site_id-- Your numeric site IDsitekey-- Your site's API key (found in Preferences > Advanced)type-- The stat type to queryoutput--json,xml, orcsv
Common API Queries
# Top pages today
curl "https://api.clicky.com/api/stats/4?site_id=ID&sitekey=KEY&type=pages&date=today&output=json&limit=20"
# Traffic sources this month
curl "https://api.clicky.com/api/stats/4?site_id=ID&sitekey=KEY&type=traffic-sources&date=this-month&output=json"
# Search keywords
curl "https://api.clicky.com/api/stats/4?site_id=ID&sitekey=KEY&type=searches&date=last-30-days&output=json"
# Goal completions
curl "https://api.clicky.com/api/stats/4?site_id=ID&sitekey=KEY&type=goals&date=last-7-days&output=json"
# Visitors by country
curl "https://api.clicky.com/api/stats/4?site_id=ID&sitekey=KEY&type=countries&date=today&output=json"
# Individual visitor actions (last 100)
curl "https://api.clicky.com/api/stats/4?site_id=ID&sitekey=KEY&type=visitors-list&date=today&output=json&limit=100"
Available Stat Types
| Type | Description |
|---|---|
visitors |
Visitor and pageview counts |
pages |
Top pages by views |
traffic-sources |
Referrer breakdown |
searches |
Search keywords |
goals |
Goal completions and revenue |
countries |
Visitor geography |
visitors-list |
Individual visitor actions |
actions |
All tracked actions |
exit-links |
Outbound link clicks |
downloads |
File download tracking |
Date Formats
The date parameter accepts: today, yesterday, last-7-days, last-30-days, this-month, last-month, or specific dates as YYYY-MM-DD (single day) or YYYY-MM-DD,YYYY-MM-DD (range).
Common Issues
Tracking Code Not Firing
Verify the script loads by checking DevTools > Network for requests to static.getclicky.com and in.getclicky.com. Common causes:
- Site ID mismatch: The
clicky_site_idsvalue must match your dashboard site ID exactly. - Ad blockers: Clicky is blocked by most ad blockers. Use a server-side proxy or custom domain to mitigate.
- CSP headers: Add
static.getclicky.comandin.getclicky.comto yourscript-srcandconnect-srcdirectives.
Heatmap Data Not Appearing
Heatmaps require a paid plan (Pro or higher). Verify your plan includes heatmaps. Also check that clicky_custom.heatmap.disabled is not set to true on the target page.
Heatmaps only track pages that receive sufficient traffic. Low-traffic pages may not generate visible heatmap data.
Goals Not Tracking
Goals configured in the Clicky dashboard use URL pattern matching. If the URL does not match exactly (including protocol, trailing slashes, or query parameters), the goal will not fire. Test with the exact URL your visitors hit.
For JavaScript-triggered goals, ensure clicky.goal() is called after the Clicky script has loaded. Wrap in a check:
if (typeof clicky !== 'undefined') {
clicky.goal('purchase', 99.00);
}
Real-Time Data Delayed
Clicky data should appear within seconds. If delays occur, check whether the tracker is sending events (Network tab). Delays usually indicate the script is not loading or is being blocked. Server-side delays on Clicky's end are rare but can be checked at status.getclicky.com.
Visitor Count Discrepancies with GA
Clicky and Google Analytics use different methodologies for counting visitors. Clicky counts unique visitors by cookie or IP+UA fingerprint. GA4 uses a combination of cookies and Google signals. Bot filtering differences also cause counts to diverge. A 10-20% discrepancy between the two is normal.
Platform-Specific Considerations
On-Site Analytics Widget
Clicky provides an embeddable widget that shows real-time visitor stats directly on your site. Only visible to administrators (requires authentication):
<!-- Add to your admin layout -->
<script src="//static.getclicky.com/js" type="text/javascript"></script>
<script type="text/javascript">
clicky.init(YOUR_SITE_ID);
</script>
<a title="Clicky" href="https://clicky.com/YOUR_SITE_ID">
<img alt="Clicky" src="//static.getclicky.com/media/links/badge.gif" border="0" />
</a>
Real-Time Spy
The Spy feature in the Clicky dashboard shows a live feed of visitor actions as they happen. Each entry shows the visitor's IP/location, the page they are viewing, their referrer, and the time on page. This is useful for monitoring campaign launches or debugging live issues.
Uptime Monitoring
Clicky's built-in uptime monitoring pings your site every minute and alerts via email or Slack when downtime is detected. Configure in Preferences > Uptime Monitoring. Downtime incidents are logged with timestamps and duration.
Bot Filtering
Clicky applies automatic bot detection using known bot signatures, behavioral analysis, and request pattern matching. Detected bots are excluded from visitor counts. You can review filtered bot traffic in the dashboard under Visitors > Bots.
White-Label / Agency
Paid plans support white-label branding for agencies. Custom domains for the tracking endpoint and dashboard branding are available on higher-tier plans.
API Rate Limits
The Stats API allows up to 30 requests per IP per minute on standard plans. Enterprise plans have higher limits. Responses include X-RateLimit-Remaining headers.