Вставка кода Google Tag Manager в XSLT-шаблоны
Материал из Umicms
Актуально для версии 18.
В этой статье мы рассмотрим добавление кода Google Tag Manager в xslt-шаблоны системы.
Регистрация на сервисе и получение кода для вставки в шаблон:
- Если у Вас нет аккаунта Google, Вы можете создать его на странице регистрации.
- Перейдите на страницу Google Tag Manager и авторзуйтесь в своем аккаунте.
- После авторизации Google Tag Manager предложит Вам создать первый аккаунт. Укажите название своей компании, выберите страну и нажмите далее, после этого введите url-адрес своего сайта и выберите платформу, на которой Вы хотите использовать сервис.
- После сохранения данных Вы автоматически перейдете на страницу, на которой увидите 2 фрагмента кода, которые Google Task Manager предложит добавить в исходный код Вашего сайта.
Вставлять фрагменты кода нужно в файл default.xsl в папке Ваш сайт/templates/Название шаблона/xslt/layouts/
Если пользоваться официальной инструкцией, то сайт может упасть после добавления кода.
- В первом фрагменте кода, нужно ‘&’ заменить на ‘&’ т.к. данный символ требует экранирования в xslt.
- Второй фрагмент нужно вставлять непосредственно перед закрывающим тегом <body>, а не после открывающего, т.к. скрипт мешает загрузке структуры сайта.
Ниже инструкция:
Вместо GTM-XXXXX используйте свой идентификатор.
1. Вставьте следующий фрагмент в раздел <head> кода страницы как можно ближе к началу:
<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-XXXXX');
</script>
2. Непосредственно перед закрывающим тегом <body> добавьте следующий фрагмент:
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
Второй фрагмент кода нужен для браузеров, в которых отключен JavaScript.