Flutter SDKのキッズモード

Flutterアプリが子ども向けの場合、AppleおよびGoogleのポリシーに従う必要があります。Adapty SDKを使用している場合、いくつかの簡単な手順でこれらのポリシーに準拠するよう設定し、アプリストアの審査を通過できます。

何が必要ですか?

以下の情報収集を無効にするよう、Adapty SDK を設定する必要があります。

  • IDFA(広告識別子)(iOS)
  • Android 広告 ID(AAID/GAID)(Android)
  • IP アドレス さらに、カスタマーユーザーIDの扱いには十分注意することをお勧めします。<FirstName.LastName> 形式のユーザーIDは、メールアドレスと同様に個人データの収集として扱われます。キッズモードでは、ランダム化または匿名化された識別子(ハッシュIDやデバイスが生成したUUIDなど)を使用することで、コンプライアンスを確保するのがベストプラクティスです。

キッズモードを有効にする

Adapty ダッシュボードでの設定

Adapty ダッシュボードで、IPアドレスの収集を無効化する必要があります。App settingsに移動し、Collect users’ IP addressの下にあるDisable IP address collectionをクリックしてください。

モバイルアプリのコード変更

ポリシーに準拠するため、ユーザーの IDFA(iOS)、GAID/AAID(Android)、および IP アドレスの収集を無効にしてください。

Android: 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: SDK v4 でキッズモードを有効にする

SDK v4 では、ネイティブ iOS SDK は Swift Package Manager からインストールされ、キッズモードは KidsMode Swift パッケージトレイトを通じて有効化されます。このトレイトにより、IDFA、AdSupport、AppTrackingTransparency に関するコードがすべてコンパイルから除外されます。これには Xcode 26 以降が必要です。

SDK v4 では、pubspec.yamladapty_flutter の代わりに adapty_flutter_kids パッケージを使用してください。これはプラグインのキッズモード版であり、公開 API もバージョンも同じです。唯一の違いは、ネイティブ iOS SDK が KidsMode トレイトでビルドされている点です:

dependencies:
  adapty_flutter_kids: 4.0.0

Dart のコードはそのままで、インポートを新しいパッケージ名に更新するだけです:

iOS: CocoaPods を使用してキッズモードを有効にする(SDK v3)

  1. 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
  2. 変更を適用するには、以下を実行します。

    pod install