Référence du schéma de Query Studio
Référence complète de toutes les tables interrogeables disponibles dans Zenovay Query Studio. Utilisez ce guide pour explorer le schéma de la base de données, comprendre les types de colonnes et écrire des requêtes SQL précises.
Toutes les requêtes doivent inclure WHERE website_id = 'your-website-id' pour limiter les résultats à votre site Web. Les requêtes sans ce filtre seront rejetées.
Query Studio applique un maximum de 1 000 lignes par requête et un délai d'expiration de 10 secondes. Seules les déclarations SELECT sont autorisées — toutes les opérations d'écriture (INSERT, UPDATE, DELETE, DROP, etc.) sont bloquées.
Analytiques de base
visitors
Enregistrements de visiteurs individuels avec géolocalisation, informations sur les appareils, paramètres de suivi UTM et scores d'engagement comportemental. Ceci est la table principale pour l'analyse granulaire au niveau des visiteurs.
| Colonne | Type | Description |
|---|---|---|
id | uuid | Identifiant d'enregistrement de visiteur unique |
website_id | uuid | Site Web auquel ce visiteur appartient |
visitor_id | text | Identifiant de visiteur anonymisé (haché) |
page_url | text | URL complète de la page visitée |
landing_page | text | Première page sur laquelle le visiteur a atterri |
referrer | text | URL de référence qui a amené le visiteur |
country_code | varchar | Code de pays ISO 3166-1 alpha-2 (par exemple, US, GB) |
country_name | varchar | Nom complet du pays (par exemple, United States) |
city | varchar | Nom de la ville de la géolocalisation IP |
device_type | text | Catégorie d'appareil : desktop, mobile ou tablet |
browser | varchar | Nom du navigateur (par exemple, Chrome, Firefox, Safari) |
os | varchar | Système d'exploitation (par exemple, Windows, macOS, iOS) |
utm_source | varchar | Paramètre UTM source (par exemple, google, newsletter) |
utm_medium | varchar | Paramètre UTM medium (par exemple, cpc, email, organic) |
utm_campaign | varchar | Nom de la campagne UTM |
channel | varchar | Canal marketing attribué (par exemple, Organic Search, Direct, Social) |
had_interaction | boolean | Si le visiteur a interagi avec la page (clics, défilements, etc.) |
is_returning_visitor | boolean | true si le visiteur a déjà été vu |
time_on_page | integer | Temps passé sur la page en secondes |
scroll_depth_percentage | integer | Profondeur de défilement maximale atteinte (0-100) |
value_score | integer | Score d'engagement calculé (0-100) basé sur le comportement |
conversion_event | varchar | Nom de l'événement de conversion déclenché, le cas échéant |
conversion_value | numeric | Valeur monétaire associée à la conversion |
visited_at | timestamptz | Horodatage du moment de la visite |
analytics_daily
Statistiques quotidiennes pré-agrégées pour les requêtes de tableau de bord rapides. Utilisez cette table au lieu de visitors lorsque vous avez besoin de résumés quotidiens — elle est considérablement plus rapide pour les rapports sur les plages de dates.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
date | date | La date calendaire de cet agrégat |
visitors | integer | Nombre total de visiteurs pour le jour |
page_views | integer | Nombre total de pages vues pour le jour |
unique_visitors | integer | Nombre de visiteurs uniques |
sessions | integer | Nombre de sessions distinctes |
avg_session_duration | integer | Durée moyenne de la session en secondes |
bounce_rate | numeric | Taux de rebond sous forme décimale (par exemple, 0.45 = 45%) |
top_countries | jsonb | Pays les plus visités par nombre de visiteurs |
top_devices | jsonb | Répartition des types d'appareils |
top_browsers | jsonb | Répartition de l'utilisation des navigateurs |
top_referrers | jsonb | Principales sources de référence |
top_pages | jsonb | Pages les plus visitées |
Les colonnes JSONB comme top_countries peuvent être interrogées à l'aide des opérateurs -> (retourne JSON) et ->> (retourne du texte). Exemple : top_countries->0->>'country' retourne le nom du pays le plus visité.
page_views
Événements de pages vues individuels avec des métriques de performance et d'engagement. Chaque ligne représente un chargement de page unique par un visiteur dans une session.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
visitor_id | uuid | Référence au visiteur |
session_id | uuid | Session à laquelle appartient cette page vue |
page_url | text | URL complète de la page |
page_title | text | Titre HTML de la page |
page_path | text | Chemin de l'URL sans domaine (par exemple, /pricing) |
load_time_ms | integer | Temps de chargement de la page en millisecondes |
time_on_page_seconds | integer | Temps passé sur cette page en secondes |
scroll_depth_percentage | integer | Profondeur de défilement maximale atteinte (0-100) |
clicks_count | integer | Nombre de clics sur cette page |
had_interaction | boolean | Si une interaction significative a eu lieu |
timestamp | timestamptz | Quand la page vue s'est produite |
live_visitors
Visiteurs actuellement actifs sur votre site Web. Cette table est mise à jour en temps réel et reflète les visiteurs actifs au cours des dernières minutes.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
visitor_id | uuid | Identifiant du visiteur |
current_page_url | text | Page que le visiteur regarde actuellement |
landing_page | text | Première page de la session actuelle |
pages_viewed | integer | Nombre de pages vues dans cette session |
device_type | varchar | Catégorie d'appareil |
browser | varchar | Nom du navigateur |
country_name | varchar | Pays du visiteur |
channel | varchar | Attribution du canal de trafic |
is_active | boolean | Si le visiteur navigue toujours activement |
is_new_visitor | boolean | true si c'est la première session du visiteur |
Revenus et paiements
payments
Transactions de paiement synchronisées à partir de fournisseurs de paiement connectés (Stripe, LemonSqueezy, Polar). Chaque ligne représente une transaction unique.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
amount | numeric | Montant de la transaction dans la devise spécifiée |
currency | varchar | Code de devise ISO 4217 (par exemple, USD, EUR) |
status | varchar | Statut du paiement : succeeded, pending, failed, refunded |
provider | varchar | Fournisseur de paiement : stripe, lemonsqueezy, polar |
marketing_channel | varchar | Canal marketing attribué à ce paiement |
utm_source | varchar | Source UTM liée à cette transaction |
customer_email | varchar | Adresse e-mail du client |
customer_name | varchar | Nom d'affichage du client |
created_at | timestamptz | Quand le paiement a été créé |
revenue_attribution
Revenus attribués aux canaux marketing sur des périodes définies. Utilisez cette table pour l'analyse du ROI des canaux et les rapports de performance marketing.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
period_start | date | Date de début de la période d'attribution |
period_end | date | Date de fin de la période d'attribution |
marketing_channel | varchar | Nom du canal marketing |
utm_source | varchar | Source UTM pour cette attribution |
total_revenue | numeric | Revenu total attribué à ce canal |
transaction_count | integer | Nombre de transactions |
unique_customers | integer | Nombre de clients payants uniques |
conversion_rate | numeric | Taux de conversion sous forme décimale |
identified_users
Utilisateurs connus qui ont été identifiés via l'API d'identification des visiteurs. Inclut l'état de l'abonnement et les données de revenu à vie.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
email | varchar | Adresse e-mail de l'utilisateur |
name | varchar | Nom d'affichage de l'utilisateur |
total_revenue | numeric | Revenu à vie de cet utilisateur |
subscription_status | varchar | État actuel : active, canceled, past_due, trialing |
subscription_plan | varchar | Nom du plan (par exemple, Pro, Enterprise) |
total_sessions | integer | Nombre total de sessions |
first_seen_at | timestamptz | Quand l'utilisateur a été identifié pour la première fois |
last_seen_at | timestamptz | Horodatage de l'activité la plus récente |
Objectifs et entonnoirs
custom_goals
Définitions d'objectifs configurées dans le tableau de bord. Chaque objectif suit une action utilisateur spécifique telle que la visite d'une URL ou le déclenchement d'un événement personnalisé.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
name | varchar | Nom d'objectif lisible par l'homme |
goal_type | varchar | Type d'objectif : url, event, pageview |
url_pattern | text | Motif d'URL à mettre en correspondance (pour les objectifs de type URL) |
event_name | varchar | Nom d'événement à mettre en correspondance (pour les objectifs de type événement) |
is_active | boolean | Si l'objectif est actuellement actif |
default_value | numeric | Valeur monétaire par défaut par réalisation |
goal_completions
Événements de conversion d'objectifs individuels. Chaque ligne représente une seule instance d'un visiteur réalisant un objectif défini.
| Colonne | Type | Description |
|---|---|---|
goal_id | uuid | Référence à la définition de l'objectif |
website_id | uuid | Identifiant du site Web |
visitor_id | text | Visiteur qui a réalisé l'objectif |
completion_value | numeric | Valeur de cette réalisation spécifique |
page_url | text | Page où la réalisation s'est produite |
utm_source | varchar | Source UTM au moment de la réalisation |
device_type | varchar | Appareil utilisé |
country_name | varchar | Pays du visiteur |
completed_at | timestamptz | Quand l'objectif a été réalisé |
funnels
Définitions d'entonnoir pour le suivi des conversions multi-étapes.
| Colonne | Type | Description |
|---|---|---|
id | uuid | Identifiant d'entonnoir unique |
website_id | uuid | Identifiant du site Web |
name | varchar | Nom de l'entonnoir |
funnel_steps
Étapes individuelles au sein d'un entonnoir, ordonnées séquentiellement. Joindre avec funnels sur funnel_id pour obtenir la configuration complète de l'entonnoir.
| Colonne | Type | Description |
|---|---|---|
funnel_id | uuid | Référence à l'entonnoir parent |
step_order | integer | Position dans la séquence de l'entonnoir (basée sur 1) |
step_name | varchar | Nom d'affichage pour cette étape |
step_type | varchar | Type d'étape : url, event |
url_pattern | text | Motif d'URL à mettre en correspondance (pour les étapes d'URL) |
event_name | varchar | Nom d'événement à mettre en correspondance (pour les étapes d'événement) |
Erreurs et performance
error_groups
Types d'erreurs groupés avec dénombrements d'occurrences et gravité. Les erreurs sont automatiquement dédupliquées et groupées par type et message.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
error_type | varchar | Catégorie d'erreur : javascript, network, unhandled_rejection |
error_message | text | La chaîne du message d'erreur |
occurrence_count | integer | Nombre total d'occurrences de cette erreur |
user_count | integer | Nombre d'utilisateurs uniques affectés |
severity | varchar | Niveau de gravité : low, medium, high, critical |
status | varchar | Statut du triage : open, resolved, ignored |
first_seen | timestamptz | Quand cette erreur a été enregistrée pour la première fois |
last_seen | timestamptz | Occurrence la plus récente |
error_occurrences
Événements d'erreur individuels avec contexte complet, notamment les traces de pile et les détails d'environnement.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
error_type | varchar | Catégorie d'erreur |
error_message | text | Le message d'erreur |
stacktrace | jsonb | Trace de pile complète en tant que JSON structuré |
page_url | text | Page où l'erreur s'est produite |
browser | varchar | Nom et version du navigateur |
os | varchar | Système d'exploitation |
severity | varchar | Niveau de gravité |
timestamp | timestamptz | Quand l'erreur s'est produite |
performance_metrics
Mesures de Core Web Vitals (LCP, CLS, INP) collectées à partir de la surveillance des utilisateurs réels. Chaque ligne est une mesure unique d'un chargement de page.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
page_url | text | Page où les métriques ont été collectées |
lcp_value | numeric | Largest Contentful Paint en millisecondes |
lcp_rating | varchar | Note LCP : good, needs-improvement, poor |
cls_value | numeric | Score Cumulative Layout Shift |
cls_rating | varchar | Note CLS : good, needs-improvement, poor |
inp_value | integer | Interaction to Next Paint en millisecondes |
inp_rating | varchar | Note INP : good, needs-improvement, poor |
device_type | varchar | Type d'appareil utilisé pour cette mesure |
browser | varchar | Nom du navigateur |
recorded_at | timestamptz | Quand la mesure a été enregistrée |
Surveillance du temps de fonctionnement
uptime_checks
Résultats de vérification du temps de fonctionnement individuels du système de surveillance. Chaque ligne représente un seul ping de contrôle de santé vers votre site Web.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
checked_at | timestamptz | Quand la vérification a été effectuée |
is_up | boolean | Si le site a répondu avec succès |
status_code | integer | Code d'état de réponse HTTP |
response_time_ms | integer | Temps de réponse en millisecondes |
error_message | text | Message d'erreur si la vérification a échoué |
region | varchar | Région de surveillance (par exemple, us-east, eu-west, ap-south) |
uptime_daily
Agrégats de temps de fonctionnement quotidiens. Utilisez ceci pour les rapports SLA et l'analyse des tendances au lieu d'interroger les vérifications individuelles.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
date | date | Date calendaire |
uptime_percentage | numeric | Temps de fonctionnement en pourcentage (par exemple, 99.95) |
avg_response_time_ms | integer | Temps de réponse moyen en millisecondes |
incidents_count | integer | Nombre d'incidents d'indisponibilité |
checks_total | integer | Nombre total de vérifications effectuées |
Comportement de l'utilisateur
heatmap_data
Données de carte thermique de clic et de défilement agrégées sur une superposition de grille. Chaque ligne représente une cellule de grille avec dénombrements d'interactions cumulées.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
page_path | varchar | Chemin de la page pour cette carte thermique |
heatmap_type | varchar | Type : click, scroll, move |
grid_x | smallint | Coordonnée de grille horizontale |
grid_y | smallint | Coordonnée de grille verticale |
hit_count | integer | Nombre d'interactions dans cette cellule de grille |
intensity | numeric | Valeur d'intensité normalisée (0,0 à 1,0) |
heatmap_sessions
Résumés au niveau de la session des données d'interaction de la carte thermique par page.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
page_url | text | URL complète de la page |
total_clicks | integer | Nombre total de clics enregistrés |
total_movements | integer | Nombre total de mouvements de souris enregistrés |
total_scroll_events | integer | Nombre total d'événements de défilement enregistrés |
replay_sessions
Métadonnées d'enregistrement de relecture de session. Chaque ligne représente une session de navigation enregistrée qui peut être relue dans le tableau de bord.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
visitor_id | varchar | Visiteur qui a été enregistré |
duration_ms | integer | Durée d'enregistrement totale en millisecondes |
total_events | integer | Nombre d'événements DOM capturés |
total_size | integer | Taille des données d'enregistrement en octets |
started_at | timestamptz | Quand l'enregistrement a commencé |
frustration_events
Signaux de frustration de l'utilisateur détectés, notamment les clics de rage, les clics morts et les clics d'erreur.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
frustration_type | varchar | Type : rage_click, dead_click, error_click, thrashed_cursor |
page_url | text | Page où la frustration a été détectée |
timestamp | timestamptz | Quand l'événement s'est produit |
scroll_depth_stats
Statistiques agrégées de profondeur de défilement par page, montrant jusqu'où les visiteurs font défiler chaque page.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
page_path | varchar | Chemin de la page |
depth_percentage | smallint | Compartiment de profondeur de défilement (par exemple, 25, 50, 75, 100) |
reach_count | integer | Nombre de visiteurs qui ont atteint cette profondeur |
session_history
Résumés de session terminés avec des métriques d'engagement et de conversion.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
visitor_id | uuid | Identifiant du visiteur |
total_duration_seconds | integer | Durée totale de la session en secondes |
pages_viewed | integer | Nombre de pages vues dans la session |
bounce | boolean | true si le visiteur est parti après une page |
converted | boolean | true si un événement de conversion a été déclenché |
conversion_value | numeric | Valeur de conversion totale pour la session |
B2B et entreprises
b2b_companies
Entreprises identifiées visitant votre site Web, enrichies de données firmographiques provenant de la résolution IP vers entreprise.
| Colonne | Type | Description |
|---|---|---|
id | text | Identifiant d'entreprise unique |
name | text | Nom de l'entreprise |
domain | text | Domaine du site Web de l'entreprise |
industry | text | Classification du secteur |
employee_count | integer | Nombre estimé d'employés |
revenue_range | text | Plage de revenus annuels estimée (par exemple, $10M-$50M) |
b2b_company_visits
Agrégats de visite au niveau de l'entreprise. Joindre avec b2b_companies sur company_id = id pour les détails complets de l'entreprise.
| Colonne | Type | Description |
|---|---|---|
company_id | text | Référence à l'entreprise |
website_id | uuid | Identifiant du site Web |
total_visits | integer | Nombre total de visites de cette entreprise |
total_page_views | integer | Nombre total de pages vues de cette entreprise |
engagement_score | numeric | Score d'engagement calculé (0-100) |
last_visit | timestamptz | Horodatage de la visite la plus récente |
Marketing et campagnes
campaign_performance
Métriques de performance de campagne UTM agrégées par date. Utilisez ceci pour l'analyse du ROI marketing et la comparaison de campagnes.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
utm_source | varchar | Paramètre de source UTM |
utm_campaign | varchar | Nom de la campagne UTM |
visitors | integer | Nombre de visiteurs de cette campagne |
conversions | integer | Nombre de conversions attribuées |
revenue | numeric | Revenu total attribué |
bounce_rate | numeric | Taux de rebond sous forme décimale |
date | date | Date des métriques |
gsc_keyword_data
Données de performance des mots-clés Google Search Console synchronisées via l'intégration GSC. Montre les performances de vos pages dans les résultats de recherche Google.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
query | text | Requête de recherche (mot-clé) |
clicks | integer | Nombre de clics depuis les résultats de recherche |
impressions | integer | Nombre de fois affiché dans les résultats de recherche |
ctr | numeric | Taux de clics sous forme décimale (par exemple, 0.034 = 3,4%) |
position | numeric | Position moyenne dans les résultats de recherche |
date | date | Date des données de recherche |
Événements personnalisés
custom_events
Événements de suivi définis par l'utilisateur envoyés via l'API des événements personnalisés. Chaque ligne représente une seule occurrence d'événement avec des propriétés optionnelles et des données de revenu.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
event_name | varchar | Nom de l'événement personnalisé (par exemple, signup, add_to_cart) |
event_category | varchar | Catégorie d'événement pour le groupement |
visitor_id | uuid | Visiteur qui a déclenché l'événement |
properties | jsonb | Propriétés clé-valeur personnalisées jointes à l'événement |
revenue | numeric | Valeur de revenu associée à cet événement |
page_url | text | Page où l'événement a été déclenché |
La colonne properties est JSONB. Interrogez les propriétés spécifiques à l'aide de properties->>'key_name'. Exemple : WHERE properties->>'plan' = 'pro'.
events
Événements au niveau du système suivis automatiquement par le suivi Zenovay. Inclut les pages vues, les clics, les soumissions de formulaires et autres types d'événements intégrés.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
visitor_id | uuid | Identifiant du visiteur |
event_type | text | Type d'événement : pageview, click, form_submit, video_progress, file_upload, scroll, custom |
event_name | text | Nom d'événement spécifique |
event_value | text | Valeur de chaîne associée à l'événement |
event_data | jsonb | Données d'événement structurées supplémentaires |
timestamp | timestamptz | Quand l'événement s'est produit |
Autre
chart_notes
Annotations de tableau de bord attachées à des dates spécifiques. Ceux-ci apparaissent en tant que marqueurs sur les graphiques de séries chronologiques pour fournir un contexte pour les tendances des données.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
note_date | date | Date à laquelle l'annotation est attachée |
content | text | Contenu textuel de l'annotation |
show_on_chart | boolean | Si l'annotation doit être affichée sur les graphiques du tableau de bord |
alerts
Règles d'alerte configurées qui déclenchent des notifications lorsque les conditions spécifiées sont remplies.
| Colonne | Type | Description |
|---|---|---|
website_id | uuid | Identifiant du site Web |
alert_type | text | Catégorie d'alerte : traffic_spike, traffic_drop, error_rate, uptime, goal |
name | text | Nom d'alerte lisible par l'homme |
conditions | jsonb | Conditions de déclenchement d'alerte en tant que JSON structuré |
status | text | État de l'alerte : active, paused, triggered |
websites
Enregistrements de configuration de site Web. Chaque site Web suivi a une entrée ici avec ses paramètres et son code de suivi.
| Colonne | Type | Description |
|---|---|---|
id | uuid | Identifiant du site Web unique (utilisé comme website_id partout) |
domain | varchar | Domaine du site Web (par exemple, example.com) |
name | varchar | Nom d'affichage du site Web |
is_active | boolean | Si le suivi est actuellement actif |
tracking_code | varchar | Code de suivi unique pour le script intégré |
timezone | varchar | Fuseau horaire pour les agrégations de dates (par exemple, America/New_York) |
Exemples de requêtes
Analytiques de base
SELECT page_url, COUNT(*) as visits, AVG(time_on_page) as avg_time
FROM visitors
WHERE website_id = 'YOUR_WEBSITE_ID'
AND visited_at >= date_trunc('month', now())
GROUP BY page_url
ORDER BY visits DESC
LIMIT 10;SELECT date, visitors, page_views, bounce_rate
FROM analytics_daily
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '30 days'
ORDER BY date ASC;Revenus et paiements
SELECT marketing_channel, SUM(amount) as total_revenue, COUNT(*) as transactions
FROM payments
WHERE website_id = 'YOUR_WEBSITE_ID'
AND status = 'succeeded'
AND created_at >= date_trunc('month', now())
GROUP BY marketing_channel
ORDER BY total_revenue DESC;SELECT email, name, total_revenue, subscription_status, subscription_plan
FROM identified_users
WHERE website_id = 'YOUR_WEBSITE_ID'
ORDER BY total_revenue DESC
LIMIT 20;Objectifs et entonnoirs
SELECT utm_source, COUNT(*) as completions, SUM(completion_value) as total_value
FROM goal_completions
WHERE website_id = 'YOUR_WEBSITE_ID'
AND completed_at >= date_trunc('week', now())
GROUP BY utm_source
ORDER BY completions DESC;Erreurs et performance
SELECT error_type, error_message, occurrence_count, user_count, severity, last_seen
FROM error_groups
WHERE website_id = 'YOUR_WEBSITE_ID'
AND status = 'open'
ORDER BY occurrence_count DESC
LIMIT 10;SELECT page_url,
ROUND(AVG(lcp_value), 0) as avg_lcp_ms,
ROUND(AVG(cls_value), 3) as avg_cls,
ROUND(AVG(inp_value), 0) as avg_inp_ms
FROM performance_metrics
WHERE website_id = 'YOUR_WEBSITE_ID'
AND recorded_at >= now() - interval '7 days'
GROUP BY page_url
ORDER BY avg_lcp_ms DESC
LIMIT 10;Surveillance du temps de fonctionnement
SELECT date, uptime_percentage, avg_response_time_ms, incidents_count
FROM uptime_daily
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '30 days'
ORDER BY date ASC;Comportement de l'utilisateur
SELECT page_url, frustration_type, COUNT(*) as occurrences
FROM frustration_events
WHERE website_id = 'YOUR_WEBSITE_ID'
AND timestamp >= now() - interval '7 days'
GROUP BY page_url, frustration_type
ORDER BY occurrences DESC
LIMIT 10;SELECT visitor_id, duration_ms / 1000 as duration_seconds, total_events, started_at
FROM replay_sessions
WHERE website_id = 'YOUR_WEBSITE_ID'
AND duration_ms > 120000
ORDER BY started_at DESC
LIMIT 20;B2B et entreprises
SELECT c.name, c.industry, c.employee_count, v.total_visits, v.engagement_score, v.last_visit
FROM b2b_company_visits v
JOIN b2b_companies c ON c.id = v.company_id
WHERE v.website_id = 'YOUR_WEBSITE_ID'
ORDER BY v.engagement_score DESC
LIMIT 15;Marketing et campagnes
SELECT utm_source, utm_campaign, SUM(visitors) as total_visitors,
SUM(conversions) as total_conversions, SUM(revenue) as total_revenue,
ROUND(AVG(bounce_rate), 3) as avg_bounce_rate
FROM campaign_performance
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '30 days'
GROUP BY utm_source, utm_campaign
ORDER BY total_revenue DESC;SELECT query, SUM(clicks) as total_clicks, SUM(impressions) as total_impressions,
ROUND(AVG(ctr), 4) as avg_ctr, ROUND(AVG(position), 1) as avg_position
FROM gsc_keyword_data
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '28 days'
GROUP BY query
ORDER BY total_clicks DESC
LIMIT 20;Événements personnalisés
SELECT event_name, event_category, COUNT(*) as occurrences, SUM(revenue) as total_revenue
FROM custom_events
WHERE website_id = 'YOUR_WEBSITE_ID'
AND properties->>'source' IS NOT NULL
GROUP BY event_name, event_category
ORDER BY occurrences DESC
LIMIT 20;Autre
SELECT note_date, content
FROM chart_notes
WHERE website_id = 'YOUR_WEBSITE_ID'
AND note_date >= date_trunc('month', now())
AND show_on_chart = true
ORDER BY note_date ASC;SELECT name, alert_type, status, conditions
FROM alerts
WHERE website_id = 'YOUR_WEBSITE_ID'
AND status = 'active'
ORDER BY name;