Rapport du tableau de bord - Pages vues consolidées

Ceci est une version SQL du rapport de tableau de bord pour les vues de page consolidées.

Ce rapport SQL fournit un décompte quotidien des vues de page des utilisateurs connectés, des utilisateurs anonymes et des robots d’exploration sur un site 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

Explication de la requête SQL

La requête opère sur la table application_requests, qui enregistre différents types de requêtes effectuées sur le forum. Elle se concentre sur trois types spécifiques de requêtes identifiés par les valeurs req_type :

  • 6 : Vues des robots d’exploration
  • 7 : Vues des utilisateurs connectés
  • 8 : Vues des utilisateurs anonymes

Voici une explication étape par étape de ce que fait la requête :

  • Paramètres : La requête accepte deux paramètres, :start_date et :end_date, permettant à l’utilisateur de spécifier la plage de dates pour le rapport. Les deux paramètres de date acceptent le format de date AAAA-MM-JJ.
  • Sélection : La requête sélectionne la date de la requête (ar.date) et la convertit en type date. Elle calcule également le total des vues et la répartition des vues par type (robot d’exploration, utilisateur connecté et utilisateur anonyme) pour chaque date dans la plage spécifiée.
  • Sommation : Elle additionne la colonne count pour chaque type de vue. Les instructions CASE sont utilisées pour inclure conditionnellement les comptes dans la somme en fonction du req_type.
  • Filtrage : La clause WHERE filtre les enregistrements pour inclure uniquement ceux dont les valeurs req_type sont 6, 7 ou 8 et dont les dates se situent entre :start_date et :end_date.
  • Regroupement : La requête regroupe les résultats par date, garantissant que les décomptes pour chaque type de vue sont agrégés par jour.
  • Tri : Les résultats sont triés par date pour fournir une vue chronologique du trafic.

Résultats d’exemple

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
5 « J'aime »

@SaraDev lorsque nous examinons notre tableau de bord d’administration, il affiche req_type = 13 (page_view_anon_browser) et 15 (page_view_logged_in_browser). Est-ce un bug ? Y a-t-il une explication des sous-types de requêtes ? Par exemple, je ne vois pas comment une combinaison des types connectés peut atteindre le nombre 705.

1 « J'aime »

Le champ req_type dans application_requests correspond aux types de requêtes d’application suivants dans 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

Vous pouvez également consulter ces informations directement dans l’Explorateur de données en consultant les Tables de base de données et schéma.

En septembre 2024, nous avons amélioré la manière dont les vues de page sont suivies et comptées. Voici une explication de ce qui a changé.

Les métriques que vous voyez sur votre tableau de bord utilisent probablement la nouvelle méthode « Trafic du site » pour suivre les vues de page, et vous pouvez trouver le SQL correspondant à cette méthode ici : Rapport du tableau de bord - Trafic du site.

Merci Sara, la requête dans le sujet Dashboard Report - Site Traffic répond à ma question concernant l’utilisation des 13 et 15 et aussi pourquoi 13 + 14 != 8.

1 « J'aime »