Developer Deeplinking Update

Hi all,

In 2022, we announced Developer Deeplinking to allow y’all to pass data to your experiences when a user joins them via a deeplink to our app. Included were instructions for how to set up links using deferred deeplinking, to allow users new to Roblox to still directly join your experience after installing Roblox and signing up.

Today, we’re announcing a slight change to the format of those links. You will need to add a “deep_link_value” query parameter with the same link value that was used for af_dp and af_web_dp, previously. You can update to this new format today, and your developer deeplinks will continue to function.

Next month, we’ll be releasing an update to use Unified Deep Linking (UDL), after which links that don’t contain the “deep_link_value” will cease to function correctly on Android devices(landing the user on the Roblox home screen). As such, we suggest migrating to the backwards-compatible UDL format listed below immediately for any shared links. We will be sure to update you once we have a release date for this update.

Note: This change has no impact on iOS devices, as they don’t have this restriction.

This change is necessary to support UDL, which will result in faster deeplink processing times and should also make deferred deeplink resolution more consistent.

Taking the previously shared example:

The new format would be:

Note that for both of these, af_web_dp should be an https://www.roblox.com URL pointing to your experience so users on desktop browsers can still land on it.

Please let us know if you have any questions.
Thank you.

82 Likes

This topic was automatically opened after 10 minutes.

Will UDL eventually remove the need to pass af_dp and af_web_dp, assuming those are there for legacy sake? Currently it seems redundant to pass the same value three times…

If not, is it feasible to provide a shorter link that redirects to the longer one passing the value into all three? This way if there’s any future adjustments, we won’t need to adjust the links too much.

I’m unfamiliar with how deep links work on the OS-side unfortunately, so throwing questions up in the air.

4 Likes

Really good feature :star:
Thank you!

3 Likes

Once UDL is live, those aren’t strictly necessary, though each provides some benefit. af_web_dp is used on desktop browsers to make sure users land on the corresponding webpage there.

af_dp should be able to improve the matching of user to link in the deferred case(when the user didn’t have Roblox installed). AppsFlyer uses heuristics to do that matching and have told us that including both improves matching rate.

For shorter links, we don’t have anything to announce right now, but can take that as a feature request going forward.

5 Likes

+1 for shorter links! Our game has to use an alias link because the deeplink format looks like a virus to any offsite players or to those not technologically savvy.

9 Likes

Amazing update, shorter links come in clutch! Is it possible to deep link information as a JSON something like:

https://www.roblox.com/games/start?launchData=[{"id": "ssssa", "productId": "something"}]&placeId=17408110728 (this is not encoded for the sake of readability)

when giving it to the launchdata? currently, httpservice doesn’t recongize all of the pieces of data, and will only print {"id and it’s kinda annoying.

Thanks for this update <3

1 Like

Encoded JSON should work, though we’re aware of an issue on Windows for URL-encoded JSON, causing the " character to be removed. Using Base64 encoding should avoid that issue, though.

2 Likes

Some will work and some will not work; It depends how data is packed into the table. Thanks for this! Will this be fixed as a release note or will it be released via this thread, asking as we depend on deeplinking for our experience and it’s broke a lotttt of stuff.

Thanks for what you do! <3

1 Like

Just a tad confused. Is this basically datastore across several games?

2 Likes

It probably doesn’t make sense to track in this thread. Can you make a new post to devforum about this(with details around when this occurs)? That’ll ensure it gets attached to and tracked by an engineer(probably me)

EDIT: Sorry, I wasn’t aware that this advice isn’t a thing users can typically do here. That said, feel free to DM me with more details of your issue and I can look into it.

2 Likes

This is a feature that allows you to share links with potential users that open directly into your experience with a blob of data you provide to do custom actions within your experience. The link in the top post gives a more full rundown on the feature. This is just an update on the format of some of the links for that feature.

1 Like

Definitely will consider this!

Would this also support allowing players to join a non starter place directly from a link as well?

would really like to utilize that feature

Currently we use this link format:

and have a QR code be used in IRL locations to bring players into the game, should we be changing our link or are we alright to continue doing this.

Discord people won’t trust this link for sure

That’ll still work just fine as long as the user already has Roblox installed. The AppsFlyer links become useful when users don’t, as it allows falling back to the Roblox page in the app store and will (usually, it’s probabilistic) still follow the link after the user has installed Roblox, launched it and signed up or signed in.

It doesn’t change the place that’s joined, but you can certainly use it in your server scripts to immediately teleport the player to a non-starter place.

I want to make this change to my existing code but I don’t understand the wording on how to construct “deep_link_value”. For clarity, could you please share an example of how the links should look like, similarly to how it was shown in the original post?

Yep, no problem. It would look like:

http://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&deep_link_value=roblox%3A%2F%2FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D

So really just copying the value you already put in af_dp to deep_link_value

2 Likes