|
<script> |
|
// массив, в котором айдишники всех кнопок |
|
var BUTTON_CLASSES = ["uid"]; |
|
// массив, в котором лежат нужные нам названия UTM |
|
var UTMS = ["utm_source", "utm_medium", "utm_campaign", "utm_content", "utm_term"]; |
|
|
|
// функция, которая вытаскивает значение cookie с названием utm_aggregated_data |
|
function findCookieByName(name) { |
|
var result = null, tmp = []; |
|
var match = document.cookie.match(new RegExp('(^| )bootcamp_utm_aggregated_data=([^;]+)')); |
|
if (match) { |
|
match[2].split("|||").forEach(function (item) { |
|
tmp = item.split("="); |
|
if (tmp[0] === name) result = decodeURIComponent(tmp[1]); |
|
}); |
|
} |
|
return result; |
|
} |
|
|
|
// функция, которая вытаскивает все GET-параметры из адресной строки |
|
function findGETParameterByName(name) { |
|
var result = null, tmp = []; |
|
location.search.substr(1).split("&").forEach(function (item) { |
|
tmp = item.split("="); |
|
if (tmp[0] === name) result = decodeURIComponent(tmp[1]); |
|
}); |
|
return result; |
|
} |
|
|
|
// бежим по массиву с аттрибутами и пытаемся вытащить данные |
|
// и положить в переменную, которую затем будем использовать |
|
var utmParams = ""; |
|
for (u of UTMS) { |
|
if (findCookieByName(u) === null) { |
|
utmParams += `&${u}=${findGETParameterByName(u)}`; |
|
} else { |
|
utmParams += `&${u}=${findCookieByName(u)}`; |
|
} |
|
} |
|
|
|
// берем из кук данные отправленной формы из шага 1 |
|
// делаем обратное преобразования символов '|||' в '@' |
|
var cookieFormData = document.cookie.match(new RegExp('(^| )bootcamp_form_aggregated_data=([^;]+)')); |
|
if (cookieFormData) utmParams += `&email=${cookieFormData[2].replace('|||', '@')}`; |
|
|
|
// берем классы кнопок, формируем новые ссылки с необходимыми UTM метками |
|
var baseUrl = ""; |
|
for (bc of BUTTON_CLASSES) { |
|
baseUrl = document.getElementsByClassName(bc)[0].getElementsByTagName("a")[0].href; |
|
document.getElementsByClassName(bc)[0].getElementsByTagName("a")[0].href = `${baseUrl}${utmParams}`; |
|
} |
|
</script> |