Как добавить код счетчика Яндекс.Метрики?
Сайт LibArea использует технологию Content Security Policy. Чтобы добавить счетчик выполните следующие действия...
В файл (шаблон) /resources/views/default/metrika.php
вам необходимо разместить код, в данном случае код Яндекс.Счетчика:
<!-- Yandex.Metrika counter -->
<script nonce="<?= $_SERVER['nonce']; ?>">
(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(XXXXXX, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
</script>
<noscript>
<div><img src="https://mc.yandex.ru/watch/XXXXXX" style="position:absolute; left:-9999px;" alt="" /></div>
</noscript>
<!-- /Yandex.Metrika counter -->
Заменив XXXXXX на номер вашего счетчика.
Обратите внимание, что мы добавляем к script
конструкцию:
nonce="<?= $_SERVER['nonce']; ?>"
Проверьте корректность вашего подключения.
См. более подробно: ЯндексСправка, Установка счетчика на сайт с CSP
P.S. данный счетчик без информера, с прозначной картинкой 1x1px.
Размещение рекламы на сайте с CSP
На примере Яндекса...
Нам необходимо добавить атрибут nonce. Для «шапки сайта»:
<script nonce="<?= $_SERVER['nonce']; ?>">window.yaContextCb = window.yaContextCb || []</script>
<script nonce="<?= $_SERVER['nonce']; ?>" src="https://yandex.ru/ads/system/context.js" async></script>
Для тела (вывод рекламы):
<div class="br-box-gray p15 mb15 br-rd5 bg-white size-14">
<h3 class="uppercase gray mt5 mb5 size-14 font-normal"><?= Translate::get('advertising'); ?></h3>
<!-- Yandex.RTB R-A-1207153-1 -->
<div id="yandex_rtb_R-A-1207153-1"></div>
<script nonce="<?= $_SERVER['nonce']; ?>">window.yaContextCb.push(()=>{
Ya.Context.AdvManager.render({
renderTo: 'yandex_rtb_R-A-1207153-1',
blockId: 'R-A-1207153-1'
})
})</script>
</div>
Далее, в файле /public/index.php
, в строке:
header("Content-Security-Policy: default-src 'self' an.yandex.ru...
Нам необходимо добавить домены из списка предоставленных Яндексом.
См. более подробно: https://yandex.ru/support/partner2/web/csp-configuration.html