Сервисы, интернет-магазины и другие сайты часто используют tracking-ссылки вместо прямых ссылок.
Это особенно заметно в письмах: ссылка на вопрос, заказ, товар или другую страницу сначала ведёт через промежуточный сервис, который фиксирует переход, а затем перенаправляет на настоящий URL.
Но tracking-ссылки встречаются не только в email. Их можно увидеть на форумах, в комментариях, сообществах и других сервисах — везде, где владельцу сайта нужно учитывать переходы по внешним ссылкам.
Иногда настоящий URL уже находится прямо внутри tracking-ссылки, в одном из её параметров. Например:
https://tracking.example.com/click?u=https%3A%2F%2Fexample.com%2Forders%2F12345&campaign=email
Здесь параметр u содержит URL назначения:
https%3A%2F%2Fexample.com%2Forders%2F12345
Его не обязательно вручную копировать и декодировать. Можно быстро извлечь прямую ссылку прямо в DevTools.
Как это сделать
- Скопируйте tracking-ссылку.
- Откройте DevTools клавишей
F12. - Перейдите на вкладку Console.
- Введите:
const url = new URL("https://tracking.example.com/click?u=https%3A%2F%2Fexample.com%2Forders%2F12345&campaign=email")
- Затем получите значение нужного параметра:
url.searchParams.get("u")
В консоли будет выведена уже декодированная прямая ссылка:
https://example.com/orders/12345
На неё можно сразу кликнуть прямо в консоли.
URL предоставляет доступ к параметрам строки запроса через searchParams, а URLSearchParams.get() возвращает значение указанного параметра. При чтении query-параметров значение декодируется автоматически, поэтому отдельный вызов decodeURIComponent() здесь не требуется.
Конечно, имя параметра не всегда будет u. В зависимости от сервиса это может быть url, target, redirect, redirect_url и т. п.
Главное — посмотреть на tracking-ссылку и найти параметр, в котором содержится закодированный URL назначения.
Это простой способ получить прямую ссылку, не открывая tracking URL и не проходя через промежуточный сервис.