Експорт даних у таблиці BigQuery
Налаштуйте експорт даних у таблиці, щоб регулярно оновлювати інформацію про аудиторію, активність контактів і результати кампаній в BigQuery. Доступні набори даних для експорту:
broadcastscontactActivitiescontactsdeviceseventsmessagesorderItemsordersrevenueworkflows
Як працює експорт
Щоденна черга починається о 00:00 UTC, і акаунти вивантажуються один за одним, тож запуск для вашого акаунта може початися будь-коли протягом доби. Сам запуск триває від кількох секунд до приблизно двох годин залежно від обсягу змінених даних, і BigQuery додає власний час на злиття тимчасових таблиць. Не прив'язуйте своє завдання до фіксованого часу — краще перевіряйте появу нових даних у таблицях.
Після налаштування експорту перша синхронізація відбувається на наступному циклі, а не одразу. Якщо даних немає значно пізніше за це вікно, спершу перевірте, чи в обраних наборах узагалі є що вивантажувати для вашого акаунта — можливо, дані такого типу ще не формувалися. Якщо проблема лишається, зверніться в підтримку.
Якщо експорт завершується з помилкою, eSputnik надсилає сповіщення на email і в App Inbox акаунта (іконка дзвіночка у верхньому меню). Сповіщення надходить не частіше ніж раз на добу. Коли причину помилки усунено, наступний експорт продовжується з місця, де зупинився попередній.
У списку експортів статус та час останнього запуску не відображаються: про збій повідомить сповіщення, а появу нових даних перевіряйте в таблицях BigQuery.
Перший експорт не обмежений попередньою добою: він містить історію, яка вже є в акаунті, і запускати щось вручну не потрібно. Чого він не додасть — це даних, які ніколи не збиралися; глибину для кожного набору дивіться в статті Інтеграція eSputnik і Google BigQuery. Для акаунта з дуже великою базою контактів перший експорт може тривати кілька днів, а наступні запуски переносять лише зміни й завершуються значно швидше.
Створювати таблиці BigQuery заздалегідь не потрібно: вони генеруються автоматично під час першого експорту й оновлюються далі, а їхні назви відповідають наборам даних. Поряд з основними під час синхронізації з'являються тимчасові таблиці patch_<назва таблиці>_<UUID>: зміни спершу завантажуються в них, потім BigQuery зливає їх в основну таблицю й автоматично видаляє тимчасову. Назви таблиць — ні основних, ні тимчасових — змінити не можна. Якщо після синхронізації таблиці patch_ лишаються в наборі даних, зверніться в підтримку.
Ви обираєте набори даних і колонки для експорту, але не рядки — фільтрувати експорт за значенням не можна, тож вивантажується кожен рядок обраного набору. Вибірку на кшталт контактів з emailStatus = UNSUBSCRIBED треба робити на своєму боці, запитом до вивантаженої таблиці.
Набір contacts вивантажується повністю — усі контакти акаунта; він і дані розсилок синхронізуються за весь час існування акаунта. contactActivities — єдиний набір з обмеженням глибини: до 90 днів активності контактів, і не раніше за момент, коли для акаунта ввімкнули збір активності, тож при пізнішому ввімкненні доступна глибина менша.
Цифри з contactActivities не збігаються зі звітом за розсилкою — і не мають збігатися. Кожне відкриття записується окремим рядком, а звіт враховує унікальні відкриття — одне на контакт, тому запит до вивантаження дасть більше активності, ніж показує звіт. Щоб наблизитися до звіту, беріть один статус на пару контакт і iid — ідентифікатор конкретного відправлення. Повністю цифри все одно не збігатимуться.
Створення джерела даних для експорту даних
- Перейдіть у Налаштування → Експорт даних → Новий експорт даних → BigQuery.

- Завантажте файл ключа і позначте галочками ті набори даних, які бажаєте вивантажувати. Потім натисніть Зберегти.

Підключення буде відображено в розділі Експорт даних, тут ви можете змінити його налаштування.

Список параметрів даних для експорту
Broadcasts
Параметр | Тип даних | Опис |
|---|---|---|
| createdDate | timestamp | Дата та час створення повідомлення (формат: '2021-10-08 11:11:02') |
| groupId | int | ID груп, що брали участь у розсилці |
| id | int | ID розсилки |
| mediaType | varchar (50) | Медіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget) |
| messageId | int | ID повідомлення |
| name | varchar (1000) | Назва розсилки |
| startedDate | timestamp | Дата та час відправки розсилки (формат: '2021-10-08 11:11:02') |
| status | varchar (50) | Статуси розсилки:
|
| updatedDate | timestamp | Дата та час оновлення розсилки (формат: '2021-10-08 11:11:02') |
ContactActivities
Параметр | Тип даних | Опис |
|---|---|---|
| activity (activityStatus) * | string | Статус активності:
|
| workflowInstanceId | string | Ідентифікатор окремого запуску сценарію. Використовуйте його для угрупування розсилок у рамках запуску одного сценарію. |
| broadcastId | int | ID розсилки |
| campaignType | string | Тип розсилки:
|
| clickEventLink | string | Містить посилання, яке клікнув контакт (статус CLICKED) |
| contactId | int | ID контакту в eSputnik (Внутрішній) |
| errorCode (statusDescription)* | string | Помилка доставки та опис. Для активностей email зі статусом UNDELIVERED тут може міститися необроблена причина відмови SMTP або код, що не належить SMTP, наприклад UNSUBSCRIBED, BLACKLISTED, MEDIA_LOCATOR_FORBIDDEN чи GENERAL_EMAIL_ERROR. |
| eventKey | string | Ключ події |
| eventTypeKey | string | Ключ типу події |
| eventId | string | Ідентифікатор події, яка запустила сценарій |
| externalCustomerId | string | ID контакту у вашій системі (Зовнішній) |
| iid | string | Ідентифікатор конкретного відправлення |
| mediaType | string | Медіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App, Telegram) |
| messageInstanceId | int | Службове поле |
| messageLanguageCode | string | Код мови повідомлення |
| messageName | string | Назва повідомлення в обліковому записі eSputnik |
| messageId | int | ID повідомлення |
| imId | int | Ідентифікатор окремого повідомлення. Використовуйте його, щоб пов’язувати активності контакту з конкретним повідомленням. |
| messageTags | string | Мітки повідомлення |
| messageURL | string | Містить посилання на веб-версію email |
| osName | string | Операційна система пристрою |
| osType | string | Тип пристрою |
| senderName | string | Ім'я відправника у Viber |
| started (activityDateTime)* | timestamp | Дата та час активності: для відправки — час відправки, для кожного наступного статусу — час цього статусу (формат: '2021-10-08 11:11:02') |
| utmCampaign | string | UTM-мітка розсилки. Береться з посилання, на яке клікнув контакт, тому значення є лише в рядках зі статусом CLICKED. У рядках зі DELIVERED чи READ UTM-мітки немає, і налаштування, яке це змінює, відсутнє. |
| workflowId | string | ID сценарію |
| workflowBlockId | string | ID блока сценарію |
| smsParts | int | Кількість частин SMS |
- Поле буде видалено як застаріле; використовуйте поле, вказане у дужках
Contacts
Параметр | Тип даних | Опис |
|---|---|---|
| contactId | bigint | ID контакту в eSputnik (Внутрішній) |
| contactSource | varchar (50) | Джерело контакту:
|
| createdDate | timestamp | Дата та час створення контакту (формат: '2021-10-08 11:11:02') |
| varchar (50) | Email контакту | |
| emailDomain | varchar (100) | Домен email |
| emailStatus | varchar (50) | Статус email |
| externalCustomerId | varchar (100) | ID контакту у вашій системі (Зовнішній) |
| firstName | varchar (50) | Ім'я контакту |
| languageCode | varchar (20) | Код мови повідомлень |
| lastClickedDate | timestamp | Дата та час останнього кліку (формат: '2021-10-08 11:11:02') |
| lastName | varchar (50) | Прізвище контакту |
| lastReceivedDate | timestamp | Дата та час останньої доставки (формат: '2021-10-08 11:11:02') |
| lastSentDate | timestamp | Дата та час останньої відправки (формат: '2021-10-08 11:11:02') |
| lastViewedDate | timestamp | Дата та час останнього відкриття (формат: '2021-10-08 11:11:02') |
| marketId | varchar (100) | Ідентифікатор ринку або відділення, до якого належить контакт |
| sms | varchar (50) | Номер телефону |
| totalClicked | int | Загальна кількість кліків |
| totalReceived | int | Загальна кількість отриманих повідомлень |
| totalSent | int | Загальна кількість надісланих повідомлень |
| totalViewed | int | Загальна кількість переглянутих повідомлень |
Devices
Параметр | Тип даних | Опис |
|---|---|---|
| appVersion | varchar (50) | Версія додатку |
| applicationId | int | ID додатку |
| category | varchar (50) | Категорія |
| contactId | bigint | ID контакту |
| deviceId | varchar (250) | ID пристрою |
| deviceModel | varchar (100) | Модель пристрою |
| externalCustomerId | varchar (100) | Зовнішній ID контакту |
| languageCode | varchar (20) | Код мови |
| osType | varchar (50) | Тип ОС |
| osVersion | varchar (50) | Версія ОС |
| pushToken | varchar (max) | Пуш-токен |
| timeZone | varchar (100) | Часовий пояс |
Events
Параметр | Тип даних | Опис |
|---|---|---|
| contactId | int | ID контакту |
| eventId | int | ID події |
| eventTypeKey | string | Тип події |
| keyValue | string | Ключ події |
| occured | timestamp | Дата і час виникнення (формат: '2021-10-08 11:11:02') |
| paramsJson | json | 50 перших параметрів та значень події (name/value); передається до 300 символів значень. |
Зверніть увагу
- Кількість рядків у таблиці
eventsне збігається з кількістю контактів — кожне виникнення події експортується як окремий рядок. Один контакт може викликати ту саму подію кілька разів (наприклад, через перевстановлення застосунку на новому пристрої або використання кількох пристроїв), і події залишаються в таблиці навіть після видалення пов'язаного контакту. Не використовуйте кількість рядків подій як показник кількості унікальних контактів.paramsJsonмістить лише плоскі (верхнього рівня) параметри події. Вкладені параметри — де значення параметра саме є об'єктом (наприклад, полеsource, вкладене в інший параметр) — не експортуються в BigQuery.
Messages
Зверніть увагуЯкщо ви редагуєте вже експортоване повідомлення (наприклад, додаєте мітку), відповідний рядок у таблиці
messagesу BigQuery заднім числом не оновлюється.
Параметр | Тип даних | Опис |
|---|---|---|
| annoyanceLevel | int | Рівень занепокоєння повідомлення |
| language | varchar (50) | Мова основної версії повідомлення |
| mediaType | varchar (50) | Медіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App) |
| messageId | int | ID повідомлення |
| name | varchar (200) | Назва повідомлення |
| replyTo | varchar (200) | Адреса для відповідей |
| sender | varchar (200) | Відправник |
| subject | varchar (1000) | Тема |
| tags | varchar (200) | Мітки |
| translations | varchar (200) | Мовні версії повідомлення |
| updateDate | timestamp | Дата та час оновлення повідомлення (формат: '2021-10-08 11:11:02') |
OrderItems
Параметр | Тип даних | Опис |
|---|---|---|
| cost | numeric | Вартість товару |
| description | varchar (300) | Опис товару |
| externalProductId | varchar (100) | Зовнішній ID товару |
| imageUrl | varchar (200) | Посилання на зображення товару |
| name | varchar (100) | Назва товару |
| orderDate | timestamp | Дата створення замовлення (формат: '2021-10-08 11:11:02') |
| orderId | int | ID замовлення в eSputnik (Внутрішній) |
| quantity | int | Кількість товарів |
| url | varchar (200) | URL-адреса товару |
Orders
Параметр | Тип даних | Опис |
|---|---|---|
| contactId | int | ID контакту в eSputnik (Внутрішній) |
| marketId | varchar (100) | Ідентифікатор ринку |
| deliveryAddress | varchar (100) | Адреса доставки |
| deliveryMethod | varchar (50) | Спосіб доставки |
| discount | numeric | Знижка |
| varchar (50) | ||
| externalOrderId | varchar (100) | Зовнішній ID замовлення |
| firstName | varchar (50) | Ім'я контакту |
| lastName | varchar (50) | Прізвище контакту |
| orderCreatedDate | timestamp | Дата створення замовлення на eSputnik (формат: '2021-10-08 11:11:02') |
| orderDate | timestamp | Дата створення замовлення (формат: '2021-10-08 11:11:02') |
| orderId | int | ID замовлення в eSputnik (Внутрішній) |
| paymentMethod | varchar (50) | Спосіб оплати |
| Phone | varchar (50) | Номер телефону |
| Status | varchar (50) | Статус замовлення:
|
| totalCost | numeric | Загальна вартість замовлення |
Revenue
Активність повідомлень, надісланих API-ресурсом Send prepared message (smartsend), теж потрапляє в експорт: такі надсилання належать до тригерних, тому campaignType має значення IM.
Параметр | Тип даних | Опис |
|---|---|---|
| activity (activityStatus)* | varchar (100) | Статус активності:
|
| campaignType | varchar (50) | Тип розсилки:
|
| clickEventLink | varchar (1000) | Містить посилання, яке клікнув контакт (статус CLICKED) |
| contactId | bigint | ID контакту в eSputnik (Внутрішній) |
| currency | varchar (3) | Валюта |
| externalCustomerId | varchar (100) | ID контакту у вашій системі (Зовнішній) |
| externalOrderId | varchar (200) | ID замовлення зовнішній |
| mediaType | varchar (50) | Медіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget) |
| messageInstanceId | int | Службове поле |
| messageName | varchar (100) | Назва повідомлення в обліковому записі eSputnik |
| messageTags | varchar (200) | Мітки повідомлення |
| messageUrl | varchar (1000) | Містить посилання на веб-версію email |
| orderDate | timestamp | Дата створення замовлення (формат: '2021-10-08 11:11:02') |
| senderName | varchar (200) | Ім'я відправника у Viber |
| started (activityDateTime)* | timestamp | Дата та час активності: для відправки — час відправки, для кожного наступного статусу — час цього статусу (формат: '2021-10-08 11:11:02') |
| totalCost | numeric | Загальна вартість замовлення |
| utmCampaign | varchar (400) | UTM-мітка розсилки |
| eventKey | string | Ключ події |
| eventTypeKey | string | Ключ типу події |
| messageLanguageCode | string | Код мови повідомлення |
| orderId | int | ID замовлення в eSputnik (Внутрішній) |
| workflowId | int | ID сценарію |
| broadcastId | int | ID розсилки |
- Поле буде видалено як застаріле; використовуйте поле, вказане у дужках
Зверніть увагуІснуючі записи в таблиці Revenue (для замовлень, зроблених після 08.03.2024) можна оновлювати разом з вивантаженням нових замовлень. Оновлення може знадобитися, наприклад, якщо змінилася загальна вартість замовлення.
Workflows
Параметр | Тип даних | Опис |
|---|---|---|
| createdDate | timestamp | Дата створення сценарію |
| status | varchar (100) | Статус сценарію (активний/неактивний) |
| updatedDate | timestamp | Дата оновлення сценарію |
| workflowId | int | ID сценарію |
| workflowName | varchar (100) | Назва сценарію |
Приклади використання
Нижче наведено декілька основних варіантів використання експорту даних з eSputnik до BigQuery.
1. Розширений аналіз ефективності кампанії
- Використаний набір даних: broadcasts, contactActivities, messages
- Опис: BigQuery дає змогу детально аналізувати ефективність кампаній, відстежуючи ключові показники, такі як рейтинги відкриття та кліків. Експорт даних про розсилки, включаючи критерії сегментації, статус доставлення та тип повідомлення, дозволяє маркетологам оцінити, які кампанії досягають найкращого залучення.
- Переваги використання: визначивши найефективніші кампанії, маркетологи можуть оптимізувати контент повідомлень, час і таргетинг, підвищуючи вплив і рентабельність інвестицій майбутніх кампаній.
2. Сегментація клієнтів і аналіз поведінки
- Використаний набір даних: contacts, contactActivities, events
- Опис: BigQuery може обробляти великі обсяги даних про активність клієнтів, дозволяючи виявляти моделі поведінки, такі як частота покупок або бажані канали взаємодії. Це розуміння дозволяє глибше сегментувати аудиторію, щоб точніше таргетувати зацікавлених клієнтів.
- Переваги використання: Кампанії, орієнтовані на поведінку, сприяють збільшенню утримання клієнтів і вищій пожиттєвій цінності клієнтів (LTV), надаючи досвід, який резонує з кожним сегментом аудиторії.
3. Прогнозне моделювання
- Використаний набір даних: contacts, orders, revenue, contactActivities
- Опис: Історичні дані про доходи, покупки та інші активності контактів дозволяють розробляти прогнозні моделі відтоку клієнтів. Це дає змогу виявляти клієнтів із групи ризику та націлювати на них стратегії утримання.
- Переваги використання: Цільові кампанії зменшують відтік і збільшують LTV, допомагаючи утримувати цінних клієнтів і підвищувати довгостроковий дохід.
4. Стратегічний аналіз замовлень і доходів
- Використаний набір даних: orders, orderItems, revenue
- Опис: Аналізуючи дані про замовлення та доходи в BigQuery, маркетологи можуть відстежувати такі показники, як середня вартість замовлення та тенденції доходу. Цей аналіз допомагає виявити можливості збільшення продажів.
- Переваги використання: Аналіз моделей доходів дозволяє приймати керовані даними рішення щодо ціноутворення, рекламних акцій і пропозицій продуктів, максимізуючи потенційний дохід.
5. Моніторинг і попередження за ключовими показниками
- Використаний набір даних: broadcasts, contactActivities, revenue
- Опис: Інформаційні панелі BigQuery можуть відстежувати ключові показники ефективності (KPI), такі як рівень залученості та доходи, із можливістю налаштування сповіщень про значні зміни (наприклад, раптове зниження показників доставлень).
- Переваги використання: Моніторинг допомагає підтримувати ефективність кампаній, дозволяючи швидко розв'язувати проблеми та забезпечуючи послідовну взаємодію з підписниками.
6. Аналіз рентабельності інвестицій та розподілу бюджету
- Використаний набір даних: broadcasts, orders, revenue, contactActivities
- Опис: Експорт даних про кампанії та доходи в BigQuery дозволяє обчислювати рентабельність інвестицій і оцінювати економічну ефективність кампанії, надаючи відомості для оптимального розподілу бюджету.
- Переваги використання: Зосереджуючись на високоефективних кампаніях, маркетологи можуть оптимізувати витрати, щоб максимізувати ефективність і віддачу від інвестицій.
7. Відображення омніканального шляху клієнта
- Використаний набір даних: contacts, contactActivities, events, orders
- Опис: Можливості обробки даних BigQuery дозволяють брендам аналізувати шляхи користувачів за різними каналами, надаючи розуміння життєвого циклу клієнта від обізнаності до конверсії.
- Переваги використання: Розуміння шляху клієнта дозволяє виявити моменти деактивації та можливості для вдосконалення, забезпечуючи більш позитивний користувацький досвід і вищі коефіцієнти конверсії.
Опис статусів повідомлень
Поле statusdescription пояснює, чому повідомлення не було надіслано або доставлено:
| Значення | Пояснення |
|---|---|
UNSUBSCRIBED | Контакт відписався від відповідного каналу. |
BLACKLISTED | Контакт або медіалокатор перебуває в чорному списку. |
MEDIA_LOCATOR_FORBIDDEN | Надсилання на медіалокатор заблоковано на рівні системи. |
GENERAL_EMAIL_ERROR | Загальна помилка надсилання email. Щоб з'ясувати причину в конкретному випадку, перегляньте активність повідомлення або зверніться до підтримки. |
Значення null означає, що опис статусу не записано. Не вважайте кожне заповнене значення помилкою доставки — звіряйте його зі статусом повідомлення.
Updated 1 day ago