Segment.com is a third-party service designed to receive large amounts of data and simultaneously re-route it to a myriad of destinations. Many Sellers have different needs for user management and data insights that can't all be directly integrated into the Vimeo OTT platform. With Segment, they can leverage an almost infinite amount of additional third-party integrations for data insights.
In this article:
What Does Segment Support?
Segment supports hundreds of integrations. If you're using a specific set of tools and you'd like it to collect data from OTT, check out the Segment Catalog to see if your software is supported. If it is, you can create a Segment account and start sending data to it right away.
Vimeo OTT supports sending data to Segment from our branded iOS, tvOS, Android, Android TV, Amazon Fire TV apps as well as from the Web. Vimeo OTT also supports sending data to Segment from our branded Roku app, though this program with Segment is still in alpha, as noted here.
Creating a Segment Integration
- Navigate to Segment.com
- Enter your name, email, and password. These don't need to be the same as your Vimeo OTT credentials, but Segment does expect it to match the domain of your site URL.
- Once signed up, you'll need to add a Source.
- Sources are locations where your data is coming into Segment. This may be an iOS or Android app or, for the below example, the Web.
- Choose Website / Javascript.*
- Click "Connect" from the sidebar.
- Give the Source a name or leave it as "Javascript."
- Enter your website on OTT.
- This can be either yoursubdomain.vhx.tv OR your full custom domain.
- Once the source is added, head to the 'Sources' page and click "Settings" in the top navigation.
- Click "API Keys" in the left navigation.
- Copy the "Write Key."
- Navigate to Settings > Site > Advanced.
- Paste the API Write Key into the Segment Key field.
- Save your settings.
Now data will start sending to your Segment account. To see it flowing in, you can click on the "Source" and then choose the "Debugger" tab to see each event being fired.
* Note: If you're an OTT Enterprise client and you're configuring Segment to use multiple sources for your applications; you would choose the appropriate "Source" per platform.
The API Keys generated from each of the Sources below will be integrated with your application by coordinating with your Account Manager.
- "iOS" for Apple iPhone and Apple TV applications
- "Android" for Android Mobile and Android TV
- "Android" (Second Source) for Amazon Fire TV
- "Roku" for Roku devices
The events will include a 'device' property they can use to distinguish between two apps that share the same source.
What Events Are Sent?
Vimeo OTT will send a lot of data over to the Segment account. Below you will find tables of numerous events that are sent from the integration that will help you filter and understand the data coming in. These tables also indicate which platforms send each type of event, as not all events apply to every platform.
The primary event names in Segment are purposefully explicit and descriptive to help easily understand what event is taking place. Each of these events contains many additional attributes and properties to further describe the action taken; these are only the top-level events being sent.
Native Segment Events
The following events are provided by the Segment Analytics SDK.
Application Installed
Description: A user has opened your application after installation. This is a native Segment application event automatically collected by the Segment SDK.
Trigger: This event fires when a user first opens your mobile application.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
N |
Identify
Description: A user is identified by your app.
Trigger: Three possible triggers:
- After a user registers
- After a user logs in
- When a user updates their profile
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Page
Description: A user sees a page of your website.
Trigger: When a user views a page of the website.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
N |
N |
N |
N |
N |
N |
Screen
Description: A user sees a screen of your app.
Trigger: When a user views a screen of the application.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Platform Events
The following events are classified as Platform events. They are sent using the Segment track API call.
Account Created
Description: A new AVOD or SVOD user account has been successfully created.
Trigger: OTT platform provides 200 status, indicating that a new account is created.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
Y |
⚠️Note: AVOD is available for Vimeo OTT Enterprise accounts only.
Added to Watch List
Description: A user adds a video or collection to their watchlist.
Trigger: A user adds a video or collection to their watchlist.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
App Installed
Description: When a user opens the application for the very first time. If the user never opens the application after the app installs, this event will not fire.
Trigger: A flag exists in apps to show whether it's the first run of the app, which is set to false after the first run. App Installed is sent only when the flag is true.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Authentication
Description: When a user has successfully activated their gifted subscription.
Trigger: When the receiver of gifted subscription signs in and activates their subscription.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
N | N | N | N | N | N |
Browse Selected
Description: A user has selected "Explore" to browse the application's content without logging in.
Trigger: Sent when the user taps, clicks, or selects the call to action button "Explore."
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Buy or Rent Initiated
Description: A user has selected "Buy or Rent" on the TVOD product page.
Trigger: Sent when a user taps the "Buy or Rent" button.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
N |
Checkout Started
Description: Web: A user has started the purchase process by clicking the submit button on the "Checkout" form. Apps: A user has confirmed their intent to purchase and is handed off to the payment processor.
Trigger:
- Web: A user clicks the "Start free trial" button on the "Checkout" page.
- iOS: Sent after a user selects a subscription plan on the plan selection screen.
- Apps: Sent after a user taps or selects the "Join" or "Next" button and has entered a valid email and password.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Extra Content Viewed
Description: A user has initiated the view of an Extras content item.
Trigger: A user selects the Extra.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
N |
Y |
N |
N |
N |
Marketing Opt-in Shown
Description: A user is presented with the marketing opt-in view.
Trigger: The screen containing the marketing opt-in checkbox is shown to the user.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Marketing Opt-in User Opted Out
Description: A user has selected the option to opt out of marketing communications.
Trigger: A user has completed the registration form, with valid information, and is opted out of marketing communications.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Notification Prompt Dismissed
Description: A user decided not to opt into notifications from the custom notification prompt.
Trigger: A user taps X to dismiss the custom notification primer.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
N |
Y |
N |
N |
N |
Notification Prompt Shown
Description: A user is shown a custom prompt asking if they would like to enable or disable notifications.
Trigger: A user is shown a custom prompt asking if they would like to enable or disable notifications.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
N |
Y |
N |
N |
N |
Notifications Accepted
Description: A user has selected to enable notifications from the custom notifications prompt.
Trigger: A user has selected to enable notifications from the custom notifications primer.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
N |
Y |
N |
N |
N |
Order Completed [SVOD]
Description: A user's SVOD purchase has been confirmed by the payment processor and they can now access their content.
Trigger: Sent after a purchase is confirmed by the payment processor.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Order Completed [TVOD]
Description: A user's TVOD purchase has been confirmed by the payment processor and they can now access their content.
Trigger: Sent after a purchase is confirmed by the payment processor.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
N |
Y |
N |
N |
N |
Registration Completed
Description: A new AVOD user account has been successfully created.
Trigger:
- Web: Sent after a user clicks "Join" on the "Checkout" page.
- Apps: OTT platform provides 200 status, that a new account is created.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
⚠️Note: AVOD is available for Vimeo OTT Enterprise accounts only.
Removed from Watch List
Description: A user removes a video or collection from their watchlist.
Trigger: A user removes a video or collection from their watchlist.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Search Executed
Description: A user executes a search.
Trigger: Sent after the search query is executed.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Search Result Selected
Description: A user selects a search result.
Trigger: Sent after a user clicks or selects a search result.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Sign In Complete
Description: A user has successfully signed in to the application.
Trigger: Sent whenever a user's access token is received after signing in or signing up.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Sign In Viewed
Description: A user has selected "Log in" or "Sign in."
Trigger: Sent when the user taps, clicks, or selects the call to action buttons "Log in" or "Sign in."
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Sign Up Viewed
Description: A user has selected "Sign Up," "Start free trial," or "Create free account."
Trigger: Sent when the user taps, clicks, or selects the call to action buttons "Sign Up," "Start free trial," or "Create free account."
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Signed Up
Description:
- Web: A user has started to input their email and password on the "Checkout" page.
- Apps: A user selects "Join" or "Next" after inputting valid registration information on the Account Creation screen.
Trigger:
- Web: Sent when a user begins to input their email and password.
- Apps: Sent after a user taps or selects the "Join" or "Next" button and has entered a valid email and password.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Subscription Plan Chosen
Description: A user has selected their subscription plan.
Trigger: Sent when a user selects a subscription plan.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
Y |
Y |
Y |
N |
Y |
Video Comment Added
Description: A user has submitted a comment on a video.
Trigger: A new comment or reply is successfully posted.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
N |
Y |
N |
N |
N |
Video Download Completed
Description: A user successfully downloads a video to their device.
Trigger: Sent after a video download reaches 100%.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
N |
Y |
N |
N |
N |
Video Download Started
Description: A user has initiated the download of a video to their device.
Trigger: Sent when the video begins to download.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
N |
Y |
N |
Y |
N |
N |
N |
Video Events
The following events are classified as Video events. They are sent using the Segment track API call.
25% Content Completed
Description: Video playback reaches 25% of the video content.
Trigger: During every Video Content Playing event, calculate the playback total by dividing (timecode/duration) to determine if playback total is greater than or equal to 25%. Only sent once.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
50% Content Completed
Description: Video playback reaches 50% of the video content.
Trigger: During every Video Content Playing event, calculate the playback total by dividing (timecode/duration) to determine if playback total is greater than or equal to 50%. Only sent once.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
75% Content Completed
Description: Video playback reaches 75% of the video content.
Trigger: During every Video Content Playing event, calculate the playback total by dividing (timecode/duration) to determine if playback total is greater than or equal to 75%. Only sent once.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Ad Clicked
Description: A user has selected the video ad.
Trigger: A user clicks or taps 'Learn more' on the video ad.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
N |
Y |
N |
N |
N |
Video Ad Completed
Description: A video ad had ended.
Trigger: A video ad has finished playing, or a user skips the ad.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Ad Failed
Description: A video ad failed to play due to an error.
Trigger: A video ad failed to play due to an error.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Ad Skipped
Description: A user has selected the action to skip the video ad.
Trigger: A user clicks or taps 'skip' on the video player.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
N |
Y |
Y |
Y |
N |
Video Ad Started
Description: A video ad has started.
Trigger: A video ad has started playing.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Content Completed
Description: Video playback reaches 90% of the video content.
Trigger: During every Video Content Playing event, calculate the playback total by dividing (timecode/duration) to determine if playback total is greater than or equal to 90%. Only sent once.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Content Ended
Description: Video playback reaches 100% of the video content.
Trigger: When video playback has reached 100%.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Content Playing
Description: Heartbeats that fire every "n" seconds to track how far into the content the user is currently viewing.
Trigger: Every 10 seconds unless Segment Heartbeat Override is set.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Playback Buffer Completed
Description: Video playback finishes buffering content.
Trigger: Video player detects video has resumed playback.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Playback Buffer Started
Description: Video playback starts buffering content.
Trigger: Video player detects buffering.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Playback Paused
Description: A user presses “Pause” to pause video playback or when a video reaches the end of playback.
Trigger: A user presses “Pause” to pause video playback, or when video playback has reached 100% and the video content is not playing.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Playback Resumed
Description: Video playback is resumed, by the user, after being paused.
Trigger: Video playback is resumed when the user presses “Play” after pausing the video.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Video Playback Seek Completed
Description: After a user manually seeks to a certain position of the content in the playback.
Trigger: When the video playback resumes after the user seeked the content.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
N |
Video Playback Seek Started
Description: When a user manually seeks a certain position of the content in the playback.
Trigger: A user finished dragging the seekbar scrubber, or has pressed the Rewind or Fast Forward buttons.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
N |
Video Playback Started
Description: A user presses “Play,” and video playback has started. In the case of an autoplay video, the trigger of video playback starting will fire this event.
Trigger: Video playback has started.
Web |
iOS |
tvOS |
Android |
Android TV |
Fire TV |
Roku |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Platform Events Properties
All Platform events will include the following properties.
Property |
Type |
Description |
Possible Values |
Sent by Web? |
Sent by Apps? |
collection_id |
<number> |
Identifier of the collection. |
Y |
Y |
|
collection_title |
<string> |
Name of the collection. |
Y |
Y |
|
device |
<string> |
The type of device. |
android, android_tv, appletv, fire_tv, ipad, iphone, roku, web |
Y |
Y |
device_id |
<string> |
Identifier of client device. |
N |
Y |
|
name |
<string> |
Name of the event. |
Y |
Y |
|
platform |
<string> |
Device's platform name. |
android, android_tv, fire_tv, ipad, iphone, roku, tvos, web |
Y |
Y |
platform_id |
<number> |
Identifier for a branded app. |
N |
Y |
|
platform_version |
<string> |
Application version number for a given platform. |
Apps: App version number Web: null |
Y |
Y |
product_id |
<number> |
Identifier of the OTT product. |
Y |
Y |
|
referrer |
<string> |
Referring URL. |
Y |
N |
|
search_query |
<string> |
User's search query. |
Y |
Y |
|
session_id |
<string> |
Identifier of the client session. |
Y |
Y |
|
site_id |
<number> |
Identifier of the site. |
Y |
Y |
|
timestamp |
<number> |
Epoch timestamp of when the event was triggered (in seconds). |
Y |
Y |
|
type |
<string> |
Classification for the type of event. |
platform |
Y |
Y |
url |
<string> |
URL where event was triggered. |
Y |
N |
|
user_email |
<string> |
The user's email address. |
Y |
Y |
|
user_id |
<number> |
Identifier of the user. |
Y |
Y |
|
video_id |
<number> |
Identifier of the video. |
Y |
Y |
|
video_title |
<string> |
Name of the video. |
Y |
Y |
|
view |
<string> |
Name of the page or screen that the user was viewing when the event was triggered. |
Y |
Y |
Video Events Properties
All Video events will include the following properties.
Property |
Type |
Description |
Possible Values |
Sent by Web? |
Sent by Apps? |
collection_id |
<number> |
Identifier of the collection. |
Y |
Y |
|
collection_title |
<string> |
Name of the collection. |
Y |
Y |
|
current_src |
<string> |
Video playback URL. |
N |
Y |
|
current_subtitle |
<string> |
Name of the current subtitle. |
N |
Y |
|
current_type |
<string> |
MIME type of current playing video file. |
Y |
Y |
|
device_id |
<string> |
Identifier of client device. |
N |
Y |
|
device |
<string> |
The type of device. |
android, android_tv, appletv, fire_tv, ipad, iphone, roku, web |
Y |
Y |
duration |
<number> |
Full duration (in seconds) of currently playing video. |
Y |
Y |
|
is_airplay |
<boolean> |
Video playback is currently casting via Apple Airplay. |
1 (True), 0 (False) |
N |
Y |
is_chromecast |
<boolean> |
Video playback is currently casting via Google Cast. |
1 (True), 0 (False) |
Y |
Y |
is_drm |
<boolean> |
Video playback has DRM enabled. |
1 (True), 0 (False) |
Y |
Y |
is_fullscreen |
<boolean> |
Video playback is currently in full screen mode. |
1 (True), 0 (False) |
Y |
Y |
is_live |
<boolean> |
Video playback is a live broadcast. |
1 (True), 0 (False) |
Y |
Y |
is_trailer |
<boolean> |
Video playback is of type trailer. |
1 (True), 0 (False) |
Y |
Y |
name |
<string> |
Name of the event. |
Y |
Y |
|
platform |
<string> |
Device's platform name. |
android, android_tv, fire_tv, ipad, iphone, roku, tvos, web |
Y |
Y |
platform_id |
<number> |
Identifier for a branded app. |
N |
Y |
|
platform_version |
<string> |
Application version number for a given platform. |
Apps: App version number Web: null |
Y |
Y |
product_id |
<number> |
Identifier of the OTT product. |
Y |
Y |
|
referrer |
<string> |
Referring URL. |
Y |
N |
|
site_id |
<number> |
Identifier of the site. |
Y |
Y |
|
seconds |
<number> |
Frequency (in seconds) of video heartbeat events. |
0 - 600 (increments of 10). Server will set to 0 if value is not provided in payload. |
Y |
Y |
session_id |
<string> |
Identifier of the client session. |
Y |
Y |
|
timecode |
<number> |
Current video playback time (in seconds). For live videos, this will be set to 0. |
Y |
Y |
|
timestamp |
<number> |
Epoch timestamp of when the event was triggered (in seconds). |
Y |
Y |
|
type |
<string> |
Classification for the type of event. |
video |
Y |
Y |
url |
<string> |
URL where event was triggered. |
Y |
N |
|
user_email |
<string> |
The user's email address. |
Y |
Y |
|
user_id |
<number> |
Identifier of the user. |
Y |
Y |
|
video_id |
<number> |
Identifier of the video. |
Y |
Y |
|
video_title |
<string> |
Name of the video. |
Y |
Y |