Імпорт даних із таблиць BigQuery
Розглянемо створення джерела даних BigQuery і його використання для сегментації та персоналізації в eSputnik.
Тарифний план акаунта має включати цю можливість — якщо він перестає її покривати, імпорт зупиняється автоматично. Інтеграція також працює лише з регулярними (запланованими) сценаріями; сценарії за подією не підтримуються.
ВажливоСтворюйте датасет, з якого імпортуєте, у мультирегіоні
USабоEU. eSputnik надсилає запит без указання локації, і BigQuery приймає такий запит лише для цих двох мультирегіонів — датасет в окремому регіоні, наприкладus-central1чиeurope-west3, повертає помилку, і джерело даних лишається порожнім. Якщо датасет уже створено в іншій локації, створіть таблицю заново в підтримуваній.
Внутрішні ідентифікатори — contactId, ідентифікатор події та внутрішній ідентифікатор замовлення — унікальні для того акаунта, який їх створив. Якщо ви імпортуєте таблицю, вивантажену з іншого акаунта, ці значення тут ні з чим не зіставляться, тому передавайте їх щонайбільше в додаткові поля, а записи зіставляйте за власними ідентифікаторами, як-от externalCustomerId або зовнішній ідентифікатор замовлення.
Налаштування джерела для імпорту даних в eSputnik
- Перейдіть до розділу Налаштування → Джерела даних і натисніть Нове джерело → Зовнішні джерела даних.

- Виберіть створений конектор.

- Укажіть набір даних і таблицю та введіть назву джерела. Натисніть Зберегти.

Зверніть увагуЯкщо в обліковому записі немає тарифу/плану, що передбачає цю функціональність, імпорт даних із BigQuery автоматично зупиниться.
Використання даних BigQuery для персоналізації розсилок
Дані BigQuery можуть використовуватися для таргетованих кампаній із залученням клієнтських даних, таких як історія покупок, рівень залучення та обрані категорії товарів.
1. Масова кампанія з даними BigQuery
Розглянемо, як запустити кампанію, націлену на клієнтів, які нещодавно придбали певні категорії продуктів, пропонуючи персоналізований промокод. Нижче наведено приклад налаштування даних для контакту [email protected] із використанням джерела даних discount_codes:
{
"data": {
"discount_codes": [
{
"id": "3",
"email": "[email protected]",
"name": "John Doe",
"recent_purchase_category": "Home Appliances",
"discount_code": "SAVE20-HOME",
"expiry_date": "2023-12-31T23:59:59Z"
}
]
}
}Ви можете посилатися на кожне поле в повідомленні за допомогою синтаксису Velocity таким чином:
-
Безпосередньо за параметрами (якщо ви знаєте, що масив має фіксовану довжину):
- $!data.get('discount_codes').get(0).get('name') $!data.get('discount_codes').get(0).get('discount_code') -
Використовуючи цикл (для масивів гнучкої довжини):
#foreach($code in $!data.get('discount_codes')) $!code.get('name') $!code.get('discount_code') #end
2. Тригерна кампанія, заснована на кількості покупок
Зверніть увагуДжерело даних BigQuery підтримує лише запуск за розкладом (регулярний сценарій), а не запуск за подією. Тому нижче використовується регулярний сценарій, який сам генерує подію для тригера.
Щоб надсилати персоналізовані повідомлення, коли клієнти здійснюють певну кількість покупок, наприклад, 50.
- Створіть динамічну групу, яка включатиме клієнтів, що відповідають певним умовам покупки (наприклад, зроблено 50-ту покупку).
- Налаштуйте регулярний сценарій для цієї групи.
Коли сценарій запускається для контактів, які відповідають заданим умовам, система створює подію. Назва події генерується шляхом об’єднання статичного префікса regularEventType з ідентифікатором групи, наприклад — regularEventType-170531841.
Ця подія містить контактні дані, такі як ідентифікатор контакту в eSputnik (contactId), email-адреса (emailAddress) і дані, отримані із зовнішньої таблиці. Кожне поле з таблиці перетворюється на ключ і поміщається в масив, позначений числовим іменем, яке відповідає ідентифікатору джерела даних.

Дані із зовнішньої таблиці передаються в системній події як нативний JSON-об’єкт. Екрановані JSON-рядки не використовуються, тому додатковий парсинг для роботи з даними не потрібен. Приклад тіла події може виглядати так:
{
"params": [
{
"name": "contactId",
"value": "123456789"
},
{
"name": "1043",
"value": [
{
"id": 2,
"email": "[email protected]",
"name": "Jordan Lee",
"lastPurchaseDate": "2023-10-15T10:00:00Z",
"purchaseFrequency": 50,
"averageBasketValue": 120
}
]
},
{
"name": "emailAddress",
"value": "[email protected]"
}
]
}Під час підставлення даних у повідомлення номер джерела даних в eSputnik використовується як назва масиву в об’єкті data:
{
"data": {
"1043": [
{
"id": "2",
"email": "[email protected]",
"name": "Jordan Lee",
"lastPurchaseDate": "2023-10-15T10:00:00Z",
"purchaseFrequency": 50,
"averageBasketValue": 120
}
]
}
}Якщо ви знаєте, що масив має фіксовану довжину, ви можете звертатися до полів безпосередньо:
$!data.get('1043').get(0).get('name')
$!data.get('1043').get(0).get('lastPurchaseDate')
$!data.get('1043').get(0).get('purchaseFrequency')
$!data.get('1043').get(0).get('averageBasketValue')Якщо масив 1043 може містити кілька записів, використовуйте цикл для динамічного підставлення всіх значень:
#foreach($entry in $!data.get('1043'))
$!entry.get('name')
$!entry.get('lastPurchaseDate')
$!entry.get('purchaseFrequency')
$!entry.get('averageBasketValue')
#endСтворення динамічного сегмента за допомогою параметрів BigQuery
- У розділі Контакти → Групи створіть нову динамічну групу.
- Виберіть умови включення в групу. У параметрах умови натисніть назву джерела, потім назву параметра та встановіть умову. Наприклад, purchaseFrequency → дорівнює → 50.

Зверніть увагуПідключення до зовнішньої бази даних не передбачає імпорт контактів. Сегментація доступна лише для контактів, які є як у вашому обліковому записі eSputnik, так і у зовнішній базі даних. Синхронізуйте та оновлюйте контакти перед створенням кампаній.
Updated about 4 hours ago