26.1.0-np
-
Added a new
Countly.sessionsinterface for manual session control:beginSession()updateSession()endSession()
-
Added a new
Countly.remoteConfiginterface with:update()updateForKeysOnly(keyNames)updateExceptKeys(keyNames)getValue(keyName)clearValues()
-
Added a new
Countly.viewsinterface with:startAutoStoppedView(viewName, segmentation?)startView(viewName, segmentation?)stopViewWithName(viewName, segmentation?)stopViewWithID(viewID, segmentation?)stopAllViews(segmentation?)pauseViewWithID(viewID)resumeViewWithID(viewID)addSegmentationToViewWithID(viewID, segmentation)addSegmentationToViewWithName(viewName, segmentation)setGlobalViewSegmentation(segmentation?)updateGlobalViewSegmentation(segmentation)
-
Deprecated root-level session methods in favor of
Countly.sessions:Countly.startSession()Countly.updateSession()Countly.endSession()
-
Deprecated root-level remote config methods in favor of
Countly.remoteConfig:Countly.remoteConfigUpdate(...)Countly.updateRemoteConfigForKeysOnly(...)Countly.updateRemoteConfigExceptKeys(...)Countly.getRemoteConfigValueForKey(...)Countly.getRemoteConfigValueForKeyP(...)Countly.remoteConfigClearValues()
-
Deprecated root-level view recording in favor of
Countly.views.startAutoStoppedView(...):Countly.recordView(...)
-
Deprecated legacy feedback shortcut helpers in favor of the newer direct present APIs:
Countly.feedback.showNPS(...)->Countly.feedback.presentNPS(...)Countly.feedback.showSurvey(...)->Countly.feedback.presentSurvey(...)Countly.feedback.showRating(...)->Countly.feedback.presentRating(...)
-
Added
Countly.remoteConfig.getValue(keyName)as the async replacement for the older root-level remote config getters. It returnsnullwhen a value is missing. -
Added
Countly.addCustomNetworkRequestHeaders(...)for runtime request header updates. -
Added
Countly.content.previewContent(contentId)for direct content previews. -
Added
Countly.webViewDisplayOptionconstants and.content.setWebViewDisplayOption(...)for controlling content and feedback presentation. -
Added direct
Countly.feedback.presentNPS(...),Countly.feedback.presentSurvey(...), andCountly.feedback.presentRating(...)helpers backed by the latest native feedback APIs. -
Added
Countly.deviceId.changeID(newDeviceID, merge)to the device ID interface for explicit merge control after removing the old root-levelCountly.changeDeviceId(...)API. -
Added init config options for manual session control, hybrid manual session mode, automatic view tracking, global view segmentation, custom network request headers, and disabling auto view restart.
enableManualSessionControl()enableManualSessionControlHybridMode()enableAutomaticViewTracking()setAutomaticViewTrackingExclusionList(automaticViewTrackingExclusionList)setGlobalViewSegmentation(globalViewSegmentation)addCustomNetworkRequestHeaders(customHeaderValues)disableViewRestartForManualRecording()
-
Mitigated an issue where the new remote config interface could reject on normal runtime conditions such as missing values, invalid input, or use before SDK initialization. These calls now log and return without crashing the app.
-
Mitigated an issue where
Countly.initWithConfig(...)could preserve an emptydeviceIDunder the wrong field name instead of clearing the init payload value. -
Mitigated an issue where
allowedIntentPackageNamescould be dropped from init config serialization unlessallowedIntentClassNameswas also provided. -
Mitigated an inconsistency where
Countly.deviceId.setID(Countly.TemporaryDeviceIDString)did not route temporary-device-ID mode through the dedicated native handling on Android, and now does so explicitly on both Android and iOS.- Removed
Countly.init(...). UseCountly.initWithConfig(countlyConfig). - Removed
Countly.hasBeenCalledOnStart(). No direct replacement. - Removed
Countly.sendEvent(...). UseCountly.events.recordEvent(...). - Removed
Countly.pushTokenType(...). UseCountlyConfig.setPushTokenType(...)andCountlyConfig.setPushNotificationChannelInformation(...). - Removed
Countly.configureIntentRedirectionCheck(...). UseCountlyConfig.configureIntentRedirectionCheck(...). - Removed
Countly.start()andCountly.stop(). No direct replacement; automatic session tracking is enabled by default. For manual control useCountly.sessions.beginSession(),Countly.sessions.updateSession(), andCountly.sessions.endSession(). - Removed
Countly.enableLogging()andCountly.disableLogging(). UseCountly.setLoggingEnabled(...). - Removed
Countly.setLocationInit(...). UseCountlyConfig.setLocation(...). - Removed
Countly.getCurrentDeviceId(). UseCountly.deviceId.getID(). - Removed
Countly.getDeviceIDType(). UseCountly.deviceId.getType(). - Removed
Countly.changeDeviceId(...). UseCountly.deviceId.setID(...)for automatic merge selection orCountly.deviceId.changeID(..., merge)for explicit merge control. - Removed
Countly.enableCrashReporting(). UseCountlyConfig.enableCrashReporting()withCountly.initWithConfig(...). - Removed
Countly.enableParameterTamperingProtection(...). UseCountlyConfig.enableParameterTamperingProtection(...). - Removed
Countly.startEvent(...),Countly.cancelEvent(...), andCountly.endEvent(...). UseCountly.events.startEvent(...),Countly.events.cancelEvent(...), andCountly.events.endEvent(...). - Removed
Countly.setRequiresConsent(...). UseCountlyConfig.setRequiresConsent(...). - Removed
Countly.giveConsentInit(...). UseCountlyConfig.giveConsent(...). - Removed
Countly.setStarRatingDialogTexts(...). UseCountlyConfig.setStarRatingDialogTexts(...). - Removed
Countly.getFeedbackWidgets(). UseCountly.feedback.getAvailableFeedbackWidgets(). - Removed
Countly.presentFeedbackWidgetObject(...). UseCountly.feedback.presentFeedbackWidget(...). - Removed
Countly.enableApm()andCountlyConfig.enableApm(). Use theCountlyConfig.apminterface, includingenableAppStartTimeTracking(),enableForegroundBackgroundTracking(), andenableManualAppLoadedTrigger()as needed. - Removed
Countly.enableAttribution(...)andCountly.recordAttributionID(...). UseCountly.recordIndirectAttribution(...). - Removed
CountlyConfig.pushTokenType(...). UseCountlyConfig.setPushTokenType(...)andCountlyConfig.setPushNotificationChannelInformation(...).
- Removed
-
Android specific changes:
- Added
disableGradualRequestCleaner()init config support. - Set the initial activity during SDK initialization to improve content and feedback presentation flows.
- Ensured Android feedback, survey, NPS, and rating presentation runs on the UI thread to avoid WebView/dialog crashes when showing widgets from the React Native bridge.
- Aligned the Android bridge with the current native SDK APIs for APM/crash config, preserved feedback widget version metadata for presentation, and allowed typed user-property values to pass through to the native user profile API.
- Added
-
iOS specific changes:
- Added support for the latest manual session handling, custom request header, content preview, and safe-area content display APIs from the native SDK.
- Aligned the user-profile bridge with the current
Countly.userAPIs for typed custom-property setters and forwarded custom user data duringCountly.setUserData(...)andCountly.userDataBulk.setUserProperties(...). - ! Minor Breaking change ! : on iOS, custom fields passed through
Countly.setUserData(...)andCountly.userDataBulk.setUserProperties(...)are now forwarded to the native SDK instead of being ignored by the bridge.
-
Updated the underlying Android SDK version to 26.1.2
-
Updated the underlying iOS SDK version to 26.1.1