🕵️ A React Native Library for interacting with the tracking API from iOS 14.
-
Install package
npm install react-native-tracking-transparency cd ios pod install
-
Add
NSUserTrackingUsageDescription
to yourInfo.plist
See the example app for a full code example.
Gets the current Tracking API status. As of iOS 14, Apple requires apps to only enable tracking (e.g.: advertiser ID collection) when the user has granted tracking permissions.
Requires iOS 14. On Android and iOS versions below 14, this will always return
'unavailable'
.
import { getTrackingStatus } from 'react-native-tracking-transparency';
const trackingStatus = await getTrackingStatus();
if (trackingStatus === 'authorized' || trackingStatus === 'unavailable') {
// enable tracking features
}
The tracking status can return one of the following values:
'unavailable'
: The tracking API is not available on the current device. That's the case on Android devices and iPhones below iOS 14.'denied'
: The user has explicitly denied permission to track. You'd want to respect that and disable any tracking features in your app.'authorized'
: The user has granted permission to track. You can now enable tracking features in your app.'restricted'
: The tracking permission alert cannot be shown, because the device is restricted. SeeATTrackingManager.AuthorizationStatus.restricted
for more information.'not-determined'
: The user has not been asked to grant tracking permissions yet. CallrequestTrackingPermission()
.
Requests permission to track the user. Requires an NSUserTrackingUsageDescription
key in your Info.plist
. (See iOS 14 Tracking API)
Requires iOS 14. On Android and iOS versions below 14, this will always return
'unavailable'
.
import { requestTrackingPermission } from 'react-native-tracking-transparency';
const trackingStatus = await requestTrackingPermission();
if (trackingStatus === 'authorized' || trackingStatus === 'unavailable') {
// enable tracking features
}
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT