next-yandex-metrica-service
Version:
Yandex Metrica integration for Next.js
93 lines (92 loc) • 3.14 kB
TypeScript
import type { InitParameters, UserParameters, VisitParameters } from './provider';
declare enum YandexMetricaEvents {
HIT = "hit",
INIT = "init",
FILE = "file",
ADD_FILE_EXTENSION = "addFileExtension",
GET_CLIENT_ID = "getClientID",
NOT_BOUNCE = "notBounce",
FIRST_PARTY_PARAMS = "firstPartyParams",
EXT_LINK = "extLink",
REACH_GOAL = "reachGoal",
SET_USER_ID = "setUserID",
PARAMS = "params",
USER_PARAMS = "userParams"
}
type BaseOptions = {
title?: string;
params?: VisitParameters;
callback?: () => void;
};
type FileOptions = BaseOptions & {
referer?: string;
};
type FirstPartyParamsParameters = {
email?: string;
phone_number?: string;
first_name?: string;
last_name?: string;
home_address?: string;
street?: string;
city?: string;
region?: string;
postal_code?: string;
country?: string;
yandex_cid?: number;
};
type FileEventParameters = [
eventName: YandexMetricaEvents.FILE,
url: string,
options?: FileOptions
];
type InitEventParameters = [
eventName: YandexMetricaEvents.INIT,
parameters: InitParameters
];
type AddFileExtensionEventParameters = [
eventName: YandexMetricaEvents.ADD_FILE_EXTENSION,
extensions: string | string[]
];
type ExtLinkEventParameters = [
eventName: YandexMetricaEvents.EXT_LINK,
url: string,
options?: BaseOptions
];
type FirstPartyParamsEventParameters = [
eventName: YandexMetricaEvents.FIRST_PARTY_PARAMS,
parameters: FirstPartyParamsParameters
];
type GetClientIDEventParameters = [
eventName: YandexMetricaEvents.GET_CLIENT_ID,
cb: (clientID: string) => void
];
type HitEventParameters = [
eventName: YandexMetricaEvents.HIT,
url: string,
options?: FileOptions
];
type NotBounceEventParameters = [
eventName: YandexMetricaEvents.NOT_BOUNCE,
options?: () => void
];
type ParamsEventParameters = [
eventName: YandexMetricaEvents.PARAMS,
parameters: VisitParameters | VisitParameters[]
];
type ReachGoalEventParameters = [
eventName: YandexMetricaEvents.REACH_GOAL,
target: string,
params?: VisitParameters,
callback?: () => void
];
type SetUserIDEventParameters = [
eventName: YandexMetricaEvents.SET_USER_ID,
userID: string
];
type UserParamsEventParameters = [
eventName: YandexMetricaEvents.USER_PARAMS,
parameters: UserParameters
];
type YandexMetricaEventParameters = InitEventParameters | AddFileExtensionEventParameters | ExtLinkEventParameters | FileEventParameters | FirstPartyParamsEventParameters | GetClientIDEventParameters | HitEventParameters | NotBounceEventParameters | ParamsEventParameters | ReachGoalEventParameters | SetUserIDEventParameters | UserParamsEventParameters;
export type { YandexMetricaEventParameters, InitEventParameters, AddFileExtensionEventParameters, ExtLinkEventParameters, FileEventParameters, FirstPartyParamsEventParameters, GetClientIDEventParameters, HitEventParameters, NotBounceEventParameters, ParamsEventParameters, ReachGoalEventParameters, SetUserIDEventParameters, UserParamsEventParameters };
export { YandexMetricaEvents };