> For the complete documentation index, see [llms.txt](https://docs.olchat.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.olchat.io/capabilities/peredacha-parametrov-analitiki/yandeks.metrika-clientid.md).

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

{% hint style="warning" %}
Данная статья предназначена для специалистов, обладающих практическим опытом настройки виджетов и передачи параметров аналитики. Материал содержит технические детали и требует понимания принципов интеграции с аналитическими системами.

При отсутствии соответствующего опыта рекомендуем обратиться к квалифицированному подрядчику или интегратору. Это обеспечит стабильную работу виджета и корректную передачу данных аналитики.
{% endhint %}

### Настройка бота-помощника

В [Настройках коннектора](https://docs.olchat.io/ustanovka-i-nastroika/interfeisy-prilozheniya/opisanie-nastroek-konnektora) есть функционал бота-помощника, который с помощью настройки «Привязать параметр аналитики к полю CRM» позволяет передавать параметры аналитики Roistat, ClientID, UserID и т.д. в любое строковое пользовательское поле.

Для начала необходимо установить бот-помощник на линию.

<figure><img src="/files/7Dtc6C3z1T4wDuuwlGKN" alt=""><figcaption></figcaption></figure>

Затем необходимо выбрать поле для настройки «Привязать параметр аналитики к полю CRM».

Для этого необходимо создать поле заранее и в выпадающем списке выбрать то поле лида, в которое необходимо записывать параметры аналитики.

Данная настройка будет работать только в том случае, если выбрано автоматическое создание лидов или сделок в настройках линии.

{% hint style="info" %}
Выбор поля «Привязать параметр аналитики к полю CRM» может быть недоступен, если выбрано ручное создание сущности из чата в разделе Очереди в настройках Открытой линии.
{% endhint %}

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

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

<figure><img src="/files/WhLtXpXrQZXLHnLIL7cE" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Обратите внимание, что если клиент удалит параметр **{visit\_id}** из первого отправляемого сообщения, данные аналитики вы получить не сможете.

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

{% hint style="info" %}
При передаче параметров аналитики бот не ищет цифры по всем тексту — он вытягивает цифры, которые подставились в {visit id} и записывает в поле.

В тексте приветствия не должно быть переносов сроки. Также лучше, чтобы {visit id} находился в конце текста. В ином случае бот не сможет распознать параметр аналитики и записать в поле CRM (cистемы управления взаимоотношениями с клиентами).
{% endhint %}

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

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

{% hint style="info" %}
Рекомендуем размещать код сразу после кода счётчика Метрики.
{% endhint %}

```javascript
<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}**. В этом случае нужно дополнить код счётчика [параметром проверки инициализации счётчика](https://yandex.ru/support/metrica/code/counter-initialize.html#counter-initialize__check-initialize). Для этого добавьте в код счётчика параметр triggerEvent.

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

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

```javascript
<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>
```

{% hint style="info" %}
Если вы используете Google Tag Manager, то скорее всего вы получите ошибку при публикации тега. Дело в том, что GTM немного староват и не поддерживает современный JavaScript. Чтобы всё прошло гладко, модифицируйте код следующим образом, убрав константы и стрелочные функции:
{% endhint %}

```javascript
<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>
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.olchat.io/capabilities/peredacha-parametrov-analitiki/yandeks.metrika-clientid.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
