exibite777
@exibite777
Ведущий системный аналитик

Как сделать редирект с сохранением UTM-меток?

Имеется сайт site1.ru на лендинг пейдж платформе, имеется множество рекламных компаний из разных источников, содержащих те или иные UTM-метки. Планируется изменить домен сайта на site2.ru. Нашел такое решение
<script language="javascript">
window.location.href="site2.ru";
</script>

Отрабатывает, но UTM-метки теряются. Как их сохранить? Знаю про 301 редирект на PHP, но в данном случае это не поможет. Функционал лендинг пейдж платформы ограничен и просто позволяет вставить в окошки HEAD и BODY текст скриптов. Поддерживается только JavaScript
  • Вопрос задан
  • 7537 просмотров
Решения вопроса 1
var utm = location.search;
var url = new URL('http://site2.ru');
url.search = utm;

location.replace(url);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Sergey_SL
Можно подробнее?
Есть сайт site1.ru на нем есть кнопка ведущая на site2.ru
пользователи приходят на site1.ru с различными utm метками.
Как при нажатии на кнопку отправлять их на site2.ru/order с теми же метками, с которыми они пришли?
Как добавить или заменить одну произвольную utm метку к тем что уже есть?
Все это нужно на javascript.
Ответ написан
Комментировать
exibite777
@exibite777 Автор вопроса
Ведущий системный аналитик
Подозреваю, что Вам подойдет тот же самый код, который я отметил решением, он выполняет следующие действия
- сохраняет текущие UTM
- выполняет редирект на site2.ru с теми же метками
Только в вашем случае нужно подкинуть код не в блок BODY настроек самой странице, а в кнопку и настроить собственно саму кнопку на выполнение кода по её нажатию.

Если Вы хотите еще и изменить часть меток при редиректе, то нужно после кода
var utm = location.search;
проанализировать содержимое переменной utm и изменить её простыми алгоритмами текстовой замены, условно алгоритм выглядит так
- задать поиск по нужной метке, например "utm_source"
- вычислить длину и место положение заменяемого текста от символа = до символа &
- удалить его
- заменить текст на желаемый

Добавить по идее проще - приписать текст в переменной, например так
utm=utm+'&utm_source=yandex'
(за синтаксис JS не ручаюсь)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы