Ad SDK configuration and Families certification compliance
Why it matters
Test ad unit IDs left in production builds display test ads instead of real ads, generating zero revenue while consuming real user impressions. More critically, a missing GADApplicationIdentifier in Info.plist or AndroidManifest.xml causes the AdMob SDK to crash at initialisation — your app fails immediately on launch for all users running production builds. For Kids category apps, unconfigured tagForChildDirectedTreatment violates COPPA §312.5 and GDPR Art.8 by allowing behavioural targeting of children, which carries FTC penalties up to $50,120 per violation per day.
Severity rationale
Low because test IDs cause revenue loss and configuration crashes rather than security breaches, but the crash from a missing Application ID is a complete production failure.
Remediation
Move ad unit IDs out of source and into build-time configuration. With Expo's app.config.ts:
extra: {
admobUnitId: process.env.EXPO_PUBLIC_ADMOB_UNIT_ID,
}
For Kids category apps, set child-directed treatment before any ad request:
GADMobileAds.sharedInstance().requestConfiguration.tagForChildDirectedTreatment = true
Search for ca-app-pub-3940256099942544 in the codebase to find test unit IDs — any match in a non-test file path is a production build risk. Confirm GADApplicationIdentifier is present in Info.plist and the AdMob Application ID in AndroidManifest.xml before every release.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store Privacy & Data Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- coppa · §312.5 — Parental consent — child-directed treatment configuration required
- ccpa · §1798.120 — Right to opt-out of sale of personal information
- gdpr · Art. 8 — Conditions applicable to child's consent in relation to information society services
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-privacy-data·automated