Skip to main content

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.

info

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

caution

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

  1. 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).
  2. Register for a universal Player Network SDK Game ID for store packages with different package names via the Player Network Console.

  3. For various login channels, apply for one or more app IDs on the corresponding third-party platforms and set them up as needed.

    Module - ChannelsConfiguration Notes
    Login - GuestNo additional configuration is required, the same configuration can be used
    Sign In - AppleFollow 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 - DiscordIf 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_SCHEMEconfigured, 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 - GoogleFollow 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 - FacebookUnder 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 - KakaoApply 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 - LINEApply 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 - TwitterNo additional configuration required, the same configuration can be used
    Login - VKFollow 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.
    APASNo additional configuration is required, and the data source can be distinguished by the package name
    Push - FirebaseApply for multiple apps under the same project in Firebase Admin
    For more information, see Firebase Multi-Store Channel Configuration
    UA - AdjustApply for multiple app IDs under the same merchant
    For more information, see Adjust Multi-Store Channel Configuration
    UA - AppsFlyerApplying for multiple app IDs under the same merchant
    For more information, see AppsFlyer Multi-Store Channel Configuration
    UA - FacebookApply for multiple app IDs under the same merchant
    For more information, see Facebook Multi-Store Channel Configuration
    UA - FirebaseApply for multiple apps under the same project in the Firebase Admin
    For more information, see Firebase Multi-Store Channel Configuration
    NoticeNo additional configuration is required, channel packages can be distinguished through extension fields
    CompliantNo additional configuration is required, and the channel pack configuration cannot be distinguished temporarily
    Game updateChannel packs can be differentiated by branches without additional configuration
    Regional server navigationNo additional configuration is required, and the channel package configuration cannot be distinguished for the time being
    Customer serviceNo additional configuration is required, set the tag to distinguish the channel package
    Deep LinkConfigure deep links for multiple apps
    See iOS Universal Link and Android App Link for more info
  4. Configure clients and build multi-store packages according to the requirements of different channels.

note

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

FeatureVerification 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)
APASConducting tests based on game needs
PushDifferentiate the channel package verification push function in the Firebase console
Crash reportingCrashes can be reported normally, and crash information can be distinguished by package
UADifferent package names are reported to corresponding app IDs.
AnnouncementConducting tests based on game needs
Regulatory ComplianceConducting tests based on game needs
Game updateConducting tests based on game needs
Region server navigationConducting tests based on game needs
Customer ServiceFilter by tags on the AIHelp console to view customer complaints with different package names
Deep linkDifferent 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 IDStore name
0App store
1Google
2Samsung
3Huawei
4Xiaomi
5Oppo
6Vivo
7Transsion
8Onestore
9Aptoide
10Amazon
11Uptodown
12Apkpure
100PC official website
101Steam
102Epic
1001Switch
1002PS4
1003PS5
1004Xbox One
1005Xbox 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

APIFunction
GetStoreChannelGet configuration information from the store channel

FAQ

What are multi-store packages?

Answer

Packages with different package names for different stores are released on stores such as Amazon, Samsung, and Google Play.

Why consider multi-store packages?

Answer

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?

Answer

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?

Answer

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?

Answer

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?

Answer

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?

Answer

Reach out to [karenkzhao] or the Player Network representative.