Вольный перевод статьи Симо Ахва "Google Tag Manager Workspaces".
Содержание:
Что такое рабочие области?
Чтобы помочь вам осознать важность появления рабочих областей, подумайте о том, что у старой версии Google Tag Manager было только одно рабочее пространство. Все специалисты, работающие над одним проектом вносили свои правки в один контейнер. И при создании и/или публикации версии контейнера, применялись вообще все изменения, независимо от того, кто работал над этими изменениями и когда.
С рабочими областями вы можете работать с несколькими контейнерами черновиками. По сути, при создании рабочего пространства, делается копия последней версии контейнера GTM, и она становится отдельным рабочим пространством. С этого момента это пространство будет жить отдельной жизнью в виде черновика, и вы сможете его редактировать, просматривать и вносить изменения независимо от других рабочих пространств. Все еще будет только одна основная версия контейнера, и свою версию рабочей области вы не сможете опубликовать отдельной веткой. Вы можете только объединить свою версию рабочей области с основной версией.
Работать можно в нескольких рабочих пространствах одновременно, так как чтобы статью частью GTM контейнера, рабочей области надо перейти в статус версии. Отсюда следует, что фактического управления версиями самих рабочих пространств не существует.
Когда другое рабочее пространство превращается в версию, все остальные рабочие пространства получают уведомление об изменении последней версии контейнера. Любые изменения, реализованные в этой новой версии контейнера, должны быть синхронизированы со всеми другими рабочими областями, прежде чем они смогут превратиться в новые версии. Не надо это делать немедленно, но вы увидите уведомление в обзоре контейнера, напоминающее вам, что нужно обновить текущую рабочую область в соответствии с изменениями в последней версии контейнера.
Эта блок-схема поможет вам понять эту мысль лучше:
- У контейнера версии 1 есть три рабочих пространство: РО1, РО2 и РО3. И с каждым ведется активная работа.
- РО2 публикуется, поэтому его содержимое становится новым контейнером версии 2.
- Поскольку РО1 был основан на версии 1, которая теперь заменена на версию 2, РО1 получает уведомление о том, что последняя версия контейнера изменилась и требуется синхронизация. Такое же уведомление получено и в РО3.
- РО1 готов к публикации, поэтому синхронизация завершена, и рабочая область опубликована. Это становится последней, 3, версией контейнера.
- РО3 проигнорировал запрос синхронизации для версии контейнера 2, но теперь он тоже готов к публикации. Поскольку последняя версия контейнера - 3, она синхронизируется с РО3 (таким образом, внося изменения и из версии 2), а рабочая область публикуется в контейнер 4.
- Наконец, из версии создается новое рабочее пространство со всеми изменениями из предыдущих, теперь опубликованных рабочих пространств.
Это похоже на описание работы типичной системы управления версиями с ветвями. Существует только одно дерево версий, но вы можете “ветвить” черновики из него, объединяя изменения в дереве версий с этими ветвями и объединяя ветви в новые версии дерева версий.
Основное отличие, например, от GitHub заключается в том, что рабочее пространство удаляется сразу же после публикации или создания версии. Таким образом, рабочие пространства эфемерны. Они существуют исключительно для того, чтобы доставить инкрементное обновление в контейнер.
Управление (Создание, сохранение и удаление) рабочих областей
Создать новое рабочее пространство просто. Перейдите в раздел "Обзор" вашего контейнера и выберите любой из трех вариантов “Управления рабочими пространствами”, которые вы видите на рисунке ниже.
После нажатия на любой из пунктов, откроется всплывающее окно “Управление рабочими областями”. Чтобы создать новую рабочую область, щелкните значок плюса в правом верхнем углу.
Кстати, обратите внимание на текст,"Осталось 2 рабочие области". В бесплатной версии Google Tag Manager вы можете одновременно активировать три рабочих пространства. Это может показаться ограничением, но на самом деле это ведет вас к более консервативному подходу к управлению тегами. Подробнее об этом я расскажу в последней главе поста.
После нажатия значка плюса, вы сможете задать новому рабочему пространству имя и описание. Я не из тех людей, которые пытаются засунуть соглашения об именах вам в глотку, поэтому я рекомендую вам придумать хорошую схему самостоятельно (или, предпочтительно, в своей команде).
Несмотря на то, что на скриншотах этого не видно, на самом деле я использую следующее соглашение об именах:
024 - AdWords Conversion Tracking - Ahava & Behava
Номер - это версия, из которой была создана Рабочая область. Затем функция, реализованная в рабочей области, в конце команда, работающая над рабочей областью. Простая схема именования, с большим количеством информации, закодированной внутри.
Хорошая идея дать описание рабочей области, например, кто работает над ней, какова цель, когда ожидаемое время публикации и т. д. Как только вы закончите, просто нажмите кнопку "Сохранить" в правом верхнем углу.
Вы должны увидеть свое новое рабочее пространство в списке, а только что созданное рабочее пространство автоматически станет черновиком, который вы сейчас редактируете.
Помните - новое рабочее пространство создается на основе последней версии контейнера GTM, а не черновика рабочего пространства, который был активен при создании нового рабочего пространства, или Опубликованной версии (если она отличается от последней версии)!
Теперь, нет возможности явно сохранить рабочую область. Поскольку это черновик контейнера, любые сохраненные вами теги, триггеры и переменные автоматически становятся частью черновика. Есть новые замечательные способы просмотра и отмены любых изменений, внесенных вами в текущий черновик, и мы скоро к ним вернемся.
Чтобы удалить рабочую область, вам нужно открыть окно управления рабочими областями и нажать маленькую кнопку с иконкой "i" рядом с рабочей областью, которую вы хотите удалить.
В появившемся окне вы можете изменить конфигурацию рабочей области (имя, описание), просмотреть ее изменения и щелкнуть маленькое меню в правом верхнем углу, чтобы Удалить рабочую область.
Переключение между рабочими областями, и рабочими области в обзоре
Переключаться между рабочими областями очень просто. В левой колонке есть меню рабочих областей. Каждый раз, когда вы щелкаете по нему, открывается всплывающее окне, которое позволяет переключаться между рабочими пространствами, просто щелкая на имени рабочего пространства в появившемся списке.
Этот пункт реализует две задачи: во-первых, он позволяет узнать, над какой рабочей областью вы работаете в данный момент. Во-вторых, он позволяет вам быстро открывать оверлей управления рабочим пространством, где вы можете быстро переключаться между рабочими пространствами.
Перейдите на обзор, и давайте посмотрим, что в нем есть.
- Блок "Описание" содержит описание, которое вводится при создании рабочей области.
- Вся центральная панель зарезервирована для информации, относящейся к рабочей области. Меню в правом верхнем углу поля позволяет вам обновить рабочую область или управлять рабочими пространствами. Изменения в этой рабочей области (по сравнению с последней версией контейнера) перечислены внизу.
- Если есть более новая версия контейнера, чем та, из которой была создана рабочая область, вы увидите предупреждение здесь. А внизу экрана появится напоминание о необходимости обновить рабочую область.
- Рядом с меню отправить будет еще одно напоминание о том, сколько изменений внесено в текущую рабочую область по сравнению с последней версией контейнера.
- Оранжевая панель конфликтов может появиться после того, как вы обновите свою рабочую область, чтобы объединить изменения в последней версии контейнера. Если в текущей рабочей области вы внесли изменения в теги, триггеры или переменные, которые были включены в обновление, вам необходимо будет разрешить конфликты либо в пользу последней версии контейнера, либо в пользу текущей рабочей области.
- Более подробный список изменений в текущем рабочем пространстве находится здесь. Открыв меню рядом с изменением, вы можете просмотреть, какие изменения были внесены в каждый элемент, и вы можете отказаться от изменений одним нажатием кнопки.
Просмотр изменений
В любом месте вы можете просмотреть изменения в рабочей области, для этого найдите элемент, который хотите проанализировать и откройте меню рядом с этим элементом. Есть два варианта: «Отменить изменения», при котором любые изменения, внесенные в этот элемент, возвращаются к их исходным настройкам (т. е. значениям в последней версии контейнера), или «Просмотр изменений», который позволяет анализировать все внесенные вами изменения, и индивидуально выбирать, оставить их или отказаться от них . Так как последнее более интересно, нажмите «Просмотреть изменения».
То, что вы увидите дальше, может быть довольно пугающим. Помните, что «Просмотр изменений» - это совершенно необязательная операция. Вам не нужно ни просматривать какие-либо изменения, ни принимать какие-либо изменения при работе с Рабочей областью. Как только вы будете довольны тем, что вы сделали с рабочей областью, вы можете просто создать новую версию или опубликовать рабочую область, даже не задумываясь о своих изменениях.
Но если вы ДЕЙСТВИТЕЛЬНО хотите проверить, что вы (или кто-то другой) сделали, открывающееся окно - идеальное место для этого. Давайте сначала подробнее рассмотрим, что у нас здесь есть.
Список элементов в окне:
- Слева находится столбец, представляющий элемент в последней версии контейнера. Справа находится столбец, представляющий измененную версию в текущей рабочей области. По сути, это отображение разниц между двумя версиями.
- Вверху справа вы можете увидеть, сколько изменений еще предстоит внести, и не активную кнопку "Применить", которую вы сможете нажать после того, как внесете все изменения. По сути, любые изменения, которые вы разрешаете в пользу Рабочей области, останутся как изменения всякий раз, когда вы снова откроете этот экран, а любые изменения, которые вы разрешите в пользу последней версии контейнера, будут удалены из черновика в вашей рабочей области.
- Красным цветом выделены элементы, которые вы УДАЛИЛИ из последней версии контейнера. Нажав на стрелку, у вас есть два варианта: сохранить внесенные изменения в Рабочую область или скопировать исходное значение из последней версии контейнера обратно в рабочую область.
- Зеленым цветом показаны НОВЫЕ ДОПОЛНЕНИЯ к текущей рабочей области, которых нет в последней версии контейнера. Вы можете отменить или сохранить изменения.
- Синим цветом выделены актуальные ИЗМЕНЕНИЯ в существующих свойствах. В этом примере значение специального параметра изменилось. Вы можете снова использовать значок стрелки, чтобы подтвердить свое изменение.
Не путайте экрана просмотра изменений. Помните, что вам не нужно принимать или отказываться от каких-либо изменений, если вы этого не хотите. Вы можете просто использовать этот экран, чтобы проверить, какие изменения были внесены, а затем закрыть окно, ничего не применяя и не меняя.
Это просто невероятно удобный способ проверить, какие изменения были внесены в контейнер. Мне это нравится!
Просмотр изменений по элементам
Еще один способ посмотреть изменения в элементах - открыть сам элемент (тег, переменную или триггер). Если в этой рабочей области были внесены какие-либо изменения или это новый элемент, пользовательский интерфейс сообщит вам об этом, и у вас будет возможность отказаться от изменений или просмотреть изменения (только для измененных элементов).
Создание версии или публикация рабочей области
Хочу еще раз напомнить вам: рабочая область - это просто черновик контейнера. Как и раньше, черновик контейнера становится версией контейнера любым из двух способов: вы либо выбираете “Создать версию” из соответствующего меню (наиболее распространенным является красное меню в правом верхнем углу контейнера), либо выбираете “Опубликовать”, который сначала создает версию, а затем публикует ее как новый, живой контейнер.
Когда вы нажимаете кнопку «Опубликовать» (или «Создать версию»), появляется новый оверлей:
Это очень удобно, так как у вас есть возможность:
- Задать имя версии - очень полезно для понимания что было сделано в версии.
- Задать описание - тот же комментарий, что и выше.
- Выбрать окружение в которое будет опубликована версия.
- Последний шанс просмотреть и / или отказаться от изменений рабочего пространства.
- Посмотреть историю изменений текущей области.
Обратите внимание, что если есть изменения, которые необходимо синхронизировать из последней версии контейнера, вы увидите это предупреждение в окне публикации / создания версии:
Когда вы создаете версию или публикуете рабочую область, она остается такой же, как и до создания рабочих областей. Текущий черновик становится последней версией контейнера, и теперь он виден всем пользователям на экране «Версии».
В этом списке имя версии будет соответствовать тому, что вы установили при публикации рабочей области. Вы, конечно, можете переименовать его в меню «Действия», как и раньше. Обновление функции, которое я хотел бы увидеть, чтобы исходное имя рабочей области находилось в виде отдельного столбца, чтобы я мог лучше понять рабочий процесс публикации (на снимке экрана названия версий являются соответствующими именами рабочих областей для ясности).
Помните, что когда вы создаете новую версию из рабочей области, она автоматически становится последней версией контейнера, а это означает две вещи:
- Любые новые рабочие области будут автоматически созданы из этой версии.
- Все остальные существующие рабочие области должны будут синхронизировать изменения, внесенные вами в последнюю версию, прежде чем они смогут создать версию из своей рабочей области.
Таким образом, даже несмотря на то, что рабочие области дают вам место для маневра с точки зрения организации и управления, они не устраняют и не должны устранять необходимость периодически обсуждать ваши планы версий и точно не устраняют необходимость в правильном управлении. Так что убедитесь, что все знают, когда создаются новые версии, чтобы они не остались незамеченными при обновлении версии!
Синхронизация рабочей области с обновленной последней версией контейнера
Допустим, вы решили начать работу и запускаете GTM. На экране обзора вы увидите предупреждение о необходимости обновления!
Есть еще и панель внизу страницы, предлагающая вам обновить рабочую область.
Когда вы выбираете Обновить рабочую область (т.е. синхронизировать изменения с последней версией контейнера), открывается новое окно:
Здесь вы увидите, какие версии необходимо синхронизировать с рабочей областью. Таким образом, здесь может быть указано несколько версий, если с момента создания Рабочей области было выполнено несколько обновлений для последней версии контейнера.
Помните, что обновлять рабочую область не обязательно сразу. Вы можете продолжить работу над своими изменениями, объединяя изменения из последней версии контейнера только тогда, когда вы будете готовы создать версию из своей рабочей области. Тем не менее, рекомендуется выполнять периодические слияния, поскольку чем дальше вы отклоняетесь от последней версии контейнера, тем больше конфликтов будет возникать, когда вы все же решите сделать слияние версий.
В любом случае, когда вы выбираете обновить рабочую область из-за изменений в последней версии контейнера, ваши файлы рабочей области будут обновлены, чтобы отразить изменения в последней версии контейнера. Другими словами, все, над чем вы работали, может измениться. Рекомендуется внимательно изучить последнюю версию на вкладке «Версии», чтобы знать, были ли изменены какие-либо элементы, с которыми у вас настроены зависимости.
Разрешение конфликтов в рабочих областях
Допустим, вы выполнили все шаги, описанные в предыдущей главе, и с радостью нажали на кнопку "Обновление", чтобы синхронизировать свою рабочую область с последней версией контейнера.
Но что-то не так, и на экране появляется большая оранжевая полоса, сообщающая вам о конфликте!
Конфликт возникает, когда тег, триггер или переменная были изменены в последней версии контейнера, и вы тоже изменили этот же элемент в текущей рабочей области. Чтобы вы могли синхронизировать свою рабочую область с последней версией контейнера, вам необходимо разрешить каждый конфликт либо в пользу последней версии контейнера, либо в пользу вашей рабочей области. Вы можете увидеть, какие элементы конфликтуют, посмотрев на список изменений рабочей области на экране обзора. Это, опять же, типичный способ работы с ветками в системе контроля версий.
Нажав кнопку "Разрешить" на оранжевой панели, вы попадете на экран разрешения конфликтов. Давайте посмотрим на него поближе:
Разрешение конфликтов очень похоже на интерфейс просмотра изменений, который я вы видели ранее. Обычно каждое изменение имеет цветовую маркировку:
- Синяя для элементов, которые вы изменили в своей рабочей области.
- Зеленая для элементов, которые вы добавили в рабочую область.
- Красная для элементов, которые вы удалили из рабочей области.
Вы можете щелкнуть стрелку возле каждого конфликта, чтобы выбрать, "ИГНОРИРОВАТЬ" конфликт (разрешить в пользу вашей рабочей области) или "КОПИРОВАТЬ" (разрешить в пользу последней версии контейнера). Другими словами, если вы щелкните значок КОПИРОВАТЬ, состояние поля в последней версии контейнера перезапишет все, что вы изменили в своей рабочей области.
Вы можете переходить от элемента к элементу в верхнем левом углу экрана, где вы можете увидеть что-то вроде <1/4>, что будет означать, что всего четыре элементов (тег, триггер или переменная) с конфликтами, и вы находитесь на разрешении первого.
Когда вы нажимаете "СОХРАНИТЬ", все принятые вами разрешения конфликтов будут сохранены, и они больше не будут отображаться как конфликты. Поэтому убедитесь, что у вас все правильно, прежде чем нажимать кнопку! Всегда неприятно, если ваш тяжелый труд перезаписывается из-за непонимания того, какое изменение перезаписывается.
В правом верхнем углу иконка "Решений" с количеством конфликтов, которые вам еще нужно разрешить в текущем открытом элементе. Число уменьшается по мере разрешения конфликтов.
Нажимая «Разрешить все», вы разрешаете все оставшиеся конфликты в текущем элементе в пользу своей рабочей области. Вы всегда можете снова нажать переключатель, чтобы отменить свое решение, и вы можете выбрать каждый отдельный конфликт, чтобы откатиться назад. Просто помните, что нажатие "СОХРАНИТЬ" действительно сохраняет ваши решения.
Да, интерфейс может быть довольно пугающим, а разрешение конфликтов может оказаться довольно сложной задачей, особенно если элементов много. Тем не менее, это намного лучше по сравнению со слепым поиском, которым мы занимались в предыдущих версия диспетчера тегов Google. Наконец пояивлась прозрачность в изменениях, сделанных в контейнере.
Опять же, помните, что вам не нужно разрешать конфликты или даже обновлять рабочую область в тот момент, когда вы видите предупреждение. Вы можете продолжать вносить изменения по своему желанию. Разрешить конфликты вам надол будет только когда вы захотите создать версию или опубликовать свою рабочую область. Тем не менее рекомендуется как можно скорее избавляться от проблем, чтобы изменения не накапливались.
Разрешения для пользователей, связанные с рабочими областями
Если перейти в "Админ - Контейнер - Управление пользователями" или "Админ - Учетная запись - Управление пользователями", вы можете увидеть настроить уровни разрешений пользователей контейнера. Уровни:
- Чтение - доступно только чтение контейнера.
- Редактирование - может создавать и редактировать рабочие области, но не может создавать версии или публиковать их.
- Одобрение - можно создавать версии рабочих пространств.
- Публикация - можно публиковать рабочие области.
По сути, уровень одобрения - это то, что раньше было редактированием, а уровень редактирования - совершенно новый, позволяющий пользователю редактировать только элементы в рабочей области, но ничего больше.
Причина этого дополнительного уровня доступа пользователей проста: создание версии имеет важное значение в рабочих областях. Он обновляет основную «ветку» контейнера, предлагая всем активным рабочим областям обновиться с учетом изменений. Другими словами, создание версии из рабочего пространства с некачественным кодом или без учета требований других специалистов, работающих с роабочим пространством может, в худшем случае, привести к серьезным конфликтам после обновления других рабочих областей.
Завершение
Мне очень, очень нравится эта функция. В частности, возможность детально просматривать изменения, которые были внесли, а также возможность сравнения между собой последней версией контейнера и текущей рабочей областью имеет огромное значение, поскольку позволяет нескольким пользователям и командам взаимодействовать в одном контейнере.
В самом деле, то, что предлагают рабочие области, безусловно, уменьшит трения в любой организации, использующей GTM. Просто помните, что вам не обязательно использовать рабочие области. Фактически, было бы лучше ограничить их только небольшими, постепенными изменениями. Причина этого в том, что они по-прежнему полагаются на последнюю версию контейнера, и чем дольше вы работаете с рабочей областью, тем сильнее она может отличаться от основной версии. Приходится периодически синхронизировать рабочую область.
Хорошей идеей было бы работать над функциями, достаточно маленькими, чтобы вы могли создать версию из рабочей области, не беспокоясь о том, что это создаст хаос в других рабочих областях. И здесь вступает в силу ограничение «всего» тремя рабочими областями в бесплатном GTM. Наличие такого небольшого количества доступных рабочих пространств заставляет вас быть более эффективными при изменении контейнера. Я никогда не был поклонником реализаций, в которых вы создаете миллион новых элементов, а только потом создаете версию или публикуете контейнер. Это всегда приводило к затруднению отката, если возникали проблемы с реализацией. Имея лишь несколько доступных рабочих пространств и шаг разрешения конфликтов, инициированный обновлением последней версии контейнера, вы должны быть эффективными и знать, что происходит во всем контейнере, а не только в своем маленькой части.
Естественным продолжением развития этого инструмента могло бы быть предоставление доступа конкретному пользователю к рабочим областям, но будет ли это что-то, известно только команде разработчиков GTM.
В любом случае, я не хочу распространять какие-либо "лучшие практики" (это не мое), но я предлагаю быть осторожным с рабочими областями, даже если они действительно приносят много отличных вещей. Они по-прежнему не вылечат больную организацию и не улучшат вашу работу в крупных проектах с множеством заинтересованных сторон, которым нужен Google Tag Manager.
Коммуникация и хорошее управление всегда будут преобладать над любой новой функцией. Во всяком случае, рабочие области делают это еще более важным.