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:

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

Encoded URL

Example: tracker URL with a URL as a parameter

Unecoded URL

Encoded URL

Example: tracker URL with parameters within parameters

Unencoded URL

Encoded URL

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.