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.

On this topic