Transparência de rastreamento e etiquetas de nutrição - o guia para alinhar o App Tracking Transparency (ATT) do iOS, as Etiquetas de Nutrição de Privacidade e a Segurança de Dados do Google Play com o que seu aplicativo Expo SDK 57 realmente faz em tempo de execução. O contexto da política está em Diretrizes de Revisão da App Store e Permissões e Política do Play.
Cartão de receita de referência rápida - pronto para copiar e colar.
npx expo install expo-tracking-transparency
// app.config.ts - string ATT + declaração honesta de rastreamentoexport default { expo: { ios: { bundleIdentifier: "com.example.shopapp", infoPlist: { NSUserTrackingUsageDescription: "ShopApp usa este identificador para medir o desempenho de campanhas de anúncios e limitar ofertas duplicadas.", }, privacyManifests: { NSPrivacyTracking: false, // defina como true apenas se você rastrear em aplicativos/sites de outras 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; // Mostre sua própria pré-solicitação explicando o valor ANTES do diálogo do sistema const { status } = await TrackingTransparency.requestTrackingPermissionsAsync(); return status === "granted";}
Quando usar isso:
Adicionando AdMob, Facebook SDK, AppsFlyer ou qualquer SDK que leia o IDFA.
Primeira submissão para a App Store - questionário de Etiquetas de Nutrição de Privacidade e Privacidade do Aplicativo.
Novo rascunho da Segurança de Dados do Play Console após atualização do SDK.
Rejeição citando a Diretriz 5.1.2 (rastreamento) ou etiquetas de privacidade imprecisas.
Solicitações legais de documentação de paridade de privacidade entre lojas.
Você vincula dados do usuário/dispositivo a dados de terceiros para publicidade
OU compartilha com corretores de dados
OU usa o IDFA para rastreamento entre aplicativos/sites (outras empresas)?
├── NÃO → NSPrivacyTracking: false; NÃO chame ATT; declare análises como não rastreamento
└── SIM → NSPrivacyTracking: true; NSUserTrackingUsageDescription; solicite ATT antes do IDFA
Regras do prompt ATT:
Solicite após o usuário entender o contexto - use uma tela de pré-solicitação.
Nunca restrinja recursos principais do aplicativo à aceitação do rastreamento.
Se o usuário negar, não leia o IDFA - os SDKs de anúncios devem ser executados em modo não personalizado.
As descrições de uso do infoPlist do iOS devem descrever o recurso atual:
infoPlist: { NSCameraUsageDescription: "ShopApp usa a câmera para escanear códigos de barras de produtos.", NSPhotoLibraryUsageDescription: "ShopApp permite que você escolha uma foto para seu perfil.", NSLocationWhenInUseUsageDescription: "ShopApp usa sua localização para encontrar lojas próximas.",}
Permissões perigosas do Android - solicite no contexto; a segurança de dados deve mencionar a localização se expo-location for executado.
Análises confinadas ao seu aplicativo, não vinculadas a redes de anúncios de terceiros para perfil entre aplicativos, geralmente não são rastreamento ATT.
Declare ainda assim os dados de uso/diagnóstico em etiquetas e Segurança de dados.
Preciso de ATT para notificações push?
Não - tokens push não são IDFA.
Declare identificadores de dispositivo se você usar o token para perfil de anúncios entre aplicativos (incomum).
Expo Go e testes de privacidade?
ATT e manifestos se aplicam a builds de loja - teste em builds de produção EAS ou builds de cliente de desenvolvimento de pré-visualização com permissões correspondentes.
E se as etiquetas estiverem erradas em um aplicativo ativo?
Atualize o Connect e os formulários do Play imediatamente.
Envie um binário compatível se o comportamento do SDK precisar mudar.