6labs >

Unity 向け 6labs SDK

このセクションでは、6labs SDKをUnityアプリケーションに統合する方法を説明します。

前提条件

  • Unity 2021 LTS以降が必要です。それ以前のバージョンでも動作する可能性がありますが、積極的にはサポートされていません。
  • Appleプラットフォームのみ — 開発マシンに以下のツールがインストールされていることを確認してください:
    • Xcode 26.2以降
    • CocoaPods 1.12.0以降
  • Unityプロジェクトは以下の最小デプロイメントターゲットを満たす必要があります:
    • iOS — iOS 15以降
    • tvOS — tvOS 15以降
    • Android — APIレベル23(Android 6.0 Marshmallow)以降

1. モジュールのダウンロードとインポート

6labs SDK は、Unity パッケージファイルとして提供されています。

以下の手順でモジュールを Unity プロジェクトに追加します:

  1. ダウンロード 6labs Unity SDK の最新バージョン v3.9.0
  2. パッケージを Unity プロジェクトにインポートします:
    • Unity エディタで Assets > Import Package > Custom Package. をクリックします。
    • システムからダウンロードした .unitypackage ファイルを選択してください。
    • Import をクリックしてインポートを完了します。

2. ゲームプレイの観察を開始

Start() メソッドを使用して、ゲームプレイの観察を開始します。以下の例を参照してください。

using SixLabs.SDK;

SixLabsSDK.Instance.Start( inGameId: "<optional_player_in_game_id>",
developerPayload: "<optional_developer_payload_here>",
callbackOnComplete: (sdkResponse, errorMessage) => {
// sdkResponse == SdkResponse.SUCCESS は Start() が正常に完了したことを意味します
// 結果を処理する
// SixLabsSDK.Instance.CurrentState で SDK の現在の状態を取得できます

}
);

必要条件: SDK_STATE_IDLE。SDK が一時停止中の場合、Start()ERROR_STATE_NOT_IDLE を返します。一時停止中のセッションを継続するには Resume() を使用してください。状態とレスポンスコードの全一覧については、SDK の状態とレスポンスコードを参照してください。

重要事項

  • inGameId が渡されない場合、観察されたセッションは破棄され、AI 分析に使用されない可能性があります。これがないと、セッションをプレイヤーに紐付けることができず、後続のインサイト生成に必要な情報が不足します。
  • ゲームプレイの観察を開始する前に、必ずユーザーの同意を取得してください。SDKは自動的に許可を要求しないため、同意処理はゲームロジック内で実装する必要があります。
  • 推奨されるベストプラクティスとして、ゲームのEULA(エンドユーザー使用許諾契約)またはプライバシーポリシーに、ゲームプレイ観察に関する記載を含めることを検討してください。
  • 対象プラットフォームに応じて、アプリに必要なインターネットアクセス権限が有効になっていることを確認してください。
  • SDKはUnity Editor内では動作しません。正しくテストするには、プラットフォーム別のビルドを作成し、実機で実行する必要があります。Editor内では、Start() は代わりに callbackOnCompleteERROR_NOT_SUPPORTED とともに呼び出します。

リファレンス

以下は Start() メソッドのリファレンスです。

メソッドシグネチャ

public void Start(string inGameId = null, string developerPayload = null, Action<SdkResponse, string> callbackOnComplete = null)

パラメータ

パラメータ 必須 説明
inGameId string いいえ 省略可能ですが推奨されるユーザー識別子です。省略した場合、セッションが破棄され、AI 分析に使用されない可能性があります。
developerPayload string いいえ セッションに関連付けられる任意の開発者定義メタデータです。この値はセッションリクエストとともにそのまま転送され、カスタムのトラッキング情報やコンテキスト情報を付加するために利用できます。より豊富な developerPayload を提供することで、AIによる分析やセッション理解の精度を大幅に向上させることができます。詳細なユースケースと JSON の例については、Developer Payload の例ページを参照してください。
例:

  • ユーザー獲得チャネル
  • キャンペーン ID
  • ユーザーセグメント(例:新規ユーザー、既存ユーザー、課金ユーザーなど)
  • A/Bテストバリアント(例:variant_a、variant_b) — ユーザーをコホートに分割し、6labs ダッシュボードで各コホートのゲームプレイ指標を比較できます。
  • 内部参照 ID
callbackOnComplete Action<SdkResponse, string> いいえ 呼び出しが完了すると(成功・失敗を問わず)呼び出されます。詳細は下記のコールバックを参照してください。

コールバック

このコールバックは非同期に呼び出され、SdkResponseerrorMessage を返します。errorMessage は成功時には空文字列となり、失敗時にはその理由を説明します。

レスポンス 説明
SUCCESS セッションが正常に開始しました。
ERROR_STATE_NOT_IDLE SDK が SDK_STATE_IDLE 状態ではありませんでした — 既にセッションが実行中である、一時停止中である、または前のセッションがまだ停止処理中です。
ERROR_NOT_SUPPORTED 現在のプラットフォームがゲームプレイの観察に全く対応していません — 現時点では Unity Editor のみが該当します。
ERROR_SESSION_FAILED リクエストは受理されましたが、観察セッションを開始できず、SDK は SDK_STATE_IDLE に戻りました。これは、セッション作成の失敗、デバイスの性能限界、古い SDK バージョン、ネットワークの問題、またはその他の初期化に関する問題が原因で発生することがあります。

注意


3. ゲーム内 ID の設定

SetInGameId() メソッドを使用して、プレイヤーのゲーム内 ID を既存の観察セッションに関連付けます。このメソッドは、ユーザーアカウントが作成される前に SDK が初期化された場合に、ログイン済みのユーザーを進行中のセッションに紐付けるためによく使用されます。

SixLabsSDK.Instance.SetInGameId("<player_in_game_id>");

注意

  • Start() 呼び出し時に inGameId を渡していた場合、SetInGameId() を呼び出すと、現在のセッションに設定されていた値が上書きされます。

リファレンス

以下は SetInGameId() メソッドのリファレンスです。

メソッドシグネチャ

public void SetInGameId(string inGameId)

パラメータ

パラメータ 必須 説明
inGameId string はい 現在のセッションに関連付けるプレイヤーのゲーム内識別子です。

4. ゲームイベントの送信

SendGameEvent() メソッドを使用すると、進行中の観察セッション中にカスタムのゲームプレイイベントを記録できます。イベントはセッションに紐付けられ、分析時に特定のゲームプレイの瞬間を関連付けるために利用できます。

bool result = SixLabsSDK.Instance.SendGameEvent( eventName: "<event_name>",
eventDataJson: "<event_data_as_json>"
);

リファレンス

以下は SendGameEvent() メソッドのリファレンスです。

メソッドシグネチャ

public bool SendGameEvent(string eventName, string eventDataJson)

パラメータ

パラメータ 必須 説明
eventName string はい 記録するカスタムイベントの名前です。
eventDataJson string はい イベントに関連付ける追加データを含む JSON エンコードされた文字列です。

戻り値

説明
true イベントが受理され、アップロード待ちのキューに追加されました。
false イベントが拒否されました。例えば eventName が空の場合などです。

5. 高度な制御

Start() は新しいセッションのゲームプレイ観察を開始します。その後は要件に応じて Pause()Resume()Stop() を使用してそのセッションを制御できます。

5.1 一時停止 (Pause)

Pause() メソッドを使用して、ゲームプレイの観察を一時停止します。

SdkResponse result = SixLabsSDK.Instance.Pause();

必要条件: SDK_STATE_CAPTURING。状態とレスポンスコードの全一覧については、SDK の状態とレスポンスコードを参照してください。

重要事項

  • ゲームプレイの観察を一時停止します。
  • 観察を再開する場合は、後から再度 Resume() を呼び出すことができます。

リファレンス

以下は Pause() メソッドのリファレンスです。

メソッドシグネチャ

public SdkResponse Pause()

戻り値

説明
SUCCESS 呼び出しが受理され、実行されました。
ERROR_STATE_NOT_CAPTURING SDK が SDK_STATE_CAPTURING 状態でない場合に返されます — 例えば、ゲームプレイの観察が実行されていない、セッションが既に一時停止されている、または停止処理が既に進行中である場合です。状態とレスポンスコードの全一覧については、SDK の状態とレスポンスコードを参照してください。

5.2 再開 (Resume)

Resume() メソッドを使用して、Pause() によって一時停止されていたセッションを再開します。

SixLabsSDK.Instance.Resume( callbackOnComplete: (sdkResponse, errorMessage) => {
// sdkResponse == SdkResponse.SUCCESS は Resume() が正常に完了したことを意味します
// 結果を処理する
// SixLabsSDK.Instance.CurrentState で SDK の現在の状態を取得できます

}
);

必要条件: SDK_STATE_PAUSED。状態とレスポンスコードの全一覧については、SDK の状態とレスポンスコードを参照してください。

リファレンス

以下は Resume() メソッドのリファレンスです。

メソッドシグネチャ

public void Resume(Action<SdkResponse, string> callbackOnComplete = null)

パラメータ

パラメータ 必須 説明
callbackOnComplete Action<SdkResponse, string> いいえ 呼び出しが完了すると(成功・失敗を問わず)呼び出されます。詳細は下記のコールバックを参照してください。

コールバック

このコールバックは非同期に呼び出され、SdkResponseerrorMessage を返します。errorMessage は成功時には空文字列となり、失敗時にはその理由を説明します。

レスポンス 説明
SUCCESS セッションが正常に再開しました。
ERROR_STATE_NOT_PAUSED SDK が SDK_STATE_PAUSED 状態ではなかったため、再開できる一時停止中のセッションがありませんでした。
ERROR_SESSION_FAILED リクエストは受理されましたが、一時停止中のセッションを再開できず、SDK は SDK_STATE_IDLE に戻りました。これは、セッションまたはランタイムの障害、ネットワークの問題、またはセッションの再開を妨げるその他の障害が原因で発生することがあります。

注意

5.3 停止 (Stop)

Stop() メソッドを使用して、現在のセッションを完全に終了します。Pause() とは異なり、停止したセッションは Resume() で再開することはできません — 新しいセッションを開始するには、再度 Start() を呼び出す必要があります。

SixLabsSDK.Instance.Stop( callbackOnComplete: (sdkResponse, errorMessage) => {
// sdkResponse == SdkResponse.SUCCESS は Stop() が正常に完了したことを意味します
// 結果を処理する
// SixLabsSDK.Instance.CurrentState で SDK の現在の状態を取得できます

}
);

必要条件: SDK_STATE_CAPTURING または SDK_STATE_PAUSED。状態とレスポンスコードの全一覧については、SDK の状態とレスポンスコードを参照してください。

リファレンス

以下は Stop() メソッドのリファレンスです。

メソッドシグネチャ

public void Stop(Action<SdkResponse, string> callbackOnComplete = null)

パラメータ

パラメータ 必須 説明
callbackOnComplete Action<SdkResponse, string> いいえ 呼び出しが完了すると(成功・失敗を問わず)呼び出されます。詳細は下記のコールバックを参照してください。

コールバック

このコールバックは非同期に呼び出され、SdkResponseerrorMessage を返します。errorMessage は成功時には空文字列となり、失敗時にはその理由を説明します。

レスポンス 説明
SUCCESS 呼び出しが受理され、セッションが終了しました。
ERROR_STATE_NOT_CAPTURING SDK が SDK_STATE_CAPTURING または SDK_STATE_PAUSED 状態ではなかったため、停止できるアクティブなセッションまたは一時停止中のセッションがありませんでした。

注意


6. SDK の状態と レスポンスコード

以下は SDK の状態とレスポンスコードです。

  • SixLabsSDK.Instance.CurrentState を使用すると、いつでも現在の SDK の状態を確認できます。
  • Start()Pause()Resume()Stop() は、SDK が有効な状態にあるときにのみ呼び出すことができます。無効な状態から操作を呼び出すと、エラーが返されます。
  • Pause()SdkResponse を直接返します。Start()Resume()Stop() は、任意の callbackOnComplete コールバックを通じて結果を返します。
  • callbackOnComplete コールバックは非同期に呼び出されます。

6.1 状態

public enum SdkState {
SDK_STATE_IDLE = 100,
SDK_STATE_CAPTURING = 101,
SDK_STATE_STOPPING = 102,
SDK_STATE_PAUSED = 103

}
状態 説明
SDK_STATE_IDLE 100 SDK がゲームプレイを観察していない状態です。これはデフォルトの状態であり、セッションが停止した後、または開始に失敗した後に戻る状態でもあります。
SDK_STATE_CAPTURING 101 SDK がゲームプレイを積極的に観察している状態です。これには、アクティブなセッションと、データのバッファリングやアップロードといったバックグラウンド処理が含まれます。
SDK_STATE_STOPPING 102 セッションが停止処理中の状態です。SDK は SDK_STATE_IDLE に戻る前に、残っている処理を完了させています。
SDK_STATE_PAUSED 103 セッションが一時停止している状態です。ゲームプレイの観察は一時的に停止していますが、セッションは開いたままであり、それまでに観察されたデータのアップロードは継続できます。

6.2 レスポンスコード

public enum SdkResponse {
SUCCESS = 0,
ERROR_STATE_NOT_IDLE = 1000,
ERROR_STATE_NOT_CAPTURING = 1001,
ERROR_NOT_SUPPORTED = 1002,
ERROR_STATE_NOT_PAUSED = 1003,
ERROR_SESSION_FAILED = 1004

}
レスポンス 説明
SUCCESS 0 操作が受理され、正常に完了しました。Stop() の場合、セッションは終了しています。
ERROR_STATE_NOT_IDLE 1000 SDK がアイドル状態でないときに Start() が呼び出されました。既にセッションが実行中、一時停止中、または停止処理中である可能性があります。
ERROR_STATE_NOT_CAPTURING 1001 SDK が観察を行っていないときに Pause() または Stop() が呼び出されました。Stop() は一時停止中のセッションを終了させることもできます。
ERROR_NOT_SUPPORTED 1002 Unity Editor など、ゲームプレイの観察に対応していないプラットフォームで Start() が呼び出されました。
ERROR_STATE_NOT_PAUSED 1003 SDK が一時停止していないときに Resume() が呼び出されました。SDK がアイドル状態のときに新しいセッションを開始するには Start() を使用してください。
ERROR_SESSION_FAILED 1004 リクエストは受理されましたが、観察を開始できず、SDK は SDK_STATE_IDLE に戻りました。例えば、低スペックデバイス、古い SDK バージョン、ネットワークの問題、またはその他の初期化に関する問題が原因でセッション作成が失敗することがあります。このエラーは即時の拒否としてではなく、callbackOnComplete を通じて通知されます。
×

目次

Unity 向け 6labs SDK

目次

Text copied to clipboard
ご不明な点がございましたら、お気軽にお問い合わせください。 dev-support@6labs.ai