Play Games Sidekick is an overlay that helps players stay in your game by
delivering relevant content and offers directly to players.

- **Keep players in your game** with official and creator videos, so players can find guides, walkthroughs, and live streams without switching apps.
- **Increased monetization** with in-the-moment Points exchange, Play-funded offers, and Pass coupons.
- **Rewarded gameplay** with integrated streaks, quests, and profile interactions.
- **Deeper engagement** with content and videos.

[![Play Games Sidekick with available features.](https://developer.android.com/static/images/games/pgs/Sidekick.gif)](https://developer.android.com/static/images/games/pgs/Sidekick.gif) Play Games Sidekick (click to enlarge).

## Features

Available features on Sidekick will vary by game, depending on
your Google Play Games Services integration status and Play Points enrollment. Players can
expect the following features:

- **Gaming utilities:** Screenshot, screen record, YouTube Livestream, and Do Not Disturb.
- **Achievements:** Requires implementation of [achievements](https://developer.android.com/games/pgs/achievements.md.txt).
- **Gaming streaks:** [Gaming streaks](https://support.google.com/googleplay/answer/16562031).
- **Play Points credit exchange.**
- **Play Points boosters and coupons:** Available to enrolled Play Points developers.
- **Play Pass benefits and offers.**
- **Quests:** [Quests](https://support.google.com/googleplay/answer/11534416) are available to enrolled Quest developers.
- **Official and Creator Videos:** Sidekick shows the videos that you add. For more information about how to add videos on Play Store and Sidekick, see [Showcase your app with YouTube videos on
  Google Play](https://support.google.com/googleplay/android-developer/answer/15501235).

## Software and hardware requirements

To access Sidekick, players need the following:

- A mobile phone running Android 13 or higher.

> [!NOTE]
> **Note:** Sidekick is available to devices with 3 GB RAM or higher.

- Players must have one [Gamer profile](https://play.google.com/games/profile).
- The game must be installed from the Play Store.

## Try Sidekick

To enable Sidekick for your game, follow these steps:

### Make Sidekick default on for your game

Create an internal or closed testing release in the Play Console to test
pre-release versions of your game with Sidekick and gather
targeted feedback. Note that while testing in a closed beta track doesn't offer
a direct comparison for performance metrics, it remains a valid method for
basic functional testing of your Sidekick integration.

Once you've tested with a smaller group of colleagues or trusted users, you can
expand your test to an open release.

1. In the Play Console, [set up an internal or a closed testing](https://support.google.com/googleplay/android-developer/answer/9845334) release.
2. To add Play Games Sidekick to your app bundle, select **Sidekick is on by default**.
3. Conduct your testing.
4. Once ready, release the build to production. For more information, see [Prepare a release in phases](https://support.google.com/googleplay/android-developer/answer/9859348).

Players can manage the visibility of Sidekick at any time through
the user settings in the Play Store.
[![Sidekick is on by default](https://developer.android.com/static/images/games/pgs/sidekickon.png)](https://developer.android.com/static/images/games/pgs/sidekickon.png) Add Play Games Sidekick to your game.

### Safely test Sidekick

When integrating Sidekick, ensure the overlay integrates
seamlessly into your game, maintains a consistent player experience, and doesn't
negatively affect key metrics such as game health (Crashes/ANRs),
engagement, and revenue. To establish a performance baseline before a full
launch, use a 5% staged rollout.

This testing playbook lets you run a concurrent comparison in your
production environment, minimizing risk while verifying the success of your
integration.

#### The 5% staged rollout playbook

By releasing Sidekick to a small, controlled segment of your
audience, you can isolate its impact by tracking metrics against your new game
version.

- **Prepare your release:** Integrate the Sidekick SDK into your game and prepare a new release build.
- **Start a staged rollout:** Publish your new build to the Production track using a 5% staged rollout in the Google Play Console. This exposes the Sidekick integration to a small fraction of your player base in real-time.
- **Isolate by app version:** Ensure that your analytics tools are configured to filter data specifically for the app version containing the Sidekick integration.

#### Monitor performance and metrics

During the 5% staged rollout, monitor your game's performance and ensure your
core metrics remain stable by using a combination of the Google Play Console
and your own analytics setup. When monitoring your staged rollout, focus on the
following:

- **Track engagement and game stability:** Use the Google Play Console to ensure that your Android vitals (such as crash rates and ANRs) and player engagement metrics remain stable for the new app version.
- **Track revenue consistency:** Monitor your revenue and IAP metrics closely using your existing analytics infrastructure, such as Google Analytics or your internal Business Intelligence (BI) tools. Compare the 5% cohort that has access to Sidekick against the rest of your production traffic to ensure your core monetization remains stable.

Once you have verified that Sidekick successfully complements
your revenue, engagement, and stability during the 5% staged rollout, you can
confidently proceed to ramp up your release to 100% of your players.

### Manage Sidekick visibility on your device for testing

Once the release is available to your testers in the Play Console, follow these
steps to enable Play Store developer options on the device:

1. Open Google Play Store app.
2. Tap your profile icon and then tap **Settings**.
3. Tap the **About** menu.
4. Tap the **Play Store version** 7 times until you see the message `You are
   now a developer!`. This enables developer options on your device.
5. Tap **General** and then tap **Developer options**.
6. Turn on **Play Games Sidekick**.
7. Go to your game to see Sidekick appear.

[![The toggle to turn on Play Games Sidekick on the Google Play
Store app.](https://developer.android.com/static/images/games/pgs/playstoresidekick.png)](https://developer.android.com/static/images/games/pgs/playstoresidekick.png) The toggle to turn on Play Games Sidekick on the Google Play Store app (click to enlarge).

### Configure default Sidekick entry point

By default, the Sidekick entry point is anchored to the logical
end edge (the MIDDLE_RIGHT side of the screen) and is vertically centered (with
a slight default offset) in both portrait and landscape orientations. In the
case of 3-button navigation, the entry point moves to the side opposite to the
navigation bar.

You can override the default entry point position by specifying a preferred
position in an XML resource file referenced in the
`AndroidManifest.xml` file using the following options:

- **Exact position**: Specify the exact entry point position as a percentage in the XML resource file.
- **Edge-aligned position**: Specify the edge-aligned entry point position in the XML resource file.

If a player manually drags and repositions the entry point during gameplay,
their chosen position persists across game sessions and takes precedence over
the custom default XML configuration.

#### Configure the exact entry point position

To configure the exact Sidekick entry point position for
your game, follow these steps:

1. In the `AndroidManifest.xml` file, add the following `<meta-data>` element
   to the `<application>` element:

   ```xml
   <manifest>
     <application>
      <meta-data
      android:name="com.google.android.finsky.deku.OVERLAY_CONFIG"
      android:resource="@xml/XML_RESOURCE_FILE"/>
     </application>
   </manifest>
   ```
2. Specify the entry point location in the <var translate="no">XML_RESOURCE_FILE</var>.

   Sample file (res/xml/<var translate="no">XML_RESOURCE_FILE</var>.xml):

   ```xml
   <?xml version="1.0" encoding="utf-8"?>
   <deku-config>
      <!-- Entrypoint default position overrides -->
      <!-- Anchored to RIGHT edge, 25% down from top -->
      <default-entrypoint-position orientation="portrait" horizontal-position="RIGHT" vertical-position-percent="25" />

      <!-- Anchored to LEFT edge, vertically centered at 50% -->
      <default-entrypoint-position orientation="landscape" horizontal-position="LEFT" vertical-position-percent="50" />

      <!-- Extensible: Add new configuration fields here as needed -->
   </deku-config>
   ```

The `<default-entrypoint-position>` tag supports the following attributes:

- `orientation`: The screen orientation to configure. Supported values:
  - `landscape`
  - `portrait`
- `horizontal-position`: The horizontal edge of the screen to anchor the entry point. Supported values:
  - `LEFT`
  - `RIGHT`
- `vertical-position-percent`: A numeric value in the range `0` to `100` (for
  example, `"25"` or `"50"`) that specifies the vertical placement as a
  percentage of the game window height from the top. For example, `"25"`
  places the entry point 25% down from the top edge, and `"50"` centers it
  vertically. Values not in the range 0--100 are set to the nearest limit.

  The entry point always keeps a small margin from the top and bottom
  screen edges, and it is automatically shifted to avoid overlapping a camera
  cutout or display notch. As a result, `0` places the entry point near the
  top edge and `100` places it near the bottom edge.

These values represent physical positions on the screen. For example, `LEFT`
anchors the entry point to the left edge of the screen, even when the device
is set to a Right-to-Left (RTL) layout.

##### Fallback and precedence rules

To configure an exact position, specify the `orientation`,
`horizontal-position`, and `vertical-position-percent` attributes on the
`<default-entrypoint-position>` tag:

- If `horizontal-position` and `vertical-position-percent` are both valid, they take precedence over the [`value` attribute](https://developer.android.com/games/pgs/achievements.md.txt) on the same tag.
- If `horizontal-position` or `vertical-position-percent` attributes are missing or invalid, the entry point uses the `value` attribute if present.
- If the `value` attribute is also missing or invalid, the entry point falls back to the default position.

#### Configure the edge-aligned entry point position

To configure the edge-aligned Sidekick entry point position for
your game, follow these steps:

1. In the `AndroidManifest.xml` file, add the following `<meta-data>` element
   to the `<application>` element:

   ```xml
   <manifest>
    <application>
     <meta-data
     android:name="com.google.android.finsky.deku.OVERLAY_CONFIG"
     android:resource="@xml/XML_RESOURCE_FILE"/>
    </application>

   </manifest>
   ```
2. Specify the entry point location in the <var translate="no">XML_RESOURCE_FILE</var>.

   Sample file (res/xml/<var translate="no">XML_RESOURCE_FILE</var>.xml):

   ```xml
   <?xml version="1.0" encoding="utf-8"?>
   <deku-config>
     <!-- Entrypoint default position overrides -->
     <default-entrypoint-position orientation="landscape" value="MIDDLE_LEFT" />
     <default-entrypoint-position orientation="portrait" value="TOP_RIGHT" />

     <!-- Extensible: Add new configuration fields here as needed -->
   </deku-config>
   ```

The supported values for entry point `orientation`:

- landscape
- portrait

The `value` attribute represents the physical positions on the screen.
For example, `MIDDLE_LEFT` will always anchor the entry point to the left edge
of the screen, even when the device is set to a Right-to-Left (RTL) layout.
The supported values for edge-aligned entry point positions are as follows:

- MIDDLE_LEFT
- MIDDLE_RIGHT
- TOP_LEFT
- TOP_RIGHT
- BOTTOM_LEFT
- BOTTOM_RIGHT

### Configure entry point snooze duration during FTUE

By default, the Play Games Sidekick entry point displays immediately. You can
snooze the ingame entry point for a configured custom duration in the
<var translate="no">XML_RESOURCE_FILE</var>.

When a snooze duration is set, the Sidekick entry point is hidden
during the first time user experience (FTUE) for the configured time. After
the snooze duration ends, the entry point appears.

1. In the `AndroidManifest.xml` file, add the following `<meta-data>` element
   to the `<application>` element:

   ```xml
   <manifest>
    <application>
     <meta-data
     android:name="com.google.android.finsky.deku.OVERLAY_CONFIG"
     android:resource="@xml/XML_RESOURCE_FILE"/>
    </application>

   </manifest>
   ```
2. Specify the snooze duration in the <var translate="no">XML_RESOURCE_FILE</var>.

   Sample file (res/xml/<var translate="no">XML_RESOURCE_FILE</var>.xml):

   ```xml
   <?xml version="1.0" encoding="utf-8"?>
   <deku-config>
     <!-- Entrypoint default position overrides -->
     <default-entrypoint-position orientation="landscape" value="MIDDLE_LEFT" />
     <default-entrypoint-position orientation="portrait" value="TOP_RIGHT" />

     <!-- Custom Snooze Period -->
     <snooze duration_seconds="300" />

     <!-- Extensible: Add new configuration fields here as needed -->
   </deku-config>
   ```

Custom snooze duration is capped at 30 minutes. If you specify a value that
exceeds this threshold, the system automatically defaults to the 30-minute
limit.

## Automatically add Sidekick to all bundle uploads

When you create a release and make Sidekick default on for your
game, Sidekick is added to all of your future app bundles.

To change if Sidekick is on by default for all new app bundles
you upload, follow these steps:

1. Open [Play Console](https://play.google.com/console).
2. Select a game.
3. Go to **Testing** \> **Advanced settings**.
4. On the **Play Games Sidekick** tab, select either
   - Automatically make Sidekick is on by default for new app bundles you upload.
   - Don't automatically make Sidekick default on for new app bundles you upload.
5. Select **Save changes**.

If your app updates are infrequent, we may periodically update the
Sidekick for you. You can opt out of Sidekick
using the advanced settings in the Google Play Console at any time.

## Promote Sidekick to production

If you promote a release containing Sidekick to production,
players will see Sidekick. Players can manage the visibility
of Sidekick at any time through the user settings in the
Play Store app.

Games that promote a release with Sidekick satisfy the [Level Up
guidelines](https://google.play/business/levelup/#user-experience-guidelines).

## Frequently asked questions

#### Can you add Sidekick to your game using the Publishing API?

You can add Sidekick to your game even if you publish using
the [Google Play Developer Publishing API](https://developers.google.com/android-publisher#publishing).
First, [automatically
add Sidekick to all bundle uploads](https://developer.android.com/games/pgs/play-games-sidekick#add-sidekick),
and then continue your normal release process. Sidekick will be
added to your Android App Bundle.

#### My game does not use Android App Bundles (AAB), what should I do?

Sidekick is added to games when you upload a new
[Android App Bundle](https://developer.android.com/guide/app-bundle.md.txt).

If you are using APKs, add the
[Sidekick SDK](https://developer.android.com/games/pgs/play-games-sidekick-sdk.md.txt) as a dependency.

#### My game uses an anti-tampering product. Is Sidekick compatible with my solution?

We have been working with leading companies to ensure Sidekick
compatibility.

If you are using an incompatible anti-tampering product, add the
[Sidekick SDK](https://developer.android.com/games/pgs/play-games-sidekick-sdk.md.txt) as a dependency to your
APK.
If you have other questions,
[request support](https://docs.google.com/forms/d/1NPmZ04tyT97tb8q-NbElU_HJ3YuPWOkXvhwJB3mTmB8/viewform).

#### Why are achievements not appearing in Sidekick?

If achievements aren't appearing as expected, check the following:

- **Draft status:** Achievements in "Draft" state aren't shown in the Sidekick.
- **Achievement badge:** Locked achievements are only visible to all players if the game has earned an achievements badge. This requires at least 100 unique players to have made calls to the achievements API within the last 30 days.
- **Unlocked:** If the game hasn't earned a badge, players see achievements they have already unlocked.