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.