Данные код добавляем как HTML код в любую часть сайта (у меня стоит сразу после формы) и вместо XXXX ставим свой ИД Яндекс Метрики.
<script>
// Обращение к Яндекс Метрике для получения ClientID
ym(XXXXXX, 'getClientID', function(clientID) {
// Код, который будет выполнен после получения ClientID
// В данном примере просто вставляем его в поле input
function setClientIDInputs() {
var clientIDInputs = document.querySelectorAll('.client_ID input');
for (var i = 0; i < clientIDInputs.length; i++) {
if (clientIDInputs[i].type !== 'file') {
clientIDInputs[i].value = clientID;
}
}
}
setClientIDInputs(); // Вызываем функцию сразу после получения clientID
// Устанавливаем значение в поля после каждого скролла
window.addEventListener('scroll', setClientIDInputs);
});
// Функция для чтения cookie по имени
function readCookie(name) {
var nameEQ = name + "=";
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
while (cookie.charAt(0) === ' ') {
cookie = cookie.substring(1, cookie.length);
}
if (cookie.indexOf(nameEQ) === 0) {
return cookie.substring(nameEQ.length, cookie.length);
}
}
return null;
}
</script>
Далее в форму добавляем скрытое поле и добавляем класс компонента как "clinet_ID". У меня это сделано так:
Поздравляю, вы справились, теперь в скрытое поле будет подставляться clinetID из Яндекс Метрики.
Полезное
Портфолио