Tables pour les requêtes sql
La commande sql`…` fait partie du Server SDK : elle lit les données directement depuis la
base de données Qubix et est disponible dans les scripts,
les règles automatiques Britva et les gestionnaires de site. Cette page
constitue une référence sur les tables et colonnes accessibles, ainsi que sur les règles d'accès applicables.
Fonctionnement des accès
- Lecture seule. Seules les requêtes commençant par
SELECT,WITH,SHOW,DESCRIBEouEXPLAINsont autorisées. Toute modification de données (INSERT,UPDATE,DELETE) et tout appel à des sources externes depuis l'intérieur de la requête sont bloqués. - Paramètres sécurisés. Les valeurs transmises via
${…}sont toujours traitées comme des paramètres de requête, jamais interpolées dans le texte. Aucun échappement manuel n'est nécessaire, et l'injection de requête est impossible. - Vous ne voyez que vos propres données. La requête s'exécute dans le périmètre des permissions de votre rôle : vous obtenez exactement les lignes auxquelles vous avez accès dans les rapports. Les données d'autres utilisateurs ne sont pas accessibles.
- Limite de taille. Une seule requête retourne au maximum quelques milliers de lignes (le
plafond exact est défini par l'administrateur). Pour les grandes sélections, agrégez directement
dans la requête —
count(),sum(),GROUP BY.
Le nom de table s'écrit sans préfixe de base de données — simplement qubix_events.
qubix_events — le flux d'événements
La table principale : une ligne par événement visiteur et par action de conversion. Elle vous permet de suivre tout ce qui se passe sur le trafic — de la première visite jusqu'au dépôt et à la livraison des notifications push.
Événement et identité
| Colonne | Description |
|---|---|
event | Le type d'événement (valeurs dans le tableau ci-dessous) |
event_time | L'horodatage de l'événement |
piuid | L'identifiant du visiteur (persistant entre les visites) |
pwa_id | La PWA à laquelle appartient l'événement |
domain | Le domaine sur lequel l'événement s'est produit |
url | L'adresse de la page |
Géographie et appareil
| Colonne | Description |
|---|---|
geo, country | Le pays du visiteur (par GeoIP) |
city | La ville |
language | La langue du navigateur |
ua | Le User-Agent |
ip | L'adresse IP |
device | Les données de l'appareil (JSON) |
Tracking et attribution
| Colonne | Description |
|---|---|
click_id | L'identifiant de clic du tracker |
campaign_id | La campagne du tracker |
ad_id | L'annonce |
sub_id_1 … sub_id_16 | Paramètres personnalisés du tracker |
fbc, fbp, fbclid | Paramètres d'attribution Facebook |
gclid, ttclid | Attribution Google / TikTok |
source_clid | L'identifiant de clic d'origine |
pixel | L'identifiant du pixel |
params | Tous les paramètres d'URL (une carte « clé → valeur ») |
Offre
| Colonne | Description |
|---|---|
offer_id | L'offre |
offer_url | Le lien de l'offre |
Push
| Colonne | Description |
|---|---|
push_campaign_id | La campagne push |
subscription_id | L'abonnement push du visiteur |
message_id | L'identifiant du message envoyé |
push_title, push_body | Le texte de la notification push |
Conversion
| Colonne | Description |
|---|---|
status | Le statut de conversion |
revenue | Le revenu associé à l'événement |
currency | La devise |
response_code | Le code de réponse (pour les événements côté serveur) |
error_message | Le message d'erreur, le cas échéant |
external_id | Un identifiant externe |
extra | Données supplémentaires de l'événement (JSON) |
Valeurs du champ event
Les principaux types d'événements présents dans le flux :
| Groupe | Valeurs |
|---|---|
| Visites et affichages | campaign_visit, render, white_page |
| Installation PWA | install_accepted, install_rejected, install_blocked, installed, launch_pwa, install_fallback_redirect |
| Push | push_prompt_shown, push_allow, push_deny, push_ignored, push_subscribe, push_sent, push_shown, push_click, push_dismiss, push_expired |
| Conversions | reg (inscription), dep (dépôt) |
Les valeurs d'événements d'abonnement et d'installation correspondent aux événements du
Browser SDK — ce que window.sdk envoie depuis le navigateur arrive
directement ici.
Exemple
Nombre de visiteurs par pays ayant accepté les notifications push au cours des dernières 24 heures :
const rows = sql`
SELECT geo, count() AS allowed
FROM qubix_events
WHERE event = 'push_allow'
AND event_time >= now() - INTERVAL 1 DAY
GROUP BY geo
ORDER BY allowed DESC`
for (const row of rows) console.log(row.geo, row.allowed)
Autres tables
| Table | Contenu |
|---|---|
pwa_apps | Paramètres des applications PWA : pwa_id, name, status, country, category, rating, downloads, push_placement et autres champs du constructeur |
push_subscriptions | Abonnements push : subscription_id, pwa_id, geo_country, active, subscribed_at |
push_campaigns | Campagnes push : push_campaign_id, name, status, target_geo |
Les métriques de rapport prêtes à l'emploi (dépenses, revenus, ROAS, conversions par annonce) sont
plus facilement accessibles non pas depuis le flux brut, mais depuis les champs de l'objet ad —
la liste complète se trouve dans Métriques et colonnes.
Les secrets de service ne sont pas accessibles depuis les requêtes — par exemple, les clés privées pour les notifications push ne peuvent pas être lues. Une requête fonctionne toujours en lecture seule et uniquement dans le périmètre des permissions de votre rôle.