Как скрыть код метрики для посетителей без referrer (прямой заход)?

Ребя сразу прошу прощения, я не знаю кода..... И я честно пытался найти способы в пс

Вот у меня код метрики установленный на сайте:

<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
код счетчика Яндекс Метрики
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/111111111" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Прошу подскажите, как его обернуть, чтобы он не показывался посетителям без рефера (с прямого захода)


Ответы (1 шт):

Автор решения: svm

Решение для PHP:

<?php if (isset($_SERVER['HTTP_REFERER'])): ?>
    <!-- Код метрики -->
<?php endif; ?>

Решение для JS:

<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
if (document.referrer) {
  // код счетчика Яндекс Метрики
}
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/111111111" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Решение для PHP будет более надежнее, чем для JS. Если у пользователя отключен JavaScript, то отсутствие рефера не повлияет на метрику - в этом случае будет срабатывать noscript. Вряд ли это хоть сколько то значимо, но упомянуть стоило.

Подозреваю, вы таким образом пытаетесь избавиться от ботов. Не смотря на предоставленные решения, лично я не рекомендую этого делать. Эти боты никуда не денутся, вы их просто не будете видеть и замечать, при этом они будут делать то, что задумали. Более того, отсутствие или наличие рефера никак не говорит о том, бот это или человек.

→ Ссылка