fg-tracker-browser 0.12.1 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +85 -3
- package/dist/analytics.d.ts +57 -2
- package/dist/analytics.js +142 -4
- package/dist/analytics.js.map +1 -1
- package/dist/events.d.ts +69 -0
- package/dist/events.js +513 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +116 -19
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +11 -0
- package/dist/react.js +29 -0
- package/dist/react.js.map +1 -0
- package/dist/types.d.ts +88 -2
- package/package.json +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -101,6 +101,53 @@ export interface BrowserOptions {
|
|
|
101
101
|
* não depende de `analytics`, `consent` nem Do Not Track. `true` = `{ sampleRate: 1, softNavigations: true }`.
|
|
102
102
|
*/
|
|
103
103
|
webVitals?: boolean | WebVitalsOptions;
|
|
104
|
+
/**
|
|
105
|
+
* Eventos automáticos de navegação e engajamento (docs/trafego-eventos.md): tempo ativo por
|
|
106
|
+
* visualização, marcos de rolagem, navegação SPA e volta do bfcache, links externos, downloads,
|
|
107
|
+
* ações declaradas com `data-fg-event` e formulários marcados com `data-fg-form`. Default `false`.
|
|
108
|
+
* Só valem com `analytics` ligada, sob o mesmo consentimento e Do Not Track dos pageviews; não criam
|
|
109
|
+
* pageviews nem sessões. `true` liga todos; um objeto desliga os que vierem `false`.
|
|
110
|
+
* `track()` e `conversion()` funcionam com `analytics`, mesmo sem esta opção.
|
|
111
|
+
*/
|
|
112
|
+
events?: boolean | EventsOptions;
|
|
113
|
+
}
|
|
114
|
+
export interface EventsOptions {
|
|
115
|
+
/** `page_engagement`: tempo ativo (página visível, em foco e com interação nos últimos 30 s), em ms. */
|
|
116
|
+
engagement?: boolean;
|
|
117
|
+
/** `scroll`: marcos de 25, 50, 75 e 90% da página, uma vez cada por visualização. */
|
|
118
|
+
scroll?: boolean;
|
|
119
|
+
/** `navigation`: navegação SPA (com a rota de origem) e volta do bfcache. */
|
|
120
|
+
navigation?: boolean;
|
|
121
|
+
/** `outbound_click`: clique em link para outro site (só o host). */
|
|
122
|
+
outboundLinks?: boolean;
|
|
123
|
+
/** `file_download`: clique em link de arquivo (só a extensão). `extensions` substitui a lista padrão. */
|
|
124
|
+
downloads?: boolean | {
|
|
125
|
+
extensions?: string[];
|
|
126
|
+
};
|
|
127
|
+
/** Cliques em elementos com `data-fg-event="nome"` (e até 5 `data-fg-prop-<chave>`). */
|
|
128
|
+
actions?: boolean;
|
|
129
|
+
/** `form_start` e `form_submit` dos `<form data-fg-form="id">`: nunca lê valores nem campos. */
|
|
130
|
+
forms?: boolean;
|
|
131
|
+
}
|
|
132
|
+
/** Valor de atributo de evento: texto curto, número finito ou booleano. */
|
|
133
|
+
export type EventPropValue = string | number | boolean;
|
|
134
|
+
export type EventProps = Record<string, EventPropValue>;
|
|
135
|
+
/** `auto` (SDK), `action` (`data-fg-event`), `custom` (`track`) ou `conversion` (`conversion`). */
|
|
136
|
+
export type TrafficEventKind = 'auto' | 'action' | 'custom' | 'conversion';
|
|
137
|
+
export interface TrackOptions {
|
|
138
|
+
/** Número do evento (quantidade, duração…), finito. */
|
|
139
|
+
value?: number;
|
|
140
|
+
/**
|
|
141
|
+
* Identificador estável da ocorrência (ex.: id do pedido, sem dado pessoal): o mesmo `name` + `id`
|
|
142
|
+
* gera o mesmo `event_id`, e a API grava uma vez dentro da janela de dedupe de 48 h (recarga da
|
|
143
|
+
* página de sucesso, clique duplo).
|
|
144
|
+
*/
|
|
145
|
+
id?: string;
|
|
146
|
+
}
|
|
147
|
+
export interface ConversionOptions extends TrackOptions {
|
|
148
|
+
/** Moeda ISO 4217 (`BRL`), só com `value`. */
|
|
149
|
+
currency?: string;
|
|
150
|
+
props?: EventProps;
|
|
104
151
|
}
|
|
105
152
|
export interface WebVitalsOptions {
|
|
106
153
|
/** Fração das cargas de documento medidas (sorteio por carga; as navegações SPA seguem a carga). Default 1. */
|
|
@@ -145,7 +192,36 @@ export interface IdentifyEvent {
|
|
|
145
192
|
session_id: string;
|
|
146
193
|
ts: string;
|
|
147
194
|
}
|
|
148
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Evento de navegação, engajamento, ação ou conversão (`analytics[]`, docs/trafego-eventos.md). Ligado
|
|
197
|
+
* à visualização (`pageview_id`) e à sessão do pageview; nunca conta como pageview.
|
|
198
|
+
*/
|
|
199
|
+
export interface TrafficEvent {
|
|
200
|
+
type: 'event';
|
|
201
|
+
/** 32 hex (aleatório, ou derivado de `name` + `id`): o reenvio não duplica (dedupe na API). */
|
|
202
|
+
event_id: string;
|
|
203
|
+
kind: TrafficEventKind;
|
|
204
|
+
/** `snake_case`, 1–64 caracteres. */
|
|
205
|
+
name: string;
|
|
206
|
+
/** Rota saneada da visualização (`sanitizePath`), sem query nem fragmento. */
|
|
207
|
+
url: string;
|
|
208
|
+
/** Visualização a que o evento pertence: o `event_id` do pageview dela. */
|
|
209
|
+
pageview_id: string;
|
|
210
|
+
/** View dos Web Vitals e dos spans da mesma página (`attributes['view.id']`), quando medida. */
|
|
211
|
+
view_id?: string;
|
|
212
|
+
value?: number;
|
|
213
|
+
currency?: string;
|
|
214
|
+
props?: EventProps;
|
|
215
|
+
screen: 'mobile' | 'tablet' | 'desktop' | null;
|
|
216
|
+
visitor_id: string;
|
|
217
|
+
session_id: string;
|
|
218
|
+
user_id?: string;
|
|
219
|
+
ts: string;
|
|
220
|
+
service?: string;
|
|
221
|
+
environment?: string;
|
|
222
|
+
release?: string;
|
|
223
|
+
}
|
|
224
|
+
export type AnalyticsEvent = PageviewEvent | IdentifyEvent | TrafficEvent;
|
|
149
225
|
/** Como a view começou: carga do documento (tipo do Navigation Timing), volta do bfcache ou navegação SPA. */
|
|
150
226
|
export type WebVitalsNavigationType = 'navigate' | 'reload' | 'back_forward' | 'prerender' | 'restore' | 'soft';
|
|
151
227
|
/**
|
|
@@ -238,8 +314,18 @@ export interface BrowserTracker {
|
|
|
238
314
|
page(path?: string): void;
|
|
239
315
|
/** Liga o visitante anônimo ao usuário logado (`null` desliga). O id é guardado só como hash na API. */
|
|
240
316
|
identify(userId: string | number | null): void;
|
|
241
|
-
/** Atualiza o consentimento de analytics; `granted` libera a fila retida em `pending
|
|
317
|
+
/** Atualiza o consentimento de analytics; `granted` libera a fila retida em `pending`; `denied` descarta também os eventos (`track`, automáticos) que não saíram. */
|
|
242
318
|
setConsent(consent: Consent): void;
|
|
319
|
+
/**
|
|
320
|
+
* Evento próprio (`kind: 'custom'`) da visualização atual. Ignorado sem `analytics`, com Do Not Track
|
|
321
|
+
* ou `consent: denied`; retido como os pageviews em `pending`. Nome `snake_case`; até 10 atributos.
|
|
322
|
+
*/
|
|
323
|
+
track(name: string, props?: EventProps, options?: TrackOptions): void;
|
|
324
|
+
/**
|
|
325
|
+
* Conversão concluída (`kind: 'conversion'`): chame só depois do sucesso da operação de negócio
|
|
326
|
+
* (pagamento aprovado, cadastro criado), não no clique ou no envio do formulário.
|
|
327
|
+
*/
|
|
328
|
+
conversion(name: string, options?: ConversionOptions): void;
|
|
243
329
|
/** Remove os listeners globais e o patch do fetch. */
|
|
244
330
|
close(): void;
|
|
245
331
|
readonly breadcrumbs: readonly Breadcrumb[];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fg-tracker-browser",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "SDK de navegador do FG Tracker: erros não tratados, breadcrumbs (cliques, navegação, console, fetch, XHR), usuário, release, propagação de trace para a API e
|
|
3
|
+
"version": "0.14.0",
|
|
4
|
+
"description": "SDK de navegador do FG Tracker: erros não tratados, breadcrumbs (cliques, navegação, console, fetch, XHR), usuário, release, propagação de trace para a API, Web Vitals e eventos de navegação e engajamento",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://github.com/FORTGROUND/fg-tracker/tree/main/packages/browser#readme",
|
|
7
7
|
"repository": {
|