Objectiv Analytics Versions Save

Powerful product analytics for data teams, with full control over data & models.

20221103

1 year ago

Adds support for building & running data models directly on Amazon Athena with Objectiv.

Athena support 🎉

Bach

Tracking

Documentation

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20221027...20221103

20221027

1 year ago

Introduces a central Validation service that is now used by all Objectiv components to ensure data is collected according to the open analytics taxonomy.

Tracking & Validation

Documentation

WIP Athena support

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20221020...20221027

20221020

1 year ago

To easily analyze the performance of your funnels on your product goals, this release adds a new model hub operation called funnel_conversion. With this new operation, you can get an easy-to-digest overview that shows all the relevant metrics in one go, for each step in the funnel:

  • n_users: The number of users who started the funnel;
  • n_users_completed_step: The number of users who completed the step (defined as whether the user went to any other step in the funnel);
  • step_conversion_rate: The conversion rate to completing the step;
  • full_conversion_rate: The conversion rate to completing the step, looking at all users who started the funnel (= the ‘full’ conversion rate); and
  • dropoff_share: The percentage of users in the entire funnel, who dropped off in that step.

Open model hub

Tracking & Validation

WIP: Athena support

Documentation & notebooks

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20221006...20221020

20221006

1 year ago

This release enables you to use Objectiv to collect privacy-friendly anonymized user behavior data, without setting any cookies.

Tracking

Open model hub

WIP Athena support

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220929...20221006

20220929

1 year ago

In this release, we’re enabling you to self-host Objectiv's open-source analytics platform in under five minutes - 100% free & open-source, preconfigured with pre-built models, dashboards, and demo data.

Objectiv Up is a pre-packaged, dockerized version of Objectiv. It comes with everything you need to run powerful product analytics from your notebook with full control over data and models.

Objectiv Up includes:

  • A collector backend to collect, validate and process all events.
  • A postgres data store to store all collected events.
  • Pre-built notebooks for common product & marketing analyses.
  • Pre-built dashboards to share insights with your team.
  • A demo app with demo data to try Objectiv directly.

All the necessary infrastructure comes pre-configured and is ready to go.

What's changed

Objectiv Up

Open model hub

Documentation

WIP Athena support

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220920...20220929

20220920

1 year ago

In this release we add an operation to the open model hub called drop_off_locations, that enables you to quickly find which locations/features drive users to drop off on any of your product goals, and how (relatively) often this happens.

You can directly slice on any part of the location stack in your product, or just analyze the full product, and you get the locations where users drop off with their count/share.

ModelHub & Bach

Tracking

Demo notebooks

WIP Athena support

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220915...20220920

20220915

1 year ago

This release enables adding Objectiv tracking to your existing React Components library, making it possible to instrument all your Components just once, and reuse them anywhere in your application with full analytics tracking support.

Any JSX element or custom Element/Component can now be tracked, while automatically capturing all relevant context, plus information about where an event exactly happened in the UI. You also also get the same autocompletion, typing, and validation tools as for Objectiv Components.

API changes

  • Tacker Core makeIdFromString has been renamed to makeId and supports making identifiers from numbers as well.
  • Tracked Context HOCs have new API signatures, see below for detailed notes on how to migrate to those.

Tracked Context HOCs changes

Apart from the TypeScript improvements and support for Component types via generics, we also received quite some feedback on the Tracked Context HOCs API:

  • The forwardId, forwardTitle and forwardHref properties were not so intuitive to use and easy to forget.
  • Mixing injected Component props and Objectiv props made creating generic Components unnecessarily complex.
  • The chance of prop collisions between the injected Component and the HOC was quite high.

While the basic concepts remain the same, the signature of Tracked Context HOCs changed a little.

All Objectiv related options are now grouped under a single prop called objectiv.

This is an object containing all the options that previously had to be set via props directly on the HOC, e.g. id, forwardId, title, forwardTitle, href, forwardHref, normalizeId, waitUntilTracked, and so on.

Here are some practical examples of what this means:

v0.0.24:

<TrackedContentContext 
  Component={'div'}
  id={'identifier'}
  normalizeId={false}
/> 
  … 
</TrackedContentContext>

V0.0.25:

<TrackedContentContext 
  objectiv={{ 
    Component: 'div', 
    id: 'identifier', 
    normalizeId: false
  }}
>
  …
</TrackedContentContext>

No more props forwarding

The biggest change is that props forwarding has been removed.

The SDK doesn’t fiddle with attributes anymore, instead we rely 100% on what’s set on the objectiv prop and only read attributes as fallbacks. Here is an example to illustrate how the new syntax differs from the previous one.

In v0.0.24 one could decide to specify the id prop and optionally apply it also to the native underlying element by using the forwardId option:

<TrackedContextContext 
  Component={'div'} 
  id={'identifier'} 
  forwardId={true}
>
  …
</TrackedContextContext>

In v0.0.25 forwardId has been deprecated. The tracking identifier must be specified via the objectiv object and the id property can be set on the HOC itself.

<TrackedContextContext 
  id={'html-identifier'}
  objectiv={{
    Component: 'div', 
    id: 'html-identifier'
  }}
>
    …
</TrackedContextContext>

Attributes auto-detection

One last note on HTML attributes detection. We still have some logic in place for common HTML attributes detection. For example the previous HOC functions also if we remove the id option from the objectiv prop, because we fallback to reading the native id attribute as a fallback:

<TrackedContextContext
  id={'html-identifier'} 
  objectiv={{ 
    Component: 'div'
  }}
>
…
</TrackedContextContext>

Note that specifying both identifiers is still a use case when the tracking identifier is different from the id attribute.

The same logic has been applied to all props that could be forwarded, namely: title and href.

Validation

Nothing changed. The SDK will still make sure all required attributes are present. It will log an error if the id attribute is removed entirely from both attributes and the objectiv prop.

Final thoughts

With these changes we hope to simplify the usability of the Tracked Context HOCs and eliminate prop collision issues.

See the full release log below.

Tracking

WIP Athena support

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220902...20220915

20220902

1 year ago

This release introduces a breaking change in working with Global Contexts data.

  1. Selecting global contexts to use You now select which global contexts you want to use when you instantiate your Objectiv DataFrame, which are flattened out into the DataFrame itself:
 modelhub = ModelHub(time_aggregation='%Y-%m-%d', global_contexts=['application', 'marketing'])

Which in this example results in a dataframe that has both application and marketing columns that contain the JSON for the respective global context.

  1. Interacting with global context properties You now interact with properties in global context columns (which is JSON) via the context accessor. For example to get the ID of the application as a Series, you use:
df.application.context.id

Similarly, the application ID can be set as regular (text) column in your DataFrame:

df['application_id'] = df.application.context.id

When doing this simple migration, please make sure that you do not overwrite contexts that you have retrieved earlier, e.g. check that assigned columns don’t have the same name as the global context column, or modelhub might raise errors when it needs the context that was overwritten.

More background

For more info, see the open taxonomy example notebook for how to use the new global contexts.

We’ve opted for making a breaking change, because maintaining backward compatibility is not possible long-term, and short-term it has a huge impact on performance. The required changes to existing analysis should be minimal, and of course we’re happy to assist on Slack!

This change paves the way for deeper Snowplow integration, allowing anyone to run Objectiv in parallel with an existing SP pipeline. Check out the Snowplow pipeline docs for how to set that up.

Bach

  • Model hub: Flatten context on DataFrame creation by @jansentom in https://github.com/objectiv/objectiv-analytics/pull/1165
  • Model hub: Flatten global contexts: update notebook and docs by @jansentom in #1166
  • Model hub: Flatten global contexts: update example-notebooks by @ivarpruijn in #1203

Under the Hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220901...20220902

20220901

1 year ago

Makes it possible to quickly build BI dashboards with common product & marketing analytics metrics, using the pre-built data models from the open model hub. Examples of these models are unique users, session duration, retention, top used features, funnel discovery, user behavior prediction, and more.

Bach

Demo notebooks

Docs

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220826...20220901

20220826

1 year ago

Adds a ‘Marketing Analytics’ notebook that shows how you can fully analyze behavior of users who enter your site/app via marketing efforts.

Example notebooks

WIP Athena support

Under the hood

Full Changelog: https://github.com/objectiv/objectiv-analytics/compare/20220818...20220826