Awesome
capacitor-plugin-app-tracking-transparency
<a href="https://www.npmjs.com/package/capacitor-plugin-app-tracking-transparency"><img src="https://img.shields.io/npm/l/capacitor-plugin-app-tracking-transparency?style=flat-square" /></a> <a href="https://www.npmjs.com/package/capacitor-plugin-app-tracking-transparency"><img src="https://img.shields.io/npm/dw/capacitor-plugin-app-tracking-transparency?style=flat-square" /></a> <a href="https://www.npmjs.com/package/capacitor-plugin-app-tracking-transparency"><img src="https://img.shields.io/npm/v/capacitor-plugin-app-tracking-transparency?style=flat-square" /></a>
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
Capacitor version | Plugin version |
---|---|
6.x | >= 2.0.2 |
5.x | >= 2.0.2 |
4.x | >= 2.0.2 |
3.x | >= 2.0.0 |
< 3.0.0 | 1.x.x |
For plugin version 1.x.x docs please refer to branch v1.
Maintainers
Maintainer | GitHub | Social |
---|---|---|
Manuel Heidrich | mahnuh | @mahnuh |
Install
npm install capacitor-plugin-app-tracking-transparency
npx cap sync
Configuration
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.
Plugin demo
There is a small demo app available to showcase this plugin and its usage: capacitor-plugin-app-tracking-transparency-demo-app
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
<docgen-index> </docgen-index> <docgen-api> <!--Update the source file JSDoc comments and rerun docgen to update the docs below-->getStatus()
getStatus() => Promise<AppTrackingStatusResponse>
Returns: <code>Promise<<a href="#apptrackingstatusresponse">AppTrackingStatusResponse</a>></code>
requestPermission()
requestPermission() => Promise<AppTrackingStatusResponse>
Returns: <code>Promise<<a href="#apptrackingstatusresponse">AppTrackingStatusResponse</a>></code>
Type Aliases
AppTrackingStatusResponse
<code>{ status: <a href="#apptrackingstatus">AppTrackingStatus</a> }</code>
AppTrackingStatus
<code>'authorized' | 'denied' | 'notDetermined' | 'restricted'</code>
</docgen-api>Todos
- Extend API docs