Как стать автором
Обновить
44.25

Замена Google Tag Manager на on-premise-решение без лишних сложностей

Время на прочтение3 мин
Количество просмотров2.7K

Приветствую, дорогие хабровчане. Меня зовут Фёдор Куликов, я руководитель digital-аналитики в компании Tele2.

Хочу поделиться с вами тем, какую альтернативу мы нашли для Google Tag Manager.

Зачем используем GTM и причины необходимости замены

GTM — очень мощный инструмент управления тегами, который позволяет гибко управлять данными, собираемыми с сайта (и не только), устанавливать рекламные пиксели и даже проводить AB-тесты. Подробнее о том, как мы проводим AB-тесты, мы писали здесь.

Поэтому весной 2022 года мы смотрели на отказ от GTM как на серьезный риск в снижении нашей производительности и гибкости.

Кроме того, вся текущая разметка производилась через dataLayer, поэтому отказ от GTM мог быть очень болезненным с точки зрения расходов на разработку.

Существующие альтернативы

Коллеги по цеху, вынужденные отказаться от решений западных компаний, поступали по-разному — кто-то перешёл на альтернативные SaaS-решения, в том числе и на отечественные аналоги, кто-то полностью отказался от использования систем контейнеров, а кто-то обратился к open-source-решениям.

Для себя мы выбрали третий путь.

Matomo Tag Manager

MTM является частью аналитических инструментов от Matomo (бывший PIWIK), сами себя они позиционируют как альтернативу Google Analytics. 

Matomo предлагает два варианта решений:

  • Cloud — платное облачное решение.

  • On-premise — open-source-решение, которое можно скачать и самостоятельно развернуть на своих мощностях.

Именно решение on-premise мы выбрали по очевидным причинам: мы можем быть уверены, что завтра этот сервис не будет заблокирован.

В этой статье не планировал подробно останавливаться на возможностях MTM. Отмечу только, что этот инструмент лишь немного уступает по функциональным возможностям своему старшему брату от компании Google и, возможно, обладает менее приятным интерфейсом.

Установка на виртуальную машину

Установка MTM производится в составе пакета инструментов Matomo Analytics.

Для этого необходимо скачать архив с последней версией системы с официального сайта и, следуя инструкции, установить Matomo Analytics на вашу машину.

Доработка кода Matomo Tag Manager

Как я отмечал выше, сейчас вся наша разметка на сайте построена через dataLayer. При этом MTM из коробки работает с похожим по своей сути объектом, но который называется _mtm.

Чтобы исправить это, необходимо совсем чуть-чуть — отредактировать код в двух местах.

  1. Ищем файл /matomo/plugins/TagManager/javascripts/tagmanager.js 

  2. Указываем, что необходимо объявлять объект dataLayer вместо _mtm в самом начале файла tagmanager.js:

вместо

if (typeof window.MatomoTagManager !== 'object') {

    if (typeof window._mtm !== 'object') {
        window._mtm = [];
    }

...

указываем

if (typeof window.MatomoTagManager !== 'object') {

    if (typeof window.dataLayer !== 'object') {
        window.dataLayer = [];
    }
...
  1. В конце файла tagmanager.js:

вместо

utils.setMethodWrapIfNeeded(windowAlias._mtm, 'push', processMtmPush);
var i;
for (i = 0; i < windowAlias._mtm.length; i++) {
    processMtmPush(windowAlias._mtm[i]);
}

указываем

utils.setMethodWrapIfNeeded(windowAlias.dataLayer, 'push', processMtmPush);
var i;
for (i = 0; i < windowAlias.dataLayer.length; i++) {
    processMtmPush(windowAlias.dataLayer[i]);
}

также комментируем следующий кусок кода 

/*if ('undefined' !== typeof windowAlias.dataLayer && utils.isArray(windowAlias.dataLayer)) {
// compatibility for GTM
    for ( i = 0; i < windowAlias.dataLayer.length; i++) {
        if (utils.isObject(windowAlias.dataLayer[i])) {
            dataLayer.push(windowAlias.dataLayer[i]);
        }
    }
}*/
  1. Далее необходимо опубликовать новую версию кода на сервере

Выводы

Приведенные выше несложные манипуляции помогли получить надежную альтернативу GTM с привычным функционалом и интерфейсом, а также соответствующую духу времени.

Теги:
Хабы:
Всего голосов 6: ↑4 и ↓2+2
Комментарии1

Публикации

Информация

Сайт
ru.tele2.ru
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия