3 ms·
Disclaimer: I didn't try it yet! I really like the approach and vision. However my initial reaction: Why do I want a generic taxonomy for events? Every busines
by TeeWEE 4y ago
Disclaimer: I didn't try it yet!
I really like the approach and vision. However my initial reaction: Why do I want a generic taxonomy for events? Every business has their own domain. Generic click events are not really interesting, but more domain specific events are.
For example for github you would want events like "project.Starred" "project.Cloned" etc. OR for hacker news "user.addComment" comment.Upvote etc. So you would need to build your own taxonomy anyways right?
I do see the potential power of using BI tools that are built upon a generic taxonomy.
Another comment: I don't really like using "TrackedButton" components that replace Buttons. What If i want to use Next.js and want to use the Next.js's Link... It's better to have a "TrackedObject" and embed a Button inside it..
Maybe i'm too used to calling an "analytivs.trackEvent" function manually coded, because we mostly used company defined events.
If you want open source, using SnowPlow + storing it in redshift using a pipeline would also work. But I guess with Objectiv you don't need to setup anything..
- ivarpruijn 4y agoThanks for the detailed comments. To create the first version of the taxonomy, we looked at the 50 companies we worked with doing modeling on their existing analytics data (from GA, Adobe, Mixpanel etc) and mapped their product UI’s and data team requirements into one extensible data format. In your examples, the taxonomy would classify these as interactive user actions, with a PressEvent on a Pressable UI element. This way, models can work both on the GitHub and HN examples in one generic way, so there is no need to come up with very case-specific naming and map these once you build a model. If you still have use-cases that are not covered, the taxonomy is also extensible, which enables you to use our validation & data modeling. About replacing components: no need to do this if you don't want to, you can either: A) Swap native components without having to code anything, using the premade Tracked<Component> for a specific platform (e.g. `<TrackedButton onClick={handleClick}>Click Me!</TrackedButton>`); or B) Use your own component of your liking (i.e. Next.js' Link) and wrap a TrackedContext around it that automatically triggers an Event (e.g. see https://objectiv.io/docs/tracking/react/api-reference/trackedContexts/TrackedLinkContext/#components https://objectiv.io/docs/tracking/react/api-reference/tracke...). We're big fans of Snowplow for scalability and have an early integration where you can run Objectiv data straight into a SP pipeline https://github.com/objectiv/objectiv-analytics/tree/main/backend/objectiv_backend/snowplow https://github.com/objectiv/objectiv-analytics/tree/main/bac...