Chế độ Kids trong React Native SDK

Nếu ứng dụng React Native của bạn dành cho trẻ em, bạn phải tuân theo chính sách của AppleGoogle. Nếu bạn đang sử dụng Adapty SDK, chỉ cần vài bước đơn giản để cấu hình SDK phù hợp với các chính sách này và vượt qua quá trình kiểm duyệt của cửa hàng ứng dụng.

Trên iOS, Chế độ Trẻ em được bật thông qua trait Swift package KidsMode, giúp loại bỏ toàn bộ code liên quan đến IDFA, AdSupport và AppTrackingTransparency. Tính năng này yêu cầu SDK v4 (cài đặt iOS SDK gốc qua Swift Package Manager) và Xcode 26 trở lên. Xem Cập nhật trong iOS Podfile của bạn bên dưới.

Cần cấu hình những gì?

Bạn cần cấu hình SDK để tắt việc thu thập:

  • IDFA (Identifier for Advertisers) (iOS)
  • Android Advertising ID (AAID/GAID) (Android)
  • Địa chỉ IP Ngoài ra, chúng tôi khuyến nghị sử dụng customer user ID một cách thận trọng. User ID có định dạng <FirstName.LastName> chắc chắn sẽ bị coi là thu thập dữ liệu cá nhân, tương tự như việc sử dụng email. Đối với Kids Mode, phương pháp tốt nhất là sử dụng các định danh ngẫu nhiên hoặc ẩn danh (ví dụ: hashed ID hoặc UUID do thiết bị tạo ra) để đảm bảo tuân thủ.

Bật Chế Độ Kids Mode

Cập nhật trong Adapty Dashboard

Trong Adapty Dashboard, bạn cần tắt tính năng thu thập địa chỉ IP. Để thực hiện, hãy vào App settings và nhấn Disable IP address collection trong mục Collect users’ IP address.

Cập nhật trong code ứng dụng di động của bạn

Để tuân thủ các chính sách, hãy tắt tính năng thu thập IDFA (iOS), GAID/AAID (Android) và địa chỉ IP của người dùng khi bạn kích hoạt Adapty 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,
  },
});

Cập nhật Podfile cho iOS

Để đáp ứng yêu cầu của danh mục Kids trên App Store (hoặc tuân thủ COPPA), native iOS SDK phải được build với trait Swift package KidsMode, giúp loại bỏ toàn bộ code liên quan đến IDFA, AdSupport và AppTrackingTransparency. React Native cài đặt native SDK thông qua Swift Package Manager, vốn không thể chuyển tiếp package traits, nên SDK cung cấp một helper cho Podfile để tự động áp dụng trait đó. Bước này yêu cầu Xcode 26 trở lên.

Trong ios/Podfile, hãy require helper và gọi nó sau 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

Sau đó chạy pod install:

cd ios && pod install

Để xác nhận Kids Mode đang hoạt động, kiểm tra dòng log adapty.activate(...) có ghi kids_mode_enabled: true. Giữ lời gọi helper trong post_install mãi mãi — React Native tạo lại các tham chiếu Swift package mỗi lần chạy pod install, và helper sẽ áp dụng lại trait mỗi lần như vậy.

Cập nhật trong Android manifest của bạn

Nếu ứng dụng của bạn chỉ nhắm đến đối tượng trẻ em biên dịch với Android 13 (API 33) trở lên, Google Play yêu cầu bạn không được yêu cầu quyền AD_ID. Một SDK khác trong ứng dụng của bạn (analytics, attribution, hoặc quảng cáo) có thể thêm quyền này thông qua manifest merging. Việc đặt adIdCollectionDisabled ngăn Adapty thu thập ID, nhưng không xóa được quyền mà một SDK khác đã khai báo.

Để xóa quyền này, thêm đoạn sau vào bên trong phần tử <manifest> của android/app/src/main/AndroidManifest.xml. Phần tử <manifest> phải khai báo xmlns:tools="http://schemas.android.com/tools".

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