Use open analytics taxonomy for metadata in events
Release notes
Problem to solve
All users need to include metadata in their tracking events to describe what the event is and the context around it. This is an exercise all users must go through and most will come up with a unique way of doing it. This also means GitLab has to understand how to consume and process all this data, including all of the unique approaches users have taken. This is not scalable.
Proposal
Add support for the Objectiv open analytics taxonomy to the client SDK. Ensure that users include metadata from this schema and reject non-confirming calls.
A representative example of what this may look like is below. This is intended to be illustrative and not a requirement of what the final API should look like:
document.getElementById('testClickBtn').onclick = function () {
gitlabSDK.track('click',
{
elementId: 'testClickBtn',
eventType: {
name: 'pressEvent'
}
});
};
Note: While the open taxonomy provides several tools and SDKs, our primary interest in it is the information architecture. If we need to take a different approach or modify the existing SDKs, that is OK, since we get the most value out of the standard data structures and organization from the schema, rather than the implementation itself.
Open questions
- Which of the existing SDKs for the taxonomy can we leverage? There is a Browser SDK, Angular SDK, React SDK, and React Native SDK.
- Do we require users to update their HTMl to add "tags" for the taxonomy or can we do all of that in Javascript with the client SDK calls?
- Can we use the Collector component to help us with our validation logic?
- Many events require multiple properties which will be difficult for the user to determine if they must add them directly. Can we use the tracker APIs to add these automatically? The taxonomy documentation indicates that the tracker can set them automatically.
Intended users
Feature Usage Metrics
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.