Deep Link Guide

What is a deep link?

A mobile deep link is a URI that directs the user to a specific part of your app or performs a specific behaviour as soon as the user opens your app. You can register a specific scheme that will launch your application (e.g., your-game://). You can then add parameters to this URI that dictate these specific behaviours.


Why should my game support a deep linking protocol?

A deep linking protocol makes it easier for friends to jump into your game and play together from any chat app.

Why does this matter? For many reasons, playing a live mobile game with friends can be tricky:

  • One of the friends may not have your game installed yet
  • Players may not know how to start a multiplayer game session in your game
  • Searching for usernames to add friends can be difficult
  • Every game has a different process for starting multiplayer game sessions, which makes it even more challenging for users to figure out
When your game supports a deep linking protocol, your players can start a multiplayer game session just by sharing a link with their friends on any chat app they wish (e.g., iMessage, WhatsApp, or Bunch). By following the deep link, their friends can easily install your game (if they don’t already have it) and then jump into the same game session with the host.

Example Deep Link to Join Game Sessions

Here’s an example of what a deep link that allows players to join the same game session can look like:

gameUrlScheme://path?roomId=XXXXYYYY

In this example, the roomId parameter is a unique key that’s passed onto your game to create a room for the players who are joining the same game session.

Want to further personalize your user experience for players who join a party in your game? Here are some additional parameters you can accept:

  • Parameter
  • Type
  • Description
  • Required
  • roomID
  • string
  • A unique key the game can use to create a room for the players who are joining from the same session on Bunch.
  • yes
  • mode
  • string
  • If your game supports different game modes (e.g., 2v2), you can include this information in the deep link so that players open the party to a specific game mode.
  • no
  • server
  • string
  • To optimize for latency, live games often use different servers for different geographic zones to host multiplayer game sessions. However, it’s important to ensure that players who want to play together join the same game server. Adding and handling a server parameter allows players to open a game session on the same server.
  • no
  • username
  • string
  • For players joining a party who haven’t yet acquired a username in your game, appending this variable lets your game display a username without having to ask the user first.

    When driving a user to your game, Bunch will, by default, include a username variable that includes the player’s Bunch username.
  • no
  • AgeStatus
  • string
  • By default, Bunch may pass the user’s age status to the game for safety control. The values are 'unknown', 'over13', and 'under13'.
  • no
  • Other
  • You can personalize your user experience in even more ways by adding additional parameters.

    For more info, contact us at developers@bunch.live
  • no

Here’s an example of a deep link that includes all of these variables:

gameUrlScheme://path?roomId=XXXXYYYY&username=jason&userAgeStatus=over13&mode=2v2&server=newyork123&s

Note: Base64 Support

We can support Base64-encoded parameters during our deep link customization through our configuration.

How to onboard new users coming from a deep link to your game

When you use incoming deep links to create multiplayer game sessions, even users who haven’t yet installed your game can join the party. However, many mobile games have an onboarding or tutorial experience for first-time players that takes several minutes to complete. Some games even disable multiplayer gameplay until the user achieves a certain milestone or level of experience in the game.

To provide the best experience for all players, we suggest skipping or deferring the tutorial or onboarding experience when first-time users deep link to join a party in your game. This way, their friends won’t have to wait for them to complete the onboarding process. They’ll also experience “aha” moments sooner because they’ll learn while playing with friends.

More ways you can use deep linking to enhance your user experience

By supporting a deep linking protocol in your game, you don’t just make it easier for people to play your game together. You can also enhance your user experience in other ways:

  • Let players add each other as friends in your game simply by sharing a link
  • Let players join events in your game (e.g., eSports) by following a link
  • Let players watch replays of game moments by following a link
  • Let players open your game in spectator mode to watch other players
  • Track referrals to your game to reward users for sharing your app

Suggested tools for developing a deep linking protocol for your game

Depending on the platform you’ve developed your game for, there are a few steps to follow to support deep links in your game. Luckily, they’re as simple as implementing a few lines of code!

One tool that makes deep links easier to handle is Branch. You don’t have to use it, but it takes care of some of the legwork for you.

iOS

To enable a deep link URL scheme, just follow Apple’s official guide

As an option, you can improve the shareability of your app by using universal deep links (a cross-platform solution that builds on top of the deep link URL scheme). Learn more about universal deep links here.

Android

To enable deep link support in Android, check out this guide.

Unity

To enable deep link support in Unity, you have a few options:

Having trouble getting deep link support set up? We’re happy to jump on a call and help you get everything in place! Just shoot us an email at developers@bunch.live and someone from our team will help you out.