diff --git a/android/current.md b/android/current.md index c3350bb3..c346f636 100644 --- a/android/current.md +++ b/android/current.md @@ -31,7 +31,7 @@ Now, add the Countly SDK dependency (use the latest SDK version currently available from gradle, not specifically the one shown in the sample below).
dependencies {
- implementation 'ly.count.android:sdk:25.4.0'
+ implementation 'ly.count.android:sdk:25.4.1'
}
@@ -281,12 +281,12 @@ CountlyNative.initNative(getApplicationContext());
plugins {
- id "ly.count.android.plugins.upload-symbols" version "25.4.0"
+ id "ly.count.android.plugins.upload-symbols" version "25.4.1"
}
plugins {
- id("ly.count.android.plugins.upload-symbols") version "25.4.0"
+ id("ly.count.android.plugins.upload-symbols") version "25.4.1"
}
// in root level gradle file
plugins {
- id "ly.count.android.plugins.upload-symbols" version "25.4.0" apply false
+ id "ly.count.android.plugins.upload-symbols" version "25.4.1" apply false
}
// in sub-project gradle file
@@ -314,7 +314,7 @@ plugins {
// in root level gradle file
plugins {
- id("ly.count.android.plugins.upload-symbols") version "25.4.0" apply false
+ id("ly.count.android.plugins.upload-symbols") version "25.4.1" apply false
}
// in sub-project gradle file
@@ -3047,26 +3047,40 @@ config.setAppCrawlerNames(new String[] { "App Crawler" });
Countly.sharedInstance().requestQueue().isDeviceAppCrawler();
Interacting with the Internal Request Queue
- When recording events or activities, the requests don't always get sent immediately.
- Events get grouped together and sometimes there is no connection to the server
- and the requests can't be sent.
+ When recording events or user activities, requests are not always sent to the
+ server immediately. They may be batched together for efficiency or delayed due
+ to lack of network connectivity.
- There are two ways how to interact with this request queue at the moment.
+ Currently, there are two ways to interact with this internal request queue:
You can force the SDK to try to send the requests immediately:
//Doing internally stored requests
Countly.sharedInstance().requestQueue().attemptToSendStoredRequests();
- This way the SDK will not wait for its internal triggers and it will try to empty
- the queue on demand.
+ This approach bypasses the SDK’s internal scheduling mechanisms and initiates
+ an immediate attempt to send all queued requests.
- There are some circumstances where you would want to delete all stored requests.
- Then you would call:
+ In certain situations, you may need to delete all stored requests from the queue.
+ To do so, invoke the following method:
//Delete all stored requests in queue
Countly.sharedInstance().requestQueue().flushQueues();
+Backoff Mechanism
+
+ The SDK includes a backoff mechanism that temporarily pauses sending requests
+ when the server is slow or unresponsive. This helps reduce server load and avoid
+ unnecessary retries. It’s enabled by default but can be disabled if needed.
+
+CountlyConfig config = (new CountlyConfig(appC, COUNTLY_APP_KEY, COUNTLY_SERVER_URL));
+config.disableBackoffMechanism();
+Countly.sharedInstance().init(config);
+
+ For a detailed explanation of how the backoff mechanism works and when it triggers,
+ see the
+ full documentation here.
+
Direct Request
This feature allows you to create custom functionality or implement features that the SDK might be lacking at that moment.
@@ -3190,15 +3204,32 @@ Countly.sharedInstance().requestQueue().addDirectRequest(requestMap);
-
Server Configuration
-
- This is an experimental feature!
+SDK Behavior Settings
+
+
+ Previously known as Server Configuration, this feature is
+ now called SDK Behavior Settings in the SDKs. The Countly
+ server will adopt this naming soon, but you may still see the old term in
+ the Dashboard for now.
+
- You can make your SDK fetch some configurations you have set in your Countly
- server by setting enableServerConfiguration
during init:
+ SDK Behavior Settings are enabled by default. Any changes made in the SDK Manager’s
+ "SDK Configuration" section on the server will directly affect the behavior of
+ the SDK.
+
+
+ In most cases, the configuration may not be applied during the app’s first run.
+ If the behavior controlled by these settings is critical for security or consistency,
+ you can manually provide the configuration to the SDK during initialization.
-config.enableServerConfiguration()
+config.setSDKBehaviorSettings("{json server config}");
+
+ If you want to disable automatic config updates from the server, you can prevent
+ the SDK from making server configuration fetch requests. This is useful if you're
+ trying to reduce network traffic or control request counts.
+
+config.disableSDKBehaviorSettingsUpdates();
Content Zone
The Content Zone feature enhances user engagement by delivering various types
@@ -3228,6 +3259,10 @@ Countly.sharedInstance().requestQueue().addDirectRequest(requestMap);
countlyConfig.content.setZoneTimerInterval(60); //in seconds
+
+ If you need to ask for content after a trigger you know you can use this method:
+
+Countly.sharedInstance().contents().refreshContentZone()
When you want to exit from content zone and stop SDK from checking for available
content you can use this method:
diff --git a/android/next.md b/android/next.md
index dfcd5b45..bd8f751f 100644
--- a/android/next.md
+++ b/android/next.md
@@ -31,7 +31,7 @@
Now, add the Countly SDK dependency (use the latest SDK version currently available from gradle, not specifically the one shown in the sample below).
dependencies {
- implementation 'ly.count.android:sdk:25.4.0'
+ implementation 'ly.count.android:sdk:25.4.1'
}
SDK Integration
@@ -281,12 +281,12 @@ CountlyNative.initNative(getApplicationContext());
plugins {
- id "ly.count.android.plugins.upload-symbols" version "25.4.0"
+ id "ly.count.android.plugins.upload-symbols" version "25.4.1"
}
plugins {
- id("ly.count.android.plugins.upload-symbols") version "25.4.0"
+ id("ly.count.android.plugins.upload-symbols") version "25.4.1"
}
@@ -303,7 +303,7 @@ CountlyNative.initNative(getApplicationContext());
// in root level gradle file
plugins {
- id "ly.count.android.plugins.upload-symbols" version "25.4.0" apply false
+ id "ly.count.android.plugins.upload-symbols" version "25.4.1" apply false
}
// in sub-project gradle file
@@ -314,7 +314,7 @@ plugins {
// in root level gradle file
plugins {
- id("ly.count.android.plugins.upload-symbols") version "25.4.0" apply false
+ id("ly.count.android.plugins.upload-symbols") version "25.4.1" apply false
}
// in sub-project gradle file
@@ -2780,10 +2780,6 @@ Countly.sharedInstance().init(countlyConfig);
the SDK not write the request and event queues to disk until the explicit
write signal is given.
-
- setSDKBehaviorSettings(String sdkBehaviorSettings) - Set
- the server configuration to be set while initializing the SDK
-
Example Integrations
@@ -3208,15 +3204,24 @@ Countly.sharedInstance().requestQueue().addDirectRequest(requestMap);
-
Server Configuration
-
- This is an experimental feature!
-
+SDK Behavior Settings
+
+ SDK Behavior Settings are enabled by default. Any changes made in the SDK Manager’s
+ "SDK Configuration" section on the server will directly affect the behavior of
+ the SDK.
+
+
+ In most cases, the configuration may not be applied during the app’s first run.
+ If the behavior controlled by these settings is critical for security or consistency,
+ you can manually provide the configuration to the SDK during initialization.
+
+config.setSDKBehaviorSettings("{json server config}");
- You can make your SDK fetch some configurations you have set in your Countly
- server by setting enableServerConfiguration
during init:
+ If you want to disable automatic config updates from the server, you can prevent
+ the SDK from making server configuration fetch requests. This is useful if you're
+ trying to reduce network traffic or control request counts.
-config.enableServerConfiguration()
+config.disableSDKBehaviorSettingsUpdates();
Content Zone
The Content Zone feature enhances user engagement by delivering various types
diff --git a/flutter/next.md b/flutter/next.md
index 4a0ae8b7..c7618c03 100644
--- a/flutter/next.md
+++ b/flutter/next.md
@@ -1894,10 +1894,6 @@ config.setParameterTamperingProtectionSalt("salt");
Indirect Attribution -
Report indirect user attribution (no Web platform support)
-
- setSDKBehaviorSettings(String sdkBehaviorSettings) - Set
- the server configuration to be set while initializing the SDK
-
Example Integrations
@@ -2188,6 +2184,24 @@ config.setEventQueueSizeToSend(6);
function:
Countly.isInitialized();
+SDK Behavior Settings
+
+ SDK Behavior Settings are enabled by default. Any changes made in the SDK Manager’s
+ "SDK Configuration" section on the server will directly affect the behavior of
+ the SDK.
+
+
+ In most cases, the configuration may not be applied during the app’s first run.
+ If the behavior controlled by these settings is critical for security or consistency,
+ you can manually provide the configuration to the SDK during initialization.
+
+config.setSDKBehaviorSettings("{json server config}")
+
+ If you want to disable automatic config updates from the server, you can prevent
+ the SDK from making server configuration fetch requests. This is useful if you're
+ trying to reduce network traffic or control request counts.
+
+config.disableSDKBehaviorSettingsUpdates()
Content Zone
The Content Zone feature enhances user engagement by delivering various types
diff --git a/ios/current.md b/ios/current.md
index 55d18089..956a8096 100644
--- a/ios/current.md
+++ b/ios/current.md
@@ -4296,6 +4296,81 @@ Countly.sharedInstance().recordDirectAttribution(withCampaignType: "countly", an
And for App Tracking Transparency permission required on iOS 14.5+ please see:
https://developer.apple.com/documentation/apptrackingtransparency?language=objc
+Interacting with the Internal Request Queue
+
+ When recording events or user activities, requests are not always sent to the
+ server immediately. They may be batched together for efficiency or delayed due
+ to lack of network connectivity.
+
+
+ Currently, there are two ways to interact with this internal request queue:
+
+
+ You can force the SDK to try to send the requests immediately:
+
+
+
+ [Countly.sharedInstance attemptToSendStoredRequests];
+
+
+ Countly.sharedInstance().attemptToSendStoredRequests()
+
+
+
+
+ This approach bypasses the SDK’s internal scheduling mechanisms and initiates
+ an immediate attempt to send all queued requests.
+
+
+ In certain situations, you may need to delete all stored requests from the queue.
+ To do so, invoke the following method:
+
+
+
+ [Countly.sharedInstance flushQueues];
+
+
+ Countly.sharedInstance().flushQueues()
+
+
+
+ Backoff Mechanism
+
+ The SDK includes a backoff mechanism that temporarily pauses sending requests
+ when the server is slow or unresponsive. This helps reduce server load and avoid
+ unnecessary retries. It’s enabled by default but can be disabled if needed.
+
+
+
+ CountlyConfig* config = CountlyConfig.new;
+config.appKey = @"YOUR_APP_KEY";
+config.host = @"https://YOUR_COUNTLY_SERVER";
+config.disableBackoffMechanism = YES;
+[Countly.sharedInstance startWithConfig:config];
+
+
+ let config: CountlyConfig = CountlyConfig()
+config.appKey = "YOUR_APP_KEY"
+config.host = "https://YOUR_COUNTLY_SERVER"
+config.disableBackoffMechanism = true
+Countly.sharedInstance().start(with: config)
+
+
+
+
+ For a detailed explanation of how the backoff mechanism works and when it triggers,
+ see the
+ full documentation here.
+
Direct Request
The addDirectRequest
method allows you to send custom key/value
@@ -4626,6 +4701,54 @@ end
and go to File > Add Packages and enter the URL into the search bar. From
here you can add the package by targeting the master branch.
+SDK Behavior Settings
+
+
+ Previously known as Server Configuration, this feature is
+ now called SDK Behavior Settings in the SDKs. The Countly
+ server will adopt this naming soon, but you may still see the old term in
+ the Dashboard for now.
+
+
+
+ SDK Behavior Settings are enabled by default. Any changes made in the SDK Manager’s
+ "SDK Configuration" section on the server will directly affect the behavior of
+ the SDK.
+
+
+ In most cases, the configuration may not be applied during the app’s first run.
+ If the behavior controlled by these settings is critical for security or consistency,
+ you can manually provide the configuration to the SDK during initialization.
+
+
+
+ config.sdkBehaviorSettings = @"json server config";
+
+
+ config.sdkBehaviorSettings = "json server config";
+
+
+
+
+ If you want to disable automatic config updates from the server, you can prevent
+ the SDK from making server configuration fetch requests. This is useful if you're
+ trying to reduce network traffic or control request counts.
+
+
+
+ config.disableSDKBehaviorSettingsUpdates = YES;
+
+
+ config.disableSDKBehaviorSettingsUpdates = true
+
+
+ Content Zone
The Content Zone feature enhances user engagement by delivering various types
@@ -4677,6 +4800,21 @@ end
config.content.zoneTimerInterval = 60
+ If you need to ask for content after a trigger you know you can use this method: +
+[Countly.sharedInstance.content refreshContentZone];
+ Countly.sharedInstance().content().refreshContentZone();
+
When you want to exit from content zone and stop SDK from checking for available
content you can use this method:
diff --git a/ios/next.md b/ios/next.md
index 95016b40..f7bae802 100644
--- a/ios/next.md
+++ b/ios/next.md
@@ -4241,28 +4241,6 @@ Countly.sharedInstance().cancelConsent(forFeature: CLYConsentEvents)config.sdkInternalLimits().setMaxStackTraceLineLength(300);
- Server Configuration is enabled by default. Changes made on SDK Manager SDK Configuration - on your server will affect SDK behavior directly. -
-- In all cases, the configuration may not be applied during the app’s first run. - If this is a security sensitive case for the situations, you can provide the - server config to the SDK during initialization. -
-config.sdkBehaviorSettings = @"json server config";
- config.sdkBehaviorSettings = "json server config";
- @@ -4723,6 +4701,46 @@ end and go to File > Add Packages and enter the URL into the search bar. From here you can add the package by targeting the master branch.
++ SDK Behavior Settings are enabled by default. Any changes made in the SDK Manager’s + "SDK Configuration" section on the server will directly affect the behavior of + the SDK. +
++ In most cases, the configuration may not be applied during the app’s first run. + If the behavior controlled by these settings is critical for security or consistency, + you can manually provide the configuration to the SDK during initialization. +
+config.sdkBehaviorSettings = @"json server config";
+ config.sdkBehaviorSettings = "json server config";
+ + If you want to disable automatic config updates from the server, you can prevent + the SDK from making server configuration fetch requests. This is useful if you're + trying to reduce network traffic or control request counts. +
+config.disableSDKBehaviorSettingsUpdates = YES;
+ config.disableSDKBehaviorSettingsUpdates = true
+ The Content Zone feature enhances user engagement by delivering various types