get to prod tasks
This commit is contained in:
78
tasks/ios-production/26-app-tracking.md
Normal file
78
tasks/ios-production/26-app-tracking.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 26. App Tracking Transparency (ATT)
|
||||
|
||||
meta:
|
||||
id: ios-production-26
|
||||
feature: ios-production
|
||||
priority: P1
|
||||
depends_on: []
|
||||
tags: [compliance, privacy, app-store, production]
|
||||
|
||||
objective:
|
||||
- Implement App Tracking Transparency to comply with iOS privacy requirements for analytics and advertising
|
||||
|
||||
deliverables:
|
||||
- ATT permission request
|
||||
- Analytics gated behind ATT consent
|
||||
- Tracking description in Info.plist
|
||||
- Fallback for denied tracking
|
||||
|
||||
steps:
|
||||
1. Add ATT framework:
|
||||
- Import AppTrackingTransparency
|
||||
- Add NSUserTrackingUsageDescription to Info.plist
|
||||
- Description: "Your data will be used to improve app experience and measure marketing effectiveness"
|
||||
2. Implement permission request:
|
||||
- Request tracking authorization on first launch (after onboarding)
|
||||
- Show explanation before system dialog
|
||||
- Handle all authorization states:
|
||||
- .notDetermined → request permission
|
||||
- .restricted → disable tracking
|
||||
- .denied → disable tracking
|
||||
- .authorized → enable tracking
|
||||
3. Gate analytics behind ATT:
|
||||
- Check tracking status before initializing analytics
|
||||
- If denied: use anonymous analytics only (no IDFA)
|
||||
- If authorized: full analytics with IDFA
|
||||
- Respect user's choice across app sessions
|
||||
4. Update third-party SDKs:
|
||||
- Configure Firebase Analytics to respect ATT
|
||||
- Configure PostHog/Plausible to respect ATT
|
||||
- Disable ad network tracking if denied
|
||||
5. Handle state changes:
|
||||
- Monitor for settings changes
|
||||
- Update tracking status if user changes in Settings
|
||||
- Re-initialize analytics accordingly
|
||||
6. Add UI for tracking preferences:
|
||||
- Settings toggle for analytics (if user previously denied)
|
||||
- Explanation of what data is collected
|
||||
- Link to system Settings for ATT changes
|
||||
|
||||
tests:
|
||||
- Unit: Test ATT status handling
|
||||
- Integration: Test analytics initialization gating
|
||||
- Device: Test permission flow on physical device
|
||||
|
||||
acceptance_criteria:
|
||||
- ATT permission requested after onboarding
|
||||
- System dialog shows with accurate description
|
||||
- Analytics initialize only after authorized or denied
|
||||
- If denied: no IDFA collection, minimal anonymous analytics
|
||||
- If authorized: full analytics collection
|
||||
- Third-party SDKs configured to respect ATT
|
||||
- Settings UI allows users to change preference
|
||||
- App complies with Apple's ATT guidelines
|
||||
- No tracking before permission granted
|
||||
- Unit tests covering all authorization states
|
||||
|
||||
validation:
|
||||
- Fresh install → onboarding → ATT dialog appears
|
||||
- Deny tracking → analytics uses anonymous mode
|
||||
- Authorize tracking → full analytics active
|
||||
- Change in Settings → app respects new choice
|
||||
- Check Info.plist → NSUserTrackingUsageDescription present
|
||||
|
||||
notes:
|
||||
- ATT is required if app collects IDFA or shares data for tracking
|
||||
- If only using first-party analytics, ATT may not be required
|
||||
- Be honest in description — Apple reviews these carefully
|
||||
- Consider making analytics fully anonymous to avoid ATT entirely
|
||||
Reference in New Issue
Block a user