Назад в блог

Блог

SignalHost для TYPO3: установите расширение, подключите каждый сайт — и серверное отслеживание работает

Опубликовано · 6 мин чтения

Доступно в TYPO3 Extension Repository

Расширение SignalHost добавляет серверный Google Tag Manager на ваши сайты TYPO3 без единой строчки вставленного кода. Оно размещает загрузчик отслеживания на каждой фронтенд-странице подключённого сайта, поддерживает его в актуальном состоянии, когда что-то меняется на нашей стороне, и снова убирает его, когда вы отключаетесь. Каждый сайт в мультисайтовой установке подключается отдельно, и это руководство проводит один сайт через все шаги — от установки до проверки.

Прежде чем начать

  • TYPO3 13.4 LTS или 14.3 LTS на PHP 8.2 или новее с расширением sodium.
  • Аккаунт SignalHost. Чтобы попробовать, хватит бесплатного тарифа: 10 000 запросов в месяц и один контейнер. Аккаунт можно создать прямо во время подключения.
  • Учётная запись администратора бэкенда. Модуль SignalHost доступен только администраторам.
  • Сайт, base которого в конфигурации сайта содержит домен, например https://www.example.com/.

1. Установите расширение

В установке на основе Composer подключите его из Packagist:

composer require signalhost/server-side-tagging

В классическом режиме установите его вместо этого через Extension Manager; оно есть в TYPO3 Extension Repository под ключом signalhost_server_side_tagging. Расширение ничего не добавляет на сайт, пока этот сайт не подключён.

2. Подключите сайт к контейнеру

В бэкенде TYPO3 откройте Sites › SignalHost (в TYPO3 13 — Site Management › SignalHost), где у каждого сайта своя карточка. После подключения SignalHost возвращает вас на собственный адрес сайта, поэтому открывайте бэкенд под доменом этого сайта; если вы находитесь на другом домене, на карточке есть кнопка, которая открывает страницу там, — возможно, придётся один раз войти в систему.

На карточке сайта нажмите «Connect with SignalHost» или, если аккаунта у вас ещё нет, «Create a free account». Пока вы не нажмёте кнопку подключения, в SignalHost ничего не отправляется. На signalhost.io войдите в аккаунт. Следующий экран перечисляет, что расширение сможет и чего не сможет делать, и спрашивает, какой контейнер должен использовать сайт. Контейнер — это ваш собственный сервер тегинга: веб-контейнер и серверный контейнер Tag Manager, созданные в вашем собственном аккаунте Google, так что они остаются вашими.

Выберите существующий контейнер или нажмите «Новый контейнер для» вашего сайта и пройдите короткий мастер. Создание нового занимает несколько минут; подключиться можно сразу, и код будет добавлен, как только контейнер будет готов. Нажмите «Подключить», и вы вернётесь на карточку с сообщением «Connected». Теперь код SignalHost добавлен на каждую страницу этого сайта. Повторите это для каждого сайта, который хотите отслеживать.

3. Проверьте, что код есть на сайте

Теперь на карточке сайта написано «Tracking is live» или, пока новый контейнер ещё создаётся, «Tracking starts as soon as your container is ready». Затем посмотрите на строку «On your home page»: сразу после подключения расширение загружает вашу главную страницу так, как это сделал бы посетитель, и ищет на ней свой код. Нужный вам ответ — «Code found». «Check again» в любой момент повторяет проверку, а остальные ответы описаны в разделе «Если что-то не работает».

4. Проверьте работу

Откройте свой сайт в приватном окне и пройдитесь по нескольким страницам; посетитель, который отклонил ваш cookie-баннер, всё равно учитывается — как пинг Google без cookie. Затем нажмите «Open statistics & settings», чтобы открыть страницу вашего контейнера на signalhost.io.

В разделе «Расширенная аналитика» вкладка «Недавнее» показывает просмотры страниц за последние 30 минут, в том числе ваши. «Запустить проверку» в разделе «Устранение неполадок» внизу страницы сравнивает то, что получил ваш сервер тегинга, с тем, что Google Analytics показывает за те же 30 минут. Меньшее число в Analytics — это нормально: там не учитываются посетители, отказавшиеся от cookie. Начиная с тарифа Growth раздел «Мониторинг событий в реальном времени» показывает каждое событие в момент поступления.

Что расширение добавляет на ваш сайт

Один небольшой скрипт на каждый подключённый сайт и один сеанс связи в час:

  • Загрузчик Google Tag Manager — непосредственно перед концом head каждой фронтенд-страницы, направленный на собственный адрес тегинга сайта вместо googletagmanager.com. Он загружает оттуда ваш контейнер Tag Manager. Загрузчик попадает в готовую страницу уже после кеша страниц TYPO3, поэтому никакой кеш сбрасывать не нужно. Если сайт применяет Content Security Policy TYPO3, расширение добавляет в неё адрес тегинга и разрешает загрузчик по его хешу, если только политика уже не разрешает встроенные скрипты.
  • Раз в час, после того как ответ отправлен, расширение связывается с signalhost.io, чтобы оставаться актуальным. Оно отправляет только версии расширения, TYPO3 и PHP, адрес сайта и то, был ли найден код на главной странице: никаких данных посетителей, контента или учётных записей пользователей. Если signalhost.io недоступен, сайт сохраняет последнюю рабочую конфигурацию.

Каждый запрос покидает браузер в виде, который блокировщики рекламы не распознают, и ваш сервер тегинга пересылает его в Google Analytics 4 и на рекламные платформы, которые вы настроили на странице контейнера: Google Ads, Meta, TikTok и другие. Отслеживание следует за вашим cookie-баннером через Google Consent Mode. Загрузчик идёт после баннера, который находится в head; баннер, загружаемый позже, должен установить значения Consent Mode по умолчанию до загрузчика.

Расширение не читает формы и заказы. Просмотры страниц приходят сами; покупка или заявка попадает в ваш контейнер, когда ваш сайт отправляет её в слой данных.

Ваш собственный домен отслеживания

Сначала ваш контейнер работает на адресе под signalhost.io. На платном тарифе кнопка «Подключить собственный домен» на странице контейнера переносит его на поддомен вашего собственного сайта, например sgtm.yoursite.com, с помощью одной DNS-записи у вашего провайдера. Такой адрес переживает списки фильтров и сохраняет cookie кликов как cookie первого лица. Когда домен заработает, расширение переключит на него этот сайт при следующем сеансе связи, обычно в течение часа, и его Content Security Policy обновится вслед за этим. Вручную ничего заменять не нужно, а старый адрес до тех пор продолжает работать.

Добавить SignalHost вручную

Код можно вставить и самостоятельно. На странице контейнера найдите свой фрагмент кода в карточке «Установить на сайт» и нажмите «Копировать». Вставьте его в head каждой страницы (в TYPO3 — через шаблон или TypoScript) сразу после скрипта вашего cookie-баннера и нажмите «Готово». «Копировать для ИИ-агента» передаёт ту же задачу агенту для программирования.

Вставляя код вручную, вы отказываетесь от того, что делает расширение: ничто не проверяет вашу главную страницу, ничто не убирает код при отключении, на сайте, который применяет Content Security Policy TYPO3, скрипт и адрес тегинга придётся разрешить вручную, а когда заработает ваш собственный домен, код придётся заменить самостоятельно — из блока карточки «Обновите код на своём сайте» или из письма, сообщающего о домене. Никогда не используйте оба способа: две копии засчитывают каждое посещение дважды.

Обновления, управление и отключение

Обновляйте расширение тем же способом, каким установили: через Composer или через Extension Manager в классическом режиме.

Кнопка «Disconnect» на карточке сайта один раз запрашивает подтверждение, а затем сразу убирает код SignalHost со всех страниц этого сайта и отзывает его доступ. Остальные сайты остаются подключёнными, а ваш контейнер и его данные остаются в вашем аккаунте SignalHost.

На signalhost.io страница контейнера сообщает «Установлено расширением TYPO3 на» вашем сайте. Её кнопка «Управлять» ведёт в «Настройки › Подключённые сайты», где тоже работает «Отключить»: расширение перестанет загружать SignalHost при следующем сеансе связи, обычно в течение часа.

Деактивация расширения в Extension Manager в классическом режиме отзывает доступ всех сайтов и стирает то, что расширение сохранило. composer remove не выполняет код TYPO3, поэтому сначала отключите каждый сайт; иначе сайты останутся в списке «Настройки › Подключённые сайты», и отключать их придётся там.

Если что-то не работает

  • На карточке написано «SignalHost sends you back to the site's own address after connecting»: вы открыли бэкенд под другим доменом. Воспользуйтесь кнопкой под этим сообщением, чтобы открыть страницу на домене сайта.
  • «Could not check (your server refused a request to itself)»: ваш хостинг блокирует запросы к собственному адресу. О ваших посетителях это ничего не говорит; поищите ваш адрес тегинга в исходном коде главной страницы.
  • «An older copy is on the page» или «The code is on the page twice»: копия была вставлена вручную в шаблон, TypoScript или другое расширение. Удалите её; расширение добавляет актуальную, а две копии засчитывают каждое посещение дважды.
  • Уведомление о том, что ваш сайт уже загружает контейнер Tag Manager собственным фрагментом Google: удалите этот фрагмент, потому что теперь контейнер загружает SignalHost, а вместе они засчитывают каждое посещение дважды.
  • «This site's address has changed since it was connected»: на копии, например staging, ничего не отправляется. Если переехал рабочий сайт, отключите его и подключите снова.
  • Что-то другое: напишите на hello@signalhost.io и укажите адрес сайта.

Товарные знаки

SignalHost — независимый продукт компании Algorithmo GmbH, не связанный с TYPO3 Association, Google, Meta или TikTok и не одобренный ими. Google Analytics, Google Ads и Google Tag Manager — товарные знаки Google LLC; Meta — товарный знак Meta Platforms, Inc.; TikTok — товарный знак ByteDance Ltd.; TYPO3 — зарегистрированный товарный знак TYPO3 Association.

Перестаньте терять данные из-за блокировщиков

Начните бесплатно. Запустите первый контейнер за несколько минут.