React Native SDKのキッズモード

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

iOS では、Kids Mode は KidsMode Swift パッケージトレイトを通じて有効化されます。これにより、IDFA、AdSupport、AppTrackingTransparency に関するすべてのコードがコンパイル時に除外されます。v4 SDK(Swift Package Manager 経由でネイティブ iOS SDK をインストール)と Xcode 26 以降が必要です。詳細は以下の iOS Podfile の更新内容 を参照してください。

何が必要ですか?

以下の収集を無効にするよう、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 をクリックしてください。

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

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


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,
  },
});

iOSのPodfileの更新

App Store キッズカテゴリー(またはCOPPA準拠)に対応するには、ネイティブiOS SDKをKidsMode Swiftパッケージトレイトを使ってビルドする必要があります。これにより、IDFA、AdSupport、AppTrackingTransparencyに関するコードがすべてコンパイルから除外されます。React NativeはSwift Package Manager経由でネイティブSDKをインストールしますが、Swift Package Managerはパッケージトレイトを転送できないため、SDKにはトレイトを自動的に適用するPodfileヘルパーが用意されています。この手順にはXcode 26以降が必要です。

ios/Podfileでヘルパーをrequireし、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

次に pod install を実行します:

cd ios && pod install

キッズモードが有効になっているか確認するには、adapty.activate(...) のログ行に kids_mode_enabled: true と表示されているかチェックしてください。post_install 内のヘルパー呼び出しは常に残しておいてください。React Native は pod install のたびに Swift パッケージの参照を再作成するため、ヘルパーはそのたびにトレイトを再適用する必要があります。

Android マニフェストの更新

アプリが子ども専用であり、Android 13(API 33)以上を対象としている場合、Google Play では AD_ID 権限のリクエストが禁止されています。アプリ内の別の SDK(アナリティクス、アトリビューション、広告など)がマニフェストのマージによってこの権限を追加する場合があります。adIdCollectionDisabled を設定すると、Adapty による ID の収集は停止されますが、別の SDK が宣言した権限が削除されるわけではありません。

この権限を削除するには、android/app/src/main/AndroidManifest.xml<manifest> 要素内に以下を追加してください。<manifest> 要素には xmlns:tools="http://schemas.android.com/tools" の宣言が必要です。

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