Фокси Форум
Очередной ламповый форум для вебмастеров о seo, заработке в интернете, создании сайтов, дорвеях, партнерках, крипте, ботах и антиботах.
Рег: Jan 30, 2025
Тема: Как удалить utm_referrer после передачи реферера в Метрику
Если пользуетесь антиботом наряду с Яндекс.Метрикой, то важно включить подстановку utm_referrer в URL сайта. Иначе в Метрике все заходы будут помечены, как «прямые».
Включить такую настройку антибота можно в разделе «Конфиг» – «UTM Referrer» (и заодно включите запрет индексации utm_referrer):
Но у этого подхода есть минус: урлы становятся слишком длинными, некрасивыми. Плюс, если кто-то скопирует адрес в таком виде, то статистика Метрики станет некорректной. Ведь если поделиться ссылкой в конце которой указан, например, ?utm_referrer=https://www.google.com/, то все переходы Метрика ошибочно причислит к визитам из Гугла.
Чтобы исправить ситуацию, необходимо модифицировать код Метрики:
<script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,k.onload = function() { if (window.history && window.history.replaceState) { var url = new URL(window.location); url.searchParams.delete("utm_referrer"); window.history.replaceState({}, '', url); }}; a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(вставьтеидентификаторвашегосчётчика, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/вставьтеидентификаторвашегосчётчика" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
На картинках я выделил нужные куски, которые надо добавить / заменить в оригинальном коде Метрики:
В итоге utm_referrer будет автоматически удаляться сразу после передачи реферера в Яндекс.Метрику. Попробуйте!
Рег: May 07, 2020
# 1
Re: Как удалить utm_referrer после передачи реферера в Метрику
Мой пересказ для понятности ))) После стандартного кода метрики:
k.async=1,k.src=r,Вставить в ту же строку:
k.onload = function() { if (window.history && window.history.replaceState) { var url = new URL(window.location); url.searchParams.delete("utm_referrer"); window.history.replaceState({}, '', url); }};Вот так будет выглядеть:
На этом форуме все это проделано. Работает вроде. Для проверки - в анонимном режиме браузера (или почистив куки) зайти с реферером, например через Яндекс, сначала будет подставлен utm_referrer в URL, а после загрузки метрики будет стерт из урл без перезагрузки страницы.
Рег: May 07, 2020
# 2
Re: Как удалить utm_referrer после передачи реферера в Метрику
Если метрика показывает 2 и более IP адресов - значит в процессе хождения по сайту у юзера изменился IP и метрика так это объединяет для статистики.