- Features
- Flexible event attributes in mobile push notifications. Custom tracking attributes added into push notification payload are automatically included in the events as properties.
- Bug Fixes
- Fixed: Session start is no longer tracked on anonymizing when automatic session tracking is off.
- Fixed: In-app message buttons with long text are no longer pushed outside the window.
- Features
- Documentation improvements
- Bug Fixes
- Fixed: In-app messages now initialize properly after killing the application.
- Fixed: In-app message without the image is no longer blocking other in-app messages from showing,
- Features
- Push notifications events are now chronologically synced (the event with status
sent
always occurs before the event with statusdelivered
).
- Push notifications events are now chronologically synced (the event with status
- Bug Fixes
- Fixed: The Exponea Android SDK no longer depends on version properties in BuildConfig class as they are no longer available since Gradle Plugin 4.1.
- Fixed: In-app messages with A/B testing now properly handle the control group.
- Features
- In-app message clicked event now contains property
text
with label of the button that was interacted with. - In-app messages are only preloaded when a new session is started. To ensure that you get fresh in-app messages while testing, kill the app between runs.
- Updated dependencies, moved all libraries to AndroidX.
- In-app message clicked event now contains property
- Bug Fixes
- Fixed: Crash occurring when push notification is received and the notification channel provided in configuration doesn't exist.
- Features
- Removed Firebase default init override. By default Firebase initializes before the application is started using FirebaseInitProvider. Our SDK was removing this initializer and manually creating Firebase app when the Exponea SDK was initialized, to make Firebase token tracking easier. This has caused issues in React Native, where other packages rely on the default Firebase initializer. In 2.8.3 we made a change that remembers Firebase token until Exponea SDK is initialized, so there is no point in overriding default Firebase initializer any more.
- Documentation improvements
- Features
- Paper DB updated to version 2.7.1 that should fix rare crashes.
- When Firebase is initialized before Exponea SDK, push notification token is stored until Exponea is initialized.
-
Features
- Default properties that are tracked with every event can be changed at runtime by setting
Exponea.defaultProperties
property. - In-app messages definitions are re-downloaded every time the customer is identified. After customer identification, the set of in-app messages available for the customer may change due to targeting.
- Default properties that are tracked with every event can be changed at runtime by setting
-
Bug Fixes
- Fixed: Notification sound was played when the app notifications were disabled or the notification channel was muted. SDK now respects these settings + “Do not disturb” setting.
- Fixed: When the SDK was initialized with activity context, this context was stored causing memory leak - the activity could not be garbage collected. The SDK now only stores application context.
- Features
- Support for new in-app message delay and timeout fields soon to be available in Exponea web app.
- Troubleshooting guide for In-app messages.
- Bug Fixes
- Fixed: Opening a deeplink that couldn't be handled inside in-app message would cause the application to crash. Now, an error is logged.
- Fixed: In-app message text was not correctly centered.
- Fixed: Serialization issue in in-app messages would prevent some in-app messages from being displayed.
- Fixed: String mode errors with unclosed closable resources.
- Features
- Silent push notifications support. You're now able to send background updates to your application and respond to them using
Exponea.notificationDataCallback
. Delivery of silent push notifications is tracked to Exponea backend. - When the application is started from a push notification, resulting session will contain UTM parameters.
- Updated push notifications documentation and self-check mechanism to make notifications integration easier.
- Silent push notifications support. You're now able to send background updates to your application and respond to them using
- Bug Fixes
- Fixed: Push notification sound is no longer played in
Do not Disturb
mode
- Fixed: Push notification sound is no longer played in
- Features
- When initialized with instance of resumed
AppCompatActivity
, the SDK now automatically starts the session and displays in-app message (if applicable). Before, the SDK would perform these actions after next activity resume.
- When initialized with instance of resumed
- Features
- Retrieve the cookie of the current customer used for tracking by calling
Exponea.customerCookie
. - Improved logging for in-app messages explaining why each message should/shouldn’t be displayed.
- Retrieve the cookie of the current customer used for tracking by calling
- Bug Fixes
- Fixed: Updated Gradle and removed unused dependencies.
- Removed: Legacy banners implementation that wasn’t working properly
- Features
- Switching projects in
anonymize()
method. If you need to switch projects, you can useanonymize()
method to create a new customer and start fresh tracking into a new project. Please see ANONYMIZE.md for more information.
- Switching projects in
- Bug Fixes
- Fixed: When the app was opened from a push notifications, in-app messages would not initialize properly and would not show until the app is restarted.
- Fixed: When the SDK was initialized with the application context instead of the activity context, in-app messages would not show properly.
- Fixed: Tracking to multiple projects. It now requires both project token and authorization token. Please see PROJECT_MAPPING.md.
- Features
- Push notification accent color setting - you can now set ExponeaConfiguration property
pushAccentColor
to change color of push notification title and buttons. - Improved documentation on handling push notifications and flushing setup.
- Push notification accent color setting - you can now set ExponeaConfiguration property
- Bug Fixes
- Fixed: Occasional crash during in-app message preload.
- Fixed: Push notifications deeplinking issue. In some rare cases, push notification with deeplink would not open correctly.
- Features
- New in-app messages - display rich messages when app starts or an event is tracked - even when offline. This SDK is fully ready for the feature when it is publicly available soon.
- Bug Fixes
- Fixed: Rare internal database thread-safety related crash.
- Features
- Updated Firebase messaging library to version 2.1.0
- Updated minimum SDK version to 16 as recommended by Google
- Bug Fixes
- Fixed: Fetch recommendations functionality was reimplemented, it was incorrectly removed at one point. (see FETCH.md)
- Fixed: Thread safety problem in crash reporting that caused the application to crash (it would still report the crash itself).
- Fixed: Issue with serializing Infinity, -Infinity and NaN. Double and Float variables can hold these values, but they are not part of JSON standard and Exponea doesn't support them. These values will now be reported as string values, but should be avoided. Fixes Issue #20.
- Removed: Automatic payment tracking was broken and has been removed from the Exponea Android SDK. In case you're interested in this functionality let us know. Manual tracking is simplified - device properties are now automatically added. (see PAYMENT.md)
- Bug Fixes
- Fixed: Google Play Billing Library version > 2.0 would cause the SDK to fail to initialize properly. To mitigate the issue, SDK now only disables automatic payment tracking. Proper solution will be implemented later.
- Features
- The SDK is now able to report the SDK-related crashes to Exponea. This helps us keep the SDK in a good shape and work on fixes as soon as possible.
- Bug Fixes
- Fixed: #16 - The internal database could have been initialized twice. This won't happen anymore.
- Fixed: The SDK now correctly reports the version of the host application in the session events.
- Features
- The SDK has a new protective layer for the public API as well as for the interaction with the operating system. It means that in the production setup it prefers to fail silently instead of crashing the whole application.
- Push notification events now contain more information about campaigns and the action taken and are consistent with Exponea iOS SDK.
- Bug Fixes
- Increased overall code quality by fixing many lint errors. This makes many warnings from the SDK disappear when the application is compiled.
- The internal mechanisms of the SDK are now really hidden and not usable by the application. It prevents developers from using some undocumented internal part of the SDK in an inappropriate way.
- Fixed: The periodic flushing mechanism has been fixed. Once it was started, it wouldn't stop. Now it does.
- There are significant improvements in the unit tests of the SDK.
- Features
- App links: SDK can now track app opens from App Link. Sessions that are started from App Link contain campaign data.
- Bug Fixes
- Exponea SDK can only be initialized once. Subsequent calls to
Exponea.init
are ignored. Multiple instances of SDK cause sessions to be tracked twice.
- Exponea SDK can only be initialized once. Subsequent calls to
- Bug Fixes
- Fixed: Properties in the events were found to be accumulating over time. This happened always after tracking multiple events (after multiple calls of
Exponea.trackEvent()
,Exponea.identifyCustomer()
or similar). The impacted versions are thankfully only2.3.1
and2.3.2
.
- Fixed: Properties in the events were found to be accumulating over time. This happened always after tracking multiple events (after multiple calls of
WorkManager
updated to the latest version to avoid inconsistency and crashes- Configuration now has a token update frequency, which specifies how often should the push token be sent to Exponea (on change, on every start, daily)
- Added option to specify default properties to be tracked with all events
- Added option to fetch consent cateogires (see FETCH.md)
- Make push notifications valid when they have a title or a message
- Improvements to notification tracking parameters
- Documentation improvements
- Change notification action_type to "mobile notification" for better tracking purposes
- Update dependencies
- Possible fix for null enum ordinal crash on routes when loading from database
- Don't display push notifications if title is empty
- Fixed a bug with notification body deeplink not getting parsed correctly
- Add the ability to use custom Firebase service by create public method in Exponea to handle remote push notification, which tracks and optionally shows notification
- Fix for crash with billing client 1.2 dependency
- It is now required to provide a list of SKUs of in app purchases you wish to track. Please see this document for information about how to set this up.
- Advanced tracking for push-notification actions
- Flushing behaviour fixes
- Removal of deprecated functions
- Documentation improvements
- Fix parsing of notification body action deeplink url
- Improve initialising Exponea from configuration file
- Update documentation
- Add a workaround for a crash happening only on Meizu M5 with Android 6.0 due to OkHttp
- Fix an edge case where a notification triggered intent might crash the app
- Add automatic ProGuard rules to the SDK
- Internal improvements to rich push notifications code
- Fix image quality in rich push
- Fix dismissal of notification tray on button click
- Adds support for the rich push notifications feature
- Fix for crash when Looper.prepare() wasn't called on Exponea init
- Deprecations of basic auth in favor of token auth
- Anonymize feature now carries over the push token of the device
- Automatic session tracking property in configuration is now properly respected
- Fixed a crash when Firebase was initialised before Exponea
- Fixed a crash when push notification payload was null
- Timestamp type changed from Long to Double for better precision
- Fixed anonymize functionality
- Default flush mode set to
IMMIDIATE
- Improved retry mechanism for events flushing
- Expandable Notifications
- Anonymize feature
- Dependencies update
- Pass custom data to FCM manager
- Fixed flushing behavior (Changed timestamp from milliseconds to seconds)
- Fixed push tracking with Android 8+
- SDK is now compatible with Android API 14+
Initial release.