▸Example Mixpanel call (the "before")
import Mixpanel
let mixpanel = Mixpanel.mainInstance()
// Identifies the user — distinct_id becomes joinable to email forever:
mixpanel.identify(distinctId: userId)
mixpanel.people.set(properties: [
"$email": email,
"$name": fullName,
"plan": "pro",
])
mixpanel.track(event: "Paywall Purchase", properties: ["value": price])
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 Mixpanel cleanly
-
1
Remove
pod 'Mixpanel'fromPodfile -
2
Remove
implementation 'com.mixpanel.android:mixpanel-android:...'frombuild.gradle.kts -
3
Remove
mixpanel-react-nativefrompackage.jsonormixpanel_flutter:frompubspec.yaml -
4
Delete any
Mixpanel.mainInstance().people.set(...)oridentify()calls — those are the people-profile entry points -
5
Replace
mixpanel.track(...)call sites withRespectlytics.track("event_name") -
6
Delete the Mixpanel project (or revoke the project token) in the Mixpanel admin once you've confirmed no more events arrive
-
7
If you used Mixpanel-driven cohort exports for marketing, plan the cutover to whatever replaces those flows
⇋Mixpanel vs Respectlytics — fewer third-party sdks
| Mixpanel | Respectlytics | |
|---|---|---|
| Direct ad / tracking dependencies | — see tool note above | Zero |
| Pulls Google Play Services | — typically yes | No |
| Auto-merged manifest permissions | Often (AD_ID, ACCESS_NETWORK_STATE, etc.) | None added |
| Number of HTTP endpoints contacted | Multiple (varies) | One (Respectlytics API) |
| Open-source SDK | — varies by tool | Yes (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.