7.3.3 (2020-11-12)
- validation: Be able to take in and validate null object event/user properties (1ed41a3)
7.3.2 (2020-11-05)
7.3.1 (2020-10-30)
- react-native: Change @react-native-community/async-storage to @react-native-async-storage/async-storage (#314) (382c5a4)
7.3.0 (2020-10-15)
7.2.2 (2020-09-25)
7.2.1 (2020-09-22)
- initialization: always return
this
in onInit (#300) (44d00d7) - move bad postinstall script (#301) (ca98af3)
7.2.0 (2020-09-22)
- cookies: respect the options passed into cookies when testing to see if they're enabled (#294) (61b6590)
- add logAttributionCapturedEvent option (#295) ([309dac3](https://github.com/amplitude/amplitude-javascript/commit/309dac3873e3404d4e52ba9b6958ab3e194b07b1
- Fix an issue with detection of whether or not cookies are enabled on a device
- Sync with upstream ua-parser to detect more browsers and devices
- Fix race condition where the SDK might write to the wrong cookie domain
- Fix race condition where the SDK might think cookies are disabled
- Revert
Device Type
field change from version 5.10.0 to show OS name again. - Default SameSite cookie setting to Lax
- The SDK cookie now defaults to SameSite=Lax
- Windows Phone, IE Mobile, and Opera Mobile devices will be reported to amplitude slightly different. They will appear as "Windows Phone OS", "IEMobile", and "Opera Mobile" respectively.
- The device type field has gone back to showing OS name.
- Invoke the logEvent callbacks when a request is actually sent or when we give up on sending a request.
- Pass the initialized amplitude instance to the
onInit
callback. - Fix language validation issue that occured when language was undefined.
- Use a more compact format for newly generated device IDs
- Fix issue with react native failing to initialize metadatastorage
- Fix issue where the UMD module did not build.
- Use a more compact cookie format
- Fix issue where a cookie key could have a space appear inside of it
- Allow for localStorage fallback with the
disableCookie
option. - Only new and unseen devices will get the compact cookie.
cookieForceUpgrade
will force all browsers to upgrade and delete the old cookie.
- The cookie format has been changed to be more compact. If you use the same Amplitude project(API key) across multiple applications, and you track anonymous users across those applications, you will want to update amplitude across all those applications at the same time.
- Use an IIFE build for the snippet. This will solve issues where the snippet wouldn't load for require js users.
- Add a
sameSiteCookie
option to set the SameSite cookie. It is set toNone
by default
Library
field for event will includeamplitude-react-native
when using SDK in react native.Device Type
field now will show the actual device model instead of OS name.
- Add default versionName to for react-native
- Add support to defer saving an amplitude cookie and logging events until a user has opted in
- Fix issue where null unsentKey and unsentIdentifyKeys were causing log crashes
- Namespace AsyncStorage with api key to prevent cross domain contamination
- Drop esm module from package.json to prevent it from being the default build.
- Add fallback localStorage support to the esm module.
- Fix integrity hash
- Fix bug where optOut settings would be overridden by cookie loading
- Fix initialization bugs introduced by removing legacy data migration code.
- Use
@react-native-community/async-storage
instead of the deprecatedAsyncStorage
. - Pull react-native device identifier from device info when possible
- Pull react-native unsent events from async storage
- Fix issues with react native device identification
- Remove legacy cookie migration code
- Fix bug where runQueuedFunctions was unnecessarily being called on module import
- Update dependencies to pass yarn audit again.
- Add ES Module build #183
- Fix setDomain bug where setting the cookie domain clobbered other cookie setings
- Stop warning when
undefined
property values are instrumented
- Fix npm publish failure where built files were missing.
- Stop warning when
null
property values are instrumented - Allow for objects nested within arrays
- Add
onInit
method that accepts a callback that will be invoked after init - Allow for api endpoints that do not end with a trailing slash
- Sync with upstream ua-parser for user agent parsing
- Upgrade rollup/babel dependencies
- Invoke runQueuedFunctions from the main library instead of the snippet. This will allow integrations to take advantage of the queueing feature on sites that do not use the snippet.
- Drop JSON polyfill. This will break IE 7 and older. You can install your own JSON polyfill before loading amplitude.
- Stop committing generated files to the master branch in the git repository. You should not install amplitude from the master git branch. You should never import amplitude.min.js into your build.
- Drop custom user agent parsing for symbian and blackberry
- Cherry-picked from 5.0.0: Add
onInit
method that accepts a callback that will be invoked after init
- Add support for unsetting utm params when a new session is created
- Update dependencies to pass yarn audit
- Bugfix: Allow logLevel to be set to disabled.
- Bugfix: Update ua-parser to work in quirks mode in older internet explorer versions
- Fetch ua-parsers-js from npm instead of github
- Add
secureCookie
option to add a secure flag to the cookie
- Bugfix: Default groupProperties to empty object in logEvent.
-
Fix error that might occur if another party defines a global variable named
Buffer
that is not actually aBuffer
. -
Fix bug where the log level was not initialized correctly
- Add support for groupIdentify calls
- Added
trackingOptions
as a configuration option. This allows you to disable the automatic tracking of specific user properties such as ip_address, city, country, etc. See the Help Center Documentation for instructions on setting up th is configuration.
- Add more context to the 'No request sent' responses
- Add
resetSessionId
method that sets the sessionId to the current time.
- Fix bug where cookie data such as device id from older releases were not migrated
-
Allow for numeric user ids
-
Namespace local storage with api key to prevent cross domain contamination
- Default
forceHttps
option totrue
.
- Add
logLevel
config option
- Add
setSessionId(sesionId)
method. Note this is not recommended unless you know what are you doing. - Added support for Bower. Install using
bower install amplitude-js
. - Switched from webpack to Rollup for building the SDK.
- Supports clean NPM module loading eg:
const amplitude = require('amplitude');
orimport 'amplitude' from 'amplitude-js';
- SDK is now a proper UMD module. Supports RequireJS with r.js builds now.
- Updated build process to use webpack
- Handle SDK loading errors in the load snippet. Please update the load snippets on your website to the latest version.
- Migrating setup instructions and SDK documentation in the README file to Zendesk articles.
- Add
logEventWithTimestamp
to allow logging events with a custom timestamp. The timestamp should a number representing the time in milliseconds since epoch. See documentation for more details. - Add configuration option
deviceIdFromUrlParam
, which when set totrue
will have the SDK parse device IDs from url parameteramp_device_id
if available. Device IDs defined in the configuration options during init will take priority over device IDs from url parameters.
- Updated our UA-parser-js fork to properly parse the version number for Chrome Mobile browsers.
- Fix bug where tracking UTM params and referrer drops unsent events that have been saved to localStorage.
- Add option to track GCLID (Google Click ID) as a user property (set
includeGclid
totrue
in the SDK configuration). - Add option to track new UTM parameters, referrer, and GCLID values during the same session. By default the SDK only saves the values once at the start of the session. You can remove this restriction by setting
saveParamsReferrerOncePerSession
tofalse
in the SDK configuration. See the Readme for more information.
- Block event property and user property dictionaries that have more than 1000 items. This is to block properties that are set unintentionally (for example in a loop). A single call to
logEvent
should not have more than 1000 event properties. Similarly a single call tosetUserProperties
should not have more than 1000 user properties.
- Add configuration option
forceHttps
, which when set totrue
forces the SDK to always upload to HTTPS endpoint. By default the SDK uses the endpoint that matches the embedding site's protocol (for example if your site is HTTP, it will use the HTTP endpoint).
productId
is no longer a required field forRevenue
logged vialogRevenueV2
.- Track raw user agent string for backend filtering.
- Update README with link to our Google Tag Manager integration demo app.
- Fix bug where referrer and UTM params were being captured more than once per session.
- Add support for logging events to multiple Amplitude apps. Note this is a major update, and may break backwards compatability. See Readme for details.
- Init callback now passes the Amplitude instance as an argument to the callback function.
- Update our fork of UAParser.js from v0.7.7 to v0.7.10. This will improve the resolution of user agent strings to device and OS information.
- Silence console warnings for various UTM property keys with undefined values.
- Add support for setting groups for users and events. See the Readme for more information.
- Add
logRevenueV2
and newRevenue
class to support logging revenue events with properties, and revenue type. See Readme for more info. - Add helper method to regenerate a new random deviceId. This can be used to anonymize a user after they log out. Note this is not recommended unless you know what are you doing. See Readme for more information.
- Add tracking of each user's initial_utm parameters (which is captured as a set once operation). Utm parameters are now sent only once per user session.
- Add documentation for SDK functions. You can take a look here. A link has also been added to the Readme.
- Fix cookie test bug. In rare cases, the cookie test failed to delete the key used in testing. Reloading the page generated new keys, filling up the cookie over time. Fixed test to re-use the same key.
- Identify function now accepts a callback function as an argument. The callback will be run after the identify event is sent.
- Add support for
prepend
user property operation. This allows you to insert value(s) at the front of a list. See Readme for more details. - Keep sessions and event metadata in-sync across multiple windows/tabs.
- Fix bug where saveReferrer throws exception if sessionStorage is disabled.
- Log messages with a try/catch to support IE 8.
- Validate event properties during logEvent and initialization before sending request.
- Add instructions for proper integration with RequireJS.
- Add ability to clear all user properties.
- Add getSessionId helper method to fetch the current sessionId.
- Add support for append user property operation.
- Add tracking of each user's initial_referrer property (which is captured as a set once operation). Referrer property captured once per user session.
- If cookies are disabled by user, then fallback to localstorage to save the cookie data.
- Migrate sessionId, lastEventTime, eventId, identifyId, and sequenceNumber to cookie storage to support sessions across different subdomains.
- Fix bug where response code is not passed to XDomainRequest callback (affects IE versions 10 and lower).
- Localstorage is not persisted across subdomains, reverting cookie data migration and adding a reverse migration path for users already on 2.6.0.
- Migrate cookie data to local storage to address issue where having cookies disabled causes SDK to generate a new deviceId for returning users. - DEPRECATED
- Add support for user properties operations (set, setOnce, add, unset).
- Fix bug to run queued functions after script element is loaded and set to window.
- Add support for passing callback function to init.
- Fix bug to check that Window localStorage is available for use.
- Fix bug to prevent scheduling multiple event uploads.
- Add support for passing callback functions to logEvent.
- Add option to batch events into a single request.
- Fix bug where multi-byte unicode characters were hashed improperly.
- Add option to send referrer information as user properties.
- Use gzipped version of the library by default. If you still need the uncompressed version, remove ".gz" from the script url in your integration snippet.
- Upgrade user agent parser for browser detection to keep up-to-date with browser updates.
- Fix bug where Android browsers were reported as Safari on Linux.
- Fix bug with line endings in UTF-8 encoder that was causing issues with checksums.
- Add support for logging revenue data.
- Add opt out setting to disable logging for a user.
- Add option to gather UTM parameters and send them as event properties
- Add support for detecting new sessions
- Add language detection
- Fix detect.js for AMD compatibility
- Fix bug where session ids weren't stored when a session timed out
- Add setDeviceId method
- Fix iPad detection in user agent
- Calls to setUserProperties now merge new properties instead of replacing
- Fix bugs in cookies. Add reverse compatibility
- Incorporate browser/device detection
- Fix null/undefined error when missing config
- Add session tracking
- Add overrideable device id
- Fix error where events were not getting removed from local storage
- UTF-8 encode strings before MD5 hashing
- Update to version 2 of data collection API.
- Send client upload time and checksum
- Rename setGlobalUserProperties to setUserProperties
- Added ability to specifiy domain with cookies using setDomain method
- Fixed Base64 encode method if window doesn't have bota method
- Added try/catch around all public methods
- Added Internet Explorer compatibility for JSON, toString.call and Ajax request
- Add saveEvents configuration option
- Use native Base64 encoding when available
- Remove LZW/Base64 encoding from saving to localStorage to reduce latency
- Save user id and global user properties to cookie
- Save global user properties, change sdk url to https
- Initial release
- Add setVersionName function
- Default global properties to empty array