SDK Installation
Countly provides native SDKs for all major platforms. Choose your platform below.
Web SDK
CDN Installation
<script type="text/javascript" src="https://cdn.count.ly/countly.min.js"></script>
<script>
Countly.init({
app_key: 'YOUR_APP_KEY',
url: 'https://your-countly-server.com',
session_update: 60,
use_session_cookie: true
});
Countly.track_sessions();
Countly.track_pageview();
</script>
npm Installation
npm install countly-sdk-web
import Countly from 'countly-sdk-web';
Countly.init({
app_key: 'YOUR_APP_KEY',
url: 'https://your-countly-server.com'
});
Countly.track_sessions();
Countly.track_pageview();
Async Loading
<script>
var Countly = Countly || {};
Countly.q = Countly.q || [];
Countly.app_key = 'YOUR_APP_KEY';
Countly.url = 'https://your-countly-server.com';
Countly.q.push(['track_sessions']);
Countly.q.push(['track_pageview']);
(function() {
var cly = document.createElement('script');
cly.type = 'text/javascript';
cly.async = true;
cly.src = 'https://cdn.count.ly/countly.min.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(cly, s);
})();
</script>
iOS SDK
CocoaPods
# Podfile
pod 'Countly'
pod install
Swift Package Manager
Add package: https://github.com/Countly/countly-sdk-ios
Implementation
import Countly
// In AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let config = CountlyConfig()
config.appKey = "YOUR_APP_KEY"
config.host = "https://your-countly-server.com"
config.features = [.sessions, .events, .crashReporting]
Countly.sharedInstance().start(with: config)
return true
}
Android SDK
Gradle
// build.gradle (app)
dependencies {
implementation 'ly.count.android:sdk:23.8.3'
}
Implementation
import ly.count.android.sdk.Countly
import ly.count.android.sdk.CountlyConfig
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = CountlyConfig(
this,
"YOUR_APP_KEY",
"https://your-countly-server.com"
)
config.setLoggingEnabled(true)
config.enableCrashReporting()
Countly.sharedInstance().init(config)
}
}
Activity Lifecycle
// In each Activity
override fun onStart() {
super.onStart()
Countly.sharedInstance().onStart(this)
}
override fun onStop() {
Countly.sharedInstance().onStop()
super.onStop()
}
React Native
Installation
npm install countly-sdk-react-native-bridge
cd ios && pod install
Implementation
import Countly from 'countly-sdk-react-native-bridge';
// Initialize
Countly.init({
appKey: 'YOUR_APP_KEY',
serverUrl: 'https://your-countly-server.com',
features: [
Countly.Feature.SESSIONS,
Countly.Feature.EVENTS,
Countly.Feature.CRASHES
]
});
// Start session
Countly.beginSession();
Flutter
Installation
# pubspec.yaml
dependencies:
countly_flutter: ^23.8.0
Implementation
import 'package:countly_flutter/countly_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
CountlyConfig config = CountlyConfig(
'https://your-countly-server.com',
'YOUR_APP_KEY'
);
config.setLoggingEnabled(true);
await Countly.initWithConfig(config);
await Countly.start();
runApp(MyApp());
}
Node.js (Server-Side)
Installation
npm install countly-sdk-nodejs
Implementation
const Countly = require('countly-sdk-nodejs');
Countly.init({
app_key: 'YOUR_APP_KEY',
url: 'https://your-countly-server.com',
debug: true
});
// Track events server-side
Countly.add_event({
key: 'server_event',
count: 1,
segmentation: {
source: 'api'
}
});
Verification
After installation, verify the SDK is working:
- Initialize the SDK with debug mode enabled
- Check console/logs for initialization success
- Open Countly dashboard
- Navigate to Real-time or Live view
- Confirm session or event appears
// Test event
Countly.add_event({
key: 'sdk_verification',
count: 1
});