Qlean аналитика
Библиотека для инетграции с аналитической платформы. После инициализации, все a.href
будут вести на аналитическую платформу.
Подключение
Для подключения аналитики, на страницу нужно добавить следующий код.
<script>
(function (options) {
window.$qat={options:options,buffer:[],emit:function(t){this.buffer.push(t)}};
var parent=document.getElementsByTagName("script")[0],script=document.createElement("script");
script.async=!0,script.src=options.script,parent.parentNode.insertBefore(script,parent);
})({
script: 'https://storage.googleapis.com/pltf-analytics-dp-clfn-storage/public/bundle.js',
url: 'https://anlt.cloud.qlean.ru/сollect',
timeout: 5000,
wrapLink: true
});
</script>
Опции инициализации:
script
- ссылка на бандл с клиентским приложениемurl
- путь до апи, куда отправляются точкиtimeout
- таймаут между отправкой точекwrapLink
- признак того, что необходимо обернуть все ссылки на редиректы аналитики (для отслеживания переходов)normalize
- функция которая нормализует именя ключей
Нормализация ключей
Бывает необходимо в программе использовать имена ключей в формате системы, но перед отправкой их приводит к ожидаемому в
аналитической системе виду, для этого в качестве опции можно определить функцию normalize
, которая будет вызыватся
для каждого ключа события.
Пример приведение event_category
к принятому виду eventCategory
:
normalize: function (key) {
if (key === 'event_category') {
key = 'eventCategory';
}
return key;
}
Отправка события
<script>
$qat.emit({
eventId: '1234',
eventAction: 'autorization',
eventCategory: 'page_view',
phone: '89686421141',
user_id: 'fffff',
device_id: 'asfljsfdaklsdfj',
label: 'hello world'
});
</script>
Использование библиотеки как модуля
Для начал ее необходимо установить
npm i @qleanlabs/analytics-client
После этого ее можно подключить и использовать
import { Qat } from '@qleanlabs/analytics-client';
const client = new Qat({
buffer: [],
options: {
url: 'https://anlt.cloud.qlean.ru/collect',
timeout: 5000,
wrapLink: true,
normalize: function (key) {
if (key === 'event_category') {
key = 'eventCategory';
}
return key;
}
}
});
client.emit({
eventId: '1234',
eventAction: 'autorization',
eventCategory: 'page_view',
phone: '89686421141',
user_id: 'fffff',
device_id: 'asfljsfdaklsdfj',
label: 'hello world'
});