# Media Item — Impression

The LiSA Player sends a media item impression message to indicate that a media item has been loaded and displayed in the player..

### Properties

Along with all standard [Media Item message properties](/developers/guides/player-communication/message-api-reference/media-item.md#properties), an **Impression** message includes the following additional properties:

<table><thead><tr><th width="243" valign="top">Name</th><th width="192" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>auxiliaryData</code></td><td valign="top"><pre><code><strong>AuxiliaryData
</strong></code></pre><p>Required.</p></td><td valign="top">The <code>auxiliaryData</code> property is an object that holds additional metadata related to the media item impression. <br><br>Please refer to <code>AuxiliaryData</code> for detailed information.</td></tr><tr><td valign="top"><code>firstOccurrence</code></td><td valign="top"><pre><code>Boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>firstOccurrence</code> property specifies whether this is the user's first instance of a media item impression event. A media item impression is only regarded as the first occurrence if it has not been triggered repeatedly within a 60-minute window.</td></tr><tr><td valign="top"><code>messageType</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>lsc:media:impression</code></td></tr></tbody></table>

#### Legacy Properties

{% hint style="warning" %}
If your integration uses **LiSA Player Version 1**, none of the properties described above will be available.

For **LiSA Player Version 2**, legacy properties can be ignored.
{% endhint %}

<table><thead><tr><th width="197" valign="top">Name</th><th width="190" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>action</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>ready</code><br><br><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>messageType</code> instead.</td></tr><tr><td valign="top"><code>products</code></td><td valign="top"><pre><code>Object
</code></pre><p>Optional.</p></td><td valign="top">The <code>products</code> field specifies a map of product identifiers, where each <code>key</code> represents the external or merchant-specific identifier for the product and its corresponding value represents the LiSA internal product identifier.<br><br><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>auxiliaryData.products</code> instead.</td></tr><tr><td valign="top"><code>target</code></td><td valign="top"><pre><code>Literal
</code></pre><p>Required.</p></td><td valign="top"><code>show</code><br><br><span data-gb-custom-inline data-tag="emoji" data-code="26a0">⚠️</span> Please use <code>messageType</code> instead.</td></tr></tbody></table>

***

### Type Definition

```typescript
interface MediaItemImpressionMessage extends Omit<
  MediaItemMessage,
  'messageType'
> {
  auxiliaryData: MediaItemImpressionAuxiliaryData;
  firstOccurrence: boolean;
  messageType: 'lsc:media:impression';
}
```

#### `MediaItemImpressionAuxiliaryData`

<table><thead><tr><th width="196" valign="top">Name</th><th width="192" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>products</code></td><td valign="top"><pre><code>Object
</code></pre><p>Required.</p></td><td valign="top">The <code>products</code> field specifies a map of product identifiers, where each <code>key</code> represents the external or merchant-specific identifier for the product and its corresponding value represents the LiSA internal product identifier.</td></tr></tbody></table>

```typescript
interface MediaItemImpressionAuxiliaryData {
  products: Record<string, string>;
}
```

### Examples

```json
{
  "auxiliaryData": {
    "products": {
      "9caf4704-ec2f-438b-8b18-128a9ba22fda": "6052b475-b887-4d84-8f83-7797c7790dbd"
    }
  },
  "clockDriftInMs": 0,
  "firstOccurrence": true,
  "mediaItemId": "9f333331-45cb-4289-8bcd-9023c1871111",
  "mediaItemType": "live",
  "messageType": "lsc:media:impression",
  "progress": {
    "bufferedTimeInMs": 636036,
    "currentTimeInMs": 619609,
    "durationInMs": 4616000,
    "elapsedTimeInMs": 22761,
    "isLive": true,
    "isPlaying": true,
    "skipTimeInMs": 600000,
    "visitorDwellTimeInMs": 23882
  },
  "sender": "LiSA",
  
  "action": "ready",
  "additional":  {
    "showDate": "2025-01-15T18:00:00.000Z",
    "showId": "9f333331-45cb-4289-8bcd-9023c1871111",
    "showState": "live",
    "showTitle": "Shred the Slopes: The Ultimate Ski Gear Guide 🎿❄️"
  },
  "products": {
    "9caf4704-ec2f-438b-8b18-128a9ba22fda": "6052b475-b887-4d84-8f83-7797c7790dbd"
  },
  "target": "show"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hello-lisa.com/developers/guides/player-communication/message-api-reference/media-item/media-item-impression.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
