Capacitor plugin to request user authorization to access app-related data for tracking the user or the device.
npm install capacitor-plugin-app-tracking-transparencyCapacitor plugin to request user authorization to access app-related data for tracking the user or the device. iOS only.
Read more about Apple's App Tracking Transparency framework here. Also this might be a good read.
iOS only but with web fallback for development purposes.
Version 3.x introduces Swift Package Manager support, which is the recommended installation method for Capacitor 7 and 8.
| Capacitor version | Plugin version |
| ----------------- | -------------- |
| 7.x / 8.x | 3.x |
If your project uses CocoaPods for iOS dependency management, use version 2.x. See branch v2 for documentation.
| Capacitor version | Plugin version |
| --------------------- | -------------- |
| 4.x / 5.x / 6.x / 7.x | 2.x |
| 3.x | >= 2.0.0 |
For Capacitor versions prior to 3.0.0, use plugin version 1.x. See branch v1 for documentation.
| Maintainer | GitHub | |
| --------------- | ----------------------------------- | ---------------------------------------- |
| Manuel Heidrich | mahnuh | Sprintwerk GmbH |
``bash`
npm install capacitor-plugin-app-tracking-transparency
npx cap sync
Add this to your app's Info.plist and update the message according to your needs:
`xml`
This message can be provided in multiple languages by using a InfoPlist.strings file. See the Apple docs or this stack overflow answer for help.
An example app is included in the example/ directory. To run it:
1. Install dependencies:
`bash`
cd example
npm install
2. Build and sync:
`bash`
npm run build
npx cap sync ios
3. Open in Xcode:
`bash`
npx cap open ios
4. Run on a simulator or device (iOS 14+)
`typescript
import {
AppTrackingTransparency,
AppTrackingStatusResponse,
} from 'capacitor-plugin-app-tracking-transparency';
...
public async getStatus(): Promise
const response = await AppTrackingTransparency.getStatus();
console.log(response);
// { status: 'authorized' } for example
return response;
}
public async requestPermission(): Promise
const response = await AppTrackingTransparency.requestPermission();
console.log(response);
// { status: 'authorized' } for example
return response;
}
`
Both available methods return AppTrackingStatusResponse with status: AppTrackingStatus, which will be one of the following: authorized, denied, notDetermined or restricted. See Apple's docs for reference.
* getStatus()
* requestPermission()
* Type Aliases
`typescript`
getStatus() => Promise
Returns: Promise<AppTrackingStatusResponse>
--------------------
`typescript``
requestPermission() => Promise
Returns: Promise<AppTrackingStatusResponse>
--------------------
#### AppTrackingStatusResponse
{ status: AppTrackingStatus }
#### AppTrackingStatus
'authorized' | 'denied' | 'notDetermined' | 'restricted'
- [x] Extend API docs