Перейти к основному содержимому

Таблицы для запросов sql

Команда sql`…` — часть Server SDK: она читает данные напрямую из базы Qubix и доступна в скриптах, автоправилах Britva и обработчиках сайта. Это справочник по тому, к каким таблицам и колонкам можно обращаться и по каким правилам.

Как работает доступ

  • Только чтение. Разрешены запросы, которые начинаются с SELECT, WITH, SHOW, DESCRIBE или EXPLAIN. Любые изменения данных (INSERT, UPDATE, DELETE) и обращения к внешним источникам внутри запроса заблокированы.
  • Безопасные параметры. Значения, переданные через ${…}, всегда уходят как параметры запроса, а не подставляются в текст. Экранировать вручную ничего не нужно, подмена запроса невозможна.
  • Видно только своё. Запрос выполняется в рамках прав вашей роли: вы получаете ровно те строки, которые вам разрешено видеть в отчётах. Чужие данные из запроса недоступны.
  • Ограничение на размер. Один запрос возвращает не больше нескольких тысяч строк (точный потолок задаёт администратор в настройках). Для больших выборок агрегируйте прямо в запросе — count(), sum(), GROUP BY.

Имя таблицы указывается без префикса базы — просто qubix_events.

qubix_events — поток событий

Главная таблица: одна строка на каждое событие посетителя и на каждое действие по конверсии. Через неё видно всё, что происходит с трафиком, — от первого захода до депозита и доставки пуша.

Событие и идентификация

КолонкаЧто это
eventТип события (значения — в таблице ниже)
event_timeВремя события
piuidИдентификатор посетителя (сквозной между заходами)
pwa_idPWA-приложение, к которому относится событие
domainДомен, на котором произошло событие
urlАдрес страницы

Гео и устройство

КолонкаЧто это
geo, countryСтрана посетителя (по GeoIP)
cityГород
languageЯзык браузера
uaUser-Agent
ipIP-адрес
deviceДанные об устройстве (JSON)

Трекинг и атрибуция

КолонкаЧто это
click_idИдентификатор клика в трекере
campaign_idКампания трекера
ad_idОбъявление
sub_id_1sub_id_16Пользовательские метки трекера
fbc, fbp, fbclidПараметры атрибуции Facebook
gclid, ttclidАтрибуция Google / TikTok
source_clidИсходный click id
pixelИдентификатор пикселя
paramsВсе параметры адреса (словарь «ключ → значение»)

Оффер

КолонкаЧто это
offer_idОффер
offer_urlСсылка оффера

Пуши

КолонкаЧто это
push_campaign_idПуш-кампания
subscription_idПуш-подписка посетителя
message_idИдентификатор отправленного сообщения
push_title, push_bodyТекст пуша

Конверсия

КолонкаЧто это
statusСтатус конверсии
revenueДоход по событию
currencyВалюта
response_codeКод ответа (для серверных событий)
error_messageТекст ошибки, если была
external_idВнешний идентификатор
extraДополнительные данные события (JSON)

Значения event

Основные типы событий, которые встречаются в потоке:

ГруппаЗначения
Заходы и показыcampaign_visit, render, white_page
Установка PWAinstall_accepted, install_rejected, install_blocked, installed, launch_pwa, install_fallback_redirect
Пушиpush_prompt_shown, push_allow, push_deny, push_ignored, push_subscribe, push_sent, push_shown, push_click, push_dismiss, push_expired
Конверсииreg (регистрация), dep (депозит)

Значения событий подписок и установок совпадают с событиями Browser SDK — то, что отправляет window.sdk из браузера, попадает именно сюда.

Пример

Сколько посетителей из каждой страны разрешили пуши за последние сутки:

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)

Другие таблицы

ТаблицаЧто внутри
pwa_appsНастройки PWA-приложений: pwa_id, name, status, country, category, rating, downloads, push_placement и другие поля конструктора
push_subscriptionsПуш-подписки: subscription_id, pwa_id, geo_country, active, subscribed_at
push_campaignsПуш-кампании: push_campaign_id, name, status, target_geo

Готовые метрики отчётов (расход, доход, ROAS, конверсии по объявлениям) удобнее брать не из сырого потока, а из полей объекта ad — их полный список в Метриках и колонках.

Внимание

Служебные секреты недоступны из запросов — например, приватные ключи для пушей прочитать нельзя. Запрос всегда работает только на чтение и только в рамках прав вашей роли.

Что дальше