Skip to main content

started_session

A visitor's session began. Carries the touch: how they arrived, and with which consent.

Derived by the service from the first call of a session (context.sessionStart), not sent by the SDK as such; a backend may send one for a session it knows about. The utm, click_ids, landing_url and referrer fields are the raw material of the touch block on later orders.

Sent withbrowser, server keys (see write keys)
Modestrict: exactly the declared fields; an undeclared key, a wrong type or a missing required key quarantines the event
Version1 (_schema_version on the stored row)
Stateactive
Required fieldssession_id
Revenuenone: the revenue block is refused
Identity evidencenone
Before consentno

Fields​

The activity's own fields, sent as features. Identifier and attribute fields are moved out of features by the processor; see identifiers and attributes.

FieldTypeRequiredWhat happens to itMeaning
click_idsobject of stringnostays in featuresAd click ids read from the address or a cookie, by platform key (gclid, fbclid, …), as /v1/config lists them. Read only with ads consent.
consentobjectno, may be nullstays in featuresThe consent snapshot at the time: analytics, ads and personalisation, each true or false.
consent.adsbooleanno, may be nullstays in featuresWhether ads consent was given.
consent.analyticsbooleanno, may be nullstays in featuresWhether analytics consent was given.
consent.personalisationbooleanno, may be nullstays in featuresWhether personalisation consent was given.
landing_urlstringno, may be nullstays in featuresThe first page of the session, as the visitor arrived on it, query included.
referrerstringno, may be nullstays in featuresThe page the visitor came from, as the browser reported it.
session_idstringyesstays in featuresThe browser session, as the SDK assigns it (context.sessionId on calls). Joins page views to the session that started them.
utmobjectno, may be nullstays in featuresThe campaign parameters as typed in the address: source, medium, campaign, term, content.
utm.campaignstringno, may be nullstays in featuresutm_campaign as typed.
utm.contentstringno, may be nullstays in featuresutm_content as typed.
utm.mediumstringno, may be nullstays in featuresutm_medium as typed.
utm.sourcestringno, may be nullstays in featuresutm_source as typed.
utm.termstringno, may be nullstays in featuresutm_term as typed.

Example​

One activity in a batch to POST /v1/activities, with debug so the answer says what the processor made of it. The envelope page explains every top-level field.

{
"batch": [
{
"activity_id": "0192f1a4-4907-758d-8000-490758d80000",
"activity": "started_session",
"ts": "2026-10-17T20:00:00+02:00",
"anonymous_customer_id": "evx_web_8f21c0",
"features": {
"click_ids": {
"gclid": "Cj0KCQjw"
},
"consent": {
"analytics": true,
"ads": false,
"personalisation": false
},
"landing_url": "https://summerfest.nl/?utm_source=newsletter&utm_medium=email&utm_campaign=early-bird",
"referrer": "https://www.google.com/",
"session_id": "s_01M4XVBYC3FGXCPFRZEPGV20RZ",
"utm": {
"source": "newsletter",
"medium": "email",
"campaign": "early-bird",
"term": null,
"content": null
}
}
}
],
"debug": true
}

Try it​

Sends this request from your browser. The key and the endpoint are kept in this browser only.

Versions​

VersionModeKey classesChange
1 (current)strictbrowser, serverfirst version

A published version never changes; a change is a new version, and every stored row says which version it was checked against.