Tabele dla zapytań sql
Polecenie sql`…` jest częścią Server SDK: odczytuje dane bezpośrednio z bazy Qubix i jest dostępne w skryptach,
regułach automatycznych Britva oraz procedurach obsługi witryny. To dokumentacja tego, które tabele i kolumny są dostępne oraz na jakich zasadach.
Jak działa dostęp
- Tylko do odczytu. Dozwolone są wyłącznie zapytania zaczynające się od
SELECT,WITH,SHOW,DESCRIBElubEXPLAIN. Wszelkie zmiany danych (INSERT,UPDATE,DELETE) oraz odwołania do zewnętrznych źródeł z wnętrza zapytania są zablokowane. - Bezpieczne parametry. Wartości przekazywane przez
${…}trafiają zawsze jako parametry zapytania, a nie jako tekst wklejony do treści. Nie trzeba niczego ręcznie escapować, a podstawianie w zapytaniu jest niemożliwe. - Widoczne są tylko własne dane. Zapytanie działa w granicach uprawnień Pańskiej/Pani roli: otrzymuje się dokładnie te wiersze, które są widoczne w raportach. Dane innych osób są niedostępne.
- Limit rozmiaru. Pojedyncze zapytanie zwraca co najwyżej kilka tysięcy wierszy (dokładną granicę
ustawia administrator). W przypadku dużych zbiorów należy agregować bezpośrednio w zapytaniu —
count(),sum(),GROUP BY.
Nazwę tabeli podaje się bez prefiksu bazy danych — po prostu qubix_events.
qubix_events — strumień zdarzeń
Główna tabela: jeden wiersz na każde zdarzenie odwiedzającego i każdą akcję konwersyjną. Pozwala zobaczyć wszystko, co dzieje się z ruchem — od pierwszej wizyty po depozyt i dostarczenie push.
Zdarzenie i tożsamość
| Kolumna | Co to jest |
|---|---|
event | Typ zdarzenia (wartości w tabeli poniżej) |
event_time | Czas zdarzenia |
piuid | Identyfikator odwiedzającego (trwały między wizytami) |
pwa_id | PWA, do którego należy zdarzenie |
domain | Domena, na której zdarzenie nastąpiło |
url | Adres strony |
Geo i urządzenie
| Kolumna | Co to jest |
|---|---|
geo, country | Kraj odwiedzającego (według GeoIP) |
city | Miasto |
language | Język przeglądarki |
ua | User-Agent |
ip | Adres IP |
device | Dane urządzenia (JSON) |
Tracking i atrybucja
| Kolumna | Co to jest |
|---|---|
click_id | Identyfikator kliknięcia trackera |
campaign_id | Kampania trackera |
ad_id | Reklama |
sub_id_1 … sub_id_16 | Niestandardowe tagi trackera |
fbc, fbp, fbclid | Parametry atrybucji Facebook |
gclid, ttclid | Atrybucja Google / TikTok |
source_clid | Oryginalny identyfikator kliknięcia |
pixel | Identyfikator piksela |
params | Wszystkie parametry adresu (mapa klucz → wartość) |
Oferta
| Kolumna | Co to jest |
|---|---|
offer_id | Oferta |
offer_url | Link do oferty |
Push
| Kolumna | Co to jest |
|---|---|
push_campaign_id | Kampania push |
subscription_id | Subskrypcja push odwiedzającego |
message_id | Identyfikator wysłanej wiadomości |
push_title, push_body | Tekst push |
Konwersja
| Kolumna | Co to jest |
|---|---|
status | Status konwersji |
revenue | Przychód za zdarzenie |
currency | Waluta |
response_code | Kod odpowiedzi (dla zdarzeń po stronie serwera) |
error_message | Tekst błędu, jeśli wystąpił |
external_id | Identyfikator zewnętrzny |
extra | Dodatkowe dane zdarzenia (JSON) |
Wartości event
Główne typy zdarzeń widoczne w strumieniu:
| Grupa | Wartości |
|---|---|
| Wizyty i wyświetlenia | campaign_visit, render, white_page |
| Instalacja 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 |
| Konwersje | reg (rejestracja), dep (depozyt) |
Wartości zdarzeń subskrypcji i instalacji odpowiadają zdarzeniom Browser SDK — to, co
window.sdk wysyła z przeglądarki, trafia dokładnie tutaj.
Przykład
Ilu odwiedzających z każdego kraju zezwoliło na push w ciągu ostatniej doby:
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)
Inne tabele
| Tabela | Co zawiera |
|---|---|
pwa_apps | Ustawienia aplikacji PWA: pwa_id, name, status, country, category, rating, downloads, push_placement i inne pola kreatora |
push_subscriptions | Subskrypcje push: subscription_id, pwa_id, geo_country, active, subscribed_at |
push_campaigns | Kampanie push: push_campaign_id, name, status, target_geo |
Gotowe metryki raportowe (wydatki, przychód, ROAS, konwersje per reklama) łatwiej pobierać nie
z surowego strumienia, lecz z pól obiektu ad — pełna lista w artykule
Metryki i kolumny.
Tajemnice serwisowe są niedostępne z poziomu zapytań — na przykład nie można odczytać kluczy prywatnych dla push. Zapytanie zawsze działa w trybie tylko do odczytu i wyłącznie w granicach uprawnień Pańskiej/Pani roli.