Getting Started
Dieser Inhalt ist in Ihrer Sprache noch nicht verfügbar.
-
Install the package
Terminal-Fenster npm i @capgo/capacitor-app-tracking-transparencyTerminal-Fenster pnpm add @capgo/capacitor-app-tracking-transparencyTerminal-Fenster yarn add @capgo/capacitor-app-tracking-transparencyTerminal-Fenster bun add @capgo/capacitor-app-tracking-transparency -
Sync with native projects
Terminal-Fenster npx cap syncTerminal-Fenster pnpm cap syncTerminal-Fenster yarn cap syncTerminal-Fenster bunx cap sync
iOS Setup
Section titled “iOS Setup”Add the NSUserTrackingUsageDescription key to your Info.plist file:
<key>NSUserTrackingUsageDescription</key><string>This identifier will be used to deliver personalized ads to you.</string>The string should explain why you need tracking permission. This message will be displayed to users when requesting permission.
Import the plugin and use its methods to handle tracking authorization:
import { AppTrackingTransparency } from '@capgo/capacitor-app-tracking-transparency';
// Check current tracking statusconst checkStatus = async () => { const { status } = await AppTrackingTransparency.getStatus(); console.log('Tracking status:', status);};
// Request tracking permissionconst requestPermission = async () => { const { status } = await AppTrackingTransparency.requestPermission(); console.log('User chose:', status);};API Reference
Section titled “API Reference”getStatus()
Section titled “getStatus()”Gets the current tracking authorization status without prompting the user.
const { status } = await AppTrackingTransparency.getStatus();// Returns: 'authorized' | 'denied' | 'notDetermined' | 'restricted'requestPermission()
Section titled “requestPermission()”Requests user authorization to access app-related data for tracking. Displays the native iOS tracking permission dialog.
const { status } = await AppTrackingTransparency.requestPermission();// Returns: 'authorized' | 'denied' | 'notDetermined' | 'restricted'Complete Example
Section titled “Complete Example”import { AppTrackingTransparency } from '@capgo/capacitor-app-tracking-transparency';
export class TrackingService { async requestTrackingIfNeeded(): Promise<boolean> { // Check current status first const { status } = await AppTrackingTransparency.getStatus();
if (status === 'notDetermined') { // User hasn't been asked yet, show the dialog const result = await AppTrackingTransparency.requestPermission(); return result.status === 'authorized'; }
return status === 'authorized'; }
async isTrackingAuthorized(): Promise<boolean> { const { status } = await AppTrackingTransparency.getStatus(); return status === 'authorized'; }}Status Values
Section titled “Status Values”| Status | Description |
|---|---|
authorized | User has authorized tracking |
denied | User has denied tracking |
notDetermined | User hasn’t been asked yet |
restricted | Tracking is restricted (e.g., parental controls) |
Platform Notes
Section titled “Platform Notes”- Requires iOS 14.0+
- Uses Apple’s
ATTrackingManagerframework - The permission dialog is shown only once per app install
Android
Section titled “Android”- Returns
authorizedstatus automatically - No permission dialog is shown (ATT is iOS-only)
- Returns
authorizedstatus for development purposes
Best Practices
Section titled “Best Practices”-
Request at the right time Don’t request permission on app launch. Wait until the user reaches a feature that benefits from tracking, and explain the value first.
-
Check before requesting Always check
getStatus()before callingrequestPermission()to avoid unnecessary API calls. -
Handle all statuses
const { status } = await AppTrackingTransparency.getStatus();switch (status) {case 'authorized':// Enable personalized featuresbreak;case 'denied':case 'restricted':// Use non-personalized alternativesbreak;case 'notDetermined':// Consider requesting permissionbreak;}