Aller au contenu principal

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, DESCRIBE ou EXPLAIN sont 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é

ColonneDescription
eventLe type d'événement (valeurs dans le tableau ci-dessous)
event_timeL'horodatage de l'événement
piuidL'identifiant du visiteur (persistant entre les visites)
pwa_idLa PWA à laquelle appartient l'événement
domainLe domaine sur lequel l'événement s'est produit
urlL'adresse de la page

Géographie et appareil

ColonneDescription
geo, countryLe pays du visiteur (par GeoIP)
cityLa ville
languageLa langue du navigateur
uaLe User-Agent
ipL'adresse IP
deviceLes données de l'appareil (JSON)

Tracking et attribution

ColonneDescription
click_idL'identifiant de clic du tracker
campaign_idLa campagne du tracker
ad_idL'annonce
sub_id_1sub_id_16Paramètres personnalisés du tracker
fbc, fbp, fbclidParamètres d'attribution Facebook
gclid, ttclidAttribution Google / TikTok
source_clidL'identifiant de clic d'origine
pixelL'identifiant du pixel
paramsTous les paramètres d'URL (une carte « clé → valeur »)

Offre

ColonneDescription
offer_idL'offre
offer_urlLe lien de l'offre

Push

ColonneDescription
push_campaign_idLa campagne push
subscription_idL'abonnement push du visiteur
message_idL'identifiant du message envoyé
push_title, push_bodyLe texte de la notification push

Conversion

ColonneDescription
statusLe statut de conversion
revenueLe revenu associé à l'événement
currencyLa devise
response_codeLe code de réponse (pour les événements côté serveur)
error_messageLe message d'erreur, le cas échéant
external_idUn identifiant externe
extraDonnées supplémentaires de l'événement (JSON)

Valeurs du champ event

Les principaux types d'événements présents dans le flux :

GroupeValeurs
Visites et affichagescampaign_visit, render, white_page
Installation PWAinstall_accepted, install_rejected, install_blocked, installed, launch_pwa, install_fallback_redirect
Pushpush_prompt_shown, push_allow, push_deny, push_ignored, push_subscribe, push_sent, push_shown, push_click, push_dismiss, push_expired
Conversionsreg (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 :

JavaScript
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

TableContenu
pwa_appsParamètres des applications PWA : pwa_id, name, status, country, category, rating, downloads, push_placement et autres champs du constructeur
push_subscriptionsAbonnements push : subscription_id, pwa_id, geo_country, active, subscribed_at
push_campaignsCampagnes 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.

Attention

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.

Pour aller plus loin