Getting Started
Este contenido aún no está disponible en tu idioma.
-
Install the package
Ventana de terminal npm i @capgo/capacitor-app-tracking-transparencyVentana de terminal pnpm add @capgo/capacitor-app-tracking-transparencyVentana de terminal yarn add @capgo/capacitor-app-tracking-transparencyVentana de terminal bun add @capgo/capacitor-app-tracking-transparency -
Sync with native projects
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal 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;}