javascript — сохранять utm-метки при переходе между страницами и добавлять ко всем ссылкам на сайте get параметр ga_cid из cookie _ga
document.addEventListener("DOMContentLoaded",function(event){ var ga_cookie=document.cookie.match(new RegExp('(^| )_ga=([^;]+)')); if(ga_cookie[2]){ var ga_cookie_split=ga_cookie[2].split("."); var ga_cid=ga_cookie_split[2]+'.'+ga_cookie_split[3]; var get_params=new Array('utm_source','utm_medium','utm_campaign','utm_content','utm_term'); var params=new URLSearchParams(location.search); var links=document.getElementsByTagName("a"); for(i=0;i<links.length;i++){ var href=links[i].href; if(href.includes(document.domain)&&!(href.includes('#'))){ get_params.forEach((get_param)=>{ if(params.has(get_param)){ href+=(href.includes('?'))?"&":"?"; href+=get_param+"="+params.get(get_param); } }) href+=(href.includes('?'))?"&":"?"; href+="ga_cid="+ga_cid; links[i].href=href; } } var regex=new RegExp("([?;&])ga_cid[^&;]*[;&]?"); var query=location.search.replace(regex,"$1").replace(/&$/,''); var search_param=(query.length>2?query+"&":"?")+(ga_cid?'ga_cid'+"="+ga_cid:''); var newurl=window.location.pathname+search_param; window.history.pushState({path:newurl},'',newurl); } });