Server SDKs

Session Event

Send session start and end events with the Node.js SDK

Session tracking is optional for server-side integrations. Use it when your backend or app can reliably provide a session ID and duration.

Usage

import {
  Client, UserData, SessionData, AppEvent
} from "@geeklab.app/audiencelab_nodejs_sdk";

const client = new Client({
  apiKey: "YOUR_API_KEY",
  baseUrl: "https://analytics.geeklab.app",
});

const userData = new UserData()
  .setUserId("user_12345")
  .setUserIp("203.0.113.42")
  .setUserCreativeTokenInfo({
    creativeToken: "abc123-creative-token",
    os_system: "iOS 17.4",
    device_name: "iPhone 14 Pro",
    device_model: "iPhone15,2",
    utc_offset: "+03:00",
    install_date: "2026-06-09T10:00:00+00:00",
    last_login_date: "2026-06-10T10:00:00+00:00",
  });

const sessionId = SessionData.generateSessionId();

await new AppEvent(
  client,
  SessionData.start(sessionId),
  userData
).send();

await new AppEvent(
  client,
  SessionData.end(sessionId, 342, "background_timeout"),
  userData
).send();

SessionData Fields

Prop

Type

For regular purchase, ad, retention, or custom events, use userData.setSessionContext(sessionId) or pass sessionId to AppEvent to include session context.