> For the complete documentation index, see [llms.txt](https://docs.hello-lisa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hello-lisa.com/developers/guides/player-communication/message-api-reference/cta.md).

# 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';
```
