В этом руководстве рассказывается, как реализовать Google Менеджер тегов на вашем сайте.
Как работать с уровнями данных
Чтобы создать максимально простое, гибкое и переносимое решение, рекомендуем использовать Google Менеджер тегов совместно с уровнем данных.
Уровень данных – это объект, содержащий всю информацию, которую требуется передавать в Менеджер тегов. События, переменные и прочая информация могут передаваться в Менеджер тегов через уровень данных. При этом в Менеджере тегов можно настраивать триггеры, основанные на значении переменных (например, активацию тега ремаркетинга, когда purchase_total [общая_сумма_покупки] более 6000 руб.) или на определенных событиях. Значения переменных можно также передавать в другие теги (например, значение purchase_total [общая_сумма_покупки] в поле со значением тега).
Вместо ссылок на переменные, сведения о транзакциях, категории страниц и другие важные данные, находящиеся в разных частях страницы, Google Менеджер тегов может ссылаться на информацию, переданную на уровень данных. Уровень данных не является обязательным. Если вы не реализуете его, то все равно сможете получать доступ к значениям со страницы с помощью функции Переменные, однако не сможете использовать события. Если применять уровень данных с переменными и их значениями, то они будут доступны для активации тегов в любой момент, вам не придется ждать, пока страница с ними будет полностью загружена.
Как добавить на страницу переменные уровня данных
Чтобы настроить уровень данных, добавьте в начало страницы перед контейнером следующий фрагмент кода:
<script> dataLayer = []; </script>
Приведенный выше фрагмент кода представляет собой пустой объект, который может быть заполнен информацией для передачи в Google Менеджер тегов. Например, нам может потребоваться задать на уровне данных переменные, чтобы указать, что это страница регистрации и что ее посетители считаются высокоценными клиентами. Для этого нужно заполнить уровень данных следующим образом:
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
Например, Google Менеджер тегов можно настроить так, чтобы теги активировались на всех страницах категории signup [регистрация] и/или на тех, посетители которых относятся к категории high-value [высокоценные]. Код уровня данных обязательно должен располагаться выше контейнера, как описано в кратком руководстве по началу работы.
Если код уровня данных вызывается после контейнера, переменные, заданные на уровне данных, будут недоступны для Менеджера тегов, и он не сможет выборочно активировать теги при загрузке страницы. Рассмотрим примеры ниже:
Неверно
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
Верно
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
Все переменные, объявленные в объекте уровня данных, сохраняются, пока посетитель остается на текущей странице.
Переменные уровня данных, которые релевантны для нескольких страниц (например, visitorType [тип_посетителя]), должны быть объявлены в уровне данных на каждой странице. Не обязательно задавать один и тот же набор переменных в уровне данных каждой страницы, но необходимо использовать единый принцип их именования. Другими словами, если для страницы регистрации вы задаете категорию с помощью оператора pageCategory [категория_страницы], необходимо использовать тот же оператор (pageCategory) и на странице покупки.
Уровень данных не обязательно задавать явным образом. Поэтому, если вы решили не добавлять код уровня данных (и не указывать в нем переменные), фрагмент-контейнер Google Менеджера тегов инициирует объект уровня данных самостоятельно.
Как использовать уровень данных в обработчике событий HTML
В Google Менеджере тегов доступна специальная переменная уровня данных event [событие], которая используется в блоках прослушивания событий JavaScript для активации тегов при взаимодействии пользователя с элементами сайта (например, кнопками). Допустим, вы хотите, чтобы тег отслеживания конверсий срабатывал при нажатии кнопки Submit [отправить] в форме подписки на рассылку. События могут вызываться в результате взаимодействия пользователя с элементами сайта (ссылками, кнопками, Flash-компонентами меню) или в результате срабатывания JavaScript (например, при задержке).
Для этого используется вызов push API в качестве метода для уровня данных страницы (например, привязанного к определенным элементам, которые нужно отслеживать). Самый простой синтаксис для настройки события выглядит так:
dataLayer.push({'event': 'event_name'});
В строке event_name [имя_события] указывается, что собой представляет конкретное событие или элемент.
Например, чтобы настроить событие для нажатия кнопки, можно изменить ссылку на кнопку, чтобы вызвать push() API:
<a href="#" name="button1" onclick="dataLayer.push({'event': 'button1-click'});" >Button 1</a>
Иногда данные, которые вы хотите собрать или использовать для активации тегов, могут загружаться только после взаимодействия пользователя со страницей. Используя комбинацию переменных и событий уровня данных, вы можете динамически передавать эту информацию на уровень данных по мере необходимости.
Переменные уровня данных могут динамически передаваться на уровень данных для сбора информации, такой как параметры, введенные в форму или выбранные в ней; метаданные видео, которое просматривает посетитель страницы; цвет товара (например, машины), выбранный пользователем; целевой URL при нажатии на ссылку и т. п.
В случае событий этот результат достигается вызовом push() API, который добавляет переменные в уровень данных и заменяет их. Самый простой синтаксис для настройки динамических переменных уровня данных выглядит так:
dataLayer.push({'variable_name': 'variable_value'});
Здесь variable_name – название переменной уровня данных, которую нужно настроить, а variable_value – значение переменной, которое нужно задать или заменить.
В примере ниже показано, как настроить динамическую переменную уровня данных для выбора цвета (например, в виджете конструктора автомобиля):
dataLayer.push({'color': 'red'});
Одновременная передача нескольких переменных
Вы можете передавать несколько переменных и событий одновременно с помощью одного оператора dataLayer.push().
Вот пример того, как это сделать:
dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customizeCar'
});
Этот же принцип можно использовать для обработчика событий ссылки:
<a href="#"
name="color"
onclick="dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customizeCar'});">Customize Color</a>
Следует учитывать, что передача на уровень данных переменной с тем же названием, что и у существующей, приведет к перезаписи текущего значения новым. Например, если в момент нажатия на ссылку выше на уровне данных уже была объявлена переменная color [цвет] со значением blue [синий], оно будет заменено новым (red [красный]).
Как работает асинхронный синтаксис
Google Менеджер тегов запускает теги асинхронно, чтобы не препятствовать обработке других элементов страницы. Теги, размещаемые с его помощью, также обрабатываются асинхронно. Поэтому, если один из тегов загружается медленно, это не мешает работе других тегов отслеживания.
Асинхронный синтаксис возможен благодаря объекту dataLayer [уровень_данных].
Он срабатывает в порядке очереди, то есть обрабатывает вызовы API и активирует соответствующие теги по мере поступления обращений.
Чтобы добавить в очередь событие, используется метод dataLayer.push. Также метод позволяет dataLayer.push передавать в Менеджер тегов дополнительные метаданные с помощью переменных и задавать события.
Создание объекта dataLayer можно задать перед фрагментом кода Менеджера тегов. Если объект dataLayer не определен, он будет создан Менеджером тегов.
Чтобы больше узнать об асинхронном синтаксисе, прочитайте о Ссылках на отслеживание для метода dataLayer.push.
Как избежать распространенных ошибок
При настройке Менеджера тегов следует учитывать перечисленные ниже особенности.
Слой данных dataLayer нельзя переопределять
Когда вы назначаете значения в уровень данных dataLayer (например, так: dataLayer = [{'item':
'value'}]), любые существующие значения будут перезаписаны. Рекомендуется задать уровень данных в коде как можно выше, над фрагментом-контейнером и любыми другими фрагментами кода Google Оптимизации для скрытия страницы. После того как вы объявите уровень данных dataLayer, можно использовать метод dataLayer.push({'item': 'value'}), чтобы позднее добавить в него дополнительные значения с помощью скриптов.
В имени объектов dataLayer учитывается регистр
Если вы в названии объекта используете неверный регистр, он не сможет передавать переменные или события. Примеры:
datalayer.push({'pageTitle': 'Home'}); // Won't work
dataLayer.push({'pageTitle': 'Home'}); // Better
Имена переменных должны быть заключены в кавычки
Кавычки не обязательны для названий переменных, которые состоят только из букв, цифр и символов нижнего подчеркивания или не являются зарезервированными словами (например, function, export, native и т. д.), мы рекомендуем всегда использовать их, чтобы избежать проблем. Примеры:
dataLayer.push({new-variable: 'value'}); // Won't work
dataLayer.push({'new-variable': 'value'}); // Better
Имена переменных должны быть одинаковыми на разных страницах
Если вы используете разные имена для одних и тех же переменных на разных страницах, Менеджер тегов не сможет последовательно запускать на них теги. Примеры:
Неверный код
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitor_type': 'high-value'});
Рабочий код
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitorType': 'high-value'});
Вся информация, необходимая для активации тегов при загрузке страницы, должна быть объявлена в слое данных над фрагментом-контейнером
Для того чтобы теги активировались при загрузке страницы и выполнении заданного условия (например, на страницах, для которых переменной pageCategory присвоено значение sports [спорт]), переменная pageCategory должна быть определена в слое данных, над фрагментом-контейнером (например, 'pageCategory': 'sports'). Если переменные, передаваемые на уровень данных (например, с помощью метода dataLayer.push()), расположены после фрагмента-контейнера, они не смогут активировать теги при загрузке страниц, соответствующих определенному условию.
Теги, внедренные с помощью Менеджера тегов, не должны быть одновременно заданы в коде или добавляться с помощью других инструментов
Все теги, активируемые Менеджером тегов, должны быть перенесены в Менеджер тегов, а не просто скопированы туда (о миграции тегов читайте здесь). Если одновременно внедрять теги как с помощью Менеджера тегов, так и с помощью других систем или через код сайта, это может привести к увеличению объема данных или проблемам с их целостностью. Например, если вы переносите тег отслеживания Google Аналитики в Менеджер тегов, это тег необходимо удалить из кода вашего сайта.
Переименование уровня данных
По умолчанию уровень данных, который инициирует и на который ссылается Менеджер тегов, называется dataLayer. Чтобы задать другое название, замените значение параметра уровня данных (выделено в примере ниже) в вашем фрагменте-контейнере.
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','myNewName','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
При этом название уровня данных также необходимо изменить во всех ссылках на уровень данных, например при определении уровня данных над фрагментом-контейнером или передаче событий и динамических переменных уровня данных с помощью push() API.
<script> myNewName = [{ // ... }]; myNewName.push({'variable_name': 'variable_value'}); </script>
Перенос тегов в Менеджер тегов
Чтобы использовать Менеджер тегов максимально эффективно, рекомендуем перенести в него большую часть ваших тегов (кроме неподдерживаемых). Ниже приводятся пошаговые инструкции для переноса.
-
Создайте схему сайта (необязательно)
Прежде чем начинать миграцию, вспомните, какие теги уже внедрены на вашем сайте и какие сведения вам необходимы – например, какие действия (события) вы хотите отслеживать и какие дополнительные данные со страницы (переменные) вы хотели бы собирать. Составьте схему тегов с указанием того, для сбора каких данных они предназначены и какие события и страницы будут с ними связаны.
-
Внедрите стандартный фрагмент кода Менеджера тегов
Составив схему, добавьте на сайт один (пустой) фрагмент кода Менеджера тегов и разверните его. Подробную информацию об этом вы найдете в кратком руководстве.
-
Добавьте события и переменные
Настройте установку Менеджера тегов с помощью методов, описанных в разделе Добавьте события и переменные.
-
Добавьте теги и связанные с ними триггеры в интерфейс управления Менеджера тегов
После того как вы добавите на сайт фрагмент кода Менеджера тегов и API сбора данных, необходимо добавить теги сайта в пользовательский интерфейс, но публиковать их пока НЕ НУЖНО. Просто добавьте теги с вашего сайта в интерфейс управления Менеджера тегов и настройте их, используя соответствующие шаблоны, а также настройте триггеры.
-
Замена тегов
Одновременно удалите старые теги и опубликуйте новые в Менеджере тегов. Для этого в течение нескольких минут выполните следующие операции:
- Удалите теги сайта с помощью разовой передачи кода.
- Убедитесь, что предыдущий шаг выполнен успешно, и опубликуйте текущую версию контейнера.
При этом часть данных может быть утрачена, но после завершения миграции потеря данных прекратится. Вы также можете выполнить эти операции в обратном порядке, то есть опубликовать новую версию контейнера незадолго до того, как будут внесены изменения на сайте. В этом случае вместо потери незначительной части данных может наблюдаться их дублирование.
После завершения первичной миграции любую работу с тегами можно будет осуществлять через интерфейс Менеджера тегов, а не путем изменения кода сайта.
Работа с несколькими доменами
Вы можете использовать один и тот же контейнер для нескольких сайтов. Однако мы рекомендуем развертывать каждый веб-ресурс с собственным контейнером. Тогда изменения, произведенные на одном сайте, не будут затрагивать другие сайты, на которых используется тот же самый контейнер. Однако в ситуациях, когда несколько доменов верхнего уровня или субдоменов относятся к одному и тому же сайту, управление тегами на этих сайтах с помощью одного и того же контейнера Менеджера тегов оправданно.
Если у вас один контейнер для нескольких доменов, тщательно настройте теги и триггеры в Менеджере тегов. Использование в Менеджере тегов триггера по умолчанию для всех страниц ($url matches RegEx .*) приведет к срабатыванию тегов на всех страницах всех доменов, где размещен фрагмент-контейнер. Поскольку настройки или цели некоторых тегов зависят от доменов, на которых они размещаются, может понадобиться создать собственные триггеры (или даже удалить триггер "Все страницы"), чтобы обеспечить активацию тегов на всех страницах одного или всех доменов.
Например, вы можете внедрить код отслеживания Google Аналитики через Менеджер тегов с настройками, которые поддерживают отслеживание Google Аналитики в нескольких доменах или субдоменах.
В этом случае вам потребуется вручную задать основной домен, на котором будут настроены файлы cookie Google Аналитики, добавив строку в код отслеживания Google Аналитики (например, настроить файлы cookie для общего домена .example-petstore.com на сайтах www.example-petstore.com и dogs.example-petstore.com). Однако для дополнительного сайта, например www.my-example-blogsite.com, вы можете установить файлы cookie для домена .my-example-blogsite.com. Таким образом, один из двух тегов отслеживания Google Аналитики (с настройками для .example-petstore.com и .my-example-blogsite.com) будет активировать теги в каждом из этих доменов. Если в оба домена добавить один и тот же контейнер Менеджера тегов (с помощью используемого по умолчанию триггера "Все страницы"), все теги будут срабатывать на всех страницах обоих доменов.
Использование нескольких контейнеров на одной странице
Чтобы обеспечить эффективную работу страницы, добавляйте на нее как можно меньше контейнеров Менеджера тегов.
Если вам необходимо использовать больше одного контейнера, внедрите все фрагменты-контейнеры в одном объекте уровня данных. Пример для двух контейнеров:
- Скопируйте приведенный ниже код JavaScript и добавьте его на страницу как можно ближе к открывающему тегу
<head>.<!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXX');</script> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-YYYY');</script> <!-- End Google Tag Manager --> - Скопируйте следующий фрагмент и вставьте его сразу после открывающего тега
<body>.<!-- Google Tag Manager (noscript) --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-YYYY" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) -->
Обратите внимание, что на странице можно использовать только один общий уровень данных для всех контейнеров Менеджера тегов. Если уровней будет несколько, это может привести к возникновению проблем, в том числе со срабатыванием триггеров. Поэтому не меняйте имя уровня данных для поднабора контейнеров на странице. Если необходимо переименовать уровень данных, сделайте это для всех контейнеров на странице.
Не внедряйте контейнер Менеджера тегов с помощью пользовательских тегов HTML в другой контейнер Менеджера тегов, поскольку это может привести к возникновению проблем, например задержке срабатывания тегов во вторичном контейнере.
Flash и ActionScript
Чтобы Менеджер тегов активировал теги в зависимости от контента Flash-ролика или взаимодействия с ним, используйте метод ActionScript ExternalInterface для передачи событий и динамических переменных уровня данных из ролика SWF в уровень данных на странице контейнера. Для этого необходимо внедрить фрагмент-контейнер Менеджера тегов в HTML-код родительской страницы SWF-ролика в соответствии с этими инструкциями.
События и динамические переменные уровня данных могут передаваться из компонента Flash в Менеджер тегов вызовом метода push с помощью ExternalInterface. Например, чтобы инициировать событие при нажатии кнопки mybutton_btn с помощью ActionScript 3, добавьте приведенный ниже код в файл SWF.
import flash.display.*;
import flash.events.*;
import flash.external.*;
mybutton_btn.addEventListener(MouseEvent.MOUSE_UP, onButtonClick);
function onButtonClick( Event:MouseEvent ):void {
var name:String= "FLASH_EVENT";
if (ExternalInterface.available) {
ExternalInterface.call('dataLayer.push',{'event': name});
}
}
Чтобы метод ExternalInterface работал корректно, атрибуту allowscriptaccess при встраивании в SWF должно быть присвоено значение always.
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
width='300' height='300' id='player1' name='player1'>
<param name='movie' value='file.swf'>
<param name='allowfullscreen' value='true'>
<param name='allowscriptaccess' value='always'>
<param name='flashvars' value='file=playlist.xml'>
<embed id='player1' name='player1'
src='file.swf'
width='300' height='300'
allowscriptaccess='always'
allowfullscreen='true'
flashvars="file=playlist.xml"/>
</object>
Как добавить переменные уровня данных для устройств, не поддерживающих JavaScript
Для устройств, которые не поддерживают JavaScript или на которых он отключен, в Менеджере тегов предусмотрен фрагмент кода <noscript>. С его помощью осуществляется развертывание независимых от JavaScript тегов в случаях, когда основной JavaScript Менеджера тегов не может быть загружен.
Важно отметить, что для работы уровня данных (содержащего переменные уровня данных, объявляемые при загрузке страницы), а также любых событий или динамических переменных уровня данных, передаваемых на уровень данных, требуется наличие JavaScript. Поэтому, если триггеры, которые активируют теги, не зависящие от JavaScript (и которые необходимо активировать, даже если JavaScript не может быть загружен), зависят от переменных уровня данных, вы должны передать эти переменные слоя данных в окно iframe <noscript> как параметры запроса. Например, чтобы тег активировался, когда категория страницы (pageCategory) – sports [спорт], а тип посетителя (visitorType) – returning [вернувшийся], фрагмент-контейнер на этой странице необходимо изменить следующим образом:
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX&pageCategory=sports&visitorType=returning" height="0"
width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
В примере выше все переменные уровня данных добавляются в конец исходного URL страницы окна iframe в виде текстовых параметров запроса, разделенных амперсандами.
Безопасность
В Менеджер тегов встроено множество функций, обеспечивающих безопасность сайтов и приложений. Помимо решений, реализованных на уровне кода, вы можете воспользоваться функциями управления доступом к контейнерам, двухэтапной аутентификации и обнаружения вредоносных программ в Менеджере тегов.
Как ограничить внедрение тегов
Мы не рекомендуем ограничивать внедрение определенных типов тегов с помощью Менеджера тегов. Однако в некоторых случаях это может быть необходимо. Например, некоторые владельцы сайтов могут запретить пользователям Менеджера тегов добавлять на сайт определенные теги из соображений сохранения стабильности кода или обеспечения сбора данных. Это можно сделать с помощью функции черного списка тегов в момент установки фрагмента кода.
Контролировать, какие типы тегов, триггеров и переменных разрешены на странице, можно с помощью ключей gtm.whitelist и gtm.blacklist в уровне данных. Такие ключи переопределяют все настройки, заданные в контейнере. Если теги, триггеры и переменные добавлены в черный список корректно, они не будут срабатывать даже при настройке их активации в интерфейсе Менеджера тегов.
В примере ниже показано, как инициализировать уровень данных, содержащий черный и белый списки. Списки не являются обязательными. Их можно использовать как вместе, так и по отдельности. Обоим спискам должен быть присвоен тип Array, а их значениям – тип String.
dataLayer = [{
...
'gtm.whitelist': ['<ID>', '<ID>', ...]
'gtm.blacklist': ['<ID>', '<ID>', '<ID>', ...]
}];
Каждый ID [идентификатор] в списке соответствует определенному типу или классу типов тегов, триггеров или переменных. Классом считается группа тегов, триггеров или переменных с одинаковыми возможностями. Например, все теги, которые могут передавать пиксели в домены, не относящиеся к Google, будут иметь класс nonGooglePixels. Классы удобно использовать с целью ограничения срабатывания существующих и впоследствии добавленных тегов, триггеров и переменных.
Ниже приводятся правила для черных и белых списков.
-
Белые списки
Если вы применяете белый список, будут срабатывать только теги, триггеры и переменные, которые включены в этот список либо явным (указаны идентификаторы типов), либо неявным (указаны все классы объектов) образом. -
Черные списки
Если вы применяете черный список, будут срабатывать все теги, триггеры и переменные, которые не включены в этот список явным (указаны идентификаторы типов) или неявным (указан какой-либо класс объектов) образом. -
Черные списки переопределяют белые
Если вы применяете оба типа списков, приоритет будут иметь условия черного списка. Например, вы можете добавить в белый список класс тегов, а в черный – один тег этого класса. Обратное условие не сработает, то есть вы не можете добавлять в черный список класс тегов, а в белый – один тег из этого класса. -
Отношения между классами
Некоторые классы могут быть взаимосвязаны. Например, теги, которые могут запускать скрипты, не относящиеся к Google, по определению также могут передавать пиксели, не относящиеся к Google. Поэтому блокировка пикселейnonGooglePixelsприведет к автоматической блокировке скриптовnonGoogleScripts. Все теги, триггеры и переменные, принадлежащие к любой из этих групп, также будут заблокированы.
В таблице ниже приведен список тегов, триггеров и переменных, их типы, а также классы, к которым они относятся.
| Тег | ID |
Classes |
|---|---|---|
| Стандартный тег AB TASTY | abtGeneric |
nonGoogleScripts |
| Тег AdAdvisor | ta |
nonGoogleScripts |
| Тег Adometry | adm |
google |
| Тег AdRoll Smart Pixel | asp |
nonGoogleScripts |
| Тег отслеживания конверсий Google Рекламы | awct |
google |
| Тег ремаркетинга Google Рекламы | sp |
google |
| Тег Affiliate Window Conversion | awc |
nonGoogleScripts |
| Тег Affiliate Window Journey | awj |
nonGoogleScripts |
| Универсальный тег отслеживания событий Bing Ads | baut |
nonGoogleScripts |
| Решение Bizrate Insights Buyer Survey | bb |
nonGoogleScripts |
| Решение Bizrate Insights Site Abandonment Survey | bsa |
nonGoogleScripts |
| Стандартный тег отслеживания ClickTale | cts |
nonGoogleScripts |
| Тег comScore Unified Digital Measurement | csm |
nonGoogleScripts |
| Тег IFRAME MCT (Conversant Mediaplex) | mpm |
nonGoogleIframes |
| Стандартный тег IMG ROI (Conversant Mediaplex) | mpr |
nonGooglePixels |
| Тег Crazy Egg | cegg |
nonGoogleScripts |
| Criteo OneTag | crto |
nonGoogleScripts |
| Пользовательский тег HTML | html |
customScripts |
| Пользовательский тег изображения | img |
customPixels |
| Тег DistroScale | dstag |
nonGoogleScripts |
| Тег Floodlight Counter | flc |
|
| Тег Floodlight Sales | fls |
|
| Пиксель Dstillery Universal Pixel Tag | m6d |
nonGooglePixels |
| Тег Eulerian Analytics | ela |
customScripts |
| Тег Google Аналитики | ga |
google |
| Google Опросы потребителей: удовлетворенность клиентов сайтом | gcs |
google |
| Google Оптимизация | opt |
google |
| Тег Google Trusted Stores | ts |
|
| Код отслеживания Hotjar | hjtc |
nonGoogleScripts |
| Тег отслеживания звонков Infinity | infinity |
nonGoogleScripts |
| Intent Media – Search Compare Ads | sca |
nonGoogleScripts |
| Тег отслеживания K50 | k50Init |
nonGoogleScripts |
| LeadLab | ll |
nonGoogleScripts |
| Тег LinkedIn | bzi |
nonGoogleScripts |
| Тег Lytics JS | ljs |
nonGoogleScripts |
| Тег Marin Software | ms |
nonGoogleScripts |
| Тег IFRAME MCT (Mediaplex) | mpm |
nonGoogleIframes |
| Стандартный тег IMG ROI (Mediaplex) | mpr |
nonGooglePixels |
| Message Mate | messagemate |
nonGoogleScripts |
| Тег Mouseflow | mf |
nonGoogleScripts |
| Пиксель Neustar Pixel | ta |
nonGoogleScripts |
| Тег Nielsen DCR Static Lite Tag | ndcr |
nonGoogleScripts |
| Тег Nudge Content Analytics | nudge |
nonGoogleScripts |
| Тег (не код!) отслеживания Oktopost | okt |
nonGoogleScripts |
| Тег отслеживания конверсий Optimise | omc |
nonGoogleScripts |
| OwnerListens Message Mate | messagemate |
nonGoogleScripts |
| Пиксель Perfect Audience | pa |
nonGoogleScripts |
| Personali Canvas | pc |
nonGoogleScripts |
| Placed | placedPixel |
nonGoogleScripts |
| Платформа Pulse Insights Voice of Customer | pijs |
nonGoogleScripts |
| Quantcast Audience Measurement | qcm |
nonGoogleScripts |
| Rawsoft FoxMetrics | fxm |
nonGoogleScripts |
| Тег JavaScript SaleCycle | scjs |
customScripts |
| Пиксель SaleCycle | scp |
customPixels |
| Тег отслеживания JavaScript SearchForce для страницы конверсии | sfc |
nonGoogleScripts |
| Тег отслеживания JavaScript SearchForce для целевой страницы | sfl |
nonGoogleScripts |
| Тег отслеживания SearchForce Redirection | sfr |
nonGooglePixels |
| Shareaholic | shareaholic |
nonGoogleScripts |
| Виджет Survicate | svw |
nonGoogleScripts |
| Тег конверсии Tradedoubler Lead | tdlc |
nonGooglePixels |
| Тег конверсии Tradedoubler Sale | tdsc |
nonGooglePixels |
| Тег отслеживания конверсий Turn | tc |
nonGoogleScripts |
| Тег сбора данных Turn | tdc |
nonGoogleScripts |
| Универсальный тег Twitter для сайтов | twitter_website_tag |
nonGoogleScripts |
| Тег Universal Analytics | ua |
google |
| Upsellit Global Footer Tag | uslt |
customScripts |
| Upsellit Confirmation Tag | uspt |
customScripts |
| Тег JavaScript Ve Interactive | vei |
nonGoogleScripts |
| Пиксель Ve Interactive | veip |
nonGooglePixels |
| Тег отслеживания конверсий VisualDNA | vdc |
nonGoogleScripts |
| Xtremepush | xpsh |
nonGoogleScripts |
| Yieldify | yieldify |
nonGoogleScripts |
| Триггер | ID |
Classes |
|---|---|---|
| Прослушиватель видимости элемента | evl |
google |
| Прослушиватель кликов | cl |
google |
| Прослушиватель отправки формы | fsl |
|
| Прослушиватель истории | hl |
google |
| Прослушиватель ошибок в JavaScript | jel |
google |
| Прослушиватель кликов по ссылкам | lcl |
|
| Прослушиватель глубины прокрутки | sdl |
google |
| Прослушиватель таймера | tl |
google |
| Прослушиватель видео на YouTube | ytl |
google |
| Переменная | ID |
Classes |
|---|---|---|
| Основной файл cookie | k |
google |
| Переменная автоматического события | v |
google |
| Константа | c |
google |
| Номер версии контейнера | ctv |
google |
| Персонализированное событие | e |
google |
| Пользовательская переменная JavaScript | jsm |
customScripts |
| Переменная уровня данных | v |
google |
| Режим отладки | dbg |
google |
| Элемент DOM | d |
google |
| Видимость элемента | vis |
google |
| Ссылающийся домен HTTP | f |
google |
| Переменная JavaScript | j |
google |
| Таблица поиска | smm |
google |
| Случайное значение | r |
google |
| Таблица регулярных выражений | remm |
google |
| URL | u |
google |
В таблице ниже приведен список доступных классов, а также их отношений с другими классами. В столбце Белый список (по умолчанию) представлен список классов, которые по умолчанию добавляются в белый список, если в него вносится класс из этой строки. Таким же образом в столбце Черный список (по умолчанию) приводится список классов, которые добавляются в черный список, если в него вносится класс из этой строки.
| Класс | Описание | Белый список (по умолчанию) | Черный список (по умолчанию) |
|---|---|---|---|
customPixels |
Отправка пикселей на URL, указанные пользователем. |
nonGooglePixels
|
customScriptshtml
|
customScripts |
Запуск кода JavaScript, заданного пользователем. |
htmlcustomPixelsnonGooglePixelsnonGoogleScriptsnonGoogleIframes
|
html
|
google |
Запуск скриптов Google и передача пикселей в Google. | ||
html |
Псевдоним для скриптов типа customScripts, а также ID пользовательского тега HTML. Позволяет пользователям с устаревшими аккаунтами пользоваться преимуществами класса customScripts. |
customScriptscustomPixelsnonGooglePixelsnonGoogleScriptsnonGoogleIframes
|
customScripts
|
nonGooglePixels |
Отправка пикселей в домены, не относящиеся к Google. |
customPixelscustomScriptshtmlnonGoogleScriptsnonGoogleIframes
|
|
nonGoogleScripts |
Запуск скриптов, предоставленных не компанией Google. |
nonGooglePixels |
customScriptshtml
|
nonGoogleIframes |
Внедрение окон iframes из доменов, не относящихся к Google. |
nonGooglePixels |
customScriptshtmlnonGoogleScripts
|
Использование URL без указания протокола
По умолчанию фрагмент-контейнер Менеджера тегов всегда использует для загрузки контейнеров протокол https (например, https://www.googletagmanager.com). Это помогает защитить контейнер от отслеживания и действий злоумышленников и, как правило, повышает эффективность его работы.
Если вы хотите загружать контейнеры Менеджера тегов без указания протокола, замените https:// на // в исходном URL фрагмента-контейнера (см. выделенный код в примере ниже).
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Если вы используете URL без указания протокола, контейнер будет загружен с использованием протокола http на страницах, адрес которых начинается с http://, и https на страницах, адрес которых начинается с https://.
В более старых версиях фрагмента-контейнера Менеджера тегов для загрузки контейнеров всегда используются URL без указания протокола (например, //www.googletagmanager.com).
Эти версии будут продолжать работать, вносить в них изменения не требуется.
В большинстве шаблонов тегов в Менеджере тегов используется формат без указания протокола, однако при настройке пользовательских тегов для активации на защищенных страницах необходимо убедиться, что эти теги являются защищенными или используются без указания протокола.