capacitor-plugin-app-tracking-transparency
v3.0.0
Published
Capacitor plugin to request user authorization to access app-related data for tracking the user or the device.
Readme
capacitor-plugin-app-tracking-transparency
Capacitor 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.
Platform support
iOS only but with web fallback for development purposes.
Plugin versions
Version 3.x (Swift Package Manager)
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 |
Version 2.x (CocoaPods)
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 |
Version 1.x (Legacy)
For Capacitor versions prior to 3.0.0, use plugin version 1.x. See branch v1 for documentation.
Maintainers
| Maintainer | GitHub | | | --------------- | ----------------------------------- | ---------------------------------------- | | Manuel Heidrich | mahnuh | Sprintwerk GmbH |
Install
npm install capacitor-plugin-app-tracking-transparency
npx cap syncConfiguration
Add this to your app's Info.plist and update the message according to your needs:
<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to deliver personalized ads to you.</string>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.
Example App
An example app is included in the example/ directory. To run it:
Install dependencies:
cd example npm installBuild and sync:
npm run build npx cap sync iosOpen in Xcode:
npx cap open iosRun on a simulator or device (iOS 14+)
Usage
import {
AppTrackingTransparency,
AppTrackingStatusResponse,
} from 'capacitor-plugin-app-tracking-transparency';
...
public async getStatus(): Promise<AppTrackingStatusResponse> {
const response = await AppTrackingTransparency.getStatus();
console.log(response);
// { status: 'authorized' } for example
return response;
}
public async requestPermission(): Promise<AppTrackingStatusResponse> {
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.
API
getStatus()
getStatus() => Promise<AppTrackingStatusResponse>Returns: Promise<AppTrackingStatusResponse>
requestPermission()
requestPermission() => Promise<AppTrackingStatusResponse>Returns: Promise<AppTrackingStatusResponse>
Type Aliases
AppTrackingStatusResponse
{ status: AppTrackingStatus }
AppTrackingStatus
'authorized' | 'denied' | 'notDetermined' | 'restricted'
Todos
- [x] Extend API docs
