Что будет, если два раза испугаться до полусмерти? Зачем на клавиатуре кнопка Scroll Lock? Как навсегда навести порядок в GTM? Некоторые вопросы так и остаются без ответа, но с возрастом приходит понимание того, что действительно важно, а какими проблемами не стоит забивать голову. Сегодня будем по фен-шую организовывать отправку событий в аналитику, с универсальным тегом, словарями и прочей атрибутикой идеального контейнера.
Как обычно отправляют события?
Когда вы решаете добавить в отслеживание новый фактор через Google Tag Manager, то наверняка действуете по стандартной схеме: новый тег и триггер к нему, переменные при необходимости. Спустя какое-то время у вас получается куча тегов, которые делают примерно одно и то же - просто отправляют события в Google Analytics, но с немного разными настройками. А еще ведь надо сообщать в Метрику, где система событий не настолько гибкая, и порой приходится еще сильнее разделять. Естественно, со временем разбираться в этом становится все сложнее, и сложнее вносить правки.
Как нужно отправлять события?
Привет, меня зовут Сева, и я не делаю левых тегов в GTM уже 3 недели.
Как мне это удается? Колоссальный опыт? Потрясающая выдержка? Невероятный контроль? Все просто! Я стараюсь придерживаться простого правила:
Одна система - Один тег.
Хотите отправить событие в Google Analytics? Вот вам тег для этого! Решили стряхнуть пыль с Яндекс.Метрики? Сотрите все старые теги и сделайте единственный новый! В Google Analytics у события есть три параметра: Категория событий, Действие по событию и Ярлык события. Сделаем из них словари, которые будут меняться в зависимости от имени события. Для этого создаем Переменную с типом Таблица поиска, на вход Event. Для категории будет выглядеть примерно так:
Такие же словари нужно добавить для действий и ярлыков, и именно в них мы будем держать описательную часть для всех событий. В значении по умолчанию я указал категорию, которая берется из dataLayer
. Таким образом, если мы не описали какое-то событие, для него передастся категория, зашитая в сайт.
Но мы же не хотим передавать прям все события, поэтому триггер срабатывает только для избранных. Словарный кейс я помечаю окончанием BD
, например, subscribeBD
, orderBD
, соответственно, вот мой триггер:
Ну и наконец, тег, который все это обрабатывает:
Теперь, когда мне нужно подключить отслеживание заявок с нового лендинга, я прописываю там: dataLayer.push({'event': 'orderBD'});
Все остальное прикручивается автоматически.