Publishing a Roku Channel
Tags: roku, brightscript, ott, beginners
Published: 2020-04-30 15:20:20

You can publish an application (=channel) to the Roku Channel Store through the _Developer SDK_ or through _Direct Publisher_.

If you created a Roku channel with BrightScript and SceneGraph, you upload your packaged app through the online Roku dashboard and select 'Developer SDK'.

You can get a channel in the Roku Store even if you aren't a software developer and don't own a BrightScript application. You achieve this by selecting 'Direct Publisher' in the online Roku dashboard wizard – albeit losing flexibility and features compared to Developer SDK.

Publishing a channel is [free](#price) of charge and is subject to a [certification](#certification) process.

<figure class="kg-card kg-image-card kg-card-hascaption">![](https://ottball.com/content/images/2020/04/Publishing-a-Roku-Channel-5.png)

<figcaption>The process for adding a Roku Channel to the Roku Channel Store.</figcaption>

</figure>

A [comparison](https://developer.roku.com/en-ot/docs/features/channel-development-models.md#benefits-comparison) between the Developer SDK and Direct Publisher boils down to the following:

1.  You should use Direct Publisher if you have limited/no UI requirements, no need for DRM and don't do SVOD/TVOD.
2.  You should use the Developer SDK if you need to customize your channel, and require DRM and/or log-ins.

A 'mature' OTT service will _almost definitely_ need the Developer SDK. Direct Publishers can save a lot of time and money. More information on the differences is available at the [Roku website](https://developer.roku.com/docs/features/channel-development-models.md).

# Developer SDK

This section describes how you get your BrightScript/SceneGraph application in the Roku Channel Store, or how you can share private channels. The following topics are tackled:

1.  [Requirements](#requirements): what do you need before you can start?
2.  [Packaging](#packaging): how do you create an application 'file' which can be submitted?
3.  [Types](#types): what are public channels and what are non-certified channels?
4.  [Certification](#certification): how do you ensure that your channel meets the certification criteria?
5.  [Tutorial](#tutorial): how do you submit a channel if you meet all the requirements and have a package which should pass certification?
6.  [Resources](#resources): which links could you check to learn more?

## Requirements

A [checklist](https://developer.roku.com/docs/developer-program/publishing/pre-publishing-checklist.md) is summarized below.

1.  A [Roku Account](https://my.roku.com/signup) which is enrolled in the [Roku Developer Program](https://developer.roku.com/enrollment/standard/).
2.  A [Roku Device](https://www.roku.com/products) with enabled [Developer Settings](https://developer.roku.com/en-ot/docs/developer-program/getting-started/developer-setup.md#step-1-set-up-your-roku-device-to-enable-developer-settings).
3.  (A code editor, like the [Eclipse IDE with the Roku extension](https://developer.roku.com/en-ot/docs/developer-program/getting-started/ide-support.md).)
4.  An enrollment in the [Roku Partner Payout Program](https://developer.roku.com/developer/billing) if you monetize your channel.
5.  A [packaged](#packaging) Roku channel which passes the [certification criteria](#https://developer.roku.com/docs/developer-program/certification/certification.md).
6.  [Content rights](https://developer.roku.com/docs/developer-program/publishing/pre-publishing-checklist.md#content-rights).
7.  [Regional compliance](https://developer.roku.com/docs/developer-program/publishing/pre-publishing-checklist.md#regional-compliance).
8.  An understanding of the [Roku Distribution Agreement](https://docs.roku.com/published/developerdistribution/en/us).
9.  Marketing resources (logos, copyright, screenshots of your Roku channel, ...)
10.  A website page providing more information on your Roku channel.
11.  A website page offering support information.
12.  (Pre-made decisions on the Roku Channel Store properties. Examples: in which regional stores will the channel be available, what is the parental hint, how will you monetize your channel, ...)

## Packaging

The [Roku website](https://developer.roku.com/docs/developer-program/publishing/packaging-channels.md) documents the packaging process.

1.  [Install your Roku channel](https://developer.roku.com/docs/developer-program/getting-started/developer-setup.md) on a Roku device.
2.  Start a telnet section with the Roku device.
3.  Create a signing key with the genkey utility.
4.  Package the installed channel.

## Types

There are [two types](https://developer.roku.com/docs/developer-program/publishing/channel-publishing-guide.md) of Developer SDK channels.

1.  [Public Channels](https://developer.roku.com/docs/developer-program/publishing/channel-publishing-guide.md#public-channels) are published to the Roku Channel Store. This type is real deal and can be monetized.
2.  [Non-Certified Channels](https://developer.roku.com/docs/developer-program/publishing/channel-publishing-guide.md#non-certified-channels) are not available in the Roku Channel Store but others can [install the channel with a vanity code](https://developer.roku.com/docs/developer-program/publishing/channel-publishing-guide.md#installing-a-non-certified-channel). This type is useful for QA or internal purposes.

## Certification

Public Channels go through a certification process. It can take a week until you receive your feedback. If your channel fails certification, you'll receive a list of issues which you need to solve.

Your Roku channel must meet a number of [criteria](https://developer.roku.com/docs/developer-program/certification/certification.md) to pass certification.

1.  [Advertising](https://developer.roku.com/docs/developer-program/certification/certification.md#1-advertising) criteria. (e.g. use the Roku Advertising Framework, conform to local laws, ...)
2.  [Purchases](https://developer.roku.com/docs/developer-program/certification/certification.md#2-purchases) criteria. (e.g. use the Roku Pay billing flow, channels with more than 10 million played hours over 3 months must participate in Roku’s Instant Signup program, ...)
3.  [Performance](https://developer.roku.com/docs/developer-program/certification/certification.md#3-performance) criteria. (e.g. channels must launch within 15s, the channel file size is below 4 MB, ...)
4.  [Deep linking](https://developer.roku.com/docs/developer-program/certification/certification.md#5-deep-linking) criteria.
5.  [UI and graphics](https://developer.roku.com/docs/developer-program/certification/certification.md#6-ui-and-graphics) criteria.
6.  Do not use [deprecated APIs](https://developer.roku.com/docs/developer-program/certification/certification.md#using-current-apis).

The Roku website documents [how to test these certification criteria](https://developer.roku.com/docs/developer-program/certification/certification-testing.md).

## Tutorial

The Roku website provides an in-depth [guide on publishing public or non-certified channels](https://developer.roku.com/docs/developer-program/publishing/channel-publishing-guide.md).

1.  You need to use the Roku Dashboard to [add a new channel](https://developer.roku.com/en-ot/docs/direct-publisher/tutorial/add-channel.md).
2.  You need to configure [properties](https://developer.roku.com/en-ot/docs/direct-publisher/tutorial/properties.md) like Channel Store Regions, languages and parental hints.
3.  You need to configure your [Roku Channel Store information](https://developer.roku.com/docs/direct-publisher/tutorial/channel-info.md).
4.  You need to indicate whether you will [monetize](https://developer.roku.com/docs/direct-publisher/tutorial/implementing-ads.md) your channels.
5.  You should add [screenshots](https://developer.roku.com/docs/direct-publisher/tutorial/screenshots.md). These screenshots are a preview in the Roku Channel Store.
6.  You need to provide [support info](https://developer.roku.com/docs/direct-publisher/tutorial/support-info.md). Your support info describes how your customers can contact you and learn more about your channel.
7.  You can [preview](https://developer.roku.com/docs/direct-publisher/tutorial/publish.md) your channel, [publish](https://developer.roku.com/docs/direct-publisher/tutorial/publish.md) your channel and [update](https://developer.roku.com/docs/direct-publisher/tutorial/publish.md#updating-a-direct-publisher-channel) your channel.
8.  You must enter a [submission survey](https://developer.roku.com/docs/developer-program/publishing/channel-publishing-guide.md#submission-survey-window).

Some tips mentioned by Roku's documentation:

1.  Test your channel before submission and [test across multiple devices](https://developer.roku.com/docs/developer-program/certification/certification.md#testing-across-multiple-device-types).
2.  Use the Preview mode (which you get before finalizing your submission) for QA/beta purposes.
3.  Updating the code of a channel triggers re-certification.

## Resources

The bookmarks below offer more information on Roku development.

*   Design: [https://developer.roku.com/en-ot/docs/developer-program/design/design-overview.md](https://developer.roku.com/en-ot/docs/developer-program/design/design-overview.md)
*   Discovery: [https://developer.roku.com/docs/developer-program/discovery/overview.md](https://developer.roku.com/docs/developer-program/discovery/overview.md)
    *   Roku Search: [https://developer.roku.com/docs/developer-program/discovery/search/implementing-search.md](https://developer.roku.com/docs/developer-program/discovery/search/implementing-search.md)
    *   Direct to Play: [https://developer.roku.com/docs/developer-program/discovery/direct-to-play.md](https://developer.roku.com/docs/developer-program/discovery/direct-to-play.md)
    *   Instant Signup: [https://developer.roku.com/docs/developer-program/discovery/search/instant-signup.md](https://developer.roku.com/docs/developer-program/discovery/search/instant-signup.md)
    *   Deep Linking: [https://developer.roku.com/docs/developer-program/discovery/implementing-deep-linking.md](https://developer.roku.com/docs/developer-program/discovery/implementing-deep-linking.md)
*   Advertising: [https://developer.roku.com/docs/developer-program/advertising/roku-advertising-framework.md](https://developer.roku.com/docs/developer-program/advertising/roku-advertising-framework.md)
*   Roku Pay: [https://developer.roku.com/docs/developer-program/roku-pay/roku-pay-and-in-channel-purchasing.md](https://developer.roku.com/docs/developer-program/roku-pay/roku-pay-and-in-channel-purchasing.md)
*   Authentication: [https://developer.roku.com/docs/developer-program/authentication/authentication-overview.md](https://developer.roku.com/docs/developer-program/authentication/authentication-overview.md)
*   Analytics: [https://developer.roku.com/docs/developer-program/libraries/roku-analytics-component.md](https://developer.roku.com/docs/developer-program/libraries/roku-analytics-component.md)
*   Debugging: [https://developer.roku.com/docs/developer-program/debugging/debugging-channels.md](https://developer.roku.com/docs/developer-program/debugging/debugging-channels.md)
*   Developer tools: [https://developer.roku.com/docs/developer-program/dev-tools/tools-overview.md](https://developer.roku.com/docs/developer-program/dev-tools/tools-overview.md)
*   Performance: [https://developer.roku.com/docs/developer-program/performance-guide/development-tips.md](https://developer.roku.com/docs/developer-program/performance-guide/development-tips.md)
*   Release notes: [https://developer.roku.com/docs/developer-program/release-notes/roku-os-release-notes.md](https://developer.roku.com/docs/developer-program/release-notes/roku-os-release-notes.md)
*   Getting started: [https://developer.roku.com/docs/developer-program/getting-started/roku-dev-prog.md](https://developer.roku.com/docs/developer-program/getting-started/roku-dev-prog.md)
*   API Reference: [https://developer.roku.com/docs/references/references-overview.md](https://developer.roku.com/docs/references/references-overview.md)

# Direct Publisher

Roku developers can use [Direct Publisher](https://developer.roku.com/docs/direct-publisher/overview.md) to get a channel in the Roku Channel Store without any coding. An elaborate [Roku tutorial](https://developer.roku.com/docs/direct-publisher/tutorial/channel-tutorial.md) contains the following instructions.

1.  You need to use the Roku Dashboard to [add a new channel](https://developer.roku.com/en-ot/docs/direct-publisher/tutorial/add-channel.md).
2.  You need to configure [properties](https://developer.roku.com/en-ot/docs/direct-publisher/tutorial/properties.md) like Channel Store Regions, languages and parental hints.
3.  You need to supply a [content feed](https://developer.roku.com/en-ot/docs/specs/direct-publisher-feed-specs/feed-spec.md). A content feed is a [JSON](https://developer.roku.com/en-ot/docs/specs/direct-publisher-feed-specs/json-dp-spec.md) or [MRSS](https://developer.roku.com/en-ot/docs/specs/direct-publisher-feed-specs/mrss-dp-spec.md) feed which contains the links to your streams and their metadata.
4.  You need to supply [branding resources](https://developer.roku.com/docs/direct-publisher/tutorial/design.md). (Logos, colors, ...)
5.  You need to select a [layout](https://developer.roku.com/docs/direct-publisher/tutorial/layout.md).
6.  You should organize your content in [categories](https://developer.roku.com/docs/direct-publisher/tutorial/categories.md), either through your JSON feed or by manually creating categories.
7.  You need to configure your [Roku Channel Store information](https://developer.roku.com/docs/direct-publisher/tutorial/channel-info.md).
8.  You need to indicate whether you will [monetize](https://developer.roku.com/docs/direct-publisher/tutorial/implementing-ads.md) your channels. JSON feeds offer more flexibility w.r.t. monetization than MRSS feeds.
9.  You should add [screenshots](https://developer.roku.com/docs/direct-publisher/tutorial/screenshots.md). These screenshots are a preview in the Roku Channel Store.
10.  You need to provide [support info](https://developer.roku.com/docs/direct-publisher/tutorial/support-info.md). Your support info describes how your customers can contact you and learn more about your channel.
11.  You can [preview](https://developer.roku.com/docs/direct-publisher/tutorial/publish.md) your channel, [publish](https://developer.roku.com/docs/direct-publisher/tutorial/publish.md) your channel and [update](https://developer.roku.com/docs/direct-publisher/tutorial/publish.md#updating-a-direct-publisher-channel) your channel.
12.  You could [convert](https://developer.roku.com/en-ot/docs/direct-publisher/tutorial/publish.md#converting-a-direct-publisher-channel-to-an-sdk-channel) a Direct Publisher channel to a Developer SDK channel.

Common questions are answered at [Roku's FAQ](https://developer.roku.com/docs/direct-publisher/faqs.md).

# Other

## Price

Publishing a Roku channel does not cost money.

## Monetization

Roku channels can [earn money](https://developer.roku.com/docs/features/monetization/monetization-overview.md) through two methods:

1.  [Advertisements](https://developer.roku.com/docs/features/monetization/video-advertisements.md): inventory split versus Roku Sales Representation Program. You must use the Roku Advertising Framework ([RAF](https://developer.roku.com/docs/developer-program/advertising/roku-advertising-framework.md)) if you're doing advertisements, or your channel will not get certified and will not eligible for payouts.
2.  [Transactions](https://developer.roku.com/docs/features/monetization/billing.md): pay-to-install versus in-channel purchases.

The generated revenue is sent to your account through [Publisher Payout](https://developer.roku.com/docs/features/monetization/payouts.md).

## Legal

Read up on [Roku's legal section](https://developer.roku.com/docs/features/legal/compliance.md) and [developer terms](https://developer.roku.com/docs/features/legal/developer-terms.md).

## Links

*   Knowledge Center: [https://partnersuccess.roku.com/hc/en-us](https://partnersuccess.roku.com/hc/en-us)
*   Developer Tools: [http://devtools.web.roku.com/](http://devtools.web.roku.com/)
*   Specifications: [https://developer.roku.com/docs/specs/specs-overview.md](https://developer.roku.com/docs/specs/specs-overview.md)
*   Features: [https://developer.roku.com/docs/features/features-overview.md](https://developer.roku.com/docs/features/features-overview.md)
*   Blog: [https://blog.roku.com/developer](https://blog.roku.com/developer)
*   Dashboard: [https://developer.roku.com/developer](https://developer.roku.com/developer)
*   Roku development partners: [https://developer.roku.com/feed/partners](https://developer.roku.com/feed/partners)