未成年者保護法令への準拠
Hive SDKは、未成年者保護のためのApp Store責任法およびブラジルECAへの対応として、ユーザー年齢を確認できるAge rangeモジュールを提供します。 ユーザー年齢確認を義務付ける法令の施行に伴い、マーケットプレイス経由でアプリを配布する開発者は Age range モジュールを適用し、ユーザー年齢範囲の確認や保護者同意の取得が可能です。
Note
Age range モジュールは Android / iOS ターゲットの Hive SDK v4 26.0.1 から提供され、年齢確認法が施行されるまでは必須適用ではありません。
iOSでユーザー年齢範囲を確認するには、次の条件を満たす必要があります。
- Xcode 26.2 以上
- iOS 26.2 以上で機能を提供
Warning
年齢確認法の施行前に実ユーザー環境で Age range モジュールを追加して getAgeRange API を呼び出すと、各マーケットプレイス(Google Play、Apple App Store)からエラー応答を受信します。 そのため施行前は Age range モジュールを追加しなくても問題なく、追加して呼び出す場合でも PENDING / DENIED など明確な動作エラー以外は無視できます。
施行前に正常応答を確認するには Apple 提供のサンドボックステスト API / ツールを使用してください。詳細は Apple公式告知 を参照してください。
法施行後は Age range モジュールを追加して getAgeRange API を呼び出すことで、ユーザーステータスと年齢情報をリアルタイムで受信できます。(別途案内予定)
本ガイドでは、Hive SDK が提供する Age range モジュールの動作概要、利用方法、テスト方法を説明します。
Age range 動作概要¶
Age range モジュールで提供する機能は次のとおりです。
- ユーザー年齢範囲および承認状態の確認
- アプリ内の重要変更通知および承認リクエスト
- showAgeRangeUpdatePermission API (Apple App Storeのみ)
- 保護者承認の取り消し通知
マーケットプレイス別フロー¶
Age range モジュールのマーケットプレイス別フローは次のとおりです。
Note
- 本ガイドでは、App Store責任法対応として保護者同意が確認できない場合はゲーム進行不可と案内していますが、実際の動作は各ゲームのサービス方針・運用判断により異なる場合があります。
- ブラジルECA法は保護者承認可否とは無関係です。ユーザー年齢確認のみ実施してください。
事前準備: Age range モジュール追加¶
Age Rangeモジュールを使用する準備として、各SDKの開発エンジンとターゲットOSに応じて、Age Rangeモジュールを追加または削除してください。
SDK ネイティブ Android¶
年齢範囲モジュールを追加¶
- SDK共通設定で市場を設定します。
- モジュールレベルの build.gradle ファイルに以下を追加します:
年齢範囲モジュールを削除する¶
モジュールレベルの build.gradle ファイルから以下を削除してください:
// App Store Accountability Law compliance - Google
// implementation "com.com2us.android.hive:hive-agerange-google-agesignals" // Remove this line when not in use
SDK ネイティブ iOS¶
年齢範囲モジュールを追加¶
-
Podfileの例コードを参照し、App Store Accountability Lawに関連する内容を追加してください:
-
SDKネイティブiOS環境において、宣言された年齢範囲の権限を以下の順序で追加します:
年齢範囲モジュールを削除する¶
Podfileの例コードを参照し、App Store Accountability Lawに関連する内容を削除してください:
SDK Cocos2d-x Android¶
SDKネイティブAndroidと同じです。
SDK Cocos2d-x iOS¶
SDK Native iOSと同じです。
SDK Unity Android¶
AndroidターゲットのUnity環境でAge Rangeモジュールを使用するには、以下の順序で設定します:
- Hive > ExternalDependency メニューをクリックします。

-
Market Settings の下でサポートされている市場に対して Age Range [Market] アイテムをチェックします。AgeRange モジュールは、サポートしたい市場モジュールを必要とします。

※ Age Rangeモジュールを使用したくない場合は、チェックを外してください。
AgeRange GoogleおよびApple AgeRangeモジュールを使用しない場合は、チェックを外すことができます。**Age Range Amazon**と**Age Range Samsung**モジュールは、それぞれの上位レベル市場モジュールを含める際に自動的に含まれます。
SDK Unity iOS¶
App Store責任法関連のシステムAPIは、iOS 26.2以上でのみサポートされます。
- [Hive > ExternalDependency] メニューをクリックします。

-
Market Settings設定の下で、対応するマーケットの Age Range [Market] 項目にチェックを入れます。Age Rangeモジュールには、利用したいマーケットモジュールが必要です。

※ Age Rangeモジュールを使用しない場合は、チェックを外します。
Age Range Apple と Age Range Permission Apple モジュールを使用しない場合は、チェックを外せます。
iOSターゲットのUnity環境で年齢範囲モジュールを使用するには、以下の順序で宣言された年齢範囲の権限を追加します。Unityエディタを使って簡単に設定できます。
- Unityのトップメニューから**Hive**を選択します。
- **Build project post process setting > iOS**を選択します。

- Hive PostProcess Editor(iOS) で Age Range チェックボックスを選択します。

- iOS project export 後に、Signing & Capabilities リストに追加された Declared Age Range を確認できます。
SDK アンリアルエンジン Android¶
AndroidターゲットのUnreal Engine環境でAge Rangeモジュールを使用するには、次の順序で設定します:
- Unreal Editorを選択 → 編集 → プロジェクト設定メニューを開きます。\n
- プロジェクト設定の左パネルからHive SDK → 依存関係 → Androidを選択します。\n
-
Hiveモジュール → AgeRangeを有効にするをチェックします。\n

※ AgeRangeモジュールを使用したくない場合は、チェックを外してください。
SDK Unreal Engine iOS¶
iOSターゲットのUnreal Engine環境でAge Rangeモジュールを使用するには、次の順序で設定します:
- Unreal Editor を選択 → 編集 → プロジェクト設定。
- プロジェクト設定の左パネルから Hive SDK → 依存関係 → iOS を選択します。
-
Hive モジュール → AgeRange を有効にします。

※ AgeRangeモジュールを使用したくない場合は、チェックを外してください。
-
Unreal Engine環境で、*IOSExport.cs*ファイルを修正して、宣言された年齢範囲の権限を追加します。
Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSExport.csファイルで、'Add'と'Add End'の間に行を追加します。Text.AppendLine( "<dict>"); Text.AppendLine( "\t<key>get-task-allow</key>"); Text.AppendLine(string.Format( "\t<{0}/>", bForDistribution ? "false": "true")); // 追加 // 年齢範囲モジュールを使用するために必要な項目です。 Text.AppendLine("\t<key>com.apple.developer.declared-age-range</key>"); Text.AppendLine("\t<true/>"); // 追加終了 if (bCloudKitSupported) { if (iCloudContainerIdentifiersXML != ""
エンタitlementテンプレートを修正する (Unreal Engine 5)¶
Note
Unreal Engine 5 環境の Hive SDK では、IOSExport.cs ファイルを修正する代わりに *.entitlements テンプレートを使用して、宣言された年齢範囲の権限を追加できます。
あなたのUnreal Engine 5プロジェクトに、以下に示すように_.entitlements_テンプレートを使用してDeclared Age Rangeの権限を追加します。既存の_.entitlements_テンプレートにキーと値を追加してください。
entitlements テンプレートがない場合は、Plugins/HIVESDK/Source/HiveSDKiOS/template/ パス下の HIVESDKV4Tester.entitlements ファイルを参照できます。
ユーザーの年齢範囲と承認状況をリクエスト¶
ランタイムアプリでgetAgeRange APIを呼び出して、ユーザーの年齢と親の承認状況を確認してください。このコンプライアンスに従う法律に加えて、アプリに別の年齢確認プロセスがある場合は、最初にgetAgeRange APIを呼び出して年齢を確認することをお勧めします。
getAgeRange APIを呼び出すと、年齢確認法の対象となる地域に居住するユーザーのステータスデータuserStateと年齢範囲がレスポンスとして返されます。 適用される管轄区域に対して返されるデフォルトの年齢範囲は以下の通りであり、地域の要件に応じて変更される可能性があります:
- 0~12歳
- 13~15歳
- 16~17歳
- 18歳以上
getAgeRange APIを呼び出す¶
以下は、ユーザーの年齢範囲を要求するためにgetAgeRange APIを呼び出す例のコードです。
getAgeRange API呼び出しが成功した場合¶
ゲームアプリでgetAgeRange APIをリクエストした後、レスポンス値userStateに応じたゲームアプリの操作フローは以下の通りです:
- **
UNKNOWN、VERIFIED、またはSUPERVISEDのいずれか** : アプリを進め、年齢に適したコンテンツを提供します *SUPERVISEDの際に重要なアプリ内変更を通知する場合 : Apple App Storeで配信されているゲームに対してのみ、showAgeRangeUpdatePermission APIを呼び出します SUPERVISED_APPROVAL_PENDINGまたはSUPERVISED_APPROVAL_DENIED: * 未成年者がアプリを引き続き使用するための親の承認がまだ保留中であるか、拒否されています。年齢を確認し、アプリを進めることを許可します。REQUIRED: ユーザーの年齢が該当する管轄区域および地域で確認されていません。アプリが年齢を確認できるように、ユーザーにマーケットプレイスアプリまたはデバイス設定で年齢情報を共有するように案内します。
getAgeRange API呼び出しの失敗時¶
ゲームアプリでgetAgeRange APIをリクエストした後、呼び出しが失敗した場合、次のResultAPIの失敗コードが返されます:
API呼び出しエラーは、最新バージョンでないマーケットプレイスアプリを使用するなど、さまざまな理由で発生する可能性があります。
セッション中にエラーが発生した場合は、API呼び出しの最大リトライ回数を超えた場合に通話を終了するなど、ユーザーの環境への影響を最小限に抑えるように実装してください。
サンプル getAgeRange API コールレスポンス (Apple App Store)¶
Apple App StoreでgetAgeRange APIを呼び出すと、年齢範囲の共有を要求するポップアップが表示されます。
年齢範囲を共有することを選択したユーザーのみが、年齢範囲と承認状況を確認できます。拒否された場合、REQUIREDステータスが受信されます。
getAgeRange APIのレスポンスデータ¶
getAgeRange APIのレスポンスフィールドの説明は以下の通りです。各フィールドの値を利用することで、年齢に基づいたゲームプロセスを提供できます。
レスポンス値は変更される可能性があります。最新の値を取得するには、アプリが開くときにAPIレスポンスをリクエストしてください。
| レスポンスフィールド | 値 | 説明 |
|---|---|---|
userState | VERIFIED | ユーザーは18歳以上です。 |
| SUPERVISED | ユーザーは親が年齢範囲を設定した監視アカウントを持っています。ageLowerとageUpperを使用してユーザーの年齢範囲を確認してください。 | |
| SUPERVISED_APPROVAL_PENDING | ユーザーは監視アカウントを持っており、監視している親がまだ1つ以上の保留中の重要な変更を承認していません。ageLowerとageUpperを使用してユーザーの年齢範囲を確認してください。mostRecentApprovalDateを使用して最も最近承認された重要な変更を確認してください。 | |
| SUPERVISED_APPROVAL_DENIED | ユーザーは監視アカウントを持っており、監視している親が1つ以上の重要な変更の承認を拒否しました。ageLower、ageUpper、およびmostRecentApprovalDateを使用して最も最近承認された重要な変更を確認してください。 | |
| UNKNOWN | ユーザーは年齢確認の対象外です。ユーザーは適用される管轄区域および地域の外にいる可能性があるか、18歳以上または未満である可能性があります。'Console > Provisioning > SDK Settings'で'User Age Verification'を'Do not verify'に設定すると、UNKNOWNレスポンスが返されます。 | |
| REQUIRED | ユーザーは適用される管轄区域および地域で確認または監視されていません。これらのユーザーは18歳以上または未満である可能性があります。年齢確認を受けるには、ユーザーにデバイス設定とマーケットプレイスアプリを訪問してステータスを確認するように依頼してください。 | |
ageLower | 0から18 | 監視ユーザーの年齢範囲の下限(含む)。ageLowerとageUpperを使用してユーザーの年齢範囲を確認してください。 |
| -1 | userStateがUNKNOWNまたはREQUIREDです。 | |
ageUpper | 2から18 | 監視ユーザーの年齢範囲の上限(含む)。ageLowerとageUpperを使用してユーザーの年齢範囲を確認してください。 |
| -1 | ユーザーは18歳以上であるか、userStateがUNKNOWNまたはREQUIREDです。 | |
mostRecentApprovalDate | 日付スタンプ | 最も最近承認された重要な変更の日付。 例) "2023-07-01T00:00:00.008Z" Apple App Storeではサポートされていません。 Samsung Galaxy Storeでは、YYYY-MM-DD形式でデータが返されます。 |
| 空(空白の値) | userStateがSUPERVISEDであり、提出された重大な変更がない場合。またはuserStateがUNKNOWNまたはREQUIREDです。 Apple App Storeではサポートされていません。 | |
ageRangeId | App Store生成ID | マーケットプレイスが生成した識別子ID。 Google Play Store : 監視ユーザーのインストールにGoogle Playが割り当てたID、すなわち installID。アプリ承認の取り消しを通知するために使用されます。 アプリ承認取り消しのドキュメントを確認してください。Amazon Appstore : Amazonアカウントの userId。Apple App Store : サポートされていません。 Samsung Galaxy Store: Samsung Galaxy Storeが生成した ID。 |
| 空(空白の値) | userStateがUNKNOWNまたはREQUIREDです。 Apple App Storeではサポートされていません。 |
アプリ内の重要な変更通知と承認リクエスト¶
特定の法域および地域の規制に従い、ゲームアプリで以下の変更が発生した場合、ゲームアプリは変更について親または保護者に通知し、未成年者がアプリを使用し続けるための承認を求めなければなりません。
- 収集、保存、または共有されるデータの変更
- 年齢評価の変更
- 新しいアプリ内購入または広告機能の追加
- ユーザーエクスペリエンスの変更など
ゲームアプリは、変更を通知するタイミングを決定し、承認を要求できます。各マーケットプレイスの変更通知方法は以下の通りです:
- Google Play と Amazon Appstore、Samsung Galaxy Store: 各マーケットプレイスが運営する開発者コンソールを通じた通知
- Apple App Store: ゲームアプリから
showAgeRangeUpdatePermissionAPI を直接呼び出すことによる通知
ShowAgeRangeUpdatePermission API¶
Apple App Storeマーケットに配布するアプリの場合、アプリで直接 showAgeRangeUpdatePermission API を呼び出して、保護者(親)に重要な変更事項を通知し、承認をリクエストします。
Hive SDK 26.3.4から showAgeRangeUpdatePermission API を使用するには、HiveAgeRangePermissionApple モジュールを追加する必要があります。詳細は SDK Native iOS を参照してください。
以下は、showAgeRangeUpdatePermission APIを呼び出すための例のコードです。
API リファレンス: Unity ®
APIリファレンス: C++
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
std::string description = "このアップデートでは、ビデオ通話と位置情報共有機能が追加されます。";
AuthV4::showAgeRangeUpdatePermission(description, [=](ResultAPI const & result, AgeRange const & ageRange) {
if (result.isSuccess()) {
// API call success
}
});
API リファレンス: Kotlin
import com.hive.AuthV4;
import com.hive.ResultAPI;
val description: String = "このアップデートは、ビデオ通話と位置情報共有機能を追加します。"
AuthV4.showAgeRangeUpdatePermission(description, object : AuthV4.AuthV4GetAgeRangeListener {
override fun onAuthV4GetAgeRange(result: ResultAPI, ageRange: AuthV4.AgeRange?) {
if (result.isSuccess) {
// API call success
}
}
})
API リファレンス: Java
APIリファレンス: Swift
API リファレンス: Objective-C
#include "HiveAuthV4.h"
FString Description = TEXT("このアップデートは、ビデオ通話と位置情報共有機能を追加します。");
FHiveAuthV4::ShowAgeRangeUpdatePermission(Description, FHiveAuthV4OnShowAgeRangeUpdatePermissionDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHiveAuthV4AgeRange& AgeRange) {
if (Result.IsSuccess()) {
// API call success
}
}));
親の承認取り消し通知¶
アプリ内で親または保護者が重要な変更通知を承認した後でも、後で承認をキャンセルすることができます。承認が取り消されると、未成年のユーザーはアプリにアクセスできなくなります。
親または保護者が承認を取り消すと、各マーケットプレイスを通じて取り消し通知を確認する方法は次のとおりです:
- Google Play:
installIDリストを Age Signals ページからダウンロードすることで、取り消しを確認できます。 * Google Play のinstallIDは 3 か月間有効で、その後削除されます。 - Apple App Store: 承認取り消しに関する通知を送信します。
- Amazon Appstore: 開発者コンソールのレポートセクションから Amazon の
userIdをダウンロードすることで、取り消しを確認できます。 - Samsung Galaxy Store: 保護者の承認撤回通知は別途届かないため、
getAgeRagneAPIを呼び出して返された状態値で確認できます。
年齢範囲テスト¶
Hive SDKは、年齢確認法が実施されているかどうかに関わらず、getAgeRange APIをリクエストした際に通常の応答を受け取ることができるテスト環境とテストケースを提供します。
年齢範囲テスト環境とテストケースは、Androidターゲット開発環境でのみ利用可能であり、デバッグモード設定を通じてAPIの動作をシミュレートできます。
Note
Age Range機能をiOSターゲット開発環境でテストするには、Appleが提供するサンドボックステストツールを使用できます。Appleのサンドボックスアカウントでログインしてテストしてください。
デバッグモードを有効にする¶
Androidターゲット開発環境でデバッグモードを設定するには、次のコマンドを実行します。デバッグモードはHive ZoneType.SANDBOXで動作します。
ゲームアプリの動作を確認するために、ユニットテストまたは統合テストのみにデバッグモード設定を使用してください。
テストケースによるデータ応答¶
Androidターゲット開発環境でデバッグモードを設定した後、各テストケースに対してGoogle Playストアから返されるデータレスポンスは次のとおりです:
| テストケース | ユーザーステータス | 年齢下限 | 年齢上限 | 最終承認日 | 年齢範囲ID | 説明 |
|---|---|---|---|---|---|---|
1 | 確認済み | 18 | -1 | 空 | 空 | 年齢が確認された18歳以上のユーザーへのレスポンス。 |
2 | 必要 | -1 | -1 | 空 | 空 | 年齢確認および同意状況が確認できないユーザーへのレスポンス。 |
3 | 監視下 | 0 | 12 | 2026-01-01T07:00:00.008+0900 | 550e8400-e29b-41d4-a716-446655441111 | 0歳から12歳(含む)のユーザーへのレスポンス。 |
4 | 監視下 | 13 | 15 | 2026-01-01T07:00:00.008+0900 | 550e8400-e29b-41d4-a716-446655441111 | 13歳から15歳(含む)のユーザーへのレスポンス。 |
5 | 監視下 | 16 | 17 | 2026-01-01T07:00:00.008+0900 | 550e8400-e29b-41d4-a716-446655441111 | 16歳から17歳(含む)のユーザーへのレスポンス。 |
6 | 承認拒否された監視下 | 0 | 12 | 2026-01-01T07:00:00.008+0900 | 550e8400-e29b-41d4-a716-446655441111 | 同意が保留中または取得されていない18歳未満のユーザーへのレスポンス。 |
7 | 不明 | -1 | -1 | 空 | 空 | 年齢確認法が適用されないすべての状況へのレスポンス。 |
8 | 不明 | -1 | -1 | 空 | 空 | APIがResultAPI.RESPONSE_FAILステータスを返すときのレスポンス。(APP_NOT_OWNED) |
9 | 不明 | -1 | -1 | 空 | 空 | APIがResultAPI.RESPONSE_FAILステータスを返すときのレスポンス。(CLIENT_TRANSIENT_ERROR) |
10 | 不明 | -1 | -1 | 空 | 空 | APIがResultAPI.RESPONSE_FAILステータスを返すときのレスポンス。(INTERNAL_ERROR) |
11 | 不明 | -1 | -1 | 空 | 空 | APIがResultAPI.RESPONSE_FAILステータスを返すときのレスポンス。(API_NOT_AVAILABLE) |




