Stay organized with collections
Save and categorize content based on your preferences.
Android TV OS powers millions of TVs, streaming devices, and PayTV set-top boxes.
Google TV is a brand-new experience available first on the Chromecast with
Google TV and to more devices over time.
All apps built for Android TV work on devices running Google TV. To
provide the best user experience on Google TV, we recommend that you
apply the best practices in this guide.
Baseline requirements
Support Google Cast: Google Cast lets you extend your Android, iOS, and
Chrome apps to enable audio and video streaming to Android TVs as well as
Chromecast devices and Assistant devices. For more information, see the Google Cast
documentation.
Use media sessions: media sessions provide a universal way of interacting
with an audio or video player. When an app informs Android that it is playing
media, playback controls can be delegated to the app. Integrating with the media
session lets an app advertise media playback externally and receive
playback commands from external sources. These sources can be physical buttons,
such as the play button on a headset or TV remote control, or indirect commands,
such as instructing "pause" to Google Assistant. The media session then
delegates these commands to the app, which applies them to the media player
where the commands originated. See
Using a media session
for more details.
Content discovery across surfaces
Offer a media actions feed: when you provide a JSON media actions feed to Google,
your content can be discovered through Google TV recommendations and
other Google surfaces, such as Google Search. The deep links you provide let
users jump directly into playback of your content to increase engagement. The
feed also enables on-device search and the ability to play media using Google
Assistant voice commands.
Google is working with a limited number of
providers at a time to integrate them into this feature. For more details,
see the
Media Actions documentation.
Integrate Watch Next: Watch Next lets users re-engage with the content in your
app. When users leave your app partway through a movie or with a TV series in
progress, you can surface that content directly on the Google TV home screen
using Watch Next. The user can select a tile to deep link directly
into playback within your app. Note that a Watch Next integration must be
certified for quality to show on Google TV devices. See the Watch Next
documentation for more details.
Voice and engagement
Support account linking: account linking provides seamless linking between a
user's Google Account and your app's account to facilitate a
streamlined user experience for your app's existing and new users. Account
linking is a
prerequisite for other capabilities such as frictionless subscriptions, entitlement sync,
and voice casting.
Support entitlement sync: if your media actions feed includes media with
entitlement requirements—for example, a user needs to have a particular
subscription to access content—you can support entitlement sync to declare
which subscriptions a linked account has. See the entitlements endpoint
documentation
for more details.
Offer voice casting: voice casting lets your users initiate media playback
on supported Cast devices through Google Assistant. You can enable this
functionality by providing a media actions
feed, supporting account linking,
and creating a Cast receiver.
Enable Cast Connect: with Cast Connect, your Android TV app can act as a Cast
receiver. This lets you provide a richer experience and support interaction with
the remote control. See the Android TV Receiver Overview
for more details.
User acquisition
Integrate Google Play Billing: use the Play Billing library to support in-app
purchases and manage subscriptions across both mobile and TV. See the billing
documentation for more details.
An app built for Android TV OS works for all the devices in the TV ecosystem,
including new Google TV branded devices. To know whether a device
offers the Google TV experience, for instance for analytics, you can
evaluate or
filter
on the system feature com.google.android.feature.AMATI_EXPERIENCE.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-07-15 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-15 UTC."],[],[],null,["# Best practices to drive engagement on Google TV\n\nAndroid TV OS powers millions of TVs, streaming devices, and PayTV set-top boxes.\nGoogle TV is a brand-new experience available first on the Chromecast with\nGoogle TV and to more devices over time.\n\nAll apps built for Android TV work on devices running Google TV. To\nprovide the best user experience on Google TV, we recommend that you\napply the best practices in this guide.\n| **Note:** To ensure a great user experience, all TV apps must meet specific requirements for usability before they are available for TVs on Google Play. For more information, see [TV app quality](/docs/quality-guidelines/tv-app-quality).\n\nBaseline requirements\n---------------------\n\n- **Support Google Cast:** Google Cast lets you extend your Android, iOS, and Chrome apps to enable audio and video streaming to Android TVs as well as Chromecast devices and Assistant devices. For more information, see the [Google Cast\n documentation](https://developers.google.com/cast/docs/developers).\n- **Use media sessions:** media sessions provide a universal way of interacting with an audio or video player. When an app informs Android that it is playing media, playback controls can be delegated to the app. Integrating with the media session lets an app advertise media playback externally and receive playback commands from external sources. These sources can be physical buttons, such as the play button on a headset or TV remote control, or indirect commands, such as instructing \"pause\" to Google Assistant. The media session then delegates these commands to the app, which applies them to the media player where the commands originated. See [Using a media session](/guide/topics/media-apps/working-with-a-media-session) for more details.\n\nContent discovery across surfaces\n---------------------------------\n\n- **Offer a media actions feed:** when you provide a JSON media actions feed to Google,\n your content can be discovered through Google TV recommendations and\n other Google surfaces, such as Google Search. The deep links you provide let\n users jump directly into playback of your content to increase engagement. The\n feed also enables on-device search and the ability to play media using Google\n Assistant voice commands.\n\n Google is working with a limited number of\n providers at a time to integrate them into this feature. For more details,\n see the\n [Media Actions documentation](https://developers.google.com/actions/media).\n- **Integrate Watch Next:** Watch Next lets users re-engage with the content in your\n app. When users leave your app partway through a movie or with a TV series in\n progress, you can surface that content directly on the Google TV home screen\n using Watch Next. The user can select a tile to deep link directly\n into playback within your app. Note that a Watch Next integration must be\n certified for quality to show on Google TV devices. See the [Watch Next\n documentation](/training/tv/discovery/watch-next-add-programs) for more details.\n\nVoice and engagement\n--------------------\n\n- **Support account linking:** account linking provides seamless linking between a user's Google Account and your app's account to facilitate a streamlined user experience for your app's existing and new users. [Account\n linking](https://developers.google.com/identity/account-linking) is a prerequisite for other capabilities such as frictionless subscriptions, entitlement sync, and voice casting.\n- **Support entitlement sync:** if your media actions feed includes media with entitlement requirements---for example, a user needs to have a particular subscription to access content---you can support entitlement sync to declare which subscriptions a linked account has. See the [entitlements endpoint\n documentation](https://developers.google.com/actions/media/concepts/access-requirements#entitlements-endpoint) for more details.\n- **Offer voice casting:** voice casting lets your users initiate media playback on supported Cast devices through Google Assistant. You can enable this functionality by providing a [media actions](https://developers.google.com/actions/media) feed, supporting [account linking](https://developers.google.com/identity/account-linking/oauth-with-sign-in-linking?oauth=implicit), and creating a [Cast receiver](https://developers.google.com/cast/docs/developers).\n- **Enable Cast Connect:** with Cast Connect, your Android TV app can act as a Cast receiver. This lets you provide a richer experience and support interaction with the remote control. See the [Android TV Receiver Overview](https://developers.google.com/cast/docs/android_tv_receiver) for more details.\n\nUser acquisition\n----------------\n\n- **Integrate Google Play Billing:** use the Play Billing library to support in-app purchases and manage subscriptions across both mobile and TV. See the [billing\n documentation](/google/play/billing) for more details.\n- **Provide frictionless subscriptions:** by combining [streamlined account linking](https://developers.google.com/identity/account-linking/oauth-with-sign-in-linking?oauth=implicit), [Play Billing](/google/play/billing) with [real time developer notifications](/google/play/billing/getting-ready#configure-rtdn), and [silent sign-in](https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInClient.html#silentSignIn%28%29), you can provide a seamless purchase experience for your users. Watch the [Frictionless Subscriptions video](https://www.youtube.com/watch?v=ARuf97ncE4w&list=PLWz5rJ2EKKc-Z8NeBXJkf1bzUVhx3fvh4&index=4) for more details.\n\nGoogle TV feature evaluation\n----------------------------\n\nAn app built for Android TV OS works for all the devices in the TV ecosystem,\nincluding new Google TV branded devices. To know whether a device\noffers the Google TV experience, for instance for analytics, you can\n[evaluate or\nfilter](/guide/topics/manifest/uses-feature-element#market-feature-filtering)\non the system feature `com.google.android.feature.AMATI_EXPERIENCE`."]]