Skip to main content
Hardal Analytics stores event data across three core tables using ClickHouse for high-performance analytics.

Core Tables

Primary event table - stores all user interactions and page views
id
UUID
required
Unique event identifier
website_id
String
required
Website/app identifier
session_id
String
required
User session identifier (cookieless)
hostname
String
Domain name where event occurred
browser
String
Browser name (Chrome, Firefox, Safari)
browser_version
String
Browser version number
os
String
Operating system (Windows, macOS, Linux)
device
String
Device type: desktop, mobile, tablet
screen
String
Screen resolution (1920x1080)
viewport_size
String
Browser viewport dimensions
language
String
Browser language (en-US, fr-FR)
country
String
Country code (ISO 3166-1)
timezone
String
User timezone (America/New_York)
url
String
Complete page URL
url_path
String
URL path component
url_query
String
URL query parameters
referrer
String
Referrer URL
referrer_domain
String
Referrer domain name
page_title
String
HTML page title
event_type
String
Event type: pageview or event
event_name
String
Event name (page_view, click, form_submit)
created_at
DateTime
required
Event timestamp (UTC)
Table is partitioned by month for optimal query performance

Data Relationships

1

Event Creation

Each user interaction creates a record in website_event with a unique event_id
2

Custom Properties

Additional event properties are stored in event_data linked by event_id
3

Session Attributes

User session properties are stored in session_data linked by session_id
Sessions are cookieless and identified using server-side fingerprinting techniques

Query Examples

SELECT 
  event_name,
  url_path,
  COUNT(*) as event_count
FROM website_event 
WHERE website_id = 'your_website_id'
  AND created_at >= '2024-01-01'
GROUP BY event_name, url_path
ORDER BY event_count DESC;