Експорт даних у таблиці BigQuery

Експорт входить не в кожен тариф. Якщо налаштування недоступне у вашому акаунті, перевірте тариф: використання BigQuery як джерела даних для сегментації — окрема можливість, і акаунт може мати її, доки експорт лишається закритим. Разом з експортом вмикається збір активності контактів, на якому й будується його глибина.

Налаштуйте експорт даних у таблиці, щоб регулярно оновлювати інформацію про аудиторію, активність контактів і результати кампаній в BigQuery. Доступні набори даних для експорту:

  • broadcasts
  • contactActivities
  • contacts
  • devices
  • events
  • messages
  • orderItems
  • orders
  • revenue
  • workflows

Як працює експорт

Щоденна черга починається о 00:00 UTC, і акаунти вивантажуються один за одним, тож запуск для вашого акаунта може початися будь-коли протягом доби. Сам запуск триває від кількох секунд до приблизно двох годин залежно від обсягу змінених даних, і BigQuery додає власний час на злиття тимчасових таблиць. Не прив'язуйте своє завдання до фіксованого часу — краще перевіряйте появу нових даних у таблицях.

Після налаштування експорту перша синхронізація відбувається на наступному циклі, а не одразу. Якщо даних немає значно пізніше за це вікно, спершу перевірте, чи в обраних наборах узагалі є що вивантажувати для вашого акаунта — можливо, дані такого типу ще не формувалися. Якщо проблема лишається, зверніться в підтримку.

Якщо експорт завершується з помилкою, eSputnik надсилає сповіщення на email і в App Inbox акаунта (іконка дзвіночка у верхньому меню). Сповіщення надходить не частіше ніж раз на добу. Коли причину помилки усунено, наступний експорт продовжується з місця, де зупинився попередній.

У списку експортів статус та час останнього запуску не відображаються: про збій повідомить сповіщення, а появу нових даних перевіряйте в таблицях BigQuery. Якщо після цього певного дня чи періоду все одно бракує, попросіть підтримку повторити його.

Перший експорт не обмежений попередньою добою: він містить історію, яка вже є в акаунті, і запускати щось вручну не потрібно. Чого він не додасть — це даних, які ніколи не збиралися; глибину для кожного набору дивіться в статті Інтеграція eSputnik і Google BigQuery. Для акаунта з дуже великою базою контактів перший експорт може тривати кілька днів, а наступні запуски переносять лише зміни й завершуються значно швидше.

Створювати таблиці BigQuery заздалегідь не потрібно: вони генеруються автоматично під час першого експорту й оновлюються далі, а їхні назви відповідають наборам даних. Поряд з основними під час синхронізації з'являються тимчасові таблиці patch_<назва таблиці>_<UUID>: зміни спершу завантажуються в них, потім BigQuery зливає їх в основну таблицю й автоматично видаляє тимчасову. Назви таблиць — ні основних, ні тимчасових — змінити не можна. Таблиці patch_ можуть лишатися в наборі даних ще кілька днів після синхронізації, а потім видаляються самі. Перед створенням такої таблиці експорт перевіряє, чи її ще немає, тому відповіді 404 на TableService.GetTable у власних логах BigQuery дає ця перевірка, а не помилка.

Ви обираєте набори даних і колонки для експорту, але не рядки — фільтрувати експорт за значенням не можна, тож вивантажується кожен рядок обраного набору. Вибірку на кшталт контактів з emailStatus = UNSUBSCRIBED треба робити на своєму боці, запитом до вивантаженої таблиці.

Набір contacts вивантажується повністю — усі контакти акаунта; він і дані розсилок синхронізуються за весь час існування акаунта. contactActivities має фіксоване обмеження глибини: до 90 днів активності контактів, і не раніше за момент, коли для акаунта ввімкнули збір активності, тож при пізнішому ввімкненні доступна глибина менша. Це не єдиний набір, де даних може бракувати: events і revenue не заповнюються за всю історію акаунта заднім числом, а набір, таблицю якого перестворили, наповнюється з моменту перестворення. Перш ніж розраховувати на давніший період, запитайте в підтримці доступну глибину для потрібного набору.

Під час кожної синхронізації набір contacts оновлює контакти, які змінилися з попереднього вивантаження. Контакт вважається зміненим і тоді, коли в нього оновилися лише лічильники розсилок, і тоді, коли ви змінили в нього додаткове поле, — хоча самі додаткові поля в contacts не вивантажуються. Поле, яке ви щойно ввімкнули в експорті, заповнюється лише для контактів, що змінилися після цього; щоб заповнити його для решти, зверніться в підтримку по перестворення таблиці — на великій базі це триває години.

Цифри з contactActivities не збігаються зі звітом за розсилкою — і не мають збігатися. Кожне відкриття записується окремим рядком, а звіт враховує унікальні відкриття — одне на контакт, тому запит до вивантаження дасть більше активності, ніж показує звіт. Щоб наблизитися до звіту, беріть один статус на пару контакт і iid — ідентифікатор конкретного відправлення. Повністю цифри все одно не збігатимуться.

Створення джерела даних для експорту даних

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

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

Створене підключення експорту BigQuery у розділі Експорт даних

Список параметрів даних для експорту

Broadcasts

Параметр

Тип даних

Опис

createdDatetimestampДата та час створення повідомлення (формат: '2021-10-08 11:11:02')
groupIdintID груп, що брали участь у розсилці
idintID розсилки
mediaTypestringМедіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget)
messageIdintID повідомлення
namestringНазва розсилки
startedDatetimestampДата та час відправки розсилки (формат: '2021-10-08 11:11:02')
statusstringСтатуси розсилки:
  • IDLE – завершена;
  • RUNNING - почалася;
  • PAUSED - призупинена (якщо розсилка не була зупинена вами вручну, зверніться до служби підтримки для уточнення деталей);
  • SCHEDULED – запланована;
  • UNCONFIRMED – у черзі на модерацію;
  • CONSIDERATION – на модерації;
  • BLOCKED – заблокована модератором.
updatedDatetimestampДата та час оновлення розсилки (формат: '2021-10-08 11:11:02')

ContactActivities

Параметр

Тип даних

Опис

activity
(activityStatus) *
stringСтатус активності:
  • DELIVERED – повідомлення доставлено.
  • UNDELIVERED – повідомлення не доставлено (містить причину statusDescription).
  • READ – повідомлення відкрито.
  • UNSUBSCRIBED – контакт відмовився від розсилки.
  • CLICKED – контакт клікнув посилання у повідомленні.
  • SPAM – контакт повідомив про спам.
  • SUBSCRIPTION_CHANGED – контакт змінив категорію підписки. Може приходити і при звичайній відписці; broadcastId у такому записі порожній.
  • PUSH_SUBSCRIBED – контакт підписався на push-сповіщення.
workflowInstanceIdstringІдентифікатор окремого запуску сценарію. Використовуйте його для угрупування розсилок у рамках запуску одного сценарію.
broadcastIdintID розсилки
campaignTypestringТип розсилки: 
  • IM — тригерне повідомлення, 
  • Group — масова розсилка.
clickEventLinkstringМістить посилання, яке клікнув контакт (статус CLICKED). Для Mobile Push поле порожнє
contactIdintID контакту в eSputnik (Внутрішній)
errorCode (statusDescription)*stringПомилка доставки та опис. Для активностей email зі статусом UNDELIVERED тут може міститися необроблена причина відмови SMTP або код, що не належить SMTP, наприклад UNSUBSCRIBED, BLACKLISTED, MEDIA_LOCATOR_FORBIDDEN чи GENERAL_EMAIL_ERROR.
eventKeystringКлюч події
eventTypeKeystringКлюч типу події
eventIdstringІдентифікатор події, яка запустила сценарій
externalCustomerIdstringID контакту у вашій системі (Зовнішній)
iidstringІдентифікатор конкретного відправлення
mediaTypestringМедіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App, Telegram)
messageInstanceIdintСлужбове поле
messageLanguageCodestringКод мови повідомлення
messageNamestringНазва повідомлення в обліковому записі eSputnik
messageIdintID повідомлення
imIdintІдентифікатор окремого повідомлення. Використовуйте його, щоб пов’язувати активності контакту з конкретним повідомленням.
messageTagsstringМітки повідомлення
messageURLstringМістить посилання на веб-версію email
osNamestringОпераційна система пристрою
osTypestringТип пристрою
senderNamestringІм'я відправника у Viber
started
(activityDateTime)*
timestampДата та час активності: для відправки — час відправки, для кожного наступного статусу — час цього статусу (формат: '2021-10-08 11:11:02')
utmCampaignstringUTM-мітка розсилки. Береться з посилання, на яке клікнув контакт, тому значення є лише в рядках зі статусом CLICKED. У рядках зі DELIVERED чи READ UTM-мітки немає, і налаштування, яке це змінює, відсутнє.
workflowIdstringID сценарію
workflowBlockIdstringID блока сценарію
smsPartsintКількість частин SMS
  • Поле буде видалено як застаріле; використовуйте поле, вказане у дужках

Contacts

Параметр

Тип даних

Опис

contactIdbigintID контакту в eSputnik (Внутрішній)
contactSourcestringДжерело контакту:
  • SITE_AUTOMATED - прив'язка email до push-підписника (скрипт збору web push),
  • I_MESSAGE - відправка одного повідомлення,
  • CAMPAIGN - сценарій (блок Створити контакт або блок Додати до групи),
  • IMPORT - імпорт файла або метод Add contacts,
  • MANUAL - створено вручну,
  • SUBSCRIPTION - форма підписки (API метод Subscribe a contact),
  • API метод Add contact,
  • ORDER - замовлення на сайті (API метод Add orders).
createdDatetimestampДата та час створення контакту (формат: '2021-10-08 11:11:02')
emailstringEmail контакту
emailDomainstringДомен email
emailStatusstringСтатус email
externalCustomerIdstringID контакту у вашій системі (Зовнішній)
firstNamestringІм'я контакту
languageCodestringКод мови повідомлень
lastClickedDatetimestampДата та час останнього кліку (формат: '2021-10-08 11:11:02')
lastNamestringПрізвище контакту
lastReceivedDatetimestampДата та час останньої доставки (формат: '2021-10-08 11:11:02')
lastSentDatetimestampДата та час останньої відправки (формат: '2021-10-08 11:11:02')
lastViewedDatetimestampДата та час останнього відкриття (формат: '2021-10-08 11:11:02')
marketIdstringІдентифікатор ринку або відділення, до якого належить контакт
smsstringНомер телефону
totalClickedintЗагальна кількість кліків
totalReceivedintЗагальна кількість отриманих повідомлень
totalSentintЗагальна кількість надісланих повідомлень
totalViewedintЗагальна кількість переглянутих повідомлень

Devices

Параметр
Тип даних
Опис
appVersionstringВерсія додатку
applicationIdintID додатку
categorystringКатегорія
contactIdbigintID контакту
deviceIdstringID пристрою
deviceModelstringМодель пристрою
externalCustomerIdstringЗовнішній ID контакту
languageCodestringКод мови
osTypestringТип ОС
osVersionstringВерсія ОС
pushTokenstring (max)Пуш-токен
timeZonestringЧасовий пояс

Events

Параметр
Тип даних
Опис
contactIdintID контакту
eventIdintID події
eventTypeKeystringТип події
keyValuestringКлюч події
occuredtimestampДата і час виникнення (формат: '2021-10-08 11:11:02')
paramsJsonjson50 перших параметрів та значень події (name/value); передається до 300 символів значень.
📘

Зверніть увагу

  • Кількість рядків у таблиці events не збігається з кількістю контактів — кожне виникнення події експортується як окремий рядок. Один контакт може викликати ту саму подію кілька разів (наприклад, через перевстановлення застосунку на новому пристрої або використання кількох пристроїв), і події залишаються в таблиці навіть після видалення пов'язаного контакту. Не використовуйте кількість рядків подій як показник кількості унікальних контактів.
  • paramsJson містить лише плоскі (верхнього рівня) параметри події. Вкладені параметри — де значення параметра саме є об'єктом (наприклад, поле source, вкладене в інший параметр) — не експортуються в BigQuery.

Messages

📘

Зверніть увагу

Якщо ви редагуєте вже експортоване повідомлення (наприклад, додаєте мітку), відповідний рядок у таблиці messages у BigQuery заднім числом не оновлюється.

Параметр
Тип даних
Опис
annoyanceLevelintРівень занепокоєння повідомлення
languagestringМова основної версії повідомлення
mediaTypestringМедіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App)
messageIdintID повідомлення
namestringНазва повідомлення
replyTostringАдреса для відповідей
senderstringВідправник
subjectstringТема
tagsstringМітки
translationsstringМовні версії повідомлення
updateDatetimestampДата та час оновлення повідомлення (формат: '2021-10-08 11:11:02')

OrderItems

Параметр
Тип даних
Опис
costfloatВартість товару
descriptionstringОпис товару
externalProductIdstringЗовнішній ID товару
imageUrlstringПосилання на зображення товару
namestringНазва товару
orderDatetimestampДата створення замовлення (формат: '2021-10-08 11:11:02')
orderIdintID замовлення в eSputnik (Внутрішній)
quantityintКількість товарів
urlstringURL-адреса товару

Orders

Параметр

Тип даних

Опис

contactIdintID контакту в eSputnik (Внутрішній)
marketIdstringІдентифікатор ринку
deliveryAddressstringАдреса доставки
deliveryMethodstringСпосіб доставки
discountfloatЗнижка
emailstringEmail
externalOrderIdstringЗовнішній ID замовлення
firstNamestringІм'я контакту
lastNamestringПрізвище контакту
orderCreatedDatetimestampДата створення замовлення на eSputnik (формат: '2021-10-08 11:11:02')
orderDatetimestampДата створення замовлення (формат: '2021-10-08 11:11:02')
orderIdintID замовлення в eSputnik (Внутрішній)
paymentMethodstringСпосіб оплати
PhonestringНомер телефону
StatusstringСтатус замовлення:
  • INITIALIZED,
  • IN PROGRESS,
  • DELIVERED,
  • CANCELED.
totalCostfloatЗагальна вартість замовлення

Revenue

Активність повідомлень, надісланих API-ресурсом Send prepared message (smartsend), теж потрапляє в експорт: такі надсилання належать до тригерних, тому campaignType має значення IM.

Параметр

Тип даних

Опис

activity (activityStatus)*stringСтатус активності:
  • DELIVERED – повідомлення доставлено.
  • UNDELIVERED – повідомлення не доставлено (містить причину statusDescription).
  • READ – повідомлення відкрито.
  • UNSUBSCRIBED – контакт відмовився від розсилки.
  • CLICKED – контакт клікнув посилання у повідомленні.
  • SPAM – контакт повідомив про спам.
  • SUBSCRIPTION_CHANGED – контакт змінив категорію підписки. Може приходити і при звичайній відписці; broadcastId у такому записі порожній.
  • PUSH_SUBSCRIBED – контакт підписався на push-сповіщення.
campaignTypestringТип розсилки:
  • IM — тригерне повідомлення,
  • Group — масова розсилка.
clickEventLinkstringМістить посилання, яке клікнув контакт (статус CLICKED). Для Mobile Push поле порожнє
contactIdbigintID контакту в eSputnik (Внутрішній)
currencystringВалюта
externalCustomerIdstringID контакту у вашій системі (Зовнішній)
externalOrderIdstringID замовлення зовнішній
mediaTypestringМедіатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget)
messageInstanceIdintСлужбове поле
messageNamestringНазва повідомлення в обліковому записі eSputnik
messageTagsstringМітки повідомлення
messageUrlstringМістить посилання на веб-версію email
orderDatetimestampДата створення замовлення (формат: '2021-10-08 11:11:02')
senderNamestringІм'я відправника у Viber
started (activityDateTime)*timestampДата та час активності: для відправки — час відправки, для кожного наступного статусу — час цього статусу (формат: '2021-10-08 11:11:02')
totalCostfloatЗагальна вартість замовлення
utmCampaignstringUTM-мітка розсилки. Заповнюється лише для активності Clicked — значення береться з посилання, за яким перейшов контакт
eventKeystringКлюч події
eventTypeKeystringКлюч типу події
messageLanguageCodestringКод мови повідомлення
orderIdintID замовлення в eSputnik (Внутрішній)
workflowIdintID сценарію
broadcastIdintID розсилки
  • Поле буде видалено як застаріле; використовуйте поле, вказане у дужках
📘

Зверніть увагу

Існуючі записи в таблиці Revenue (для замовлень, зроблених після 08.03.2024) можна оновлювати разом з вивантаженням нових замовлень. Оновлення може знадобитися, наприклад, якщо змінилася загальна вартість замовлення.

Workflows

Параметр
Тип даних
Опис
createdDatetimestampДата створення сценарію
statusstringСтатус сценарію (активний/неактивний)
updatedDatetimestampДата оновлення сценарію
workflowIdintID сценарію
workflowNamestringНазва сценарію

Приклади використання

Нижче наведено декілька основних варіантів використання експорту даних з 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 означає, що опис статусу не записано. Не вважайте кожне заповнене значення помилкою доставки — звіряйте його зі статусом повідомлення.


Did this page help you?