Режим для детей в React Native SDK

Если ваше приложение на React Native предназначено для детей, вы должны соблюдать политики Apple и Google. Если вы используете Adapty SDK, несколько простых шагов помогут настроить его в соответствии с этими политиками и пройти проверку в сторах.

На iOS Kids Mode включается через трейт Swift Package KidsMode, который исключает из сборки весь код, связанный с IDFA, AdSupport и AppTrackingTransparency. Для этого требуется SDK v4 (который устанавливает нативный iOS SDK через Swift Package Manager) и Xcode 26 или новее. См. раздел Изменения в iOS Podfile ниже.

Что нужно настроить?

Вам нужно настроить SDK, чтобы отключить сбор следующих данных:

  • IDFA (Identifier for Advertisers) (iOS)
  • Android Advertising ID (AAID/GAID) (Android)
  • IP-адрес Кроме того, рекомендуем осторожно обращаться с customer user ID. Идентификатор в формате <FirstName.LastName> однозначно будет расценён как сбор персональных данных, так же как и использование email. Для режима «Дети» лучшая практика — использовать случайные или анонимизированные идентификаторы (например, хэшированные ID или UUID, сгенерированные устройством), чтобы обеспечить соответствие требованиям.

Включение режима Kids Mode

Обновления в дашборде Adapty

В дашборде Adapty нужно отключить сбор IP-адресов. Перейдите в App settings и нажмите Disable IP address collection в разделе Collect users’ IP address.

Обновления в коде вашего мобильного приложения

Чтобы соответствовать требованиям политик, отключите сбор IDFA (iOS), GAID/AAID (Android) и IP-адреса пользователя при активации SDK:


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,
  },
});

Обновления в iOS Podfile

Для категории App Store Kids (или соответствия требованиям COPPA) нативный iOS SDK должен быть собран с трейтом Swift-пакета KidsMode, который исключает из компиляции весь код, связанный с IDFA, AdSupport и AppTrackingTransparency. React Native устанавливает нативный SDK через Swift Package Manager, который не может передавать трейты пакетов, поэтому SDK предоставляет вспомогательный инструмент для Podfile, применяющий трейт автоматически. Для этого шага требуется Xcode 26 или новее.

В файле ios/Podfile подключите вспомогательный инструмент и вызовите его после 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

Затем выполните pod install:

cd ios && pod install

Чтобы убедиться, что режим Kids Mode активен, проверьте, что в логе adapty.activate(...) указано kids_mode_enabled: true. Оставьте вызов хелпера в post_install на постоянной основе — React Native пересоздаёт ссылки на Swift-пакеты при каждом запуске pod install, а хелпер заново применяет нужный атрибут каждый раз.

Обновления в вашем Android-манифесте

Если ваше приложение ориентировано исключительно на детскую аудиторию и компилируется под Android 13 (API 33) или выше, Google Play требует не запрашивать разрешение AD_ID. Другой SDK в вашем приложении (аналитика, атрибуция или реклама) может добавить это разрешение через слияние манифестов. Установка adIdCollectionDisabled останавливает сбор идентификатора в Adapty, но не удаляет разрешение, объявленное другим SDK.

Чтобы удалить разрешение, добавьте следующее внутри элемента <manifest> в файле android/app/src/main/AndroidManifest.xml. Элемент <manifest> должен объявлять xmlns:tools="http://schemas.android.com/tools".

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