Countly has several SDKs to choose from. Some are officially supported by Countly, and others are contributed by the community.
Below you may see a list of mobile and desktop SDKs.
Subscribe to SDK GitHub repositories
To receive notifications regarding SDK changes, you should be subscribed to the corresponding SDK repositories on GitHub. This will help to keep you up to date on any new releases.
Officially Supported SDKs
This table includes a list of all the officially supported SDKs maintained by Countly.
|SDK name||Download link||Documentation link|
|iOS SDK (Objective-C) with watchOS, tvOS & macOS support||Click to get||Click for documentation|
|Android SDK (Java)||Click to get||Click for documentation|
|Flutter SDK (Dart)||Click to get|
|Windows Phone & Windows SDK (C#)||Click to get from Nuget||Click for documentation|
|C++ SDKs (C++)||Click to get||Click for documentation|
|Unity SDK (C#)||Click to get||Click for documentation|
Countly Code Generator
If you would like to generate mobile or web code easily for custom events, user profiles, crash reporting, and have access to all the other features that generally come with Countly, we suggest using the Countly Code Generator, which is a point-and-click service that builds necessary code for you.
Community Supported SDKs
These client libraries are developed and supported by the Countly community and not by Countly directly. Refer to the corresponding author for support and more information.
- Cocos2d-x SDK and documentation page
- Xamarin SDK (C#), documentation for Android and documentation for iOS
- Titanium Appcelerator SDK (iOS)
- Titanium Appcelerator SDK (Android)
This is a feature comparison for officially supported SDKs.
|SDK||Analytics||Push Notifications||User Profiles||Crash Reports||A/B Testing||Performance Monitoring||Feedback widgets|
Example of iOS application for testing
We have built a sample iOS application that may be used to send different types of data (e.g. custom events, sessions, crashes, user profiles, etc.) to the Countly servers. Please see https://github.com/Countly/countly-sample-ios.
Example of Android application for testing
Similar to iOS, we have a sample Android application that can send custom events, sessions, crashes, user profiles, etc. to the Countly servers. Below you may see the instructions on how to use the example Android application.
- Download/clone Android SDK git repository.
- Open downloaded project in Android Studio.
App.javain the app module to specifying the correct server/credentials/preferences.
- Hit "Run".
FAQ and Troubleshooting
What is the hostname meant to write inside the SDK?
Inside the SDK, you'll see the API HOST directive that you need to fill in. This is the same as the IP or hostname of your server. For example, if you have Countly installed on 192.168.1.1, then inside the SDK you will need to write https://192.168.1.1. If there is a server name associated with your IP, the server name may also be used (e.g. https://analytics.mycompany.com).
I integrated the SDK, but cannot see, or can only partially see, data on the dashboard
There are a few steps to check when you integrate your Countly SDK and have a problem viewing data.
1. Enable debug logging in the SDK
First, we need to understand if the SDK is working properly and whether it is sending data to the server, and if the server is accepting it. Check if requests are being created - this means, you need to check whether you are calling SDK methods to actually send information to the server and that the SDK has been implemented correctly.
Also check if requests fail or are successfully sent to the server, because if they fail, maybe the server is not reachable from this specific network, or you made a mistake when providing the URL to the server.
2. Check if the SDK requests are arriving to the server
Please check under
Utilities > Request Logs to see that your server is indeed receiving data from the SDK and see if there are any errors/problems displayed alongside your requests. Should there be an issue, the request logs usually state what this problem is about, why the request was not processed, or why incoming data may be incorrect - such as sending data for the incorrect app type, sending duplicate requests, incorrectly set-up parameter tampering, etc.
You may also click on any button on the top right-hand side of the screen in the Request Logs to filter down different types of data, such as sessions, events, metrics, user details, and crashes.
3. Check the server for errors
countly/log/countly-api.log for errors. Chances are there is a problem/bug with a specific plugin processing information, so you should recheck if there are any new errors in the log.
4. Check host URL
5. Check app key
You may be using the wrong App key. Assure you are using the App key in your application, and not the API key. If you use the API key, then you also won’t be able to see requests under
Utilities > Request logs.
6. Check Filtering rules
Events or requests may be blocked. In this case, check
Management > Filtering rules (previously named Blocking Rules) to see whether there are any rules that block events or any requests.
7. Check event limits
The event name limit may be exceeded (the limit is 500, by default), and may be adjusted under
Management > Configurations > API > Max unique event key.
8. Check time zone
Your time zone may be different from the application’s time zone, explaining why it takes some time for you to be able to see events on the graph, something which should be available to you without delay.