Skip to main content

SessionData

Comprehensive session information tracked throughout a user’s visit.
export interface SessionData {
  sessionId?: string;
  startTime: number;
  endTime?: number;
  duration?: number;
  pageViews: number;
  clicks: number;
  scrollDepth: number;
  maxScrollDepth: number;
  isActive: boolean;
  events: string[];
  scrollEvents?: number;
  clickEvents?: number;
  pageChanges?: number;
  engagementScore?: number;
  bounceLikelihood?: number;
  channel?: string;
}

Properties

sessionId
string
Unique identifier for this session.
startTime
number
required
Unix timestamp (in milliseconds) when the session started.
endTime
number
Unix timestamp (in milliseconds) when the session ended.
duration
number
Total duration of the session in milliseconds.
pageViews
number
required
Number of pages viewed during this session.
clicks
number
required
Total number of click events recorded.
scrollDepth
number
required
Current scroll depth as a percentage (0-100).
maxScrollDepth
number
required
Maximum scroll depth reached during the session (0-100).
isActive
boolean
required
Whether the session is currently active.
events
string[]
required
Array of event names that occurred during this session.
scrollEvents
number
Count of scroll events during the session.
clickEvents
number
Count of click events during the session.
pageChanges
number
Number of page navigation events.
engagementScore
number
Calculated engagement score based on user interactions (0-100).
bounceLikelihood
number
Predicted likelihood that the user will bounce (0-100).
channel
string
Acquisition channel (e.g., “organic”, “paid”, “referral”, “direct”).

HeatmapData

Data structure for heatmap interaction tracking.
export interface HeatmapData {
  x: number;
  y: number;
  element?: string;
  selector?: string;
  action: "click" | "move" | "scroll";
  viewport: {
    width: number;
    height: number;
  };
}

Properties

x
number
required
X coordinate of the interaction in pixels.
y
number
required
Y coordinate of the interaction in pixels.
element
string
HTML element tag name where the interaction occurred.
selector
string
CSS selector for the element.
action
string
required
Type of interaction. Possible values: click, move, scroll.
viewport
object
required
Viewport dimensions:
  • width (number): Viewport width in pixels
  • height (number): Viewport height in pixels

PerformanceData

Web performance metrics based on browser performance APIs.
export interface PerformanceData {
  loadTime?: number;
  domReady?: number;
  firstPaint?: number;
  firstContentfulPaint?: number;
  largestContentfulPaint?: number;
  firstInputDelay?: number;
  cumulativeLayoutShift?: number;
  timeToInteractive?: number;
}

Properties

loadTime
number
Total page load time in milliseconds.
domReady
number
Time until DOM is ready in milliseconds.
firstPaint
number
First Paint (FP) metric in milliseconds.
firstContentfulPaint
number
First Contentful Paint (FCP) metric in milliseconds.
largestContentfulPaint
number
Largest Contentful Paint (LCP) metric in milliseconds.
firstInputDelay
number
First Input Delay (FID) metric in milliseconds.
cumulativeLayoutShift
number
Cumulative Layout Shift (CLS) score.
timeToInteractive
number
Time to Interactive (TTI) metric in milliseconds.

ErrorData

Information about JavaScript errors and exceptions.
export interface ErrorData {
  message: string;
  stack?: string;
  filename?: string;
  lineno?: number;
  colno?: number;
  type: "javascript" | "unhandledrejection" | "network" | "custom";
}

Properties

message
string
required
Error message text.
stack
string
Stack trace of the error.
filename
string
File where the error occurred.
lineno
number
Line number where the error occurred.
colno
number
Column number where the error occurred.
type
string
required
Error type. Possible values: javascript, unhandledrejection, network, custom.

FunnelState

State information for funnel tracking.
export interface FunnelState {
  funnelName: string;
  currentStep: number;
  startTime: number;
  steps: FunnelStep[];
  isActive: boolean;
}

Properties

funnelName
string
required
Name of the funnel being tracked.
currentStep
number
required
Index of the current step in the funnel (0-based).
startTime
number
required
Unix timestamp when the funnel was started.
steps
FunnelStep[]
required
Array of completed funnel steps.
isActive
boolean
required
Whether the funnel is currently active.

FunnelStep

Information about a single step in a funnel.
export interface FunnelStep {
  stepName: string;
  stepIndex: number;
  timestamp: number;
  timeInFunnel: number;
  properties?: EventProperties;
}

Properties

stepName
string
required
Name of the funnel step.
stepIndex
number
required
Index of this step in the funnel (0-based).
timestamp
number
required
Unix timestamp when this step was completed.
timeInFunnel
number
required
Time spent in the funnel up to this step in milliseconds.
properties
EventProperties
Additional properties associated with this step.

QueuedEvent

Internal structure for events waiting to be sent.
export interface QueuedEvent {
  event: AnalyticsEvent;
  retries: number;
  timestamp: number;
}

Properties

event
AnalyticsEvent
required
The analytics event to be sent.
retries
number
required
Number of retry attempts made for this event.
timestamp
number
required
Unix timestamp when the event was queued.

Build docs developers (and LLMs) love