Chế độ Trẻ em trong Flutter SDK

Nếu ứng dụng Flutter của bạn dành cho trẻ em, bạn phải tuân thủ chính sách của AppleGoogle. Nếu đang sử dụng Adapty SDK, bạn chỉ cần thực hiện vài bước đơn giản để 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 của cửa hàng ứng dụng.

Cần làm gì?

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

Ngoài ra, hãy cẩn thận khi sử dụng customer user ID. ID người dùng có định dạng <TênĐệm.Họ> sẽ bị coi là thu thập dữ liệu cá nhân, tương tự như sử dụng email. Với Chế độ Trẻ em, cách làm tốt nhất là dùng các định danh ngẫu nhiên hoặc ẩn danh (ví dụ: ID đã băm hoặc UUID do thiết bị tạo) để đảm bảo tuân thủ.

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. Để thực hiện, vào App settings và nhấn Disable IP address collection trong phần Collect users’ IP address.

Cập nhật trong code ứng dụng di động

Để tuân thủ chính sách, hãy tắt việc thu thập IDFA của người dùng (cho iOS), GAID/AAID (cho Android) và địa chỉ IP.

Android: Cập nhật cấu hình SDK

try {
    await Adapty().activate(
        configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
          ..withGoogleAdvertisingIdCollectionDisabled(true),  // set to `true`
          ..withIpAddressCollectionDisabled(true),  // set to `true`
    );
} catch (e) {
    // handle the error
}

iOS: Bật Chế độ Trẻ em bằng CocoaPods

  1. 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ộ khối code bên dưới.
    • Nếu bạn đã có phần post_install, hãy hợp nhất 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
  2. Áp dụng các thay đổi bằng cách chạy

    pod install