v3.0.2 (2024-04-16)
- Avoid crash if AsyncStorage is null #235
v3.0.1 (2024-04-11)
- Replace the MixpanelReactNative with mixpanelImpl and bump native versions #231
Closed issues:
v3.0.0 (2024-04-09)
This is the official release for Expo and React Native Web support. For more details, please refer to the release notes for versions 3.0.0-beta.2 and 3.0.0-beta.1.
- bump ios version to 4.2.4 #228
v3.0.0-beta.2 (2024-03-06)
- Add support to use custom storage instead of @react-native-async-storage/async-storage.(mixpanel#225) When JavaScript mode is enabled, Mixpanel utilizes AsyncStorage to persist data. If you prefer not to use it, or if AsyncStorage is unavailable in your target environment, you can import or define a different storage class. However, it must follow the same interface as AsyncStorage The following example demonstrates how to use a custom storage solution:
const MyAsyncStorage = require("@my-org/<library-path>/AsyncStorage"); // or your own storage class
const trackAutomaticEvents = false;
const useNative = false;
const mixpanel = new Mixpanel('YOUR_TOKEN', trackAutomaticEvents, useNative, MyAsyncStorage);
mixpanel.init();
- Make
optOutTracking
andoptInTracking
consistent with the native SDK.(mixpanel#225)
v3.0.0-beta.1 (2024-02-29)
This version(PR #223) introduces support for Expo, React Native Web, and any platform using React Native that does not support iOS and Android. To activate this, initialize Mixpanel with an additional parameter useNative
set to false, which will enable JavaScript mode. Currently in beta, we plan to iterate on this to address any issues and add more features. We welcome your feedback.
const trackAutomaticEvents = false;
const useNative = false;
const mixpanel = new Mixpanel(
"YOUR_MIXPANEL_TOKEN",
trackAutomaticEvents,
useNative
);
mixpanel.init();
To try the Expo sample app, navigate to Samples/MixpanelExpo
, run npm install
, and then execute npm run ios
or npm run android
Known limitations and differences compared to the native mode (iOS/Android):
- Automatic Events are currently not supported in this mode. Setting 'trackAutomaticEvents' to 'true' will have no effect.
- Certain Mixpanel Properties are unavailable in Javascript mode, including detailed information about the device and screen.
- The default flush interval is set to 10 seconds. The data will not flush automatically when the app moves to the background. We recommend flushing more frequently for key events.
v2.4.1 (2024-03-01)
- Fix mp_lib(Mixpanel Library) not being set as
react-native
v2.4.0 (2023-12-02)
v2.3.1 (2023-06-20)
- fix typo in the identify function resolve #205
v2.3.0 (2023-06-16)
- Returning Promise for the identify() to avoid race condition #200
- Fix null reference used for synchronization (monitor-enter) #199
- fix initialize was called with 4 arguments but expects 5 arguments #198
- safer handling of super properties #197
- Android resource linking failure fix #187
Closed issues:
- Support new React Native new architecture (TurboModules/Fabric) #145
- Feature Request: Built in getInstance() or similar instead of custom tooling #139
- [Feature Request] Add support for Expo Config Plugins #69
v2.2.5 (2023-04-29)
- Remove semaphores, copy properties, use .merging, don't includeLibInfo in init #191
v2.2.4 (2023-04-25)
- use semaphore to prevent concurrent access to properties object #188
v2.2.3 (2023-04-17)
- Make 'groups' argument optional in trackWithGroups #169
v2.2.1 (2023-03-23)
- bump iOS version to 4.1.0 #180
v2.2.0 (2023-03-06)
- From this version we will prefix randomly generated device-specific distinct_ids with "$device:". The prefix is applied the next time a new random ID is generated, any IDs generated by previous SDK versions and persisted on the device will continue to be used as-is until reset is called to generate a new ID. This does not change the value sent for the $device_id property, which will continue to be the randomly-generated ID without a prefix. Mixpanel's $identify endpoint has been updated to accept UUIDs with this prefix to coordinate with this change.
- bump ios to 4.0.5 and android to 7.3.0 #176
v2.1.0 (2022-09-14)
- add serverURL to init params and fix Android module #160
v2.0.1 (2022-09-12)
- update typescript and iOS bridging header #158
v2.0.0 (2022-09-09)
This major release removes all remaining calls to Mixpanel's /decide
API endpoint. The main effect of this is that the SDK no longer fetches the remote status of your project's "Automatically collect common mobile events" setting. From this version forward, automatic event tracking can only be controlled by the, now required, parameter trackAutomaticEvents
. Upon upgrading, existing implementations will need to add this parameter to their Mixpanel initializer calls.
- make trackAutomaticEvents required and bump versions to deprecate Decide #153
v1.5.0 (2022-06-24)
- bump versions to get millisecond precision for event time property #146
v1.4.2 (2022-05-21)
- bump versions to remove survey #140
v1.4.1 (2022-05-09)
- bump android version to 6.2.1 #138
v1.4.0 (2022-05-06)
- Bump to latest ios and android sdk versions and remove android people identify(deprecated) #137
- Allow disable flush on background #135
- Adds a new API
getDeviceId
for React Native #134
v1.3.10 (2022-03-26)
- upgrade android targetSdkVersion to 30 #131
v1.3.9 (2022-03-02)
Merged pull requests:
- bump mixpanel-swift to 3.1.5 #129
v1.3.8 (2022-02-25)
- add init super props & declare multi-prop interfaces #127
v1.3.7 (2022-01-26)
- Bump iOS SDK to v3.1.2 #125
v1.3.6 (2022-01-13)
Caution: Please DO NOT use this build! In this version, we have a bug in iOS that event names with &
or %
will be rejected by the server. We recommend you update to 1.3.7 or above.
- Fix common mobile events not showing 'react-native' as property value for 'Mixpanel Library' #122
v1.3.5 (2022-01-04)
Merged pull requests:
- nested dictionary should be a valid type in iOS #119
- fix setGroup array properties #118
- bump SDk dependencies #116
- Fix Expo SDK 44 build error #115
v1.3.4 (2021-09-25)
Merged pull requests:
- Bump native SDK dependencies #102
v1.3.3 (2021-09-21)
Merged pull requests:
- Bump tmpl from 1.0.4 to 1.0.5 in /Samples/ContextAPIMixpanel #100
- Bump tmpl from 1.0.4 to 1.0.5 #98
- Bump tmpl from 1.0.4 to 1.0.5 in /Samples/MixpanelDemo #97
- Bump path-parse from 1.0.6 to 1.0.7 in /Samples/MixpanelDemo #87
- Bump path-parse from 1.0.6 to 1.0.7 #84
- Bump react-native from 0.64.0 to 0.64.1 in /Samples/MixpanelDemo #80
v1.3.2 (2021-08-23)
- Add constructor method type definition #85
v1.3.1 (2021-07-29)
- Fix the inconsistency typescript definition of init #78
Merged pull requests:
- Add more sample apps for integrating Mixpanel including using Context API #79
v1.3.0 (2021-07-28)
Merged pull requests:
- Deprecate the class method init() and improve the example #76
v1.2.4 (2021-06-24)
Merged pull requests:
- Polish README #67
- Update README: Improve the quick start guide #66
- Fix Android crash caused by invalid number being set as property value #65
- Bump glob-parent from 5.1.1 to 5.1.2 #63
- Add a CHANGELOG placeholder #62
- Add github workflow for auto release #61
v1.2.3 (2021-05-20)
- Bump Mixpanel Andriod dependency to 5.9.1 (Migrate to Airship 12.x for the integration) mixpanel#59
v1.2.2 (2021-05-08)
- Fix Mixpanel type conversion for ios mixpanel#48
- Fix iOS compile error mixpanel#53
v1.2.0 (2021-05-03)
- Add new settings APIs: setUseIpAddressForGeolocation, setLoggingEnabled(add android), setServerURL(add android) mixpanel#44
v1.1.1 (2021-03-17)
- Fix the issue of passing boolean value as int in iOS mixpanel#34
v1.1.0 (2021-03-03)
- Add Typescript support
- mixpanel#31. thanks @sroy3 !
v1.0.2 (2021-01-27)
- Fix dynamic type not being able to convert properly in android that causes some group apis to fail PR: mixpanel#23 This is to address issue: mixpanel#21
v1.0.0 (2020-12-08)
- This is our first release! 🎉🎉🎉 Report issues or give us any feedback is appreciated!
- integration guide: https://developer.mixpanel.com/docs/react-native
- full API reference: https://mixpanel.github.io/mixpanel-react-native