# Stickers

The LiSA Player sends messages in response to various user interactions with stickers.

The player distinguishes different types of stickers interactions.&#x20;

* [Activate](/developers/guides/player-communication/message-api-reference/stickers/stickers-activate.md) — The sticker activation timer has started
* [Click](/developers/guides/player-communication/message-api-reference/stickers/stickers-click.md) — The sticker was clicked by a user
* [Expire](/developers/guides/player-communication/message-api-reference/stickers/stickers-expire.md) — The sticker has expired
* [Impression](/developers/guides/player-communication/message-api-reference/stickers/stickers-impression.md) — The sticker becomes visible in a user's viewport
* [Publish](/developers/guides/player-communication/message-api-reference/stickers/stickers-publish.md) — The sticker was published by a creator or moderator
* [Unlock](/developers/guides/player-communication/message-api-reference/stickers/stickers-unlock.md) — The sticker's activation timer is complete
* [Unpublish](/developers/guides/player-communication/message-api-reference/stickers/stickers-unpublish.md) — The sticker was unpublished by a creator or moderator
* [Update](/developers/guides/player-communication/message-api-reference/stickers/stickers-update.md) — Poll details have been updated
* [Voucher Claim](/developers/guides/player-communication/message-api-reference/stickers/stickers-voucher-claim.md) — The voucher code of a voucher sticker has been claimed by a user

This message is sent by the LiSA Player to the host app / environment.

### Properties

Along with all standard [Message properties](/developers/guides/player-communication/message-api-reference.md#properties), a Sticker Interaction message includes the following additional properties:

<table><thead><tr><th width="220" valign="top">Name</th><th width="175" valign="top">Type</th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top"><code>mediaItemId</code></td><td valign="top"><pre><code>string
</code></pre><p>Required.</p></td><td valign="top">The <code>mediaItemId</code> property uniquely identifies the Media Item from which this message originates.</td></tr><tr><td valign="top"><code>mediaItemType</code></td><td valign="top"><pre><code>MediaItemType
</code></pre><p>Required.</p></td><td valign="top">The <code>mediaItemType</code> property specifies the type of Media Item from which this message originates.<br><br>Refer to <a href="/pages/TzMvWg0wtnzBMpFfvyoN#media-item-type"><code>MediaItemType</code></a> for detailed information.</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">The <code>messageType</code> property specifies the distinct type of message.</td></tr><tr><td valign="top"><code>progress</code></td><td valign="top"><pre><code>MediaProgress
</code></pre><p>Required.</p></td><td valign="top">The <code>progress</code> property is an object that holds additional metadata related to the media playback progress of the current media item.<br><br>Please refer to <a href="/pages/rMD8D7mCXjBlgew5J7ms#media-progress"><code>MediaProgress</code></a> for detailed information.</td></tr><tr><td valign="top"><code>stickerActionTarget</code></td><td valign="top"><pre><code>StickerActionTarget
</code></pre><p>Optional.</p></td><td valign="top">The <code>stickerActionTarget</code> property represents the (localized) action to be executed when a user interacts with a UI element. It can be an identifier, a structured JSON payload, or a URL that opens in a new tab.<br><br>Refer to <a href="#stickeractiontarge">StickerActionTarget</a> for detailed information.</td></tr><tr><td valign="top"><code>stickerActivationTimerDurationInSec</code></td><td valign="top"><pre><code>number
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerActivationTimerDurationInSec</code> property defines the length of the activation timer in seconds. If no activation timer is set for the sticker, the value is <code>0</code>.</td></tr><tr><td valign="top"><code>stickerActivationTimerIsActive</code></td><td valign="top"><pre><code>boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerActivationTimerIsActive</code> property indicates, whether the sticker's activation timer is currently running.</td></tr><tr><td valign="top"><code>stickerActivationTimerIsCompleted</code></td><td valign="top"><pre><code>boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerActivationTimerIsCompleted</code> property indicates, whether the sticker's activation timer is complete.</td></tr><tr><td valign="top"><code>stickerActivationTimerStartedAt</code></td><td valign="top"><pre><code>string
</code></pre><p>Optional.</p></td><td valign="top">The <code>stickerActivationTimerStartedAt</code> property represents the timestamp when the activation timer of the sticker was started — represented in ISO 8601 format.</td></tr><tr><td valign="top"><code>stickerDetails</code></td><td valign="top"><pre><code>StickerDetails
</code></pre><p>Optional.</p></td><td valign="top">The <code>stickerDetails</code> property represents the corresponding details object containing relevant information. The structure of this object varies depending on the <code>stickerType</code>.<br><br>Refer to <a href="#stickerdetails">StickerDetails</a> for detailed information.</td></tr><tr><td valign="top"><code>stickerExpiryTimerDurationInSec</code></td><td valign="top"><pre><code>number
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerExpiryTimerDurationInSec</code> property defines the length of the expiry timer in seconds. If no expiry timer is set for the sticker, the value is <code>0</code>.</td></tr><tr><td valign="top"><code>stickerExpiryTimerIsActive</code></td><td valign="top"><pre><code>boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerExpiryTimerIsActive</code> property indicates, whether the sticker's expiry timer is currently running.</td></tr><tr><td valign="top"><code>stickerExpiryTimerStartedAt</code></td><td valign="top"><pre><code>string
</code></pre><p>Optional.</p></td><td valign="top">The <code>stickerExpiryTimerStartedAt</code> property represents the timestamp when the expiry timer of the sticker was started — represented in ISO 8601 format.</td></tr><tr><td valign="top"><code>stickerId</code></td><td valign="top"><pre><code>string
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerId</code> property represents the unique sticker identifier.</td></tr><tr><td valign="top"><code>stickerIsExpired</code></td><td valign="top"><pre><code>boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerIsExpired</code> property indicates, whether the sticker has expired.</td></tr><tr><td valign="top"><code>stickerIsUnlocked</code></td><td valign="top"><pre><code>boolean
</code></pre><p>Required.</p></td><td valign="top">The <code>stickerIsUnlocked</code> property indicates, whether the sticker is unlocked. Either when the activation timer is not set or has completed AND the sticker has not expired.</td></tr><tr><td valign="top"><code>stickerType</code></td><td valign="top"><pre><code>Enum
</code></pre><p>Required.</p></td><td valign="top"><p>The <code>stickerType</code> property represents the type of sticker being used.<br></p><p><strong>Allowed Values:</strong></p><ul><li><code>alert</code> – Displays an informational or warning alert.</li><li><code>poll</code> – Represents a poll for collecting user votes.</li><li><code>product</code> – Showcases a product-related sticker.</li><li><code>voucher</code> – Represents a discount or promotional voucher sticker.</li></ul></td></tr></tbody></table>

***

### Type Definition

```typescript
interface StickerMessage extends Omit<
  Message,
  'messageType' | 'sender'
> {
  mediaItemId: string;
  mediaItemType: MediaItemType;
  messageType:
    | 'lsc:sticker:activate'
    | 'lsc:sticker:click'
    | 'lsc:sticker:expire'
    | 'lsc:sticker:impression'
    | 'lsc:sticker:publish'
    | 'lsc:sticker:unlock'
    | 'lsc:sticker:unpublish'
    | 'lsc:sticker:update'
    | 'lsc:sticker:voucher:claim';
  progress: MediaProgress;
  stickerActionTarget?: StickerActionTarget;
  stickerActivationTimerDurationInSec: number;
  stickerActivationTimerIsActive: boolean;
  stickerActivationTimerIsCompleted: boolean;
  stickerActivationTimerStartedAt?: string;
  stickerDetails: StickerDetails;
  stickerExpiryTimerDurationInSec: number;
  stickerExpiryTimerIsActive: boolean;
  stickerExpiryTimerStartedAt?: string;
  stickerId: string;
  stickerIsExpired: boolean;
  stickerIsUnlocked: boolean;
  stickerType: 'alert' | 'poll' | 'product' | 'voucher';
  sender: 'LiSA';
}
```

#### `StickerActionTarget`

```typescript
type StickerActionTarget = Record<string, unknown> | string;
```

The Sticker Action supports three different use cases:

* Identifier (String) — Represents an action or event that the host app / environment can interpret and execute.&#x20;
* Structured Data (Object) — For more complex action definitions the action target contains an object structure.

#### `StickerDetails`

The `StickersDetails` type defines the corresponding details for each sticker based on its type.

{% tabs %}
{% tab title="Alert" %}
The **Alert** sticker does not contain any specific details, so the `stickerDetails` value is always an empty object.
{% endtab %}

{% tab title="Poll" %}
The **Poll** sticker does not contain any specific details, so the `stickerDetails` value is always an empty object.
{% endtab %}

{% tab title="Product" %}
The **Product** sticker specifies the essential product properties and CTA behavior:

***

**`ctaBehavior`** — {Enum} Optional. \
Indicates whether upon user interaction the product is added to card directly, or its PDP is opened. Default: `view`

***

**`productBrand`** — {string} Optional.\
The name of the product's brand.

***

**`productCurrency`** — {CurrencyCode} Optional.\
The currency code associated with the product price.

***

**`productId`** — {string} Optional.\
Represents the internal LiSA product identifier.

* This ID is unique within the LiSA system and is used for internal product tracking.
* **Note:** Do not confuse this with `productReference`, which may refer to an external or merchant-specific product identifier.

***

**`productOriginalPrice`** — {number} Optional.\
Represents the original price of the product, if the product price is discounted.

***

**`productPrice`** — {number} Optional.\
Represents the effective price of the product, which may be either the original price or the sale price, depending on availability.

***

**`productReference`** — {string} Optional.\
Represents an external or merchant-specific identifier for the product.

* This ID is provided by the merchant or host system and may differ from the internal `productId`.
* It is used to reference the product in external systems, such as e-commerce platforms or inventory databases.

***

**`productTitle`** — {string} Optional.\
Represents the localized name of the product.

***

**`variantId`** — {string} Optional.\
&#x20;Represents the internal LiSA product variant identifier.

* This ID is unique within the LiSA system and is used for internal product variant tracking.
* **Note:** Do not confuse this with `variantReference`, which may refer to an external or merchant-specific product variant identifier.

***

**`variantReference`** — {string} Optional.\
&#x20;Represents an external or merchant-specific identifier for the product variant.

* This ID is provided by the merchant or host system and may differ from the internal `variantId`.
* It is used to reference the product variant in external systems, such as e-commerce platform

***

```typescript
interface ProductStickerDetails {
  ctaBehavior?: 'addToCart' | 'view';
  productBrand?: string;
  productCurrency?: string;
  productId?: string;
  productOriginalPrice?: number;
  productPrice?: number;
  productReference?: string;
  productTitle?: string;
  variantId?: string;
  variantReference?: string;
}
```

{% endtab %}

{% tab title="Voucher" %}
The **Voucher** sticker specifies the voucher code and redemption CTA behavior:

***

**`ctaBehavior`** — {Enum} Optional.\
Indicates whether upon user interaction the voucher code is added to card directly, or copied to clipboard. Default: `clipboard`&#x20;

***

**`voucherCode`** — {string} Optional.

***

**`voucherDiscountType`** — {Enum} Optional.\
Indicates whether the voucher discount value is applied as a fixed value or percentage value.

***

**`voucherDiscountLabel`** — {string} Optional.\
Determines how the voucher discount should be rendered.

***

**`voucherDiscountValue`** — {number} Optional.\
The numeric discount value.

***

**`voucherExpiresAt`** — {string} Optional.\
The date, when the voucher code expires. Represented in form of an ISO 8601 timestamp.

***

```typescript
interface VoucherStickerDetails {
  ctaBehavior?: 'addToCart' | 'clipboard';
  voucherCode?: string;
  voucherDiscountLabel?: string;
  voucherDiscountType?: 'fixed' | 'percentage';
  voucherDiscountValue?: number;
  voucherExpiresAt?: string;
}
```

{% endtab %}
{% endtabs %}

***


---

# 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/stickers.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.
