amplitude / amplitude/Amplitude-TypeScript

Delay events until `BrowserClient` is initialised

Abierto
#1,043 1 comentario 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
TypeScript
Estrellas
180
Forks
68
Merge medio
3 d 1 h
PR fusionados (30 d)
29

Descripción

## Summary

The `init` method of `BrowserClient` is async. While the initialisation is ongoing, the application can already track events. These events will then not be processed by plugins.

With the `dispatchQ` in the `CoreClient` there is already a mechanism to buffer events. However tracked events are only put on the queue while `CoreClient` is initialising (`isReady === false`). The queue however is [processed](https://github.com/amplitude/Amplitude-TypeScript/blob/f0e35ac0700f90c38672c2bfa1c239d50c7181e2/packages/analytics-browser/src/browser-client.ts#L160) when the `BrowserClient` is done initialising.

## Motivations
In our tracking setup we have the issue that events are tracked before the `BrowserClient` is fully initialised. We rely on a custom plugin to run first to ensure user properties are populated.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.