Modo Kids en React Native SDK

Si tu aplicación React Native está destinada a niños, debes seguir las políticas de Apple y Google. Si usas el SDK de Adapty, unos pocos pasos sencillos te ayudarán a configurarlo para cumplir con estas políticas y superar las revisiones de las tiendas.

En iOS, el modo Kids se activa mediante el trait de Swift Package KidsMode, que elimina en compilación todo el código relacionado con IDFA, AdSupport y AppTrackingTransparency. Requiere el SDK v4 (que instala el SDK nativo de iOS a través de Swift Package Manager) y Xcode 26 o posterior. Consulta Actualizaciones en tu iOS Podfile a continuación.

¿Qué se necesita?

Tienes que configurar el SDK para desactivar la recopilación de:

  • IDFA (Identifier for Advertisers) (iOS)
  • Android Advertising ID (AAID/GAID) (Android)
  • Dirección IP Además, te recomendamos usar el customer user ID con cuidado. Un ID de usuario con formato <FirstName.LastName> se considera sin duda como recopilación de datos personales, al igual que el uso del correo electrónico. Para el modo Kids, la mejor práctica es usar identificadores aleatorios o anonimizados (por ejemplo, IDs con hash o UUIDs generados por el dispositivo) para garantizar el cumplimiento normativo.

Activación del modo infantil

Actualizaciones en el Adapty Dashboard

En el Adapty Dashboard, debes desactivar la recopilación de direcciones IP. Para ello, ve a App settings y haz clic en Disable IP address collection bajo Collect users’ IP address.

Actualizaciones en el código de tu aplicación móvil

Para cumplir con las políticas, desactiva la recopilación del IDFA del usuario (iOS), GAID/AAID (Android) y la dirección IP al activar el SDK de Adapty:


adapty.activate('YOUR_PUBLIC_SDK_KEY', {
  // Disable IP address collection
  ipAddressCollectionDisabled: true,

  // Disable IDFA collection on iOS
  ios: {
    idfaCollectionDisabled: true,
  },

  // Disable Google Advertising ID collection on Android
  android: {
    adIdCollectionDisabled: true,
  },
});

Actualizaciones en tu Podfile de iOS

Para la categoría Niños del App Store (o cumplimiento con COPPA), el SDK nativo de iOS debe compilarse con el trait de paquete Swift KidsMode, que elimina del código todo lo relacionado con IDFA, AdSupport y AppTrackingTransparency. React Native instala el SDK nativo a través de Swift Package Manager, que no puede reenviar traits de paquete, por lo que el SDK incluye un helper para Podfile que aplica el trait por ti. Este paso requiere Xcode 26 o posterior.

En ios/Podfile, añade el helper y llámalo después de react_native_post_install:

require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native-adapty/ios/adapty_kids_mode.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

# ...

post_install do |installer|
  react_native_post_install(
    installer,
    config[:reactNativePath],
    :mac_catalyst_enabled => false
  )

  adapty_enable_kids_mode(installer)
end

Luego ejecuta pod install:

cd ios && pod install

Para confirmar que Kids Mode está activo, comprueba que la línea de log adapty.activate(...) muestra kids_mode_enabled: true. Mantén la llamada al helper en post_install de forma permanente: React Native regenera las referencias del paquete Swift en cada pod install, y el helper vuelve a aplicar el trait cada vez.

Actualizaciones en tu manifiesto de Android

Si tu app está dirigida exclusivamente a niños y compila contra Android 13 (API 33) o superior, Google Play exige que no solicites el permiso AD_ID. Otro SDK de tu app (de analítica, atribución o publicidad) puede añadir este permiso mediante la fusión de manifiestos. Establecer adIdCollectionDisabled impide que Adapty recopile el ID, pero no elimina un permiso que haya declarado otro SDK.

Para eliminar el permiso, añade lo siguiente dentro del elemento <manifest> de android/app/src/main/AndroidManifest.xml. El elemento <manifest> debe declarar xmlns:tools="http://schemas.android.com/tools".

<uses-permission
    android:name="com.google.android.gms.permission.AD_ID"
    tools:node="remove" />