Multi-store Package Support
In most instances, the game's store label of the APK released in a specific region might get overwritten when the app store is updated, resulting in overwriting of the package. For example, a package on a player's Samsung phone might be overwritten as a Google Play package once it's released through Google Play.
Given that each app has a unique profit-sharing ratio for releases in different stores, it's crucial to prevent these stores from overwriting each other (package overwriting) to optimize the profit of each store. This overlapping issue can be fundamentally resolved by collaborating with Player Network SDK to enable compatibility for store packages with different package names. Player Network SDK currently offers a multi-store package support solution, with a primary focus on ensuring the interoperability of accounts across different store packages.
The nature of multi-store packages is such that they have different package names. Player Network SDK provides a solution that accommodates these differences. The game development team needs to evaluate the compatibility of other SDKs in situations where package names vary. In order to synchronize accounts across multiple stores, please note the following access precautions:
- Version requirements: Player Network SDK v1.14.01 or above
- Contact the Player Network representative to enable the multi-store channel solution.
Account Interoperability Solution
After enabling multi-store packages for Facebook, the channel UID will change. Player Network SDK will adapt the configurations to these changes, which will be transparent to games. If you need to establish the relationship between the UID prior to the change and the Player Network SDK OpenID, see Query Third Party Channel Account ID. Alternatively, reach out to the Player Network representative.
There are three main challenges in achieving account interoperability for channel packages with different package names:
- Some login channels, such as WeChat and Facebook, generate different user IDs for the same user under different app IDs.
- Most login channels authenticate the package name of the corresponding app, and some channels, like Apple and Google, only allow one package name to be configured.
- For multi-store packages, the length of the Player Network account token will increase to accommodate app identification and other needs.
To address the issue of account interoperability, the SDK team has proposed two solutions:
- Have multiple channel packages use the same Player Network game ID, generating a unique OpenID for each game ID of the same user.
- Customize different account generation strategies based on the unique characteristics of different login channels. Currently, the confirmed supported channels are Apple, Discord, Google, Facebook, Kakao, LINE, QQ (currently not supported in Player Network SDK), Twitter, VK, WeChat (currently not supported in Player Network SDK), and guest accounts.
Client Connection Process
Upgrade to an Player Network SDK version that supports multi-store packages.
- V1.15.02 supports custom accounts, Guest, Facebook, Kakao, Google, Apple, Discord (single app ID), LINE, and Twitter.
- V1.16 added support for VK and Discord (multiple app IDs).
Register for a universal Player Network SDK Game ID for store packages with different package names via the Player Network Console.
For various login channels, apply for one or more app IDs on the corresponding third-party platforms and set them up as needed.
Module - Channels Configuration Notes Login - Guest No additional configuration is required, the same configuration can be used Sign In - Apple Follow the guide to create multiple game apps with different app IDs under the same developer account and complete the Player Network configurations for each game app. Login - Discord If you have four or fewer channel packages, you only need to apply for one app ID. Each channel package should have an independent Discord REDIRECT_URL_SCHEME
configured, and all of these should be set up on the Discord developer platform (up to a maximum of 10). If you have five or more channel packages, create multiple game apps each with a unique app ID under the same developer account, and complete the Player Network configurations for each game app. For more information, see the Discord tutorials.Sign In - Google Follow the guide to create multiple game apps with different app IDs under the same developer account and complete the Player Network configurations for each game app. Login - Facebook Under normal circumstances, Player Network uses the userid provided by Facebook as the user's identity in the social channel. However, to support the multi-store channel pack function, Player Network will utilize both the token_for_business and userid provided by Facebook as the user's identity in social channels. You can follow the guide to create multiple game apps with different app IDs under the same developer account and complete the Player Network configurations for each game app. Login - Kakao Apply for a single app ID and set up Android/iOS configurations for each channel package under that same app ID. For more details, see Kakao tutorials. Login - LINE Apply for just one app ID and configure all channel package names along with their corresponding signatures on the LINE Developers Console. For more information, see the LINE tutorials. Login - QQ (currently not supported in Player Network SDK) Follow the guide to create multiple game apps with different app IDs under the same developer account and complete the Player Network configurations for each game app. Login - Twitter No additional configuration required, the same configuration can be used Login - VK Follow the guide to create multiple game apps with different app IDs under the same developer account and complete the Player Network configurations for each game app. Login - WeChat (currently not supported in Player Network SDK) Follow the guide to create multiple game apps with different app IDs under the same developer account and complete the Player Network configurations for each game app. APAS No additional configuration is required, and the data source can be distinguished by the package name Push - Firebase Apply for multiple apps under the same project in Firebase Admin
For more information, see Firebase Multi-Store Channel ConfigurationUA - Adjust Apply for multiple app IDs under the same merchant
For more information, see Adjust Multi-Store Channel ConfigurationUA - AppsFlyer Applying for multiple app IDs under the same merchant
For more information, see AppsFlyer Multi-Store Channel ConfigurationUA - Facebook Apply for multiple app IDs under the same merchant
For more information, see Facebook Multi-Store Channel ConfigurationUA - Firebase Apply for multiple apps under the same project in the Firebase Admin
For more information, see Firebase Multi-Store Channel ConfigurationNotice No additional configuration is required, channel packages can be distinguished through extension fields Compliant No additional configuration is required, and the channel pack configuration cannot be distinguished temporarily Game update Channel packs can be differentiated by branches without additional configuration Regional server navigation No additional configuration is required, and the channel package configuration cannot be distinguished for the time being Customer service No additional configuration is required, set the tag to distinguish the channel package Deep Link Configure deep links for multiple apps
See iOS Universal Link and Android App Link for more infoConfigure clients and build multi-store packages according to the requirements of different channels.
In the original package that has been launched, the app IDs of all channels must use the original configuration, which cannot be updated.
Service Connection Process
Changes involving multiple server interfaces can add one more service channel through Player Network.
Multi-store Package Building
Given the lengthy process of building a game package, Player Network SDK has launched a store package builder through Player Network. This builder aims to streamline the process, minimize common errors associated with manual operations, and expedite game releases.
Test Cases
Feature | Verification Content |
---|---|
Login Friends Guild | 1. Multiple packages are concurrently installed on a mobile phone 2. The login function is normal, and the openids are the same on the same account. 3. The functions of Friends and Guild are normal (sharing, sending messages, retrieving the friend list, and launching apps) |
APAS | Conducting tests based on game needs |
Push | Differentiate the channel package verification push function in the Firebase console |
Crash reporting | Crashes can be reported normally, and crash information can be distinguished by package |
UA | Different package names are reported to corresponding app IDs. |
Announcement | Conducting tests based on game needs |
Regulatory Compliance | Conducting tests based on game needs |
Game update | Conducting tests based on game needs |
Region server navigation | Conducting tests based on game needs |
Customer Service | Filter by tags on the AIHelp console to view customer complaints with different package names |
Deep link | Different apps can be launched |
Solution Risks
Google, VK, and Discord generate the same user ID for different app IDs, but the official documentation does not clearly state this. Changes to the account generation rules of these channels will affect the communication between accounts of different channel packages.
Channel Packaging
Given the extensive integration with multi-store packages, it becomes necessary for the game to identify the store ID at the time of payment and call different payment SDKs accordingly.
For Google, the configuration for store ID will be added into AndroidManifest.xml
by the channel packaging tool:
```xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
<meta-data
android:name="INTL_STORE_CHANNEL"
android:value="10" />
</application>
</manifest>
```
The store ID value
is an int
array, with the corresponding configurations:
Store ID | Store name |
---|---|
0 | App store |
1 | |
2 | Samsung |
3 | Huawei |
4 | Xiaomi |
5 | Oppo |
6 | Vivo |
7 | Transsion |
8 | Onestore |
9 | Aptoide |
10 | Amazon |
11 | Uptodown |
12 | Apkpure |
100 | PC official website |
101 | Steam |
102 | Epic |
1001 | Switch |
1002 | PS4 |
1003 | PS5 |
1004 | Xbox One |
1005 | Xbox Series X|S |
Used for the GetStoreChannel API and comm_c_store_channel data collection:
- For Android, the value is obtained from
AndroidManifest.xml
and the default value is 1 (Google). - For iOS, the default value is 0 (App store).
- For Windows, the value is obtained from
WINDOWS_STORE_CHANNEL
in INTLConfig.ini and the default value is 100. - For Console, the value is obtained from
CONSOLE_STORE_CHANNEL
in INTLConfig.ini, with the following default values:
Switch: 1001
PS4: 1002
PS5: 1003
Xbox One: 1004
Xbox Series X|S: 1005
API
- Unity
- Unreal Engine
API | Function |
---|---|
GetStoreChannel | Get configuration information from the store channel |
API | Function |
---|---|
GetStoreChannel | Get configuration information from the store channel |
FAQ
What are multi-store packages?
Packages with different package names for different stores are released on stores such as Amazon, Samsung, and Google Play.
Why consider multi-store packages?
From a commercial perspective: When multiple installation packages bearing the same package name are released, a mobile phone can only install one of them. For instance, if a player installs a Samsung installation package on their Samsung mobile phone, it may be replaced by a Google Play installation package once the game is updated through Google Play. This is known as package overwriting. Since Amazon, Samsung, and Google Play each have different profit-sharing ratios, package overwriting can impact a game's profit sharing. Therefore, it's essential to tackle this issue by using different package names.
Can multi-store packages achieve account synchronization?
Yes, the current Player Network SDK solution can achieve account synchronization by generating the same Open ID for the same Game ID.
What is the development volume of multi-store packages?
Evaluating the compatibility of each SDK under different package names is necessary:
- Player Network SDK already supports multi-store package compatibility. Game developers only need to code the package once and then package it according to the configuration of different stores during the packaging process.
- For Midas SDK, it needs to be connected to different store packages. Game developers need to use the SDK according to the usage of different stores and complete the packaging process according to different store configurations when packaging. Contact the Midas team to confirm the details.
- For other components of SDK, contact the corresponding teams.
Do games that are connected to Player Network SDK support updating to multi-store packages? Will this cause functions to become abnormal?
The current solution supports unreleased games. However, it's crucial to clear all data from the Closed Beta Testing (CBT) before launching the game to avoid account issues. We recommend cleaning the data and utilizing the multi-store package before the game's release, especially for new games. The solution also supports games that are already live, allowing for seamless upgrades without player awareness.
However, there are certain functional limitations, such as the LoginWithConfirmCode
function for Unity SDK and Unreal Engine SDK being unsupported.
Should new games consider using multi-store packages from the very beginning?
Yes, it is recommended to consider multi-store packages when the game is first integrated. Direct integration of multi-store packages makes it convenient to support account synchronization in the future.
Is there a packaging tool platform that supports multi-channel packaging?
Reach out to [karenkzhao] or the Player Network representative.