https://github.com/fliskdata/analyze-tracking
Automatically document your analytics setup by analyzing tracking code and generating data schemas ๐
https://github.com/fliskdata/analyze-tracking
amplitude analytics googleanalytics heap javascript mixpanel mparticle pendo posthog rudderstack segment snowplow typescript
Last synced: 10 days ago
JSON representation
Automatically document your analytics setup by analyzing tracking code and generating data schemas ๐
- Host: GitHub
- URL: https://github.com/fliskdata/analyze-tracking
- Owner: fliskdata
- License: mit
- Created: 2024-08-17T21:00:26.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-10-06T14:35:37.000Z (7 months ago)
- Last Synced: 2025-03-27T21:48:43.032Z (30 days ago)
- Topics: amplitude, analytics, googleanalytics, heap, javascript, mixpanel, mparticle, pendo, posthog, rudderstack, segment, snowplow, typescript
- Language: JavaScript
- Homepage: https://www.flisk.ai
- Size: 91.8 KB
- Stars: 22
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @flisk/analyze-tracking
Automatically document your analytics setup by analyzing tracking code and generating data schemas from tools like Segment, Amplitude, Mixpanel, and more ๐.
[](https://www.npmjs.com/package/@flisk/analyze-tracking)
## Why Use @flisk/analyze-tracking?
๐ **Understand Your Tracking** โ Effortlessly analyze your codebase for `track` calls so you can see all your analytics events, properties, and triggers in one place. No more guessing whatโs being tracked!๐ **Auto-Document Events** โ Generates a complete YAML schema that captures all events and properties, including where theyโre implemented in your codebase.
๐ต๏ธโโ๏ธ **Track Changes Over Time** โ Easily spot unintended changes or ensure your analytics setup remains consistent across updates.
๐ **Populate Data Catalogs** โ Automatically generate structured documentation that can help feed into your data catalog, making it easier for everyone to understand your events.
## Quick Start
Run without installation! Just use:
```sh
npx @flisk/analyze-tracking /path/to/project [options]
```### Key Options:
- `-g, --generateDescription`: Generate descriptions of fields (default: `false`)
- `-o, --output `: Name of the output file (default: `tracking-schema.yaml`)
- `-c, --customFunction `: Specify a custom tracking function๐ย **Important:** you must set the `OPENAI_API_KEY` environment variable to use `generateDescription`
Note on Custom Functions ๐ก
Use this if you have your own in-house tracker or a wrapper function that calls other tracking libraries.
We currently only support functions that follow the following format:
```js
yourCustomTrackFunctionName('', {
});
```## Whatโs Generated?
A clear YAML schema that shows where your events are tracked, their properties, and more.
Hereโs an example:```yaml
version: 1
source:
repository:
commit:
timestamp:
events:
:
description:
implementations:
- description:
path:
line:
function:
destination:
properties:
:
description:
type:
```Use this to understand where your events live in the code and how theyโre being tracked.
[GPT-4o mini](https://platform.openai.com/docs/models/gpt-4o-mini) is used for generating descriptions of events, properties, and implementations.
See [schema.json](schema.json) for a JSON Schema of the output.
## Supported tracking libraries
Google Analytics
```js
gtag('event', '', {
});
```Segment
```js
analytics.track('', {
});
```Mixpanel
```js
mixpanel.track('', {
});
```Amplitude
```js
amplitude.logEvent('', {
});
```Rudderstack
```js
rudderanalytics.track('', {
});
```mParticle
```js
mParticle.logEvent('', {
});
```PostHog
```js
posthog.capture('', {
});
```Pendo
```js
pendo.track('', {
});
```Heap
```js
heap.track('', {
});
```Snowplow (struct events)
```js
snowplow('trackStructEvent', {
category: '',
action: '',
label: '',
property: '',
value: ' '
});
``````js
trackStructEvent({
category: '',
action: '',
label: '',
property: '',
value: ''
});
``````js
buildStructEvent({
category: '',
action: '',
label: '',
property: '',
value: ''
});
```_Note: Snowplow Self Describing Events are coming soon!_
## Contribute
Weโre actively improving this package. Found a bug? Want to request a feature? Open an issue or contribute directly!