SDK 初期化¶
このドキュメントでは、Cocos Creator SDK の基本設定、初期化の順序、ユーザーバインド、ライフサイクルについて説明します。
基本設定¶
import { guanceSdk } from '@cloudcare/cocos-sdk/creator3';
guanceSdk.start({
sdk: {
datakitUrl: 'https://your-datakit.example.com',
serviceName: 'cocos-game',
env: 'prod',
debug: true,
globalContext: {
game_channel: 'app-store',
},
},
});
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
datakitUrl |
string |
条件付き必須 | ローカル DataKit のレポート送信先。datawayUrl とはどちらか一方を指定します |
datawayUrl |
string |
条件付き必須 | パブリック DataWay のレポート送信先。clientToken と併せて設定する必要があります |
clientToken |
string |
条件付き必須 | DataWay の認証トークン |
serviceName |
string |
任意 | データが属するサービス名。Android と iOS で同じ値を使用することを推奨します |
env |
string |
任意 | 環境名。一般的な値は prod、gray、pre、common、local で、カスタム値にも対応しています |
debug |
boolean |
任意 | Native SDK のデバッグログを出力するかどうか。本番環境ではオフにすることを推奨します |
globalContext |
Record<string, string> |
任意 | SDK データに追加する静的グローバルタグ |
次のいずれかの条件を満たす必要があります。満たさない場合、初期化時に Configure datakitUrl or datawayUrl with clientToken がスローされます。
- 空でない
datakitUrlを設定する。 - 空でない
datawayUrlとclientTokenを併せて設定する。
両方の方式を同時に設定した場合、Bridge は datakitUrl を優先して使用します。環境切り替え時にあいまいさが生じないよう、どちらか一方のみを設定することを推奨します。
SDK は基本グローバルタグに自動的に sdk_package_cocos を追加します。値は現在の Cocos npm パッケージのバージョンです。同名のカスタムタグを使用しないでください。
完全な初期化と順序¶
guanceSdk.start() は次の順序で初期化します:
- 基本 SDK
- RUM
- Log
- Trace
- Session Replay(Replay パッケージを組み込んで
replay設定を渡した場合) - Cocos の自動収集
対応する設定オブジェクトを渡した場合のみ、該当モジュールが初期化されます:
以下は Replay を含む独立した完全な例です。事前に同バージョンの @cloudcare/cocos-session-replay をインストールし、インストーラーを --replay オプション付きで実行する必要があります。詳細はアプリ導入を参照してください。withSessionReplay() は、最初の start() または attach() の前に呼び出す必要があります。基本パッケージのみを使用する場合は、上記の基本設定を使用し、replay は渡しません。
import { guanceSdk as baseSdk } from '@cloudcare/cocos-sdk/creator3';
import { withSessionReplay } from '@cloudcare/cocos-session-replay/creator3';
export const guanceSdk = withSessionReplay(baseSdk);
guanceSdk.start({
sdk: {
datawayUrl: 'https://open.dataway.url',
clientToken: 'client-token',
serviceName: 'cocos-game',
env: 'prod',
},
rum: {
androidAppId: 'android-rum-app-id',
iosAppId: 'ios-rum-app-id',
},
logger: {
enableCustomLog: true,
},
trace: {
traceType: 'ddTrace',
},
replay: {
captureFps: 1,
},
autoTrack: {
scenes: true,
},
});
最初の収集シーンが読み込まれる前に初期化してください。また、アプリのライフサイクル全体で一度だけ呼び出されるようにしてください。初期化を繰り返すと、Native SDK または自動リスナーで状態が重複する可能性があります。
ユーザー情報のバインド¶
ユーザー ID のみを渡すこともできます:
完全なユーザー情報を渡すこともできます:
guanceSdk.mobile.bindUser({
userId: 'user-123',
userName: '玩家昵称',
userEmail: 'player@example.com',
extra: {
membership: 'gold',
region: 'cn-east',
},
});
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
userId |
string |
必須 | ユーザーの一意な識別子。空文字列は指定できません |
userName |
string |
任意 | ユーザー名 |
userEmail |
string |
任意 | ユーザーのメールアドレス |
extra |
Record<string, string> |
任意 | ユーザーに付与する追加タグ |
ユーザーがログアウトするときにバインドを解除します:
SDK のシャットダウン¶
このメソッドを実行すると、次の処理が行われます:
- Cocos の自動収集リスナーを削除します。
- Session Replay の定期的なフレームキャプチャを停止します。
- Native SDK をシャットダウンします。
シャットダウン後は、収集 API を呼び出し続けないでください。再度有効にする場合は、アプリを再起動して初期化を一度実行することを推奨します。
現在の Cocos API では、キャッシュの手動クリアや即時アップロードを行うメソッドは公開されていません。データのキャッシュと送信タイミングは Native SDK によって管理されます。
実行プラットフォーム¶
ブラウザプレビューと Web ビルドはサポート対象外のプラットフォームです。TypeScript の呼び出しは Native Bridge に到達せず、レポートデータも生成されません。導入の検証には、Android または iOS のネイティブビルドを使用する必要があります。