Режим «Для детей» в Capacitor SDK
Если ваше приложение на Capacitor предназначено для детей, вы обязаны соблюдать политики Apple и Google. Несколько простых шагов помогут настроить Adapty SDK в соответствии с этими требованиями и успешно пройти модерацию.
Что нужно сделать?
Необходимо настроить SDK, чтобы отключить сбор:
- IDFA (Identifier for Advertisers) (iOS)
- Android Advertising ID (AAID/GAID) (Android)
- IP-адреса
Кроме того, рекомендуем обращаться с customer user ID с осторожностью. User ID в формате
<FirstName.LastName>однозначно расценивается как сбор персональных данных — так же, как и использование email. Для режима «Для детей» лучшая практика — использовать рандомизированные или анонимизированные идентификаторы (например, хэшированные ID или UUID, сгенерированные на устройстве), чтобы обеспечить соответствие требованиям.
Включение режима «Для детей»
Настройки в дашборде Adapty
В дашборде Adapty необходимо отключить сбор IP-адресов. Для этого перейдите в App settings и нажмите Disable IP address collection в разделе Collect users’ IP address.
Обновления в коде мобильного приложения
Чтобы соответствовать требованиям политик, отключите сбор IDFA, GAID и IP-адреса пользователя:
try {
await adapty.activate({
apiKey: 'YOUR_PUBLIC_SDK_KEY',
params: {
// Disable IP address collection
ipAddressCollectionDisabled: true,
// Disable IDFA collection on iOS
ios: {
idfaCollectionDisabled: true
},
// Disable Google Advertising ID collection on Android
android: {
adIdCollectionDisabled: true
}
}
});
console.log('Adapty activated with Kids Mode enabled');
} catch (error) {
console.error('Failed to activate Adapty with Kids Mode:', error);
}
Конфигурация для отдельных платформ
iOS
Даже если сбор IDFA отключён в коде (см. выше), ваш билд всё равно включает фреймворки AdSupport и AppTrackingTransparency. Категория Kids в App Store их не допускает. А поскольку SDK v4 устанавливает нативный iOS SDK через Swift Package Manager, убрать их через Podfile не получится.
Чтобы соответствовать требованиям Apple, добавьте команду adapty-kids-mode, поставляемую вместе с SDK, в postinstall вашего приложения. Она включает трейт KidsMode в SDK, который исключает этот код из компиляции. Команда применяется заново при каждой установке:
{
"scripts": {
"postinstall": "adapty-kids-mode"
}
}Затем переустановите и пересоберите iOS-пакеты, после чего выполните сборку в Xcode 26 или новее:
npm install
npx cap sync iosЧтобы отключить Kids Mode, выполните adapty-kids-mode disable и синхронизируйте проект снова.
Если вы используете CocoaPods для iOS, Kids Mode можно также включить на нативном уровне:
- Обновите Podfile:
-
Если у вас нет раздела
post_install, добавьте весь блок кода ниже.- Если раздел
post_installу вас есть, добавьте в него выделенные строки.
def adapty_enable_kids_mode(installer) installer.pods_project.targets.each do |target| next unless target.name == 'Adapty' target.build_configurations.each do |config| flags = config.build_settings['OTHER_SWIFT_FLAGS'] || '$(inherited)' flags = flags.join(' ') if flags.is_a?(Array) config.build_settings['OTHER_SWIFT_FLAGS'] = "#{flags} -DADAPTY_KIDS_MODE" end target.frameworks_build_phase.files.dup.each do |bf| target.frameworks_build_phase.remove_build_file(bf) if bf.display_name.to_s.include?('AdSupport') end end installer.pods_project.save Dir.glob(File.join(installer.sandbox.root, 'Target Support Files', '**', '*.xcconfig')).each do |xc| File.write(xc, File.read(xc).gsub(/\s*-framework\s+"?AdSupport"?/, '')) end end post_install do |installer| # ... keep your existing post_install body (Flutter adds one automatically) ... adapty_enable_kids_mode(installer) # <-- enable Adapty Kids Mode end - Если раздел
-
Выполните следующую команду, чтобы применить изменения:
pod install
Android: удаление разрешения на рекламный идентификатор
Установка adIdCollectionDisabled: true (выше) останавливает сбор рекламного идентификатора в Adapty, однако SDK по-прежнему объявляет разрешение AD_ID. Если ваше приложение ориентировано исключительно на детей и компилируется под Android 13 (API 33) или выше, Google Play запрещает его запрашивать.
Добавьте два элемента в тег <manifest>:
- Объявите пространство имён
tools(в манифесте Capacitor по умолчанию оно отсутствует). - Добавьте запись
<uses-permission>дляAD_IDс атрибутомtools:node="remove", чтобы удалить его.
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission
android:name="com.google.android.gms.permission.AD_ID"
tools:node="remove" />
<!-- your existing manifest content -->
</manifest>
Следующие шаги
После включения режима «Для детей» убедитесь, что:
- Приложение тщательно протестировано и все функции работают корректно.
- Политика конфиденциальности обновлена с учётом отключённого сбора данных.
- При отправке приложения на проверку приложена документация, подтверждающая соответствие требованиям режима «Для детей».
Дополнительные сведения о платформенных требованиях:
- Режим «Для детей» в iOS SDK — подробности настройки для iOS
- Режим «Для детей» в Android SDK — подробности настройки для Android