Устанавливать данный код можно в любое место сайта или через GTM. Скрипт дожидается загрузки Яндекс Метрики, получает ClientID пользователя и отправляет его в "Параметры Визита" Яндекс Метрики.
Вместо XXXXXXX - подставляем ID вашей Яндекс.Метрики
<script>
// Указание ID Яндекс.Метрики
var yandexMetricaID = XXXXX;
// Функция для извлечения параметра из URL
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
}
// Функция для извлечения значения из utm_content
function extractSourceFromUtmContent(utmContent) {
var match = utmContent.match(/\|source:([^|]+)\|/);
return match ? match[1] : null;
}
// Функция для извлечения значения source из URL
function getSourceFromUrl() {
// Сначала ищем source в utm_content
var utmContent = getUrlParameter('utm_content');
var source = extractSourceFromUtmContent(utmContent);
if (source) {
return source;
}
// Если не найдено, ищем source в параметре URL
return getUrlParameter('source');
}
// Функция, которая будет выполняться после загрузки Яндекс.Метрики
function afterYandexMetricaLoaded() {
var yaID;
// Получение Client ID
ym(yandexMetricaID, 'getClientID', function(clientID) {
yaID = clientID;
console.log("ClientID", yaID);
// Получение значения source из URL
var source = getSourceFromUrl();
console.log("Source", source);
// Получение IP-адреса
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.ipify.org?format=json', true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var response = JSON.parse(xhr.responseText);
var ipAddress = response.ip;
console.log("IP Address", ipAddress);
// Создаем объект параметров
var params = {
clientID: yaID
};
// Добавляем source, если он не равен 'none' или 'null'
if (source && source !== 'none' && source !== 'null') {
params.source = source;
}
// Добавляем IP
params.IP = ipAddress;
// Отправка параметров на сервер
ym(yandexMetricaID, "params", params);
}
};
xhr.send();
});
}
// Подписываемся на событие загрузки Яндекс.Метрики
document.addEventListener('DOMContentLoaded', afterYandexMetricaLoaded);
</script>
Обновление от 8 июля 2024
Для дополнительной передачи названия площадки с которой пришел пользователей с присущей ему активность требуется в UTM метки на уровне кампании/ группы или объявления добавить следующий параметр: &source={source}
С данным параметром вы на уровне веб-визора сможете видеть с каких площадок приходят пользователи и в случае необходимости блокировать такие площадки где например больше 40-50% аудитори с активностью 1-2 и при этом нет конверсий.
Заходите на сайт где установили скрипт. Нажимаете Правой Кнопкой Мыши на любую область экрана - Нажимаете "Посмотреть" - Переходите в режиме разработчика во вкладку "Консоль" и там у вас должна появится такая строка с получением ClientID
Заходим в счетчик сайта в который будем передавать "Активность 4+" и следуем инструкции:
Обновление от 8 июля 2024
Если вы хотите дополнительно получать раздельные данные о пользователях с Активностью 1/ 2/ 3/ 4/ 5, то создайте дополнительные JavaScript-события:
После этого данные будут собираться не только в цель "Активность 4+", но и раздельно.
Заходим в настройки своего счетчика, выбираем пункт "Загрузка данных" и нажимаем на кнопку "Включить учет оффлайн-конверсий"
https://vechkasov.ru/account/cabinet - переходите в личный кабинет, выбираете вкладку "Регистрация", после регистрации кликаете на кнопку "Добавить счетчик", прописываете ID Яндекс Метрики и действуете по инструкции выдачи доступа. Всё. Поздравляю. В ближайшие 24 часа данные в Ваш счетчик начнут поступать!
Полезное
Портфолио