Respectlytics Respect lytics
Menu
Replace Countly Fewer third-party SDKs

Replace Countly to ship fewer third-party SDKs

Migrate from Countly to Respectlytics to reduce your dependency tree. Helps developers avoid collecting personal data.

Example Countly call (the "before")

kotlin Respectlytics
import ly.count.android.sdk.Countly
import ly.count.android.sdk.CountlyConfig

val config = CountlyConfig(application, "YOUR_APP_KEY", "https://your-countly-server.com")
    .setLoggingEnabled(true)
    .setIdMode(DeviceIdType.OPEN_UDID)
Countly.sharedInstance().init(config)

Countly.sharedInstance().events().recordEvent(
    "purchase",
    mapOf("user_id" to userId, "value" to price, "currency" to "USD"),
    1
)

Every third-party SDK is a supply-chain surface — manifest permissions, network endpoints, transitive dependencies. The biggest reduction in privacy footprint often comes from simply shipping fewer SDKs. Respectlytics has zero ads, attribution, or routing dependencies — it's one HTTPS endpoint.

Remove Countly cleanly

  1. 1

    Remove the Countly SDK from your build (Countly / ly.count.android:sdk / countly-sdk-react-native-bridge / countly_flutter)

  2. 2

    Remove Countly.sharedInstance().start(with:) initialisation and recordEvent(...) call sites

  3. 3

    Decide whether you'll keep the Countly server running for other apps, or decommission it as part of the migration

  4. 4

    If you used Countly's crash reporting alongside analytics, plan a separate crash-reporter migration (Sentry / Crashlytics / Bugsnag)

Countly vs Respectlytics — fewer third-party sdks

CountlyRespectlytics
Direct ad / tracking dependencies— see tool note aboveZero
Pulls Google Play Services— typically yesNo
Auto-merged manifest permissionsOften (AD_ID, ACCESS_NETWORK_STATE, etc.)None added
Number of HTTP endpoints contactedMultiple (varies)One (Respectlytics API)
Open-source SDK— varies by toolYes (MIT-licensed)

Frequently asked questions

How do we audit our current dependency tree?

iOS: swift package show-dependencies (SPM) or pod outdated (CocoaPods) lists the tree. Android: ./gradlew :app:dependencies --configuration releaseRuntimeClasspath. RN: npm ls --all. Flutter: flutter pub deps. Our [Dependency Privacy Scanner](/tools/dependency-privacy-scanner/) parses lockfiles from any of these and tells you which deps are forcing which privacy labels.

What if we still need install attribution?

First-party alternatives without an SDK: Apple SKAdNetwork (iOS), AdAttributionKit (iOS 17.4+), Google Play Install Referrer API (Android). These are built into the OS — your ads platform reads them directly. No mobile SDK required.

What about crash reporting and push notifications?

Those are separate concerns with their own SDKs — Sentry / Crashlytics / Bugsnag for crashes; OneSignal / FCM / APNs for push. Respectlytics doesn't bundle them in; you pick the dedicated SDK for each surface.

Does shipping fewer SDKs measurably improve app size or cold start?

Often, yes — measurably. Removing Firebase + AppsFlyer + Segment from a typical RN app can shave several megabytes of bundle and 100-300ms off cold start. See the [SDK Bundle-Size Comparator](/tools/sdk-bundle-size-comparator/) for specific numbers.

Related migration guides

Track what matters. Collect nothing you don't.

Five-field event schema, RAM-only event queue, no IDFA, no AAID, no persistent user IDs. Helps developers avoid collecting personal data in the first place.