# Video player events

{% hint style="info" %}
Please note most components initiate Video player upon user interaction (e.g. thumbnail click in Embed Feed), some use it directly (Storyblock in autoplay mode)
{% endhint %}

### Video events

<table><thead><tr><th width="390">Name</th><th>Description</th></tr></thead><tbody><tr><td><code>fw:video:impression</code></td><td>Dispatched on <code>loaddata</code> video event. Metadata are loaded and player is ready to start the video.</td></tr><tr><td><code>fw:video:start</code></td><td>Video started. Dispatched on first <code>timeupdate</code> video event. Fired for autoplayed thumbnails as well.</td></tr><tr><td><code>fw:video:first-quartile</code></td><td>Video reached 25%.</td></tr><tr><td><code>fw:video:midpoint</code></td><td>Video reached 50%.</td></tr><tr><td><code>fw:video:third-quartile</code></td><td>Video reached 75%.</td></tr><tr><td><code>fw:video:complete</code></td><td>Video reached at least 90%.</td></tr><tr><td><code>fw:video:session</code></td><td>After visitor's engagement with the video is finished. On video end, close or skip to another video.</td></tr><tr><td><code>fw:video:interactable-engaged-view</code></td><td>Dispatched when a user meets the <a href="#attributable-criteria">attributable engagement criteria</a> for the given widget type (view duration threshold or CTA click)</td></tr><tr><td><code>fw:video:click-cta</code></td><td>When visitor clicks on CTA button (if available).</td></tr><tr><td><code>fw:video:click-share</code></td><td>When user clicks on "Share" button.</td></tr><tr><td><code>fw:video:share</code></td><td>When visitor chooses one of the share options.</td></tr></tbody></table>

These events are universal across our Livestream and short video products. These events are used to track the status of the video.

### User Interaction events

These events are universal across our Livestream and short video product and triggered by the user taking an action.

| Event Name               | Description                                                                                                       |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| `fw:video:click-cta`     | When a visitor clicks on the Call to action (CTA) button                                                          |
| `fw:video:click-share`   | When a user clicks on "Share" button.                                                                             |
| `fw:video:share`         | When a visitor chooses one of the share options.                                                                  |
| `fw:video:submit-answer` | When a user submits an answer to the question. Response data contains answer and email if collection is required. |
| `fw:video:submit-choice` | When a user submits a choice to the poll. Response contains choice text.                                          |

### Live Steam events

These are events that are specific to the Live Stream and can be used in conjunction with the above events.

| Event Name                 | Description                                                                                  |
| -------------------------- | -------------------------------------------------------------------------------------------- |
| `fw:livestream:join`       | A user starts watching the livestream via tap to watch OR start watching with the share link |
| `fw:livestream:quit`       | A user clicks the "x" or swipes to quit the live stream event                                |
| `fw:livestream:send-chat`  | A user sends a chat message                                                                  |
| `fw:livestream:send-heart` | A User clicks heart button                                                                   |

{% hint style="info" %}
`Note fw:livestream:add-to-cart, fw:livestream:checkout and fw:livestream:click-pdp-link are only avaiable for "in-stream" Shopping`
{% endhint %}

### Player events

<table><thead><tr><th width="261.0924522356656">Event Name</th><th>Description</th></tr></thead><tbody><tr><td><code>fw:player:transition</code></td><td>Player goes to fullscreen/minimized</td></tr><tr><td><code>fw:player:quit</code></td><td>A user quits the player</td></tr><tr><td><code>fw:player:navigate</code></td><td>A user navigates with a link or a button on the player. Can be used to programmatically navigate SPA's in conjunction with <code>pip_navigate=false</code></td></tr></tbody></table>

### **Response**

Response objects available in `event.detail`

<table><thead><tr><th width="201.5305331439971" align="right">Name</th><th>Description</th></tr></thead><tbody><tr><td align="right"><code>video</code></td><td><p><code>encoded_id</code> - video ID</p><p><code>badge</code> - null | ad | demo | featured</p><p><code>caption</code> - video caption</p><p><code>hashtags</code> - list of hashtag strings</p></td></tr><tr><td align="right"><code>extra</code></td><td><p><code>autoplay</code> - true if played as thumbnail, false for full player<br><code>has_cta</code> - true if CTA action is available</p><p><code>duration</code> - video duration is seconds</p><p><code>progress</code> - current progress in seconds</p><p><code>width</code> - current width of a video element</p><p><code>height</code> - current height of a video element</p><p><code>state</code> - paused | playing_auto | playing_manual (see autoplay)</p></td></tr></tbody></table>

### **Attributable criteria**

| Widget                                | Attribution Criteria             | Example                                                                                                                                                                        |
| ------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Short video Player (Fullscreen + PiP) | 3s view or click CTA             | The user opens a video in fullscreen and watches for 3s, or clicks a product card that opens a PDP with PiP.                                                                   |
| Showroom Player (Fullscreen + PiP)    | 10s cumulative view or CTA click | The user clicks a floating video to enter the showroom (watches 5s), then clicks a product card to a PDP with PiP (watches another 5s) — the combined 10s meets the threshold. |
| Carousel (no clicking)                | Only count click CTA             | Passive autoplay does not count. Attribution is only triggered when the user clicks a CTA within the Carousel.                                                                 |
| Player Deck                           | 10s view or click CTA            | The user lands on or scrolls to a Player Deck in the viewport and watches for 10s, or clicks a CTA or product card.                                                            |
| Storyblock                            | 10s view or click CTA            | The user lands on or scrolls to a Storyblock in the viewport and watches for 10s, or clicks a CTA or product card within the Storyblock.                                       |
| Floating player                       | Not attributed                   | The Floating Player is a passive entry point and does not count toward attribution.                                                                                            |
| Horizontal video                      | 10s view or click CTA            | The user lands on or scrolls to a Horizontal Video player in the viewport and watches for 10s, or clicks a CTA or product card within the player.                              |

\*Note: "10s view" includes complete video views shorter than 10 seconds.

<br>


---

# 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.firework.com/firework-for-developers/web/integration-guide/events/video-player-events.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.
