Shipping the video channel's Android build to Google Play

The panel builds and signs the channel's Android player; this runbook covers everything Google needs from your side, in your own developer account. On a personal account opened after 13 November 2023, add at least two weeks for the mandatory closed test.

  • Registration: $25, once
  • Upload from any OS
  • Android 7.0 and later

Menu names follow Play Console as of 2026. Where Google relabels a page, its purpose stays the same; match on that.

1. Register the developer account

  1. Sign in at play.google.com/console with the Google account that should own the channel's listing.
  2. Select the account type. Personal publishes under an individual's name. Organization publishes under a legal entity and needs its D-U-N-S number; request one ahead of time if the entity has none.
  3. Pay the $25 one-time fee and pass verification (identity document, phone and email checks). Allow a few days.

Ownership: the listing belongs to whoever owns this developer account. The panel never publishes on your behalf, and app transfers between accounts are possible but slow, so register under the long-term owner.

2. Check the closed-test requirement

Production access on personal accounts created after 13 November 2023 is gated on a closed test with 12 or more opted-in testers for 14 consecutive days. Organization accounts skip it.

  1. Recruit before the build exists: crew, presenters and regular viewers with Android devices.
  2. Collect the Google account address each tester signs in with on the device.
  3. Hold the opted-in count at 12 or above for the whole window; dropping below it can reset the 14 days.

3. Create the app record

  1. Select Create app.
  2. App name: 30 characters maximum, matching the App name set in the panel's App settings.
  3. Type App, pricing Free. Free is irreversible on Google Play; the player has no paywall, so that costs nothing.
  4. Accept the policy and US export declarations and create the record.

4. Fill in the store listing

Main store listing, in the Store presence section:

  1. Short description (80 characters) and full description (4,000). State the programming and the player's capabilities: live HLS playback, picture in picture, landscape fullscreen, background sound, automatic start when the channel goes on air.
  2. App icon: google-play/icon-512.png. Feature graphic: google-play/feature-graphic-1024x500.jpg.
  3. Phone screenshots, two minimum. None ship in the archive: sideload the .apk while the channel is live and capture portrait playback, landscape fullscreen and the channel details below the player.
  4. Store settings: category Entertainment for most channels (alternatives: News & Magazines, Sports, Music & Audio), plus a support email and website.

5. Complete the App content declarations

Each is linked from the Dashboard's setup checklist and must be answered before the first release.

  1. Privacy policy: the generated URL from the panel.
  2. Ads: none in the app. Commercial breaks inside your own broadcast are programme content, not an ad SDK.
  3. App access: unrestricted; no login exists.
  4. Content rating: the IARC questionnaire, answered for the channel's actual programming.
  5. Target audience: the age bands you program for. Any band under 13 pulls in the Families policy.
  6. Data safety: the build contains no analytics, accounts or advertising identifiers and collects no personal data. The streaming server receives each viewer's IP address to deliver the HLS segments; Google's definition generally excludes ephemeral processing needed to serve a request. The declaration is yours; see Google's Data safety documentation.
  7. Foreground service permissions, if the console lists them: the manifest declares mediaPlayback, used only while the viewer has background sound switched on. If a demo video is requested, record the switch and the sound continuing with the screen locked.
  8. Remaining declarations (advertising ID, news, health, financial, government): answer for the channel. The build never reads the advertising ID.

6. Run the closed test (personal accounts only)

  1. Testing → Closed testing: create a track or reuse the default.
  2. Add testers as an email list or a Google Group.
  3. Create a release with the .aab (signing prompt: step 7).
  4. Distribute the opt-in URL; a tester counts once opted in and installed from Play.
  5. After 14 consecutive days at 12 or more, use Apply for production on the Dashboard. Google's questions cover how testing went, so schedule test sessions while the channel is live and keep the feedback.

7. Upload with Play App Signing enabled

  1. On Production (or a test track), select Create new release.
  2. Accept Play App Signing: Google keeps the app signing key devices verify, and your upload key only authenticates uploads.
  3. Upload the .aab. The panel signed it with the project's upload key, created on its first Android build.
  4. Add release notes and save.

Back up the upload key with Download upload key on the panel's Android upload key card: a .p12 whose password is displayed once. Every later .aab is signed with the same key.

8. Keep the channel on air through review

While the channel is off air the app shows its "We'll be live soon" slate and polls until the stream returns, then plays without user action. Correct for viewers, but a reviewer who sees only the slate can conclude the app is broken.

  1. Preferred: a 24/7 signal for the review period, for example a recorded programme looped from the encoder.
  2. Otherwise: publish the broadcast schedule, with time zone, in the full description.
  3. Verify playback on the .apk immediately before submitting.

9. Release and submit for review

  1. Clear every Dashboard checklist item.
  2. Start the production rollout; if managed publishing is on, send the changes from Publishing overview.
  3. First reviews commonly take a few days, longer on a new developer account.
  4. On approval the listing goes live at a URL ending in the Android application ID from Store identifiers.

Updates: stream URL, description, logo, links and contact details are read from the channel's live feed and never need a release. Name and icon changes do: rebuild (the version code increments) and release the new .aab.