Tabellen für sql-Abfragen
Der Befehl sql`…` ist Teil des Server SDK: Er liest Daten direkt aus der
Qubix-Datenbank und steht in Skripten,
Britva-Automationsregeln und Website-Handlern zur Verfügung. Dies ist
eine Referenz dafür, welche Tabellen und Spalten Sie erreichen können und nach welchen Regeln.
Wie der Zugriff funktioniert
- Nur Lesen. Es sind ausschließlich Abfragen erlaubt, die mit
SELECT,WITH,SHOW,DESCRIBEoderEXPLAINbeginnen. Datenänderungen (INSERT,UPDATE,DELETE) sowie der Zugriff auf externe Quellen innerhalb einer Abfrage sind gesperrt. - Sichere Parameter. Werte, die über
${…}übergeben werden, werden stets als Abfrageparameter übergeben und nicht in den Text eingefügt. Sie müssen nichts manuell escapen, und Query-Injection ist nicht möglich. - Sie sehen nur Ihre eigenen Daten. Die Abfrage wird innerhalb der Berechtigungen Ihrer Rolle ausgeführt: Sie erhalten genau die Zeilen, die Sie auch in den Berichten sehen dürfen. Daten anderer Personen sind nicht zugänglich.
- Ein Größenlimit. Eine einzelne Abfrage gibt höchstens einige Tausend Zeilen zurück (der Administrator
legt die genaue Obergrenze fest). Aggregieren Sie bei großen Datensätzen direkt in der Abfrage —
count(),sum(),GROUP BY.
Der Tabellenname wird ohne Datenbankpräfix angegeben — also einfach qubix_events.
qubix_events — der Ereignisstrom
Die Haupttabelle: eine Zeile pro Besucherereignis und pro Konversionsaktion. Damit können Sie alles sehen, was mit dem Traffic passiert — vom ersten Besuch bis zur Einzahlung und zur Push-Zustellung.
Ereignis und Identität
| Spalte | Bedeutung |
|---|---|
event | Der Ereignistyp (Werte in der Tabelle unten) |
event_time | Der Ereigniszeitpunkt |
piuid | Die Besucher-ID (beständig über Besuche hinweg) |
pwa_id | Die PWA, zu der das Ereignis gehört |
domain | Die Domain, auf der das Ereignis aufgetreten ist |
url | Die Seitenadresse |
Geo und Gerät
| Spalte | Bedeutung |
|---|---|
geo, country | Das Land des Besuchers (per GeoIP) |
city | Die Stadt |
language | Die Browsersprache |
ua | Der User-Agent |
ip | Die IP-Adresse |
device | Gerätedaten (JSON) |
Tracking und Attribution
| Spalte | Bedeutung |
|---|---|
click_id | Die Tracker-Click-ID |
campaign_id | Die Tracker-Kampagne |
ad_id | Die Anzeige |
sub_id_1 … sub_id_16 | Benutzerdefinierte Tracker-Tags |
fbc, fbp, fbclid | Facebook-Attributionsparameter |
gclid, ttclid | Google / TikTok Attribution |
source_clid | Die ursprüngliche Click-ID |
pixel | Die Pixel-ID |
params | Alle Adressparameter (eine „Schlüssel → Wert"-Zuordnung) |
Angebot
| Spalte | Bedeutung |
|---|---|
offer_id | Das Angebot |
offer_url | Der Angebotslink |
Push
| Spalte | Bedeutung |
|---|---|
push_campaign_id | Die Push-Kampagne |
subscription_id | Das Push-Abonnement des Besuchers |
message_id | Die ID der gesendeten Nachricht |
push_title, push_body | Der Push-Text |
Konversion
| Spalte | Bedeutung |
|---|---|
status | Der Konversionsstatus |
revenue | Der Umsatz für das Ereignis |
currency | Die Währung |
response_code | Der Antwortcode (für serverseitige Ereignisse) |
error_message | Der Fehlertext, falls vorhanden |
external_id | Eine externe Kennung |
extra | Zusätzliche Ereignisdaten (JSON) |
event-Werte
Die wichtigsten Ereignistypen, die im Strom vorkommen:
| Gruppe | Werte |
|---|---|
| Besuche und Ansichten | campaign_visit, render, white_page |
| PWA-Installation | 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 |
| Konversionen | reg (Registrierung), dep (Einzahlung) |
Die Ereigniswerte für Abonnements und Installationen entsprechen den Browser SDK-Ereignissen —
was window.sdk im Browser sendet, landet direkt hier.
Beispiel
Wie viele Besucher aus jedem Land haben im letzten Tag Push erlaubt:
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)
Weitere Tabellen
| Tabelle | Inhalt |
|---|---|
pwa_apps | PWA-App-Einstellungen: pwa_id, name, status, country, category, rating, downloads, push_placement und weitere Konstruktorfelder |
push_subscriptions | Push-Abonnements: subscription_id, pwa_id, geo_country, active, subscribed_at |
push_campaigns | Push-Kampagnen: push_campaign_id, name, status, target_geo |
Vorgefertigte Berichtsmetriken (Ausgaben, Umsatz, ROAS, Konversionen pro Anzeige) lassen sich einfacher nicht
aus dem Rohdatenstrom, sondern aus den Feldern des ad-Objekts entnehmen — die vollständige Liste finden Sie unter
Metriken und Spalten.
Dienstgeheimnisse sind aus Abfragen nicht zugänglich — beispielsweise können die privaten Schlüssel für Push nicht ausgelesen werden. Eine Abfrage arbeitet stets nur lesend und ausschließlich innerhalb der Berechtigungen Ihrer Rolle.