Імпорт даних із таблиць BigQuery

Розглянемо створення джерела даних BigQuery і його використання для сегментації та персоналізації в eSputnik.

Тарифний план акаунта має включати цю можливість — якщо він перестає її покривати, імпорт зупиняється автоматично. Інтеграція також працює лише з регулярними (запланованими) сценаріями; сценарії за подією не підтримуються.

❗️

Важливо

Створюйте датасет, з якого імпортуєте, у мультирегіоні US або EU. eSputnik надсилає запит без указання локації, і BigQuery приймає такий запит лише для цих двох мультирегіонів — датасет в окремому регіоні, наприклад us-central1 чи europe-west3, повертає помилку, і джерело даних лишається порожнім. Якщо датасет уже створено в іншій локації, створіть таблицю заново в підтримуваній.

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

Налаштування джерела для імпорту даних в eSputnik

  1. Перейдіть до розділу НалаштуванняДжерела даних і натисніть Нове джерелоЗовнішні джерела даних.
  1. Виберіть створений конектор.
  1. Укажіть набір даних і таблицю та введіть назву джерела. Натисніть Зберегти.
📘

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

Якщо в обліковому записі немає тарифу/плану, що передбачає цю функціональність, імпорт даних із 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.

  1. Створіть динамічну групу, яка включатиме клієнтів, що відповідають певним умовам покупки (наприклад, зроблено 50-ту покупку).
  2. Налаштуйте регулярний сценарій для цієї групи.

Коли сценарій запускається для контактів, які відповідають заданим умовам, система створює подію. Назва події генерується шляхом об’єднання статичного префікса 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

  1. У розділі КонтактиГрупи створіть нову динамічну групу.
  2. Виберіть умови включення в групу. У параметрах умови натисніть назву джерела, потім назву параметра та встановіть умову. Наприклад, purchaseFrequencyдорівнює50.
📘

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

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



Did this page help you?