Яндекс.Метрика ClientID

Передача параметра ClientID Яндекс.Метрики

Настройка виджета

  1. Зайдите в настройки коннектора

  2. В разделе «Настройка виджета на сайт» добавьте параметр {visit_id} в текст приветственного сообщения

Обратите внимание, что если клиент удалит параметр {visit_id} из первого отправляемого сообщения, данные аналитики вы получить не сможете!

Для того, чтобы клиент был заинтересован в отправке сообщения с параметром {visit_id}, вы можете проявить креативность и как-то модифицировать текст сообщения. Например, таким образом: «Здравствуйте! Мой код для получения подарка: {visit_id}»

Настройка сайта

Добавьте на ваш сайт код передачи параметра в виджет. Где ХХХХХХХХ — номер вашего счётчика Яндекс.Метрики

Рекомендуем размещать код сразу после кода счётчика Метрики.

<script>
	const b24w = setInterval(() => {
		const l = document.querySelector('[data-b24-crm-button-widget=openline_olchat_wa_connector_2]')
		if (l !== null) {
			clearInterval(b24w)
			ym(XXXXXXXX, 'getClientID', (clientID) => l.href=l.href.replace(/\{visit_id\}/, clientID))
		}
	}, 250)
</script>

В некоторых случаях счётчик Яндекс.Метрики не успевает загрузиться и передать параметр clientID в {visit_id}. В этом случае нужно дополнить код счётчика параметром проверки инициализации счётчика. Для этого добавьте в код счётчика параметр triggerEvent

ym(XXXXXX, "init", {triggerEvent: true});

В данном случае код подмены параметра {visit_id} будет выглядеть так:

<script>
	document.addEventListener('yacounterXXXXXXXXinited', () => {
	    const b24w = setInterval(() => {
			const l = document.querySelector('[data-b24-crm-button-widget=openline_olchat_wa_connector_2]')
			if (l !== null) {
				clearInterval(b24w)
				ym(XXXXXXXX, 'getClientID', (clientID) => l.href=l.href.replace(/\{visit_id\}/, clientID))
			}
		}, 250)
	})
</script>

Если вы используете Google Tag Manager, то скорее всего вы получите ошибку при публикации тега. Дело в том, что GTM немного староват и не поддерживает современный Java Script. Чтобы всё прошло гладко, модифицируйте код следующим образом, убрав константы и стрелочные функции:

<script>
  document.addEventListener('yacounterXXXXXXXXinited', function () {
    var b24w = setInterval(function () {
      var l = document.querySelector('[data-b24-crm-button-widget=openline_olchat_wa_connector_2]');
      if (l !== null) {
        clearInterval(b24w);
        ym(XXXXXXXX, 'getClientID', function (clientID) {
          l.href = l.href.replace(/\{visit_id\}/, clientID)
        });
      }
    }, 250);
  });
 </script>

Last updated