Исходные данные:
На сайте интернет-магазина настроено заполнение слоя данных digitalData, а также размечены все события, включая Completed Transaction. Все необходимые данные уходят во все подключенные системы непосредственно из браузера посетителя. Однако есть события, которые происходят в оффлайне, после того, как пользователь покинул сайт.
Например:
- Возврат или Отмена заказа
- Изменение статуса заказа
- Оформление заказа по телефону
Задача:
Настроить отправку событий Completed Transaction, Updated Transaction и Refunded Transaction с сервера интернет-магазина в Google BigQuery и Google Analytics
Решение:
В SegmentStream существует возможность получать события напрямую из любого канала с помощью HTTP API
Данная функция позволяет настроить получение и отправку "офлайн событий" в Google BigQuery, Google Analytics и некторые другие системы, которые умеют принимать серверные события.
Настройка
1. Войдите в панель admin.segmentstream.com и откройте меню "Информация о проекте". Скопируйте "HTTP API ключ" вашего проекта. Он понадобится для отправки событий с помощью метода POST.
2. Сформируйте тело события, которое хотите отправить в соответствии с документацией. Здесь приведен пример события Completed Transaction. Ниже вы найдете примеры других событий.
!!! Обратите внимание на объект event.user. Этот объект содержит информацию об идентификаторах посетителя. Для корректной работы с данными в Google BigQuery сохраните anonymousId данного пользователя заранее, в момент посещения сайта. Значение anonymousId можно найти в cookie:
!!! Для того, чтобы событие было отправлено в Google Analytics необходимо заполнить объект integrations. В него необходимо передать значение Google ClientId. Подробнее о том, как найти и сохранить это значение на сервере.
{
"hitId": "4c59d330-35c7-11e9-8f27-8d1d7d4690e71f344311",
"sentAt": "2019-02-21T10:56:10.723Z",
"integrations": {
"Google Analytics": {
"clientId": "277960516.1559293781"
}
},
"event": {
"name": "Completed Transaction",
"category": "Ecommerce",
"user": {
"anonymousId": "80ddb140-35c6-11e9-bd56-eb1c05e6de18",
"emailHash": "eff8c37862c7a2f0019448289bdd0869c30ae7f07060e4be9d",
"userId": "u2783187492"
},
"transaction": {
"checkoutType": "1-step",
"currency": "USD",
"orderId": "test123",
"contactInfo": {
"firstName": "John",
"email": "john@segmentstream.com",
"phone": "+447911123456"
},
"lineItems": [
{
"product": {
"id": "125",
"currency": "RUB",
"skuCode": "1261",
"size": "S",
"stock": 2,
"name": "Red T-shirt",
"manufacturer": "DB",
"category": [
"Clothing",
"T-shirts"
],
"categoryId": "1",
"color": "red",
"description": "Don't go to Spain wearing this t-shirt.",
"reviews": [
{
"body": "Nobody can see the ketchup stains",
"userName": "Joey",
"rating": 5
},
{
"body": "Makes me look like a tomato",
"userName": "John",
"rating": 1
}
],
"rating": 3,
"imageUrl": "http://demo.segmentstream.com/images/products/red@2x.png",
"thumbnailUrl": "http://demo.segmentstream.com/images/products/red@2x.png",
"unitPrice": 10000,
"unitSalePrice": 8000,
"url": "http://demo.segmentstream.com/product/125",
"variation": [
{
"skuCode": "1261",
"size": "S",
"stock": 2
},
{
"skuCode": "1262",
"size": "M",
"stock": 3
},
{
"skuCode": "1263",
"size": "L",
"stock": 5
},
{
"skuCode": "1264",
"size": "XL",
"stock": 8
}
]
},
"quantity": 1,
"subtotal": 8000
}
],
"subtotal": 8000,
"total": 8000
}
}
}
3. Отправьте запрос на https://track.segmentstream.com/track
3.1. Postman (режим отладки)
- Авторизация и токен
-
Content Type
-
Тело запроса
-
Отправка запроса. При корректной отправке вы получите ответ 204.
3.2. Пример отправки с сервера с поддержкой PHP
<?php
$address = 'https://track.segmentstream.com/track';
$token = "d4d59b1e3554d85fc9ae973a0a9eaae7df7sfdfs";
$payload = /* payload body from example here */
$ch = curl_init($adress);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($payload))
);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, $token . ":" );
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$result = curl_exec($ch);
curl_close($ch);
?>
4. Проверка результата:
4.1. Google Analytics
4.2 Google BigQuery
События Updated Transaction и Refunded Transaction
Updated Transaction
Событие Updated Transaction позволяет отслеживать изменение статуса заказа в режиме реального времени. Это событие на равне с импортом данных из CRM поможет при построении сквозной аналитики.
!!! Обратите внимание внутри объекта event добавилось свойство event.nonInteraction: true. Данное свойство позволит "не начинать новые сеансы" при поступлении "офлайн событий"
В объект event.transaction добавлено поле event.transaction.status.
Пример:
{
"hitId": "4c59d330-35c7-11e9-8f27-8d1d7d469333",
"sentAt": "2019-02-21T10:56:10.723Z",
"integrations": {
"Google Analytics": {
"clientId": "277960516.1559293781"
}
},
"event": {
"nonInteraction": true,
"name": "Updated Transaction",
"category": "Ecommerce",
"user": {
"anonymousId": "80ddb140-35c6-11e9-bd56-eb1c05e6de18",
"emailHash": "eff8c37862c7a2f0019448289bdd0869c30ae7f07060e4be9d",
"userId": "u2783187492"
},
"transaction": {
"status": "completed",
"checkoutType": "1-step",
"currency": "USD",
"orderId": "test123",
"contactInfo": {
"firstName": "John",
"email": "john@segmentstream.com",
"phone": "+447911123456"
},
"lineItems": [
{
"product": {
"id": "125",
"currency": "RUB",
"skuCode": "1261",
"size": "S",
"stock": 2,
"name": "Red T-shirt",
"manufacturer": "DB",
"category": [
"Clothing",
"T-shirts"
],
"categoryId": "1",
"color": "red",
"description": "Don't go to Spain wearing this t-shirt.",
"reviews": [
{
"body": "Nobody can see the ketchup stains",
"userName": "Joey",
"rating": 5
},
{
"body": "Makes me look like a tomato",
"userName": "John",
"rating": 1
}
],
"rating": 3,
"imageUrl": "http://demo.segmentstream.com/images/products/red@2x.png",
"thumbnailUrl": "http://demo.segmentstream.com/images/products/red@2x.png",
"unitPrice": 10000,
"unitSalePrice": 8000,
"url": "http://demo.segmentstream.com/product/125",
"variation": [
{
"skuCode": "1261",
"size": "S",
"stock": 2
},
{
"skuCode": "1262",
"size": "M",
"stock": 3
},
{
"skuCode": "1263",
"size": "L",
"stock": 5
},
{
"skuCode": "1264",
"size": "XL",
"stock": 8
}
]
},
"quantity": 1,
"subtotal": 8000
}
],
"subtotal": 8000,
"total": 8000
}
}
}
Refunded Transaction
Это событие введено и используется только системой Google Analytics. Оно не является обязательным для построения сквозной аналитики. Аналогичным может быть событие Updated Transaction со статусом "refunded" или "cancelled"
Рекомендуем использовать свойство nonInteraction: true. Поле status в данном случае не является обязательным.
Пример:
{
"hitId": "4c59d330-35c7-11e9-8f27-8d1d7d4690e71f344311",
"sentAt": "2019-02-21T10:56:10.723Z",
"integrations": {
"Google Analytics": {
"clientId": "277960516.1559293781"
}
},
"event": {
"nonInteraction": true,
"name": "Refunded Transaction",
"category": "Ecommerce",
"user": {
"anonymousId": "80ddb140-35c6-11e9-bd56-eb1c05e6de18",
"emailHash": "eff8c37862c7a2f0019448289bdd0869c30ae7f07060e4be9d",
"userId": "u2783187492"
},
"transaction": {
"checkoutType": "1-step",
"currency": "USD",
"orderId": "test123",
"contactInfo": {
"firstName": "John",
"email": "john@segmentstream.com",
"phone": "+447911123456"
},
"lineItems": [
{
"product": {
"id": "125",
"currency": "RUB",
"skuCode": "1261",
"size": "S",
"stock": 2,
"name": "Red T-shirt",
"manufacturer": "DB",
"category": [
"Clothing",
"T-shirts"
],
"categoryId": "1",
"color": "red",
"description": "Don't go to Spain wearing this t-shirt.",
"reviews": [
{
"body": "Nobody can see the ketchup stains",
"userName": "Joey",
"rating": 5
},
{
"body": "Makes me look like a tomato",
"userName": "John",
"rating": 1
}
],
"rating": 3,
"imageUrl": "http://demo.segmentstream.com/images/products/red@2x.png",
"thumbnailUrl": "http://demo.segmentstream.com/images/products/red@2x.png",
"unitPrice": 10000,
"unitSalePrice": 8000,
"url": "http://demo.segmentstream.com/product/125",
"variation": [
{
"skuCode": "1261",
"size": "S",
"stock": 2
},
{
"skuCode": "1262",
"size": "M",
"stock": 3
},
{
"skuCode": "1263",
"size": "L",
"stock": 5
},
{
"skuCode": "1264",
"size": "XL",
"stock": 8
}
]
},
"quantity": 1,
"subtotal": 8000
}
],
"subtotal": 8000,
"total": 8000
}
}
}
Что вы увидите в системах после настройки всех событий
Google BigQuery
Google Analytics
Как избежать дублей отправки событий из браузера и с сервера
Если вы настроили отправку всех событий Completed Transaction с сервера - отключите это событие в настройках Google Analytics и Google Bigquery
1. Войдите в окно настроек интеграции и откройте панель "Переменные Событий"
2. Нажмите кнопку "Добавить" и настройте исключение события "Completed Transaction"
3. Протестируйте и опубликуйте изменения.
При совершении транзакции на сайте в меню консоли Network больше не должны уходить хиты в https://track.segmentstream.com/collect и https://www.google-analytics.com/collect
Комментарии
0 комментариев
Войдите в службу, чтобы оставить комментарий.