Skip to content
Start in Cloud

Event Analytics

You want to understand what visitors do after they land: which forms they submit, which files they download, which outbound links they click, and which custom product actions they trigger. HitKeep’s Events page reports both automatic events from hk.js and manual events from your own code.

HitKeep Event analytics
Overview of Events Analytics

The Events page turns those events into reporting you can use: slice any event by its JSON properties, filter the chart by country, device, page, or referrer, and see the audience behind each event without writing SQL.

HitKeep’s built-in automatic events are outbound_click, file_download, and form_submit. They appear when they exist for the selected range.

AI chatbot analytics is built from normal custom events with stable assistant.* names. Those events appear here too, so you can inspect their raw counts, properties, and audiences before using the dedicated AI Chatbot Analytics page.

Events can come from either manual or automatic tracking:

Manual events can be tracked using the HitKeep snippet:

window.hk('purchase_completed', { plan: 'pro', billing: 'annual', amount: 99 });

If you want to disable any built-in automatic events, use the tracking settings toggle in the dashboard or the snippet attributes documented in Automatic Events.

  1. Navigate to Events in the sidebar.
  2. Select a time range from the toolbar.
  3. Use one of the Automatic events quick picks when available, or pick an event name from the first dropdown.
  4. Optionally pick a property from the second dropdown — the list shows all keys present on that event.
  5. The Property breakdown table appears with one row per distinct value, ordered by unique-session count descending.

Click any row in the breakdown table to filter the chart to only sessions that had that property value. Click the row again to clear the filter. Active filters appear as pill chips below the chart — click the × button on a chip or Clear all to remove them.

HitKeep Event analytics - Audience
Overview of Events Analytics - Segmenting Audience

When an event is selected, four audience panels appear below the breakdown table:

PanelWhat it shows
Top pagesPages visited during sessions that contain the selected event
Top sourcesReferrers for those sessions
DevicesDesktop vs. Mobile breakdown
CountriesCountry distribution

All counts are unique sessions — consistent with the property breakdown table.

Click any row in an audience panel to add an audience filter. This restricts both the timeseries chart and the other audience panels to sessions that match. For example, clicking “Germany” in the Countries panel shows the event trend for German visitors only. You can combine different audience dimensions, such as country plus device. Click the same row again, or use the filter chips bar, to remove the filter.

You can combine one property-value filter with multiple audience-dimension filters. Each audience dimension can have one active value at a time, so selecting another country replaces the previous country while keeping filters such as device or path in place. Active filters are shown as pill chips below the chart:

plan: pro × Country: DE × Device: Desktop × Clear all

Filters are applied together (AND logic): the chart shows events where plan = pro and the same session also matches Germany and Desktop.

Terminal window
# List event names for a site and time range
GET /api/sites/{id}/events/names?from=2025-01-01T00:00:00Z&to=2025-01-31T23:59:59Z
# List property keys for a specific event
GET /api/sites/{id}/events/properties?from=...&to=...&event_name=purchase_completed
# Breakdown of a property across an event
GET /api/sites/{id}/events/breakdown?from=...&to=...&event_name=purchase_completed&property_key=plan
# Event timeseries, optionally filtered by property and audience dimensions
GET /api/sites/{id}/events/timeseries?from=...&to=...&event_name=purchase_completed
GET /api/sites/{id}/events/timeseries?...&property_key=plan&property_value=pro
GET /api/sites/{id}/events/timeseries?...&filter=country:DE&filter=device:Desktop
# Audience breakdown for an event
GET /api/sites/{id}/events/audience?from=...&to=...&event_name=purchase_completed
GET /api/sites/{id}/events/audience?...&property_key=plan&property_value=pro
GET /api/sites/{id}/events/audience?...&filter=country:DE&filter=device:Desktop

Repeated filter=type:value query parameters are applied conjunctively. Event audience filters accept: path, hostname, referrer, referrer_host, device, country, browser, language, utm_campaign, utm_content, utm_medium, utm_source, and utm_term.

The older dimension_key and dimension_value parameters still work for one audience filter, but new integrations should use repeated filter parameters.

All endpoints require Site Viewer access (session cookie, bearer token, or API key).

Run ./hitkeep seed and navigate to Events → purchase_completedplan to see the full breakdown and audience panels populated immediately with seeded demo data.