https://github.com/mahnuh/capacitor-plugin-app-tracking-transparency
Capacitor plugin to request user authorization to access app-related data for tracking the user or the device.
https://github.com/mahnuh/capacitor-plugin-app-tracking-transparency
capacitor capacitor-plugin hacktoberfest ios
Last synced: 3 months ago
JSON representation
Capacitor plugin to request user authorization to access app-related data for tracking the user or the device.
- Host: GitHub
- URL: https://github.com/mahnuh/capacitor-plugin-app-tracking-transparency
- Owner: mahnuh
- License: mit
- Created: 2021-04-27T18:01:06.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-13T06:16:58.000Z (9 months ago)
- Last Synced: 2024-11-10T13:19:08.530Z (3 months ago)
- Topics: capacitor, capacitor-plugin, hacktoberfest, ios
- Language: Swift
- Homepage:
- Size: 59.6 KB
- Stars: 33
- Watchers: 3
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-capacitor - App Tracking Transparency - Request user authorization to access app-related data for tracking the user or the device. iOS only. (Other plugins)
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](https://developer.apple.com/documentation/apptrackingtransparency). Also [this](https://developer.apple.com/app-store/user-privacy-and-data-use/) 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](https://github.com/mahnuh/capacitor-plugin-app-tracking-transparency/tree/v1).
## Maintainers
| Maintainer | GitHub | Social |
| ---------- | ----------------------------------------- | --------------------------------------------- |
| Manuel Heidrich | [mahnuh](https://github.com/mahnuh) | [@mahnuh](https://twitter.com/mahnuh) |## Install
```bash
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:
```xml
NSUserTrackingUsageDescription
Your data will be used to deliver personalized ads to you.
```This message can be provided in multiple languages by using a `InfoPlist.strings` file. See the [Apple docs](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html) or [this stack overflow answer](https://stackoverflow.com/a/25736915) 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](https://github.com/mahnuh/capacitor-plugin-app-tracking-transparency-demo-app)
## Usage
```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 examplereturn response;
}public async requestPermission(): Promise {
const response = await AppTrackingTransparency.requestPermission();console.log(response);
// { status: 'authorized' } for examplereturn 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](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/authorizationstatus) for reference.
## API
* [`getStatus()`](#getstatus)
* [`requestPermission()`](#requestpermission)
* [Type Aliases](#type-aliases)### getStatus()
```typescript
getStatus() => Promise
```**Returns:**
Promise<AppTrackingStatusResponse>
--------------------
### requestPermission()
```typescript
requestPermission() => Promise
```**Returns:**
Promise<AppTrackingStatusResponse>
--------------------
### Type Aliases
#### AppTrackingStatusResponse
{ status: AppTrackingStatus }
#### AppTrackingStatus
'authorized' | 'denied' | 'notDetermined' | 'restricted'
## Todos
- [x] Extend API docs
## License
[MIT](https://github.com/mahnuh/capacitor-plugin-app-tracking-transparency/blob/main/LICENSE)