#
Настройка передачи событий
События нужны для отслеживания важных пользовательских действий, таких как добавление товара в корзину, добавление в список желаемого, аутентификации в личном кабинете и многие другие. Отслеживание таких событий необходимо для понимания поведения пользователя и таргетинга на его основе, а также корректной работы рекомендательных стратегий и измерения эффективности кампаний.
Для отправки данных в GF необходимо внедрить небольшой кусочек кода для каждого необходимого события. В событии вы можете передавать тот набор параметров, которые в дальнейшем планируете использовать для работы. Ряд событий, таких как покупка или вход в личный кабинет требуют внедрения по определенной схеме, вместе с тем, для других целевых действий вы можете создавать и собственные события.
При внедрении в e-commerce события Purchase
и Add to Cart
являются обязательными, но мы также рекомендуем внедрить максимальное количество событий из списка преднастроенных, которые релевантны для вашего сайта. Это поможет реализовать больше use-кейсов и расширить профиль пользователя. Окончательный список требуемых событий согласовывается с вашим менеджером по персонализации в зависимости от планируемых use-кейсов.
#
Преднастроенные события
#
Добавление в корзину
обязательно для e-commerce
GF.API("event", {
name: "Add to Cart",
properties: {
eventType: "add-to-cart-v1",
value: 118.26,
currency: "any supported currency code",
productId: "item-34454",
quantity: 2,
cart: [{
productId: "sku-4324-bg",
quantity: 2,
itemPrice: 12.34
},
{
productId: "item-34454",
quantity: 2,
itemPrice: 59.13
}
]
}
});
Описание полей объекта properties:
Частые ошибки
В событии Add to cart
часто некорректно передается параметр quantity
.
Данный параметр должен отражать фактически добавленное число единиц товара, а не сумму всех единиц после действия.
Пример: в корзине было 2 единицы товара и мы добавили еще 1.
В событии мы ожидаем увидеть quantity: 1
, а видим quantity: 3
— это неправильно.
#
Покупка
обязательно для e-commerce
GF.API("event", {
name: "Purchase",
properties: {
uniqueTransactionId: "123456",
eventType: "purchase-v1",
value: 90.55,
currency: "any supported currency code",
cart: [
{
productId: "item-34454",
quantity: 1,
itemPrice: 65.87,
}, {
productId: "sku-4324-bg",
quantity: 2,
itemPrice: 12.34,
}
]
}
});
Описание полей объекта properties:
#
Удаление товара из корзины
GF.API("event", {
name: "Remove from Cart",
properties: {
eventType: "remove-from-cart-v1",
value: 34.45,
currency: "any supported currency code",
productId: "gswefd-34-454",
quantity: 1,
cart: [{
productId: "sku-4324-bg",
quantity: 2,
itemPrice: 12.34
},
{
productId: "item-34454",
quantity: 1,
itemPrice: 34.45
}
]
}
});
Описание полей объекта properties:
#
Синхронизация корзины
Данное событие обновляет текущее состояние корзины. Событие рекомендуется к использованию в случае пакетного изменения состава корзины или изменения сотава корзины без участия пользователя, например:
- Обновление корзины сервером (например, автоудаление из корзины товаров, которые закончились в процессе сессии пользователя)
- Обновление корзины при авторизации пользователя (объединение корзин до/после логина)
- Обновление корзины при заходе пользователя на сайт, в том числе автологин (например, автоматическая подгрузка корзины, собранной на mobile при заходе в web)
- Массовое единовременное удаление товаров из корзины - полная очистка корзины или удаление ряда позиций одним кликом
GF.API("event", {
name: "Sync cart",
properties: {
eventType: "sync-cart-v1",
currency: "any supported currency code",
cart: [
{
productId: "sku-4324-bg",
quantity: 2,
itemPrice: 12.34
},
{
productId: "item-34454",
quantity: 1,
itemPrice: 34.45
}
]
}
});
Описание полей объекта properties:
#
Добавление в список желаемого
GF.API("event", {
name: "Add to Wishlist",
properties: {
eventType: "add-to-wishlist-v1",
productId: "item-34454"
}
});
Описание полей объекта properties:
#
Смена атрибута
Используется при смене пользователем атрибута отображаемого продукта, например, размера или цвета.
GF.API("event", {
name: "Change Attribute",
properties: {
eventType: "change-attr-v1",
attributeType: "Color",
attributeValue: "Navy Blue"
}
});
Описание полей объекта properties:
Важно
Тип и значение атрибута должны совпадать со значениями в фиде.
#
Фильтрация товаров
Используется, когда пользователь фильтрует товары по какому-либо значению поля.
GF.API("event", {
name: "Filter Items",
properties: {
eventType: "filter-items-v1",
filterType: "Color", // Name of filter (Color, Size, Brand, Fit, Author, Keyword, Category...)
filterNumericValue: 4
}
});
Описание полей объекта properties:
#
Поиск по ключевым словам в поисковой строке
GF.API("event", {
name: "Keyword Search",
properties: {
eventType: "keyword-search-v1",
keywords: "my search string"
}
});
Описание полей объекта properties:
#
Агрегация запросов при живом поиске
В случаях, когда на сайте доступен живой поиск (подбор ответов, соответствующий части введенного запроса), при передаче событий необходимо реализовать агрегацию запросов. При использовании данного метода игнорируется передача каждого введенного символа и в систему отправляется только последнее состояние ввода. Например, при вводе пользователем запроса “игра”, создается 4 записи: “и”, “иг”, “игр”, и, наконец, “игра”. Однако в систему отправляется только последний ввод “игра”, игнорируя предыдущие.
Важно
При передаче события необходимо обозначить отсрочку, после которой запрос будет отправлен в систему. Например, если пользователь начал вводить “игр”, остановился, и прошло 2 секунды (заранее определенные как необходимая отсрочка), в систему должен быть отправлен данный запрос - “игр”. Далее, если пользователь решил продолжить ввод, дописал “игра” и остановился, по истечении 2 секунд должен быть отправлен второй результат ввода “игра”.
#
Ввод промокода
GF.API("event", {
name: "Promo Code Entered",
properties: {
eventType: "enter-promo-code-v1",
code: "..."
}
});
Описание полей объекта properties:
#
Сортировка товаров
GF.API("event", {
name: "Sort Items",
properties: {
eventType: "sort-items-v1",
sortBy: "price",
sortOrder: "ASC"
}
});
Описание полей объекта properties:
#
Подписка на почтовую рассылку
GF.API("event", {
name: "Subscription",
properties: {
eventType: "newsletter-subscription-v1",
hashedEmail: "хешированный ранее адрес", }
});
// и/или; данные методы могут быть использованы параллельно
GF.API("event", {
name: "Subscription",
properties: {
eventType: "newsletter-subscription-v1",
cuid: "...",
cuidType: "..."
}
});
Описание полей объекта properties:
сuid
может означать один из заранее заданных типов идентификаторов (допустимые и предопределённые типы - справочник) или иметь значение не из справочника, если на стороне клиента есть свой внутренний идентификатор, например, CRM_ID, мобильный телефон и другие.
Не используйте без хеширования идентификаторы, являющиеся персональными данными.
#
Регистрация
обязательно для e-commerce
GF.API("event", {
name: "Signup",
properties: {
eventType: "signup-v1",
hashedEmail: "хешированный ранее адрес", }
});
// и/или; данные методы могут быть использованы параллельно
GF.API("event", {
name: "Signup",
properties: {
eventType: "signup-v1",
cuid: "...",
cuidType: "..."
}
});
Описание полей объекта properties:
сuid
может означать один из заранее заданных типов идентификаторов (допустимые и предопределённые типы - справочник) или иметь значение не из справочника, если на стороне клиента есть свой внутренний идентификатор, например, CRM_ID, мобильный телефон и другие.
Не используйте без хеширования идентификаторы, являющиеся персональными данными.
#
Логин
обязательно для e-commerce
GF.API("event", {
name: "Login",
properties: {
eventType: "login-v1",
hashedEmail: "хешированный ранее адрес"
}
});
// и/или; данные методы могут быть использованы параллельно
GF.API("event", {
name: "Login",
properties: {
eventType: "login-v1",
cuid: "...",
cuidType: "..."
}
});
Описание полей объекта properties:
сuid
может означать один из заранее заданных типов идентификаторов (допустимые и предопределённые типы - справочник) или иметь значение не из справочника, если на стороне клиента есть свой внутренний идентификатор, например, CRM_ID, мобильный телефон и другие.
Не используйте без хеширования идентификаторы, являющиеся персональными данными.
#
Кастомные события
Если вы хотите отслеживать событие, не указанное в списке выше, воспользуйтесь для его создания следующей структурой:
GF.API("event", {
name: "EVENT_NAME",
properties: {
[FIRST PROPERTY NAME]: "[PROPERTY VALUE]", // Optional
[SECOND PROPERTY NAME]: "[PROPERTY VALUE]", // Optional
value: "[MONETARY VALUE]" // Optional
}
})
или
GF.API("event", {
name: "EVENT_NAME"
})
#
Идентификация пользователей
Происходит двумя способами:
С помощью поля hashedEmail
В нем передается sha256-хеш email или телефона пользователя. Если передается email, то адрес переводится в lowercase, затем хешируется. Пример:
Test@TEST.com
→ test@test.com
- перевод в lowercase
test@test.com
→ f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a
- хеширование
Если передается номер телефона, то приводится к виду 7XXXXXXXXXX (начинается с кода страны 7, без плюса в начала, без скобок, тире и т.д)
С помощью поля cuid
Cuid - Customer Unique Identifier. Cuid может быть любым уникальным значением, используемым для идентификации пользователя - это может быть CRM ID или любой другой ID.
Не используйте без хеширования идентификаторы, являющиеся персональными данными.