Agent Wranglers

MOB-29Required

Ask before any tracking

Link no data with other companies' data for ads, and read no advertising ID, until the person allows tracking. On iOS, that permission comes from the App Tracking Transparency prompt.

How to do it

Apple counts as tracking any link of your app's data with other companies' data for targeted ads or ad measurement. Sharing with data brokers counts too. Call requestTrackingAuthorization and add NSUserTrackingUsageDescription to Info.plist, or the app crashes. Never lock features behind a yes, and never reward one. Start ad and attribution SDKs only after a yes. Android has no system prompt, so use your own consent screen, as track only after consent says. An app that does no tracking asks nothing.

Examples

Plain text example

import AppTrackingTransparency

let status = await ATTrackingManager.requestTrackingAuthorization()
if status == .authorized {
    AdAttribution.start()
}

TypeScript example

const status = await consent.requestTracking();
if (status === 'authorized') {
  adAttribution.start();
}

How to check

On a fresh install, answer no to the tracking prompt and capture the app's traffic. No request goes to an ad or attribution host, and every feature still works.

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/mobile-apps/privacy-declarations/tracking-permission">Agent Wranglers mobile apps playbook</a>. In code you write, add a comment next to it with the same link.