Developer Deeplinking [Beta]

[Update] September 1, 2023


Hey y’all!

We are excited to announce Developer Deeplinking, a new beta rolling out to all developers today!

This feature will enable developers to pass a string (LaunchData) in links/URLs they create for their experiences. This will be appended to the general join link, and will be available to the developer when the user enters their experience through the join link. You can then use that data to customize the user experience in whichever way you like.

To build these links you need your rootplace ID and your LaunchData URL encoded. For example, this link joins the LaunchData sample place and starts the user in room 2:

Link 1 - https://www.roblox.com/games/start?placeId=6900305353&launchData=%7B%22roomId%22%3A%202%7D

This URI also does the same, while bypassing the Roblox website:

Link 2 - roblox://placeId=6900305353&launchData=%7B%22roomId%22%3A%202%7D

You can also make sure that this link works for users without Roblox downloaded on their mobile devices by using the AppsFlyer version of the link.

The above link would look like:

ro.blox.com/Ebh5?af_dp=roblox%3A%2F%2FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fgames%2Fstart%3FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D`

To build the AppsFlyer version of the link, you need to start the URL with ro.blox.com/Ebh5? And append the af_web_dp parameters with the URL encoded version of Link 1 and and af_dp with the URL encoded version of Link 2

What can you use Deeplinking for?

We are very excited to see how developers end up using this feature! In the mean time, here are some potential use cases to help kickstart your workflows:

  • Link directly to a place inside a Roblox experience.
  • Link directly to where friends are inside a Roblox experience.
  • Attribution: Letting you know what URL was clicked/where a user is coming from.
  • Social media giveaways and more!

Click here for more information on implementation and other examples.

Please note, Developer Deeplinking has not rolled out on Mac and Windows Store Roblox, but we are working on it.

Update 8/18/2022: Developer Deeplinking now works on Mac.

Additional information:

  • LaunchData is only available on the first join. If the user teleports to another server, the data is not included, though if needed it can be forwarded manually as teleport data.
  • LaunchData will be limited to 200 bytes.
  • More complex data can be stored as a JSON string and decoded with HTTPService:JSONDecode()
  • LaunchData should not be used for storing or sharing confidential information
  • LaunchData authenticity can not be guaranteed, as the URL can be modified by any user.
430 Likes

This topic was automatically opened after 10 minutes.

In documentation, it says that LaunchData is a string, will it need to get URL decoded first? Also can we use the keys we want?

14 Likes

I am curious: what business case justified this feature? An obvious feature I see with this is for promotions in videos similar to the Roblox Star Program Star Codes (i.e. “Play the game with my link! https://www.roblox.com/games/start?placeId=0&launchData=VideoCreatorNexus”). Maybe some optional analytics to see how many people discover the game through a blog or website you control. Other use cases I can think of require authentication that can’t be provided because of the nature of the message being completely forgeable.

49 Likes

While this is a great and much needed update, what we really need is this sort of data for people landing on our game page. Direct linking to open Roblox from an external site is not user friendly. What we need to see is user acquisition pathways for people landing on our game page, and then the conversion rate of those people. Hopefully this is something we can see in our dashboards soon.

29 Likes

To clarify:

Does this mean we’ll be able to create a link that directly launches the player’s client who clicks the link to the place we configured the link for?

14 Likes

I can see this being very useful for analytics aswell as experiences where users are able to make their own games, such as Blockate, RetroStudio, BuildWorld etc. This is an instance where Roblox has pushed an update that will benefit developers. I however would like to know if this launches the client directly into a game such as the way private servers work, or if they first need to press the play button.

Edit : For those interested, I have tested the link and it launches the user directly into the game instead of them needing to click the play button @ValiantWind

20 Likes

This is interesting! I have a couple of questions though.

  1. Are there plans to improve the AppsFlyer URL system as it is extremely long?

  2. Are there plans to move from ro.blox.com to some subdomain of roblox.com? Reason being is a lot of users will see this as a malicious URL, I did at first.

  3. Will Roblox implement this feature into the ad system? It would be useful for us developers to create ads for experiences and supply launchdata so we can see which ads brought our player into the game?

Awesome work, can’t wait to see what this allows developers to do!

27 Likes

What do you mean? AFAIK, before this update you could only have a join link for private servers.

6 Likes

Yes, similar to how private servers work, this will prompt the client to open. Users will functionally skip over the experience details page

11 Likes

The string will need to be URL encoded to be used in the URL. When it is passed into the client it will be URL decoded.

10 Likes

Is it possible to use multiple keys with deeplinking? If so, how will we get them as a string type?

5 Likes

I have been waiting for more marketing tools like this for so long! As a digital marketing agency owner, these tools are vital and will help businesses/games understand their traffic sources, attribution, and so much more. This will make advertising off-platform possible as we can attribute which advertising platforms have the most conversions. Not to mention, the amazing customization games can implement depending on the source of a user. Influencer marketing can be taken to another level now as developers can track way deeper metrics affiliated with said influencer and their effect on the games success.

10 Likes

when use the link, it enables the roblox app, but its a great feature too

5 Likes
  1. There is no immediate plan to shorten these links, so to the way they’re built. However, you can always embed these links into a button or graphic. Furthermore, most social media sites will shorten the links automatically

  2. No immediate plan to change the domain. You can use the roblox.com link mentioned earlier, but to capture the deferred deep link functionality of AppsFlyer, you will have to use the longer link. Great thoughts, these first two questions are issues Roblox itself deals with.

  3. This is our first step for developer deeplinking, but will not be the last! Stay tuned.

20 Likes

This is a really nice update, could definitely see this being used in RPG games

4 Likes

Hey, if you check the DevHub documentation, you should find the answer to your question. You can also find an example for how to use a table as LaunchData. please let me know if you have more questions!

4 Likes

this feature can also help mobile players that want to join private servers

7 Likes

Is there a URL variable for joining a specific server or would I have to just have to pass the serverId in LaunchData and handle it with a teleport?

4 Likes

seems interesting, can anyone tell me how I would this into practice for an actual game.

4 Likes