This document shows you how to publish your game on Google Play Games on PC using your game installer.
With the Developer Installed flow, the game installer you provide must manage the installation, update, and uninstallation of the game.
Before you begin
Integrate the Google Play Games SDK into your game.
Package your game as a WAB file
Google Play Games on PC requires your game's installer to be uploaded to Google Play Console as a Windows app bundle (WAB) file. To create a WAB file, follow these steps:
Download the Play publishing tool. You can run this tool on the Windows command line or PowerShell.
Create the Play publishing config file, with any name. For example,
play_publishing_config.xmlwith the following format:<?xml version="1.0" encoding="UTF-8"?> <play-publishing-config version="1.0"> <application> <package-name>PACKAGE_NAME</package-name> <version-name>VERSION_NAME</version-name> </application> <installer requiresElevation=INSTALLER_REQUIRES_ELEVATION acceptsCommandLineArguments=ACCEPTS_COMMAND_LINE_ARGUMENTS> <path>INSTALLER_PATH</path> <installation-path-registry-location> <key-name>UNIQUE_REGISTRY_PATH</key-name> <value-name>InstallLocation</value-name> </installation-path-registry-location> </installer> <launcher requiresElevation=LAUNCHER_REQUIRES_ELEVATION> <launch-path-registry-location> <key-name>UNIQUE_REGISTRY_PATH</key-name> <value-name>InstallLocation</value-name> </launch-path-registry-location> <executable-invocation> <filename>RELATIVE_PATH_TO_LAUNCHER_EXE</filename> <arguments>LAUNCHER_ARGS_IF_ANY</arguments> </executable-invocation> </launcher> <uninstaller requiresElevation=UNINSTALLER_REQUIRES_ELEVATION> <uninstall-path-registry-location> <key-name>UNIQUE_REGISTRY_PATH</key-name> <value-name>UninstallString</value-name> </uninstall-path-registry-location> </uninstaller> </play-publishing-config>
Replace the following:
PACKAGE_NAME: The package name for your game. This is the unique identifier that will be associated with your game on Google Play. For example,com.yourcompany.yourgame. The package name must adhere to the following rules:- It must have at least two segments (one or more dots).
- Each segment must start with a letter.
- All characters must be alphanumeric or an underscore (
[a-zA-Z0-9_]).
VERSION_NAME: The game's version string. This can be an arbitrary string, but it must be unique across all uploaded WABs for your game. For example:1.0,1.0.1-beta,2025.11.24,v1.rc1.INSTALLER_REQUIRES_ELEVATION: Indicates whether the installer executable needs to be run as Administrator to complete the installation process.- "true": Run the executable as Administrator.
- "false": Run the executable as the current user.
ACCEPTS_COMMAND_LINE_ARGUMENTS: A boolean value that indicates whether the installer can accept command-line arguments to enable the auto-play feature. This is optional and the default value is false. For more information, see Enabling Auto-Play.INSTALLER_PATH: The path to your installer file within the WAB. This path can be either absolute or relative to the parent directory of the Play publishing config. For example,path\to\test\installer. Remember to use authenticode and code signing to sign your game's installer executable.UNIQUE_REGISTRY_PATH: The Windows registry key path. This path must be provided relative to a registry hive such asHKEY_LOCAL_MACHINEorHKEY_CURRENT_USER; don't include the hive name in the path string. For example, if your installer writes toHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName, specify onlySoftware\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName. Google Play Games on PC searches for this path under multiple hives to locate the values required for launch and uninstallation.The executable specified in
INSTALLER_PATHmust create these registry keys. Before installation completes, these registry-key and value-name pairs specified underinstallation-path-registry-location,launch-path-registry-location, anduninstall-path-registry-locationmust be created. While the example usesInstallLocationandUninstallString, you can specify any name in these<value-name>tags, as long as your installer creates corresponding registry entries for all three. Google Play Games on PC uses these values to launch and uninstall the game. If your game uses a launcher, then this path must point to the registry key containing installation information for the launcher, and the value in the registry entry specified bylaunch-path-registry-locationmust point to the launcher's directory.This path must be unique on the user's machine. For example:
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName.If your game installer is a 32-bit application running on 64-bit Windows, Windows uses registry redirection to write registry entries under
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node. For example, a write toHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueNameis redirected toHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName.LAUNCHER_REQUIRES_ELEVATION: Indicates whether the launcher or game executable needs to be run as Administrator every time it is launched.- "true": Run the executable as Administrator.
- "false": Run the executable as the current user.
RELATIVE_PATH_TO_LAUNCHER_EXE: The path to your launcher or game executable within the installation directory. This has to include your launcher or game executable filename. For example, if your launcher or game file is called mygame.exe and it is located under {INSTALL_DIR}\Resources\mygame.exe, you have to put Resources\mygame.exeLAUNCHER_ARGS_IF_ANY: Any command line arguments that need to be passed into your launcher or game. This entry is optional.- In case of multiple arguments associated with an executable, they need to be separated by a space.
- The arguments need to be prepended with a '--' or '-', if that is required by the executable.
UNINSTALLER_REQUIRES_ELEVATION: Indicates whether the uninstaller executable needs to be run as Administrator to complete the uninstallation process.- "true": Run the executable as Administrator.
- "false": Run the executable as the current user.
Example Play publishing config file
Consider a game called
MyGame, with game installergame_installer.exe, game's launcherlauncher.exe. The example also shows how to use CDATA. The following is what theplay_publishing_config.xmlwill look like:<?xml version="1.0" encoding="UTF-8"?> <play-publishing-config version="1.0"> <application> <!-- The package name for your game. --> <package-name>com.mycompany.mygame</package-name> <!-- The game's version string. --> <version-name>1.0.0</version-name> </application> <!-- If requiresElevation is "true", installer runs as Administrator and a UAC prompt is displayed. This is required for system-wide installs (e.g., to Program Files) or writing to HKLM. --> <!-- If acceptsCommandLineArguments is "true", the installer must be able to accept command-line arguments to enable the auto-play feature. --> <installer requiresElevation="true" acceptsCommandLineArguments="true"> <!-- Path to your installer executable. --> <path>game_installer.exe</path> <!-- The registry location where the installer writes the installation path. --> <installation-path-registry-location> <!-- Registry key path (typically under HKLM or HKCU). game_installer.exe MUST create this key. --> <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name> <!-- game_installer.exe, specified in <path>, creates the registry value called 'InstallLocation' within SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey by the time it exits. --> <value-name>InstallLocation</value-name> </installation-path-registry-location> </installer> <!-- If requiresElevation is "true", launcher runs as Administrator and a UAC prompt is displayed on every game launch. --> <launcher requiresElevation="true"> <!-- Specifies the registry location where Google Play Games reads the installation path in order to launch the game. --> <launch-path-registry-location > <!-- Registry key path (typically under HKLM or HKCU) where the launch path can be found. --> <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name> <!-- Google Play Games reads the installation directory from this registry value, for example InstallLocation, to launch the game. --> <value-name>InstallLocation</value-name> </launch-path-registry-location> <executable-invocation> <!-- Game executable or launcher filename, relative to the directory path specified in the InstallLocation registry value. --> <filename>launcher.exe</filename> <!-- Optional arguments to pass to the executable. CDATA is used here to avoid issues with special characters like & or >. --> <arguments><![CDATA[arg1&arg2>arg3]]></arguments> </executable-invocation> </launcher> <!-- If requiresElevation is "true", uninstaller runs as Administrator and a UAC prompt is displayed for uninstall. --> <uninstaller requiresElevation="true"> <!-- Registry key where Google Play Games finds the uninstallation command. --> <uninstall-path-registry-location> <!-- Registry key path (typically under HKLM or HKCU) where uninstall command can be found. --> <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name> <!-- game_installer.exe also creates the registry value, for example, 'UninstallString' within SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey, containing the command Google Play Games executes to uninstall the game. --> <value-name>UninstallString</value-name> </uninstall-path-registry-location> </uninstaller> </play-publishing-config>Run the Play publishing tool on the Windows command line or Powershell.
playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH
To overwrite an existing WAB file with the same name, use the
--forceargument.playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH --force
Replace the following:
PLAY_PUBLISHING_CONFIG_PATH: The path to the Play publishing config. For example,path\to\play_publishing_config.xml.WAB_OUTPUT_PATH: The path to the WAB file. For example,path\to\output_bundle.wab.
How to use Play publishing tool
Consider that you have the Play publishing tool binary
playpublishingtool.exe, Play publishing configplay_publishing_config.xmland your game installergame_installer.exein the current working directory.Your current working directory should look like this:
.\ ├── game_installer.exe ├── play_publishing_config.xml ├── playpublishingtool.exe
To create a WAB with the name, say,
installer_bundle.wabin the same directory, the command would look like:playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab
With the
--forceargument, the command would look like:playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab --force
On success, you should see output similar to the following:
Successfully built the installer bundle at installer_bundle.wab
Find the WAB file in the folder:
.\ ├── game_installer.exe ├── installer_bundle.wab ├── play_publishing_config.xml ├── playpublishingtool.exe
Enabling Auto-Play upon installation of your PC Native Games (Optional)
Google Play Games on PC lets you enable an "auto-play" feature, which automatically launches your game immediately after the installation process completes. This feature provides a seamless user experience by transitioning the player directly into the game, fully authenticated within the Google Play Games on PC ecosystem.
How it works
When you enable the feature, Google Play Games on PC will pass a session token to your third-party (3P) installer process using command-line arguments. Your installer is then responsible for extracting this token and using it to launch the game executable in an authenticated context.
Prerequisites
To use this feature, your 3P installer must be capable of handling command-line arguments.
Implementation Steps
Enable Auto-Play in Play Publishing Config
To opt-in to this feature, add the
acceptsCommandLineArgumentsattribute to the<installer>element in yourplay_publishing_config.xml.Example of excerpt from the
play_publishing_config.xmlcontents:<installer requiresElevation="true" acceptsCommandLineArguments="true"> <path>path/to/installer.exe</path> <installation-path-registry-location> <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name> <value-name>InstallPath</value-name> </installation-path-registry-location> </installer>
- Attribute:
acceptsCommandLineArguments - Type:
Boolean - Default:
false - Behavior: When you set it to true, GPG will append the session token to the command-line arguments when executing your installer.
- Attribute:
Handle the Session Token in Your Installer
When your installer is launched by the GPG client, it will receive the session token as a command-line argument.
- Argument Format:
--g_session_token=<TOKEN>
What you must do:
- Extraction: Your installer must parse the command-line arguments to retrieve the token string.
- Propagation: If your installation flow involves launching a secondary launcher or game process, your installer is responsible for securely passing the session token to the final game process that uses the SDK.
- Launch: Use the provided session token to start the game executable. This ensures the game runs within an authenticated GPG context. Otherwise, InitializeSDK will fail and your player will need to restart your game.
- Argument Format:
Error Handling and Fallbacks
- Token Retrieval: If, for any reason, GPG cannot generate or pass a session token (e.g., token generation failure), the installation process will still proceed. However, your installer will be launched without the
--g_session_tokenargument. - Robustness: Your installer should be designed to handle scenarios where the session token is absent. In such cases, the installer should proceed with a standard installation; you should not trigger automatic game launch as InitializeSDK will fail anyway.
- Installer Errors: You are responsible for the robustness and error handling of your installer and the game launch sequence it initiates. GPG does not have control over processes that occur within the installer after it has been launched.
- Token Retrieval: If, for any reason, GPG cannot generate or pass a session token (e.g., token generation failure), the installation process will still proceed. However, your installer will be launched without the
Publish the game using Play Console
After you successfully create the WAB for your game, upload it to Play Console and manage its settings and requirements. Follow the steps to publish your game:
Add the Google Play Games on PC form factor
This step is only required the first time you publish a game.
- In the Play Console on the left menu, select Test and release > Setup > Advanced settings (direct link).
Go to the Form factors tab and add
Google Play Games on PCfrom the + Add form factor drop-down.Click the Manage button corresponding to the Google Play Games on PC form factor on the right-hand side.
Select the option Use a dedicated track for your Windows app bundle game.
Click Save and then Save again on the confirmation dialog.
Turn on Managed Publishing
To turn on Managed publishing, follow these steps.
- On the Publishing Overview page, in the Managed Publishing section, click Turn on Managed Publishing.
- A dialog will appear. Switch to Managed publishing on for the track.
- Click Save.
Upload the WAB file
To upload the WAB file, follow these steps:
- In the Play Console on the left menu, select Test and release > Advanced settings (direct link).
- In the Advanced settings page, click Form factors tab.
- In the Form factors tab, click + Add form factor and select Google Play Games on PC to add.
- In the Google Play Games on PC section, click Manage.
- Select Use a dedicated track for your Windows app bundle game.
- Click Save.
- In the Play Console on the left menu, select Test and release > Production (direct link).
- In the Production page, select Google Play Games on PC (Windows) only from the form factor drop-down.
- In the Windows app bundle tab, click Edit and upload the WAB file.
Configure the Windows PC requirements
To configure the Windows PC requirements:
- In the Play Console on the left menu, select Grow users > Store presence > Store settings (direct link).
- In the PC requirements section, click the Edit button on the right-hand side.
- Update the fields and click Save.
Configure the in-app purchase graphic
This is an optional step. To configure the in-app purchase graphic:
- In the Play Console on the left menu, select Grow users > Store presence > Store listings(direct link).
- In the Default store listing section in the Listings tab, click the -> (arrow) button on the right-hand side. This will take you to the Default store listing page.
- Navigate to the Google Play Games on PC section and upload the image at Google Play Games on PC (Windows) in-app purchase graphic.
- Click Save.
Send changes for review
- In the Play Console on the left menu, select Publishing overview.
- In the Changes not yet sent for review section, click Send changes for review.
When the Review team has approved your changes, your game will be discoverable on Google Play.