Статья не завершена, будет здорово, если вы сможете внести свой вклад в нее.
Вы самостоятельно придумываете название и список данных, которые хотите передать.
rstat('event', eventName, {eventData})
Property | Type | Default | Description |
---|---|---|---|
eventName | String* | Произвольное название события, должно характеризовать что произошло | |
eventData | Object | { } | Произвольные данные события. Может быть любое количество параметров. |
rstat('event', 'Added to Cart', {
id: '1231223',
name:'Шторка для ванны',
categoryName: 'Товары для дома',
listing: 'best_seller',
});
rstat('event', 'Popup Displayed', {
type: 'Discount Offer',
offer:'Personal_24h',
category: 'Нижнее белье для кошек'
});
rstat('event', 'User Subscribed', {
form:'Subscription',
formPostiton: 'Bottom'
});
rstat('page', {eventData})
По аналогии с обычными событиями, в eventData
можно передавать любую доступную информацию,
связанную с просмотром страницы, например, тип страницы, название категории сайта и тп.
rstat('page', {
type: 'content',
name: 'Контакты'
})
или событие просмотра страницы товарной категории
rstat('page', {
type: 'category',
id: '2342344',
name: 'Товары для дома'
})
rstat('identify', userId?:string, traits?:{[key:string]: string})
Property | Type | Default | Description |
---|---|---|---|
userId | String | Идентификатор пользователя из вашей базы данных. | |
traits | Object | { } | Набор характеристик пользователя, вроде email, возраста, сегмента и тд |
rstat('identify', 'wusahshaet0Quae8oa', {
email: 'user@example.com'
})
Или без userId
rstat('identify', {
age: '18',
sex: 'male',
segment: ['vip']
})
rstat('getUid')
Но получить его можно только после загрузки трекера, поэтому следует оборачивать в коллбек успешной загрузки (см ниже)
rstat('request', service, name, params = {}): Promise<any>
Обращение к сервису платформы. Сервис должен быть объявлен как handler
.
Property | Type | Default | Description |
---|---|---|---|
service | String | Название сервиса | |
name | String | Метод сервиса | |
params | Object | { } | Параметры которые будут переданы сервису |
rstat('notify', service, name, params = {}): void
Отравка нотификации (без ответа).
Property | Type | Default | Description |
---|---|---|---|
service | String | Название сервиса | |
name | String | Метод сервиса | |
params | Object | { } | Параметры которые будут переданы сервису |
rstat('getLibInfo'): LibInfo
type LibInfo = {
// Library name
id: string;
// Packed snippet semantic version
sv: number;
// Packed library semantic version
v: number;
}
rstat('buildProjectId', 'www.mydomain.xz'): [string, number]
returns: [final_domain: string, project_id: number]
From domains removing www.
and m.
or first segments id > 3
rstat('onReady', function(){
const id = rstat('getUid');
console.log(id)
});
Если трекер уже загружен, коллбек будет выполнен сразу. Можно передать его в dataLayer.
rstat('onReady', function(){
dataLayer.push({
'rstatUserId': rstat('getUid')
});
});
При необходимости дополнительно обрабатывать собираемые данные или передавать их в сторонний сервис непосредственно из браузера
rstat('onEvent', (eventName:string, eventData:object) => void)
Аргументы
Property | Type | Default | Description |
---|---|---|---|
eventName | String | Имя события | |
eventData | Object | { } | Произвольные данные, добавленные к событию при его создании |
Некорректно заполненная форма приведет к открытию чата с поддержкой
rstat('onEvent', function(name, data){
// Ловим событие ошибки при заполнении адреса доставки
if (name === 'form_invalid' && data.fname === 'delivery') {
// Ждем 5 секунд
setTimeout(function(){
// Открываем окно чата, передаем пометку оператору
SomeChat.openChat({info: 'Проблемы с заполнением формы доставки'});
// Передаем событие открытия чата в Rockstat, чтобы можно было оценить эффективность
rstat('event', 'Chat Opened', {reason: 'Invalid delivery details'})
}), 5*1000);
}
});
При включении WebSocket в настройках связь становится двусторонней и сервисы, работающие на сервере, могут в любой момент передавать сообщения в браузер.
rstat('onServerMessage', (eventName:string, eventData:object) => void)
Property | Type | Default | Description |
---|---|---|---|
eventName | String | Имя события, пришедшего с сервера | |
eventData | Object | { } | Произвольные данные, указанные серверной частью при создании события |
rstat('onServerMessage', function(name, data){
console.log('server message:', name, data);
});
или с самостоятельной фильтрацией
rstat('onServerMessage', function(name, data){
if (name === 'show-discount-dialog'){
console.log('onServerMessage', name, data);
}
});
Web-SDK internally use event system for
rstat('onInternalEvent', (eventName:string, eventData:object) => void)