Как передать параметры UTM-метки при нажатии на кнопку?

178
17 октября 2019, 18:40

Возникла необходимость передавать параметры UTM-метки при нажатии на кнопку. Знаю, что можно сделать подобное через php с помощью get, но опыта работы с php не было, поэтому куда и что вставлять не сильно понимаю. Сайт на Битрикс.

Спасибо!

Answer 1

Если делать на php, то нужно формировать ссылку вида:

<a href="http://newsite.ru?utm_source=<?=$_GET['utm_source'];?>">перейти с utm</a>

Можно сделать и с помощью js. Логика такая:

  1. На странице, куда первоначально заходит человек, мы заносим utm в переменную

  2. По клику на кнопку отправляем человека по новой ссылке + utm

let utm = window.location.href.split('?').pop(); //получаем utm 
 
document.getElementById('link').onclick = function() { //по клику на кнопку 
   window.location = 'http://newsite.ru?'+utm; //переправляем пользователя на новый адрес 
}
<button id="link">перейти с utm</button>

Решение на js изящнее тем, что неважно, сколько параметров в utm. На php придётся вручную прописывать в ссылке ?utm_source=<?=$_GET['utm_source'];?>&utm_campaign=<?=$_GET['utm_campaign'];?>&utm_content=<?=$_GET['utm_content'];?>

READ ALSO
Как добавить QMAKESPEC через cmd на Windows?

Как добавить QMAKESPEC через cmd на Windows?

В общем дело такое: при компиляции Qt-проекта через cmd на Windows 7 (компилятор MinGW 44) выдает ошибку

156
c++ размещение объекта в заранее выделенной памяти

c++ размещение объекта в заранее выделенной памяти

Как разместить объект в выделенной памяти? К примеру у меня есть выделенный массив размером 100:

133
async_accept возвращает ошибку в boost::asio

async_accept возвращает ошибку в boost::asio

Пишу асинхронный TCP-сервер, однако у меня при запуске, возникает "Ошибка акцептора", то есть в accept_handler возвращается ошибка, что делать? errormessage()...

147