Kids Mode in React Native SDK
If your React Native application is intended for kids, you must follow the policies of Apple and Google. If you’re using the Adapty SDK, a few simple steps will help you configure it to meet these policies and pass app store reviews.
On iOS, Kids Mode is enabled through the KidsMode Swift package trait, which compiles out all IDFA, AdSupport, and AppTrackingTransparency code. It requires the v4 SDK (which installs the native iOS SDK through Swift Package Manager) and Xcode 26 or later. See Updates in your iOS Podfile below.
What’s required?
You need to configure the Adapty SDK to disable the collection of:
In addition, we recommend using customer user ID carefully. User ID in format <FirstName.LastName> will be definitely treated as gathering personal data as well as using email. For Kids Mode, a best practice is to use randomized or anonymized identifiers (e.g., hashed IDs or device-generated UUIDs) to ensure compliance.
Enabling Kids Mode
Updates in the Adapty Dashboard
In the Adapty Dashboard, you need to disable the IP address collection. To do this, go to App settings and click Disable IP address collection under Collect users’ IP address.
Updates in your mobile app code
In order to comply with policies, disable the collection of the user’s IDFA (iOS), GAID/AAID (Android), and IP address when you activate the Adapty SDK:
import { adapty } from 'react-native-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,
},
});
Updates in your iOS Podfile
For the App Store Kids Category (or COPPA compliance), the native iOS SDK must be built with the KidsMode Swift package trait, which compiles out all IDFA, AdSupport, and AppTrackingTransparency code. React Native installs the native SDK through Swift Package Manager, which can’t forward package traits, so the SDK provides a Podfile helper that applies the trait for you. This step requires Xcode 26 or later.
In ios/Podfile, require the helper and call it after 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
Then run pod install:
cd ios && pod install
To confirm Kids Mode is active, check that the adapty.activate(...) log line reports kids_mode_enabled: true. Keep the helper call in post_install permanently — React Native recreates the Swift package references on every pod install, and the helper re-applies the trait each time.
Updates in your Android manifest
If your app targets children only and compiles against Android 13 (API 33) or higher, Google Play requires that you don’t request the AD_ID permission. Another SDK in your app (analytics, attribution, or ads) may add this permission through manifest merging. Setting adIdCollectionDisabled stops Adapty from collecting the ID, but it doesn’t remove a permission that another SDK declares.
To remove the permission, add the following inside the <manifest> element of android/app/src/main/AndroidManifest.xml. The <manifest> element must declare xmlns:tools="http://schemas.android.com/tools".
<uses-permission
android:name="com.google.android.gms.permission.AD_ID"
tools:node="remove" />