The Analytics SDK That Phones Home
You are the privacy engineer for a fitness app with five million monthly active users on iOS and Android. A third-party analytics SDK collects the advertising identifier, precise location every 30 seconds, and the contact list during onboarding. It sends raw events to the vendor's cloud, retains them for 24 months, and uses them for the vendor's product improvement. The privacy notice says the app collects "approximate location." The iOS App Tracking Transparency prompt has not been implemented, and the Android manifest requests contacts permission with no feature that needs it. Engineering wants to ship a release in three weeks. A separate crash analytics tool is already minimized and retained for 30 days. The product team argues that the SDK is required for attribution and engagement analytics.
1. Apply data minimization and purpose limitation to redesign the SDK data flow. What specific technical controls should be required?
Read the worked answer
Separate the legitimate purposes. Attribution and engagement analytics do not require continuous precise location, the contact list, or the advertising identifier in raw form. Start by removing contacts permission entirely and deleting the SDK's access to it. Reduce location to coarse or derived attributes, such as city-level or distance-bucket data, and collect it only when a workout is active rather than every 30 seconds in the background. Replace the advertising identifier with an app-scoped or ephemeral identifier, and gate any advertising use on a valid consent signal, including the iOS tracking prompt.
Constrain the SDK at the technical boundary: use an allowlist of events, strip identifiers before transmission, aggregate or add noise for engagement metrics, and enforce a k-anonymity threshold before any cohort is exposed. Keep raw event export inside the app or a controlled backend rather than sending it directly to the vendor cloud. Set retention to the minimum needed, with automatic deletion and a contractual prohibition on the vendor's own product improvement. Require the SDK to honor consent state and to disable collection when consent is absent.
Reasoning: the notice says approximate location, so collecting precise location is also a transparency failure. Minimization at the source is stronger than a contract clause, because it prevents the data from existing in the vendor's environment.
2. What should be done about data the SDK has already collected and the vendor contract?
Read the worked answer
Stop further collection first, then assess the existing data. Determine the legal basis for each data type, whether consent was valid, and whether the notice covered the actual collection. If precise location was collected without adequate notice or consent, treat it as a potential incident and assess notification obligations with counsel. Direct the vendor to delete or return the data, with a written certification and a deadline. If deletion is not possible, require irreversible de-identification and document why.
Amend or replace the contract. The vendor must be prohibited from using the data for its own product improvement, must delete on instruction, must provide audit rights and subprocessor notice, and must support data subject requests. Add security and breach notification terms. If the vendor will not accept these terms, remove the SDK or replace it with a minimized in-house or alternative component. Update the privacy notice and the consent flow before resuming any advertising-related collection.
Reasoning: contract changes do not cure past collection. The organization needs both remediation of historical data and controls that prevent recurrence. Documenting the legal assessment is important because the gap between notice and practice may create regulatory exposure.
3. What privacy acceptance criteria should engineering meet before the release ships?
Read the worked answer
Define a privacy release gate with testable criteria. The build must show no contacts permission in the manifest and no contacts API calls. A network inspection must confirm that precise location and advertising identifiers are not transmitted, and that the approved event allowlist is enforced. Consent-state tests must show that the SDK disables collection when consent is absent and that the iOS tracking prompt appears before any tracking identifier is accessed.
Validate retention and deletion by checking the configured retention period and running a deletion test on a test account. Confirm that logs and crash reports contain no personal data. Review the privacy notice text against the actual data flow and obtain sign-off from legal and the privacy office. For any residual risk, document the owner and the date for re-testing.
Run these tests in a pre-production environment with the same SDK configuration as production. Do not accept a vendor questionnaire as evidence when traffic inspection is possible.
Reasoning: privacy engineering controls fail silently. Acceptance criteria turn policy into verifiable behavior and give engineering a clear definition of done rather than an ambiguous request to be "privacy compliant."