If your app calls Firebase.initialize() or AppsFlyer.start() inside Application.onCreate(), you have already made a compliance decision. Every tracking SDK inside your app starts collecting the instant it initialises, and most SDKs do that before your consent dialog has even painted on screen.
What a tracking SDK actually does
At runtime, a mobile app tracking SDK does three jobs. It reads or generates a device identifier such as IDFA or GAID. It batches user events locally to save battery. It pushes those events over HTTPS to a vendor endpoint. Attribution SDKs then match events to earlier ad clicks through fingerprinting or referral URLs.
Firebase Analytics currently sits inside around 73% of apps that use analytics SDKs, and most production apps ship with 10 to 30 third-party libraries. That is a wide surface area for silent data collection.
The initialisation trap
The default integration guide for most vendors looks like this:
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
Adjust.onCreate(AdjustConfig(this, appToken, environment))
Analytics.initialize(this, apiKey)
}
}
That path runs before you have checked a single consent flag. Under GDPR, that is a violation. Apple's App Tracking Transparency will refuse the IDFA anyway, and only 25 to 35% of users tap allow when the ATT prompt does appear.
A consent-first pattern
Wrap every SDK behind a gate and re-check on consent change:
if (consentManager.hasConsent(Purpose.ANALYTICS)) {
Analytics.initialize(this, apiKey)
}
A Seers AI Mobile App CMP carries this signal across every SDK you integrate, with purpose-level flags that match ATT and GDPR at the same time.
Business value in plain terms
- Cleaner attribution because installs count only opted-in users
- No 4% global turnover fines under GDPR
- Fewer SDK crashes because none run in the wrong lifecycle order
The architecture walkthrough and audit checklist sit in the full mobile app tracking SDK guide. If you would rather see the runtime flow live, the Mobile App CMP demo shows the gate firing end to end.
Top comments (0)