Я работаю над настройкой источника UTM ссылки в виде файла cookie в сеансе браузера. В настоящее время я делаю это для GCLID, когда кто-то приходит на сайт с рекламой без проблем, используя очень похожий код. Однако, когда я настраивал этот конкретный код, он разбирает только первый символ строки. Мне было интересно, есть ли фрагмент кода, который не позволяет анализу URL получить полную строку, или есть фрагмент кода jQuery, который говорит ему выбрать только один символ.
Код очень похож на файл cookie, который я установил для GCLID, который работает, и, поскольку я очень мало знаю о реальных частях этого кода, я немного колебался, чтобы изменить куски, не зная на 100%, что они все делают.
<script>
// Parse the URL
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var ppc_source = getParameterByName('utm_source');
if(ppc_source){
var ppcsrc = getParam('ppcsrc');
if(!ppcsrc || ppcsrc.indexOf('aw') !== -1){
setCookie('ppc_source', ppc_source, 90);
}
}
</script>
<script>
if (document.getElementById('ppc_source') !=null) {
function readCookie(name) {
var n = name + "=";
var cookie = document.cookie.split(';');
for(var i=0;i < cookie.length;i++) {
var c = cookie[i];
while (c.charAt(0)==' '){c = c.substring(1,c.length);}
if (c.indexOf(n) == 0){return c.substring(n.length,c.length);}
}
return null;
}
window.onload = function() {
document.getElementById('ppc_source').value =
readCookie('ppc_source');
}
}
</script>
Это должно извлечь только источник UTM из ссылки и сохранить его в сеансе в виде файла cookie, чтобы при переходе к форме он отправлялся через весь источник. Тем не менее, он сохраняет / отправляет только первый символ.