GTM + Яндекс Метрика - ожидание инициализации

При работе с Google Tag Manager, далее GTM, очень удобно настраивать цели, эвенты и прочие радости аналитика. Для целей Universal Analytics в GTM есть специальный тег, настроить его просто и никаких проблем в этой связке нет.
Для счетчика и целей Яндекс Метрики, далее YM, оно и понятно, тега не предусмотрено. Для большинства задач подходит обычная вставка js кода в тег типа "Пользовательский HTML", но есть нюансы.

Uncaught ReferenceError: yaCounterXXXXXXXX is not defined

Ошибка инициализации YM

Эту ошибку можно увидеть не только при использовании GTM, но с ним как правило чаще.
Ошибка намекает нам на то что счетчик метрики еще не загрузился, а мы уже что-то пытаемся передать.

Мы пытаемся передать цель еще не инициализированному счетчику, другими словами - хотим запрыгнуть в такси которое еще не подъехало.

Как исправить?

Ответ наипростейший - подождать пока такси не подъедет.

Опишу рецепт для GTM и YM, решение проблемы происходит в три шага:

1) Настройка счетчика

Идем в настройки YM, открываем дополнительные настройки, ставим галочку "Асинхронный код"

Настройка счетчика YM
2) Дополнительный параметр счетчика

Добавляем в код вызова счетчика дополнительный параметр "triggerEvent:true" в обычных настройках его нет, взят из мана

triggerEvent:true
Дополнительный параметр счетчика YM
3) Код вызова цели

Дорабатываем код вызова события, добавляем проверку на инициализацию YM

<script>
  document.addEventListener('yacounterXXXXXXXXinited',function(event){
  	yaCounterXXXXXXXX.reachGoal('bookForm');
  });
</script>
Настройка счетчика YM


Оставить комментарий