Node.js
このガイドでは、Node.js SDKを使用してプロジェクトに接続する方法を説明します。
最新バージョン:v1.5.0
更新日:2024-03-26
リソースのダウンロード:ソースコード
1. SDKの統合
npmでNode.js SDKを取得してください:
# SDKを取得
npm install thinkingdata-node --save
# SDKを更新
npm i thinkingdata-node@{バージョン番号}
- Logbusのインストール
SDK+LogBusの形式でサーバー側のデータの収集と送信を行うことをお勧めします。次のドキュメントを参考に、Logbusをインストールしてください:LogBus使用ガイド
2. 初期化
SDKの初期化のサンプルコードは次のとおりです:
const ThinkingData = require('thinkingdata-node');
let teSDK = ThinkingData.initWithLoggingMode('LOG_DIRECTORY', {
filePrefix: 'test',
rotateHourly: true
});
LOG_DIRECTORYは、ローカルに書き込むフォルダーのパスです。LogBusの監視フォルダーのパスをこのパスに設定するだけで、LogBusでデータを監視して送信できます。本SDKはloggingModeモードでは、マルチインスタンスによるファイルへの書き込みに対応していません。
3. よく使う機能
ゲストIDとアカウントIDを正しく紐付けるため、ゲーム内でゲストIDとアカウントIDの両方を使用する場合は、この2つのIDを同時に送信することを強くお勧めします。そうしないと、アカウントが一致せず、ユーザーが重複してカウントされる可能性があります。具体的なIDの紐付けルールについては、ユーザー識別ルールの章を参照してください。
3.1 イベントの送信
trackを呼び出してイベントを送信できます。事前に整理したドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。イベントを送信するサンプルコードは次のとおりです:
let trackEvent = {
accountId: '2222',
distinctId: '1111',
event: 'test_event',
time: new Date(),
ip: '202.38.64.1',
properties: {
prop_double: 134.1,
},
callback(e) {
if (e) {
console.log(e);
}
}
};
teSDK.track(trackEvent)
- イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
- Keyはそのプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア "_" を含めることができます。最大長は50文字で、英字の大文字と小文字は区別されません。AEはすべて小文字に変換します
- Valueはプロパティの値で、文字列、数値、ブール値、時間、オブジェクト、オブジェクトグループ、配列に対応しています
ユーザープロパティの要件は、イベントプロパティと同じです
3.2 ユーザープロパティの設定
一般的なユーザープロパティは、userSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:
let userSetData = {
accountId: 'node_test',
properties: {
prop_date: new Date(),
prop_double: 134.12,
prop_string: 'hello',
prop_int: 666,
prop_array: ['str1', 'str2'],
},
callback(e) {
if (e) {
console.log(e);
}
}
};
teSDK.userSet(userSetData);
3.3 データの送信
TDLoggingConsumerを使用する場合、SDKは収集したデータをリアルタイムでディスクに書き込むため、flush()メソッドを呼び出す必要はありません。
3.4 SDKの終了
teSDK.close();
SDKを終了します。キャッシュ内のデータが失われないよう、サーバーをシャットダウンする前にこのインターフェースを呼び出してください
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
var teSDK = ThinkingData.initWithLoggingMode('LOG_DIRECTORY');
let trackEvent = {
accountId: '2222',
distinctId: '1111',
event: 'test_event',
time: new Date(),
ip: '202.38.64.1',
properties: {
prop_double: 134.1,
},
callback(e) {
if (e) {
console.log(e);
}
}
};
teSDK.track(trackEvent)
let userSetData = {
accountId: 'node_test',
properties: {
prop_date: new Date(),
prop_double: 134.12,
prop_string: 'hello',
prop_int: 666,
prop_array: ['str1', 'str2'],
},
callback(e) {
if (e) {
console.log(e);
}
}
};
teSDK.userSet(userSetData);

