# CTA

When a Call-to-Action (CTA) is clicked in the LiSA Player, a message is sent containing detailed information about the CTA intent and any relevant auxiliary data.

The player distinguishes different types of CTAs.&#x20;

* `calendar` — Add to Calendar
* `comment` — [Link in Comments](/developers/guides/player-communication/message-api-reference/cta/cta-link-in-comments.md)
* `countdown` — Live Stream Countdown View
* `feedback` — Live Stream Feedback View
* `poll` — Poll
* `share` — Social Sharing
* `sponsor` — [Sponsor Badge](/developers/guides/player-communication/message-api-reference/cta/cta-sponsor-badge.md)

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 CTA 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>auxiliaryData</code></td><td valign="top"><pre><code>AuxiliaryData
</code></pre><p>Required.</p></td><td valign="top">The <code>auxiliaryData</code> property is an object that holds additional metadata related to a Call-to-Action. The structure and contents of this object vary depending on the specific type of CTA being used.<br><br>Please refer to <a href="#auxiliarydata"><code>AuxiliaryData</code></a> for detailed information.</td></tr><tr><td valign="top"><code>ctaType</code></td><td valign="top"><pre><code>CtaType
</code></pre><p>Required.</p></td><td valign="top">The <code>ctaType</code> property specifies the distinct type of a CTA.<br><br>Refer to <a href="#ctatype"><code>CtaType</code></a> for detailed information.</td></tr><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"><code>lsc:cta:click</code></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></tbody></table>

***

### Type Definition

```typescript
interface CtaMessage extends Omit<
  Message,
  'messageType' | 'sender'
> {
  auxiliaryData: AuxiliaryData;
  ctaType: CtaType;
  mediaItemId: string;
  mediaItemType: MediaItemType;
  messageType: 'lsc:cta:click';
  progress: MediaProgress;
  sender: 'LiSA';
}
```

***

#### `AuxiliaryData`

```typescript
interface AuxiliaryData {
  [key: string]: unknown; // Properties vary based on CTA type
}
```

#### `CtaType`

```typescript
type CtaType = 
  | 'calendar'
  | 'comment'
  | 'countdown'
  | 'feedback'
  | 'poll'
  | 'share'
  | 'sponsor';
```


---

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