Chế độ Trẻ em trong Capacitor SDK
Nếu ứng dụng Capacitor của bạn dành cho trẻ em, bạn phải tuân thủ chính sách của Apple và Google. Nếu bạn đang sử dụng Adapty SDK, chỉ cần vài bước đơn giản là có thể cấu hình SDK để đáp ứng các chính sách này và vượt qua quá trình xét duyệt trên cửa hàng ứng dụng.
Cần chuẩn bị gì?
Bạn cần cấu hình SDK để tắt việc thu thập:
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 theo đị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à dùng các định danh ngẫu nhiên hoặc ẩn danh (ví dụ: ID đã được băm hoặc UUID do thiết bị tạo ra) để đảm bảo tuân thủ quy định.
Bật Chế độ Trẻ em
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. Để làm điều này, hãy vào App settings và nhấn Disable IP address collection trong phần Collect users’ IP address.
Cập nhật trong mã ứ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, GAID và địa chỉ IP của người dùng:
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);
}
Cấu hình theo nền tảng
iOS
Ngay cả khi bạn đã tắt thu thập IDFA trong code (như trên), bản build vẫn bao gồm các framework AdSupport và AppTrackingTransparency. Danh mục Kids Category trên App Store không cho phép điều này. Và vì SDK v4 cài đặt iOS SDK native thông qua Swift Package Manager, không có bước Podfile nào để loại bỏ chúng.
Để tuân thủ yêu cầu của Apple, hãy thêm lệnh adapty-kids-mode đi kèm với SDK vào postinstall của ứng dụng. Lệnh này bật trait KidsMode của SDK, giúp biên dịch loại bỏ đoạn code đó. Lệnh sẽ được áp dụng lại mỗi khi cài đặt:
{
"scripts": {
"postinstall": "adapty-kids-mode"
}
}Sau đó cài đặt lại và re-resolve các gói iOS, rồi build với Xcode 26 trở lên:
npm install
npx cap sync iosĐể tắt Kids Mode, chạy adapty-kids-mode disable và sync lại.
Nếu bạn đang dùng CocoaPods cho iOS, bạn cũng có thể bật Kids Mode ở cấp độ native:
- Cập nhật Podfile của bạn:
-
Nếu bạn chưa có phần
post_install, hãy thêm toàn bộ đoạn code bên dưới.- Nếu bạn đã có phần
post_install, hãy gộp các dòng được đánh dấu vào đó.
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 - Nếu bạn đã có phần
-
Chạy lệnh sau để áp dụng các thay đổi:
pod install
Android: xóa quyền advertising ID
Đặt adIdCollectionDisabled: true (ở trên) sẽ ngăn Adapty thu thập advertising ID, nhưng SDK vẫn khai báo quyền AD_ID. Nếu ứng dụng của bạn chỉ nhắm đến trẻ em và được biên dịch với Android 13 (API 33) trở lên, Google Play sẽ cấm bạn yêu cầu quyền này.
Thêm hai khai báo sau vào phần tử <manifest> của bạn:
- Khai báo namespace
tools(manifest mặc định của Capacitor không có namespace này). - Thêm một entry
<uses-permission>choAD_IDvớitools:node="remove"để loại bỏ nó.
<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>
Các bước tiếp theo
Sau khi bật Chế độ Trẻ em, hãy đảm bảo:
- Kiểm thử ứng dụng kỹ lưỡng để đảm bảo tất cả các tính năng hoạt động đúng
- Xem lại chính sách quyền riêng tư của ứng dụng để phản ánh việc đã tắt thu thập dữ liệu
- Nộp ứng dụng để xét duyệt kèm theo tài liệu rõ ràng về việc tuân thủ Chế độ Trẻ em
Để biết thêm thông tin về yêu cầu theo từng nền tảng:
- Chế độ Trẻ em trong iOS SDK để biết thêm chi tiết cấu hình iOS
- Chế độ Trẻ em trong Android SDK để biết thêm chi tiết cấu hình Android