All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Make all referring services lower case.
- Too large, small or otherwise invalid last interaction timestamps are explicitly handled.
- Empty UTM parameters are no longer captured.
- Clear log no longer sets null but it actually removes the storage item.
Because the localStorage stores strings, and "null" is a string and valid JSON it was passing all checks and it was being returned instead of an empty array.
- Subscribers are now notified of changed attribution after logging the new interaction.
This way the subscribers have access to the full interaction log, including the interaction that just changed attribution.
- Middleware to recognise organic search and social traffic.
- Settings for storage keys, the defaults are the same as before.
- Added back missing types export.
- All settings are now passed to the constructor in an object.
This allows users to more easily specify only the settings they want. - The storage object is now optional, defaulting to localStorage.
- All settings can now be overwritten after instantiation.
- An index.js that exports everything from the package.
- Compiled javascript in the published package.
- Separate type definitions in the published package.
- The middlewares are now functions instead of objects with methods.
- The attribution models are now functions instead of objects with methods.
The first version!
- The ability to process pageviews, modeling them as interactions and logging any interactions that may lead to new attribution.
- The ability to change interactions before evaluating changes in attribution through the use of middlewares.
- The ability to respond to changes in attribution by registering a callback with
InteractionLogger.onAttributionChange()
. - Attribution models that use the logged interactions to determine attribution.