Отчет по панели управления - Обобщенные просмотры страниц

Это SQL-версия отчета о сводном количестве просмотров страниц.

Этот SQL-отчет предоставляет ежедневный подсчет просмотров страниц от авторизованных пользователей, анонимных пользователей и поисковых роботов на сайте Discourse.

-- [params]
-- date :start_date
-- date :end_date

SELECT
    ar.date::date AS "date",
    SUM(ar.count) AS "Total Views",
    SUM(CASE WHEN ar.req_type=6 THEN ar.count ELSE 0 END) AS "Crawler Views",
    SUM(CASE WHEN ar.req_type=7 THEN ar.count ELSE 0 END) AS "Logged in User Views",
    SUM(CASE WHEN ar.req_type=8 THEN ar.count ELSE 0 END) AS "Anonymous User Views"
FROM application_requests ar
WHERE req_type IN (6,7,8)
    AND ar.date::date BETWEEN :start_date AND :end_date
GROUP BY date
ORDER BY date

Пояснение к SQL-запросу

Запрос работает с таблицей application_requests, которая регистрирует различные типы запросов, отправляемых на форум. Он фокусируется на трех конкретных типах запросов, определяемых значениями req_type:

  • 6: Просмотры поисковыми роботами
  • 7: Просмотры авторизованными пользователями
  • 8: Просмотры анонимными пользователями

Ниже приведено пошаговое пояснение того, что делает запрос:

  • Параметры: Запрос принимает два параметра — :start_date и :end_date, что позволяет пользователю указать диапазон дат для отчета. Оба параметра даты принимают формат ГГГГ-ММ-ДД.
  • Выборка: Запрос выбирает дату запроса (ar.date) и приводит её к типу date. Также он вычисляет общее количество просмотров и разбивку по типам (поисковые роботы, авторизованные пользователи и анонимные пользователи) для каждой даты в указанном диапазоне.
  • Суммирование: Он суммирует столбец count для каждого типа просмотра. Конструкции CASE используются для условного включения подсчетов в сумму на основе значения req_type.
  • Фильтрация: Оператор WHERE фильтрует записи, включая только те, у которых значения req_type равны 6, 7 или 8, а даты попадают в указанный диапазон между :start_date и :end_date.
  • Группировка: Запрос группирует результаты по дате, обеспечивая агрегацию подсчетов для каждого типа просмотра по дням.
  • Сортировка: Результаты сортируются по дате, чтобы обеспечить хронологический просмотр трафика.

Пример результатов

date Total Views Crawler Views Logged in User Views Anonymous User Views
2023-11-18 5608 3052 565 1928
2023-11-19 9207 6564 470 2273
2023-11-20 6271 2631 1016 2924

@SaraDev Когда мы смотрим на нашу панель администратора, там отображается req_type = 13 (page_view_anon_browser) и 15 (page_view_logged_in_browser). Это ошибка? Есть ли какое-либо объяснение подтипов запросов? Например, я не понимаю, как какая-либо комбинация типов для авторизованных пользователей приводит к числу 705.

Поле req_type в application_requests соответствует следующим типам запросов приложения в Discourse:

  1. http_total
  2. http_2xx
  3. http_background
  4. http_3xx
  5. http_4xx
  6. http_5xx
  7. page_view_crawler
  8. page_view_logged_in
  9. page_view_anon
  10. page_view_logged_in_mobile
  11. page_view_anon_mobile
  12. api
  13. user_api
  14. page_view_anon_browser
  15. page_view_anon_browser_mobile
  16. page_view_logged_in_browser
  17. page_view_logged_in_browser_mobile

Вы также можете просмотреть эту информацию напрямую в Data Explorer, изучив Таблицы базы данных и схему.

В сентябре 2024 года мы улучшили способ отслеживания и подсчета просмотров страниц. Здесь объясняется, что изменилось.

Метрики, которые вы видите на своей панели управления, вероятно, используют новый метод «Трафик сайта» для отслеживания просмотров страниц. Соответствующий SQL-код для этого метода можно найти здесь: Отчет панели управления — Трафик сайта.

Спасибо, Сара. Запрос в теме Dashboard Report - Site Traffic ответил на мой вопрос об использовании 13 и 15, а также на вопрос, почему 13 + 14 ≠ 8.