Analytics
Analytics - модуль для упрощения интеграции сторонний сервисов отслеживания
Основой модуля является класс AnalyticsManager, через который подключаются сторонние сервисы, имеющие тип AnalyticsService, и добавление таких глобальных свойств, как $analytics и $reachGoal. Основная идея состоит в стандартизации API сервисов через такие методы, как getMeta, sendEvent и init.
Module options
src
- type:
string - required:
true
Путь к файлу с экземпляром AnalyticsManager текущего приложения. Инстанс должен экспортироваться как default.
Пример в nuxt-modules/analytics/playground
Class AnalyticsManager
Properties
services
- type:
AnalyticsService[] - default:
[]
Массив подключенных сервисов.
Methods
sendEvent
- type:
(event: string, params?: Record<string, any>) => void
Метод отправки события для всех сервисов.
init
- type:
() => void
Метод инициализации всех сервисов.
getMeta
- type:
() => MetaObject
Метод получение мета тэгов всех сервисов
Abstract class AnalyticsService
Static properties
key
- type:
string - required:
true
Название сервиса для доступа через глобальное свойство $analytics.
Methods
Все методы данного абстрактного класса являются опциональными.
sendEvent
- type:
(event: string, params?: Record<string, any>) => void
Метод отправки события сервиса
init
- type:
() => void
Метод инициализации сервиса
getMeta
- type:
() => MetaObject
Метод получение мета тэгов сервиса
Composition
useReachGoal
- type:
() => (event: string, params?: Record<string, any>) => void
Возвращает фукнцию типа ReachGoal, в которой вызывается sendEvent метод инстанса AnalyticsManager.
useAnalytics
- type:
() => Record<string, AnalyticsService>
Возвращает объект типа AnalyticsServiceMap, представляющий собой объект инстансов сервисов, доступных через соответствующего статическое поле key.
Usage
<template>
<div>
Analytics Module
<button @click="onClick">
Trigger analytics event
</button>
</div>
</template>
<script>
import { onMounted } from 'vue';
import { useAnalytics, useReachGoal } from 'shared-front/lib/modules/analytics';
export default {
setup() {
const $analytics = useAnalytics();
const $reachGoal = useReachGoal();
onMounted(() => {
$analytics.ga.setUser('some-id');
});
function onClick() {
$reachGoal('ButtonClick', {
label: 'Some label'
})
}
return {
onClick,
};
},
};
</script>