Home

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 versionPlugin version
6.x>= 2.0.2
5.x>= 2.0.2
4.x>= 2.0.2
3.x>= 2.0.0
< 3.0.01.x.x

For plugin version 1.x.x docs please refer to branch v1.

Maintainers

MaintainerGitHubSocial
Manuel Heidrichmahnuh@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

License

MIT