| Сводка | Расширенное отслеживание событий Google Analytics 4 для Discourse | |
| Ссылка на репозиторий | https://github.com/multidimension-al/discourse-google-analytics | |
| Гид по установке | Как установить плагины в Discourse |
Ядро Discourse отправляет в Google Analytics одно событие page_view на каждую навигацию. Этот плагин добавляет события для времени чтения, прогресса чтения и завершения чтения, а также может по желанию взять на себя управление отображением страниц, чтобы исключить маршруты личных сообщений и администратора.
ПОЧЕМУ НЕ ИСПОЛЬЗОВАТЬ ВСТРОЕННЫЙ ТЭГ SEO/GA?
Можно, и для многих форумов этого достаточно. Тэг из ядра работает, и этот плагин функционирует поверх него, а не заменяет его.
Разница заключается в том, что именно измеряется. Событие page_view говорит лишь о том, что URL был загружен. Оно не может показать, читал ли кто-то содержимое страницы, поэтому двадцатиминутное чтение длинной темы и мгновенный уход выглядят в отчетах одинаково. Этот плагин измеряет, сколько времени человек действительно читал, как далеко он зашел в теме и достиг ли конца. Именно эти сигналы важны для принятия решений о контенте и создания аудитории для ремаркетинга.
Собственные отчеты Discourse (Администрирование → Отчеты) — это отдельная система и остаются лучшим местом для внутренних метрик. Здесь речь идет только о том, что попадает в Google Analytics.
Возможности
- 13 событий сообщества: просмотры тем, вовлеченность и вехи прогресса чтения, завершение чтения, сводки по посещению, поиск, регистрация, вход, создание темы, ответы, лайки, закладки
- Измерение чтения на основе потока сообщений и времени внимательного чтения, а не глубины прокрутки
- Два режима: расширение существующего тэга ядра или полный контроль над тэгом и просмотрами страниц
- Личные сообщения, ограниченные категории и административные маршруты не генерируют событий
- Заголовки тем и поисковые запросы по умолчанию не отправляются
- Трафик персонала можно пометить как внутренний трафик GA4, по группам
- Страница диагностики и предупреждения в админ-панели при неправильной конфигурации
Конфигурация
1. Установка
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/multidimension-al/discourse-google-analytics.git
Затем выполните ./launcher rebuild app.
2. Выберите режим. Администрирование → Настройки → Google Analytics 4.
Расширение ядра (по умолчанию) — ядро сохраняет тэг и просмотры страниц, плагин добавляет события поверх. Установите ga universal tracking code в ядре в значение вашего G-XXXXXXXXXX, а ga version в v4_gtag.
Управляемый — плагин берет на себя управление тэгом и просмотрами страниц, что позволяет исключать маршруты личных сообщений и администратора. Очистите ga universal tracking code в ядре, установите ga4 integration mode в managed и введите ваш ID в поле ga4 measurement id.
3. Включите discourse ga4 enabled.
4. Необязательно — внутренний трафик. ga4 internal traffic groups по умолчанию включает администраторов и модераторов. Это вступает в силу только после создания соответствующего фильтра в GA4: Администрирование → Настройки данных → Фильтры данных → Внутренний трафик, где traffic_type равно internal.
5. Проверка. Администрирование → Плагины → Google Analytics → Диагностика.
Чтобы перенести существующую настройку из режима «Расширение ядра» в «Управляемый», используйте опцию Принять существующую конфигурацию GA Discourse на странице диагностики, а не редактируйте настройки вручную.
Настройки
| Имя | Описание |
|---|---|
discourse ga4 enabled |
Включить плагин. По умолчанию выключено. |
ga4 integration mode |
core_extension (ядро управляет тэгом) или managed (плагин управляет тэгом). |
ga4 measurement id |
Идентификатор измерения GA4, для управляемого режима. |
ga4 track page views |
Отправлять page_view. Только для управляемого режима. |
ga4 track topic views |
Отправлять discourse_topic_view один раз за посещение темы. |
ga4 track topic engagement |
Отправлять discourse_topic_engaged по вехам времени чтения. |
ga4 engagement milestones |
Секунды активного чтения, при которых срабатывает событие. По умолчанию 10|30|60|180. |
ga4 track topic progress |
Отправлять discourse_topic_progress по вехам позиции чтения. |
ga4 progress milestones |
Проценты темы, при которых срабатывает событие. По умолчанию 25|50|75|100. |
ga4 track read completion |
Отправлять discourse_topic_read_complete, когда читатель достигает конца. |
ga4 read complete min seconds |
Минимальное время чтения, чтобы конец считался завершением. |
ga4 track read summaries |
Отправлять discourse_topic_read_summary, когда читатель покидает тему. |
ga4 read summary min seconds |
Ниже этого значения посещение считается отскоком и не суммируется. |
ga4 track search |
Отправлять search, когда полностраничный поиск возвращает результаты. |
ga4 track registration |
Отправлять sign_up после создания учетной записи. |
ga4 track login |
Отправлять login после успешного входа. По умолчанию выключено. |
ga4 track topic creation |
Отправлять discourse_topic_created. |
ga4 track replies |
Отправлять discourse_reply_created. |
ga4 track likes |
Отправлять discourse_post_liked. Удаление лайка ничего не отправляет. |
ga4 track bookmarks |
Отправлять discourse_bookmark_created. |
ga4 send search terms |
Также отправлять поисковый запрос. По умолчанию выключено — поисковые запросы на форумах часто содержат личную информацию. |
ga4 send page titles |
Включать заголовок страницы. По умолчанию выключено — на маршруте темы это заголовок темы. |
ga4 track private message activity |
Одно агрегированное событие личных сообщений без идентификаторов. По умолчанию выключено. |
ga4 login required is restricted |
На форуме с обязательным входом удерживать идентификаторы тем и категорий. |
ga4 send trust level |
Включать уровень доверия 0–4 в качестве параметра события. |
ga4 internal traffic groups |
Участники этих групп помечаются как traffic_type=internal. По умолчанию: администраторы, модераторы. |
ga4 suppress in embed |
Ничего не отправлять в режиме встраивания. |
ga4 debug mode |
Логировать события и решения о подавлении в консоль браузера. |
Примечания
- В режиме «Расширение ядра» ядро по-прежнему управляет просмотрами страниц, поэтому URL личных сообщений и заголовки тем по-прежнему отправляются. Только управляемый режим это меняет.
- Не регистрируйте
topic_idкак пользовательское измерение GA4 — оно не ограничено и достигнет пределов кардинальности ресурса. - Собственный отчет Discourse «Администрирование → Отчеты → Трендовый поиск» фиксирует переходы по кликам, поэтому показывает, какие поисковые запросы оказались неудачными. GA4 этого не может. Именно поэтому
ga4 send search termsвыключено по умолчанию.

