编码

URL 编码是将复杂 URL 的敏感区段转换为代码的做法,如此便于服务器读取 URL。执行 URL 编码很重要,如果编码不正确,您将会丢失数据。

相同的编码规则适用于回传 URL 和跟踪链接。

URL 的查询字符串部分,即 URL 中 ? 后的内容,是唯一需要编码的内容。换句话说,就是跟踪链接此部分:https://app.adjust.com/abc123? 之后的任何内容。

您必须始终对以下内容进行编码:

  • 不安全的特殊字符:@&&+,/:;=?@"<>#%{}|\^~[]`)
  • 空格 ( )
  • 作为参数值的 URL(如后备 URL)
  • 参数内含的参数(如安卓 Install Referrer 值)

虽然我们会说明何时需要对 URL 的重要部分进行编码,但请注意,您需要对包含不安全字符,即 ASCII 字符集之外的字符的任何参数值进行编码。如果不确定某个值是否包含不安全字符,请将其输入 URL 编码器中;此操作可转换值中的任何敏感字符。请注意,使用花括号 ({ }) 的占位符不需要编码。

若未能正确编码 URL,将导致服务器出现错误,例如后备和重定向发生故障、无法读取和处理参数。

示例:回传 URL 中的特殊字符

未经编码的 URL

http://callbacks.myserver.com/registration?username=bob_uncle&email=bob.uncle@mail.com
经编码的 URL
http://callbacks.myserver.com/registration?username=bob_uncle&email=bob.uncle%40mail.com

示例:带有 URL 参数的跟踪链接

未经编码的 URL
https://app.adjust.com/abc123?redirect=https://www.mywebsite.com/landing_page
经编码的 URL
https://app.adjust.com/abc123?redirect=https%3A%2F%2Fwww.mywebsite.com%2Flanding_page

示例:在参数内包含参数的跟踪链接

未经编码的 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
经编码的 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
注意:在本示例中,事实上 URL 中已经含有一个经编码的回传参数,这表示回传 URL 值必须经过双重编码

有关此主题