Связаться с поддержкой

Мы отвечаем по электронной почте, обычно в течение двух дней.

Для защиты от злоупотреблений Google reCAPTCHA проверяет эту отправку; при этом данные передаются в Google. Скрипт загружается только при открытии этой формы.

← Все записи

Добавление счётчика Stats4U через Google Tag Manager

Об этом есть руководство в блоге от 2015 года. На его скриншотах Tag Manager выглядит уже не так, а один из семи шагов — отметка галочкой document.write — больше вообще не нужен. Это руководство приходит ему на смену.

Оно также отвечает на вопрос, перед которым старое руководство просто спасовало. В нём говорилось, что с Tag Manager следует использовать невидимый счётчик, потому что место показа изображения статистики якобы невозможно контролировать. На самом деле оно контролируется. Это описано в конце этой страницы.

Короткая версия

В Tag Manager: Tags → New → Custom HTML, и в поле HTML вставляется одна строка:

20157 — шаговсегодня3 — поля и триггершаг с document.write отпадает — скрипт им больше не пользуется
<script src="https://www.stats4u.net/s4u.js"
        data-id="YOUR-ID" data-style="981" async></script>

Триггер — All Pages, затем контейнер сохраняется и публикуется. Вместо YOUR-ID подставляется номер счётчика, который указан на странице статистики.

Это вся работа целиком — три поля и триггер, там, где в 2015 году требовалось семь шагов. Ничего не нужно отмечать насчёт document.write, потому что скрипт больше его не использует.

Что это на самом деле делает и почему подходит это не всегда

Скрипт размещает счётчик сразу после самого себя на странице. При вставке прямо в HTML страницы это именно то, что нужно: счётчик появляется там, куда помещён код.

Через Tag Manager всё иначе, потому что место кода на странице задаётся уже не вручную. Это решает контейнер, а он обычно находится в head документа или там, куда был установлен сниппет контейнера. Поэтому счётчик вставляется именно туда — не в подвал, не в боковую панель, а туда, куда Tag Manager вставил тег.

Для невидимого счётчика это не имеет ни малейшего значения, поэтому старое руководство его и рекомендовало. Дизайн 980 не показывает ничего, дизайн 981 показывает только маленькую иконку со ссылкой на страницу статистики. Если этого достаточно, короткой версии выше хватает, и можно не читать дальше.

Если видимый счётчик нужен в конкретном месте, подробности ниже.

Управление тем, где появляется счётчик

У скрипта есть второй режим, о котором старое руководство вообще не упоминало. Вместо атрибута data-id ему передают список, и он ищет элементы-заполнители по ID.

Шаг первый — на странице размещается элемент-заполнитель там, где должен быть счётчик. Это делается в самом шаблоне сайта, а не в Tag Manager, потому что как раз Tag Manager мы и пытаемся исключить из этого решения:

<div id="s4u_cp0"></div>

Шаг второй — в Tag Manager идёт вот это вместо однострочного варианта. Тот же тип тега Custom HTML:

<script>
(function () {
  // No placeholder on this page? Then no counter, and no request either.
  if (!document.getElementById('s4u_cp0')) { return; }

  window.s4uid         = ['YOUR-ID'];
  window.s4u_paramsarr = [{ s4ustyleid: '100' }];

  var s = document.createElement('script');
  s.src = 'https://www.stats4u.net/s4u.js';
  document.head.appendChild(s);
})();
</script>

Шаг третий — смена триггера. Именно на этом месте чаще всего ошибаются. All Pages срабатывает настолько рано, насколько это вообще может Tag Manager, — часто ещё до того, как элемент-заполнитель появится в документе. Вместо этого нужен встроенный триггер DOM Ready. Счётчик должен появляться после div, а не до него.

Теперь счётчик появляется внутри этого div и больше нигде.

Управление тем, на каких страницах он появляется

Здесь есть два независимых рычага, и их стоит понимать по отдельности.

Первый — это элемент-заполнитель. Всё дело в первой строке внутри функции: если на странице нет s4u_cp0, выполнение останавливается, и скрипт даже не загружается. Поэтому шаблон, который включает div, получает счётчик, а тот, что не включает, — не получает: это решается прямо в шаблонах сайта, без изменений в Tag Manager и без публикации.

Второй — это триггер. Другой путь — решить это в самом Tag Manager: триггеру задаётся условие срабатывать на DOM Ready только там, где Page Path соответствует нужному значению. Этот способ уместен, когда правило касается URL, а элемент-заполнитель — когда правило касается шаблонов.

Больше одного счётчика на странице

Список принимает сколько угодно значений. Позиция в списке — это число в ID элемента-заполнителя:

window.s4uid         = ['ID-ONE', 'ID-TWO'];
window.s4u_paramsarr = [{ s4ustyleid: '981' }, { s4ustyleid: '100' }];

Первый идёт в s4u_cp0, второй — в s4u_cp1. Оба были проверены в браузере при написании этой статьи: первый отрисовался как иконка 20 на 20, второй — как полоса 162 на 25, каждый внутри своего элемента-заполнителя и больше нигде на странице.

Четыре вещи, на которых легко споткнуться

  • Оба способа одновременно не сочетаются. Если у самого тега есть атрибут data-id и при этом задан список, счётчиков окажется два, и оба обращения будут засчитаны отдельно.
  • s4ustyleid всегда должен стоять в списке. Атрибут data-style, если его не указать, незаметно откатывается к дизайну 30. У версии со списком такого запасного варианта нет, и она запросит пустой дизайн.
  • Отсутствующий элемент-заполнитель отказывает молча. Ни счётчика, ни ошибки, ничего в консоли. Если ничего не появляется, первым делом стоит проверить ID — s4u_cp0, с нулём, а не с буквой O.
  • У невидимого счётчика намеренно нет ссылки. Дизайн 980 отрисовывается без неё, потому что прозрачная кликабельная область в один пиксель на чужой странице — это ловушка, а не полезная функция. Если ссылка нужна, подойдёт 981 — это маленькая иконка.

Проверка, что всё сработало

Достаточно включить режим Preview в Tag Manager и загрузить свою страницу. Тег должен появиться среди сработавших тегов для события DOM Ready. Затем — страница статистики: визит через Preview засчитывается как любой другой, так что число должно измениться в течение нескольких секунд.

Если тег срабатывает, но ничего не появляется, дело в элементе-заполнителе или в триггере — именно в таком порядке вероятности.

Реклама