Отчет дашборда - Анонимно

Это SQL-версия отчета Dashboard для анонимных пользователей.

Этот отчет показывает количество просмотров страниц, полученных сайтом каждый день от анонимных пользователей (пользователей, не вошедших в учетную запись), за указанный диапазон дат.

--[params]
-- date :start_date = 2023-12-01
-- date :end_date = 2024-01-01

SELECT 
    date, 
    SUM(count) AS pageviews
FROM
    application_requests
WHERE
    req_type = 8
    AND date BETWEEN :start_date AND :end_date
GROUP BY
    date
ORDER BY
     date

Объяснение SQL-запроса

  • Определение параметров: Запрос начинается с определения двух параметров, :start_date и :end_date, которые используются для фильтрации данных по нужному временному промежутку. Оба параметра даты принимают формат ГГГГ-ММ-ДД.
  • Выбор данных: Выбираются два столбца: date и сумма count, которая псевдонимом называется pageviews. Поле count представляет количество просмотров страниц для каждой записи.
  • Источник данных: Данные берутся из таблицы application_requests, которая регистрирует различные типы запросов, отправленных к приложению.
  • Фильтрация: Условие WHERE фильтрует записи, включая только те, которые имеют тип page_view_anon (req_type = 8) и попадают в указанный диапазон дат.
  • Агрегация: Подпункт GROUP BY группирует результаты по столбцу date, что позволяет функции SUM вычислить общее количество просмотров страниц для каждой даты.
  • Сортировка: Наконец, результаты сортируются по столбцу date в порядке возрастания, обеспечивая хронологический просмотр анонимных просмотров страниц.

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

date pageviews
2023-12-01 12345
2023-12-02 11346
2023-12-03 18344
2023-12-04 15344
2023-12-05 12890

Примечания по req_type

Столбец req_type в таблице application_requests классифицирует тип запроса. В этом запросе нас интересует req_type = 8, который соответствует анонимным просмотрам страниц.

Другие значения req_type представляют различные виды запросов, такие как просмотры страниц поисковыми роботами, просмотры страниц авторизованными пользователями и различные статусы HTTP-ответов.

Все значения req_type:

0. http_total
1. http_2xx
2. http_background
3. http_3xx
4. http_4xx
5. http_5xx
6. page_view_crawler
7. page_view_logged_in
8. page_view_anon
9. page_view_logged_in_mobile
10. page_view_anon_mobile
11. api
12. user_api

Не стоит ли здесь использовать req_type IN (8,10), чтобы включить и мобильные номера?

Я тоже изначально рассматривал этот вариант, но отчёт в панели администратора включает только page_view_anon, а не page_view_anon_mobile.

В текущем виде этот запрос является точной копией отчёта панели администратора; вы можете убедиться в этом, запустив запрос и сравнив результаты с данными отчёта.

Это поднимает другой, но связанный вопрос: должен ли отчёт панели администратора включать анонимные просмотры страниц с мобильных устройств?

По интуиции я бы сказал, что да, но было бы интересно узнать и другие мнения на этот счёт.

Я не могу придумать причину не включать их.

Ах, извините. Я должен был быть более конкретным в своём комментарии. Я заметил, что этот запрос является точной копией, и имел в виду, что сам отчёт панели управления должен включать его. :pray:

Извините, у меня сейчас утро, и мне нужно больше кофе, поэтому я уперся в языковую стену.

Вы думаете, что теперь в «итого» должны включаться и мобильные устройства, ведь сейчас они исключены? Или лучше показать две метрики: фактическое общее количество просмотров И количество мобильных просмотров?

На данный момент отчёт в панели управления, по-видимому, включает только один req_type (8), что означает подсчёт только анонимных просмотров с настольных устройств.

Мы задаёмся вопросом, почему не учитываются данные с мобильных устройств (либо в виде общей суммы, либо в виде двух отдельных показателей для более детального анализа).

Это не может быть правдой, или же там учитываются боты. По моим данным, у меня около 1000 в день, и это звучит правдоподобно. Но я знаю, что у меня очень мало десктопов. Ситуация, при которой у меня было бы 1000 десктопов и 9000 мобильных устройств (да, соотношение именно такое), не может быть правдой.

Хм. Не уверен. Кажется, код находится здесь:

Возможно, page_view_anon_mobile — это подмножество page_view_anon. Надеюсь, кто-то, кто умеет читать этот код, сможет помочь и дать совет. :slight_smile: :crossed_fingers:

Хм. Да, эта логика будет увеличивать page_view_anon независимо от того, классифицируется ли просмотр страницы как мобильный. Думаю, мне нужно обновить некоторые запросы…