Skip to content

Instantly share code, notes, and snippets.

@hunty
Last active August 4, 2023 07:22
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save hunty/9b5cfe419d3dbb28e131fd100ce51d77 to your computer and use it in GitHub Desktop.
Save hunty/9b5cfe419d3dbb28e131fd100ce51d77 to your computer and use it in GitHub Desktop.
Парсит UTM метки и подставляет в скрытые поля
window.onload = function() {
// Parse the URL
function getParameterByName(name) {
var name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
var results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');
// Put the variable names into the hidden fields in the form.
document.getElementById("property_utm_source").value = source;
document.getElementById("property_utm_medium").value = medium;
document.getElementById("property_utm_campaign").value = campaign;
//U Can use it with Expertsender Forms
}
@mrgvd
Copy link

mrgvd commented Jul 13, 2020

Спасибо огромное - так работает с ajax. Подскажите, а как метки можно сохранить при переходы на другие страницы?

@hunty
Copy link
Author

hunty commented Jul 20, 2020

Рад что пригодилось)
Самый очевидный вариант - подставлять их в запрос, т.е. можно составить ссылку таким образом:

// ссылка на новую страницу
var link = "/link_to_some_page";
// собираем метки обратно в запрос     
var utm = "?utm_source=" + utm_source + "&utm_medium=" + medium + "&utm_campaign=" + campaign;    
// склеиваем метки
var linkWithUtm = link + utm;    
// идем на новую страницу.
window.locate(linkWithUtm); 

Если ссылки уже добавлены в <a href="ссылка"/>, то можно добавить utm к кажой ссылке, например получив весь список ссылок, и перезаписать их, или лучше добавить обработчик на onClick этих ссылок, и в нем подставлять utm к сушествующему url.

@skngrg
Copy link

skngrg commented Sep 15, 2021

А для чего нужно это?
name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
без этого же прекрасно работает :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment