Clicky Analytics: Real-Time Tracking and API Guide | OpsBlu Docs

Clicky Analytics: Real-Time Tracking and API Guide

Technical guide to Clicky installation, clicky.log() event tracking, real-time visitor monitoring, heatmaps, Goals, and the Clicky Stats API.

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

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 ID
  • sitekey -- Your site's API key (found in Preferences > Advanced)
  • type -- The stat type to query
  • output -- json, xml, or csv

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_ids value 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.com and in.getclicky.com to your script-src and connect-src directives.

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.