Как в Google Tag Manager изменить порядок выполнения тегов

Google Tag Manager
Бесплатная версия онлайн курса по Google Tag Manager

7 уроков, более 2 часов обучающих видео материалов. Вы можете начать изучение прямо сейчас!

Если вам приходилось решать нестандартные задачи с помощью Google Tag Manager, то вероятно вы сталкивались с проблемой выполнения тегов в произвольном порядке. Точнее будет сказать не в произвольном, а в одновременном, поскольку Google Tag Manager выполняет теги в асинхронном режиме.

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

Решить подобную проблему стандартными средствами Google Tag Manager, на момент написания материала, не представляется возможным, поэтому приходится искать другие решения. Одним из них является использование переменных уровня данных.

Такой способ можно использовать для манипуляции тегами типа Пользовательский тег HTML. Достаточно добавить в конце содержимого тега несколько строчек, после чего использовать значения переменных уровня данных в правилах активации тегов.

Пример добавляемых строк:

Порядок действий:

  1. создается новый тег типа Пользовательский тег HTML, у которого в конце содержимого добавляются строки по приведенному примеру;
  2. создается новый тег, который должен быть выполнен после тега созданного в п. 1, и в правилах активации указывается следующее (согласно приведенного примера выше) event равно ваше_значение.

Например, я использую тег с функциями JavaScript позволяющими управлять cookie. Мне нужно, чтобы на момент вызова одной из этих функций они были инициализированы, т.е. должен быть выполнен тег содержащий их код, до тега в котором я их использую. Для этого в конце содержимого этого тега я добавляю строки:

Пример кода

Пример кода

Затем в теге, где использую указанные функции среди правил активации тега использую следующее:

Пример правила активации тега

Пример правила активации тега

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

Несколько замечаний к описанному методу:

  • время активации тега по условию выполнения предшествующего несколько увеличивается;
  • удостоверьтесь, что все правила и содержимое тегов вы указали верно, используйте для этого отладчик;
  • выполнение условия не означает, что код первоначального тега был выполнен полностью.
Автор блога: Иванов Иван, практикующий веб-аналитик. Специалист по внедреннию Google Analytics и Яндекс Метрики. Занимаюсь разработкой решений для формирования данных и отчетов по сквозной аналитике. Автор обучающего курса по Google Tag Manager, преподаватель в Нетологии
Еженедельная рассылка кейсов!
Обсуждение
  1. Артем
    15.07.2014 at 08:16

    Что-то такая конструкция не нравится GTM. Запушили событие в datalayer, а Tag Assistant пишет
    “Data layer fields should be quoted”
    Конструкция в правиле GTM

    $(document).ready(function () { $('body').activity({callBack: function () {
    dataLayer.push({'event': 'active_true'});
    yaCounterXXXXX.reachGoal('60_sec');
    }})});

    Событие в Метрику уходит, а в DataLayer нет.

    • Иван
      16.07.2014 at 22:36

      @Артем, у Вас опечатка в строке event’: ‘active_true’ или ПОСЛЕ event уберите кавычку, или поставьте ДО

Ваш комментарий
Выберите рубрику
Google Analytics (69)
Google Tag Manager (57)
Яндекс Метрика (8)
Обзоры (3)
Power BI (3)
Яндекс Директ (2)
ClickHouse (1)
Последние публикации
Последние комментарии
mode_edit