Вы получили код для вставки метрики, осталось дело за малым — разместить его на сайте. Сайт управляется Drupal 8/9/10.
Я покажу как это сделать через изменение темы сайта.
Первая опция — это вставить непосредственно в один из основных шаблонов выданный вам код. Допустим, ваша тема называется «q». Тогда в каталоге /themes/q/templates вы скорее всего найдете файл html.html.twig. Здесь — как гласит инструкция yandex — вставьте код в html секцию <head> или сразу после тега <body>.
Метод рабочий, но не красивый. Мне больше нравится следующий.
Опция №2.
Мы оформим код счетчика в виде библиотеки темы и сразу включим её в настройках темы.
Код счетчика выглядит как то так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(93591043, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/93591043" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> |
Уберем от туда секцию noscript, т.к. уже нет сайтов, которые работают без скриптов, а уж Drupal без них точно не обходится. Иногда к сайту обращаются роботы, но если они не выполняют скрипты, то и лишние картинки, грузить не будут. Потому смысла в этой секции нет.
Создадим библиотечный файл на основе того, что осталось.
/themes/q/libs/yandex-metrika.js
1 2 3 4 5 6 7 8 9 10 11 12 |
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(93591043, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); |
Теперь добавим описание библиотеки в тему, в файл /themes/q/q.libraries.yml, вот эти строки нужно вставить:
1 2 3 4 |
yandex-metrika: version: VERSION js: libs/yandex-metrika.js: { } |
Последний шаг — это включение библиотеки в настройках темы, так она будет загружаться на всех страницах в секции <head> и выполнять свою задачу.
Нужно чтобы в файле /themes/q/q.info.yml появились вот такие строки:
1 2 |
libraries: - q/yandex-metrika |
Если секция libraries уже есть — добавьте лишь строку с именем библиотеки.