amplitude / amplitude/Amplitude-TypeScript

Delay events until `BrowserClient` is initialised

Open
#1,043 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
180
Forks
68
Avg merge
3d 1h
Merged PRs (30d)
29

Description

## 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.