Encoding
URL encoding is the practice of converting sensitive sections of complex URLs into code so that they can be read by a server. URL encoding is an essential practice. Without correct encoding, you will lose data.
The same encoding rules apply to callback URLs and tracker URLs.
The query string part of a URL, i.e., content that comes after the ?
in the URL, is the only content that will need encoding. This means anything after this part of a tracker URL: https://app.adjust.com/abc123?
.
The following must always be encoded:
- Unsafe special characters:
@
,&
,&
,+
,,
,/
,:
,;
,=
,?
,@
,"
,<
,>
,#
,%
,{
,}
,|
,\
,^
,~
,[
,]
,`
,)
- Spaces ( )
- URLs as parameter values (e.g., fallback URLs)
- Parameters within parameters (e.g., Android install referrer values)
While our instructions will specify when you need to encode a significant part of a URL, be aware that you will need to encode any parameter value that contains unsafe characters, i.e., those outside of the ASCII character set. If you are unsure whether a value contains unsafe characters, enter it into a URL encoder; this will convert any sensitive characters in the value. Note that placeholders using curly brackets ({ }
) do not need to be encoded.
Failure to correctly encode a URL will result in an error on our server, leading to, e.g., malfunctioning fallbacks and redirects and an inability to read and process parameters.
Example: special characters in a callback URL
Unencoded URL
http://callbacks.myserver.com/registration?username=bob_uncle&email=bob.uncle@mail.com
Encoded URL
http://callbacks.myserver.com/registration?username=bob_uncle&email=bob.uncle%40mail.com
Example: tracker URL with a URL as a parameter
Unecoded URL
https://app.adjust.com/abc123?redirect=https://www.mywebsite.com/landing_page
Encoded URL
https://app.adjust.com/abc123?redirect=https%3A%2F%2Fwww.mywebsite.com%2Flanding_page
Example: tracker URL with parameters within parameters
Unencoded URL
https://app.adjust.com/abc123?referrer=adjust_tracker=abc123&adjust_campaign=ChristmasCamp59_ChristmasCampId330&adjust_adgroup=AppId48399_SubID&adjust_creative=Creative9383_SubId&utm_source=adjust_store&adjust_install_callback=www.3rdpartydomain.com?src=adjust&advertiserId=57638&password=4d13c4dc
Encoded URL
https://app.adjust.com/abc123?referrer=adjust_tracker%3Dabc123%26adjust_campaign%3DChristmasCamp59_ChristmasCampId330%26adjust_adgroup%3DAppId48399_SubID%26adjust_creative%3DCreative9383_SubId%26utm_source%3Dadjust_store&adjust_install_callback=www.3rdpartydomain.com%253Fsrc%253Dadjust%2526advertiserId%253D57638%2526password%253D4d13c4dc
Note: In this example, there is in fact a callback parameter within a URL that is already encoded, meaning that the callback URL value must be double encoded.