Last updated: Aug 29 2018

Area: Episerver Tracking Applies to versions: Tracking.Core 1.6 and higher

Tracking event model/data properties

Use tracking in Episerver to personalize content and product recommendations, and for collecting profile data, to be used for segmented marketing actions. You can track data to any source. This topic describes properties used by tracking events in the core tracking.

Required tracking event model/data properties

  • DeviceId [string]. The device identifier is generated by the website for the client, and must be provided in each tracking request to Tracking API. Use _madid as the name of the cookie when storing a device ID in a visitor browser.
  • EventType [string]. The type of tracking event.
  • Value [string]. The tracking data value, such as epiPageView or basket.

Optional tracking event model/data properties

  • PageTitle [string]. The page title.
  • User [object]. A JSON object with user information that can have the following optional properties:
    • Name [string]. The user's name.
    • Email [string]. The user's email.
    • Info [object]. Information related to the user as a list of strings.
  • Payload [object]. A JSON object with any kind of data.
  • PageUri [string]. The page URI where the event occurred.
  • EventTime [string]. The date and time, in UTC, when the event occurred.
  • Scope [string]. The scope this tracking event belongs to. default is used when not set. (Scope is a concept for separating tracking events, and profiles into different scopes.)
  • RemoteAddress [string]. The client IP address. This property overrides the value in Epi-User-IP-Address header if set.

Tracking IP address

There are two methods to set the client IP address in Tracking API.

  • Use the Epi-User-IP-Address header to pass the visitor IP address to the Tracking API. 
  • Set IP address in remoteAddress property in track event. It will override the IP address set in Epi-User-IP-Address header. 

Tracking IP address in batch requests

You can set the IP address in RemoteAddress property for each individual track event, which will override the value set in the header. The same behavior applies to batch requests. Therefore, you can set the IP address for individual track events in the batch requests, instead of having one IP address for all the track events in the header.


TrackID provides a way to define TrackEvent uniqueness on a specific ClientID and Scope, regardless of other values. This means that if two TrackEvents have the same TrackIDClientID and Scope, they will be treated as equal.

If TrackID is duplicated, the TrackEvent is skipped from processing silently, meaning no error messages will inform the user.

If TrackID is not specified, then TrackEvent behaves normally and TrackID is left empty on that TrackEvent.

Related topics

Do you have feedback on this documentation? Send an email to documentation@episerver.com. For development-related questions and discussions, refer to our Forums on https://world.episerver.com/forum/