# Alias Mapping Tables

You receive logical alias keys in `contextData` and should use **Processing Rules** to map these to your own **eVars**/**props** or merchandising dimensions.

The placeholders below (e.g., `eVar{X}`, `prop{Y}`) should be replaced per your availability.

<table data-full-width="false"><thead><tr><th width="270.4453125" valign="top">Alias (contextData key) </th><th valign="top">Meaning / Use Case</th><th valign="top">Suggested Adobe Target (placeholder)</th><th valign="top">Friendly Label Example</th></tr></thead><tbody><tr><td valign="top"><code>lsc.clockDriftInMs</code></td><td valign="top">Clock skew diagnostics</td><td valign="top">prop{CLOCK_DRIFT}</td><td valign="top">Clock Drift (ms)</td></tr><tr><td valign="top"><code>lsc.eventDate</code></td><td valign="top">Client-side timestamp (for sync/diagnostics)</td><td valign="top">prop{EVENT_DATE}</td><td valign="top">Client Event Date</td></tr><tr><td valign="top"><code>lsc.eventId</code></td><td valign="top">Unique event instance for dedupe/debug</td><td valign="top">prop{EVENT_ID} (optionally eVar)</td><td valign="top">LiSA Event ID</td></tr><tr><td valign="top"><code>lsc.eventType</code></td><td valign="top">Semantic kind of event (used for segmentation/funnels)</td><td valign="top">eVar{EVENT_TYPE}</td><td valign="top">Event Type</td></tr><tr><td valign="top"><code>lsc.locale</code></td><td valign="top">Visitor-level segmentation</td><td valign="top">eVar{LOCALE}</td><td valign="top">Locale</td></tr><tr><td valign="top"><code>lsc.mediaItemId</code></td><td valign="top">Media content being interacted with</td><td valign="top">eVar{MEDIA_ITEM_ID}</td><td valign="top">Media Item ID</td></tr><tr><td valign="top"><code>lsc.mediaItemType</code></td><td valign="top"><code>'live'</code>, <code>'replay'</code> or <code>'story'</code></td><td valign="top">eVar{MEDIA_TYPE}</td><td valign="top">Media Item Type</td></tr><tr><td valign="top"><code>lsc.progress.currentTimeInMs</code></td><td valign="top">Playback position</td><td valign="top">prop{CURRENT_TIME_MS}</td><td valign="top">Current Time (ms)</td></tr><tr><td valign="top"><code>lsc.progress.durationInMs</code></td><td valign="top">Total duration</td><td valign="top">prop{DURATION_MS}</td><td valign="top">Duration (ms)</td></tr><tr><td valign="top"><code>lsc.progress.elapsedTimeInMs</code></td><td valign="top">Watch engagement</td><td valign="top">prop{ELAPSED_TIME_MS}</td><td valign="top">Elapsed Watch Time (ms)</td></tr><tr><td valign="top"><code>lsc.progress.isLive</code></td><td valign="top">Underlying stream live state</td><td valign="top">eVar{IS_LIVE}</td><td valign="top">Is Live</td></tr><tr><td valign="top"><code>lsc.progress.isPlaying</code></td><td valign="top">Playback active state</td><td valign="top">prop{IS_PLAYING}</td><td valign="top">Is Playing</td></tr><tr><td valign="top"><code>lsc.storeRef</code></td><td valign="top">Filtering / cross-store comparison.</td><td valign="top">eVar{STORE_REF}</td><td valign="top">Region or Store</td></tr><tr><td valign="top"><code>lsc.visitorExternalId</code></td><td valign="top">Your visitor/user identifier </td><td valign="top">prop{VISITOR_EXTERNAL_ID}</td><td valign="top">Visitor External ID</td></tr><tr><td valign="top"><code>lsc.visitorId</code></td><td valign="top">LiSA visitor identifier (persistent per user)</td><td valign="top">eVar{VISITOR_ID}</td><td valign="top">Visitor ID</td></tr><tr><td valign="top"><code>lsc.visitorSessionId</code></td><td valign="top">Session-scoped identifier</td><td valign="top">eVar{SESSION_ID}</td><td valign="top">Visitor Session ID</td></tr></tbody></table>

{% hint style="warning" %}
You should create Processing Rules such as:
{% endhint %}

* **If** contextData key `lisa.visitorId` exists → **Set** eVar{VISITOR\_ID} = value of `lisa.visitorId` (label “LiSA Visitor ID”).&#x20;
* **If** contextData key `lisa.eventType` exists → **Set** eVar{EVENT\_TYPE} = value of `lisa.eventType`.

See Adobe’s documentation on mapping contextData to props/eVars via Processing Rules.
