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" />