Transparencia de seguimiento y etiquetas de nutrición - la guía para alinear iOS App Tracking Transparency (ATT), Etiquetas de Nutrición de Privacidad y Google Play Data safety con lo que tu app Expo SDK 57 realmente hace en tiempo de ejecución. El contexto de política vive en App Store Review Guidelines y Permissions & Play Policy.
Tarjeta de referencia rápida - lista para copiar y pegar.
npx expo install expo-tracking-transparency
// app.config.ts - cadena ATT + declaración de seguimiento honestaexport default { expo: { ios: { bundleIdentifier: "com.example.shopapp", infoPlist: { NSUserTrackingUsageDescription: "ShopApp usa este identificador para medir el desempeño de campañas publicitarias y limitar ofertas duplicadas.", }, privacyManifests: { NSPrivacyTracking: false, // establece true solo si haces seguimiento a través de aplicaciones/sitios de otras empresas NSPrivacyTrackingDomains: [], NSPrivacyCollectedDataTypes: [ { NSPrivacyCollectedDataType: "NSPrivacyCollectedDataTypeCrashData", NSPrivacyCollectedDataTypeLinked: false, NSPrivacyCollectedDataTypeTracking: false, NSPrivacyCollectedDataTypePurposes: [ "NSPrivacyCollectedDataTypePurposeAppFunctionality", ], }, ], }, }, },};
// features/ads/requestTrackingIfNeeded.tsimport * as TrackingTransparency from "expo-tracking-transparency";import { Platform } from "react-native";export async function requestTrackingIfNeeded(): Promise<boolean> { if (Platform.OS !== "ios") return true; const { status: current } = await TrackingTransparency.getTrackingPermissionsAsync(); if (current === "granted") return true; if (current === "denied") return false; // Muestra tu propio pre-prompt explicando el valor ANTES del diálogo del sistema const { status } = await TrackingTransparency.requestTrackingPermissionsAsync(); return status === "granted";}
Cuándo usarlo:
Agregando AdMob, Facebook SDK, AppsFlyer, o cualquier SDK que lea IDFA.
Primera presentación en App Store - Etiquetas de Nutrición y cuestionario App Privacy.
Redacción de Data safety en Play Console después de actualización de SDK.
Rechazo citando la Directriz 5.1.2 (seguimiento) o etiquetas de privacidad inexactas.
El equipo legal solicita documentación de paridad de privacidad entre tiendas.
¿Vinculas datos de usuario/dispositivo con datos de terceros para publicidad
O compartes con corredores de datos
O usas IDFA para seguimiento entre aplicaciones/sitios web (de otras empresas)?
├── NO → NSPrivacyTracking: false; NO llames a ATT; declara análisis como no-seguimiento
└── SÍ → NSPrivacyTracking: true; NSUserTrackingUsageDescription; solicita ATT antes de IDFA
Reglas del prompt ATT:
Solicita después de que el usuario entienda el contexto - usa pantalla pre-prompt.
Nunca bloquees características principales de la app en aceptar seguimiento.
Si el usuario niega, no leas IDFA - los SDK de anuncios deben ejecutarse en modo no personalizado.
Las descripciones de uso de iOS infoPlist deben describir la característica actual:
infoPlist: { NSCameraUsageDescription: "ShopApp usa la cámara para escanear códigos de barras de productos.", NSPhotoLibraryUsageDescription: "ShopApp te permite elegir una foto para tu perfil.", NSLocationWhenInUseUsageDescription: "ShopApp usa tu ubicación para encontrar tiendas cercanas.",}
Permisos peligrosos de Android - solicita en contexto; Data safety debe mencionar ubicación si expo-location se ejecuta.