Quick Tracking Java SDK をサーバー側アプリケーションに統合し、追跡データを収集・送信します。
Java SDK の統合
quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar パッケージを手動でインポートします。パッケージを入手するには、QT サポートにお問い合わせください。
基本設定 (必須)
appKey、データ収集ドメイン名、認証情報を設定する必要があります。
1. appKey の設定
QtSdkConfig.setAppKey("Your AppKey");
2. データ収集ドメイン名の設定
QtSdkConfig.setQlcEndpoint("Your data collection domain name");
SDK はデータ送信時に、データ収集エンドポイントに /server を自動的に追加します。コード内でこのパスを追加しないでください。
3. 認証情報の入力
QtSdkConfig.setServiceId("Your serviceId");
QtSdkConfig.setServiceSecret("Your serviceSecret");
この情報は、マネジメントコンソール > 情報収集の [Server Tracking Information] セクションで確認できます。
グローバルプロパティの設定
// プロパティを追加
QtGlobalPropertiesConfig.put("a", "1");
QtGlobalPropertiesConfig.put("b", "2");
// プロパティを削除
QtGlobalPropertiesConfig.remove("a");
// すべてのプロパティを取得
QtGlobalPropertiesConfig.getAll();
// すべてのプロパティをクリア
QtGlobalPropertiesConfig.clear();
追跡データの送信
QtLog log = new QtLog.Builder()
.eventId("order_success") // イベントコード (必須)
.deviceId("dev-001") // デバイス ID を設定します。デバイス ID またはユーザー ID のいずれかを設定する必要があります。
.userId("user-001") // ユーザー ID を設定します。デバイス ID またはユーザー ID のいずれかを設定する必要があります。
.pageName("pageName") // ページコードを設定します (任意)
.customProperty(new HashMap<>()) // イベントプロパティを設定します (任意)
.systemProperty(new HashMap<>()) // システムプロパティを設定します (任意)
.idTracking(new HashMap<>()) // システムプロパティのデバイス識別子を設定します
.debugKey("dk-0001") // トラッキング検証用のフラグを設定します (任意)。公開前に削除してください。
.eventTimestamp(System.currentTimeMillis()) // クライアントタイムスタンプを設定します (必須)
.serverTimestamp(System.currentTimeMillis()) // サーバータイムスタンプを設定します (任意)
.uuid("xxxx") // イベントログの一意の識別子を設定して log_id を生成します (バージョン 1.0.1 でサポート)
.build(); // ログの構築が完了しました
以下のシステムプロパティのみがサポートされています。キーは大文字と小文字を区別するため、正確に一致する必要があります。
|
カテゴリ |
開発者が送信するフィールドとQTシステムプロパティフィールド |
タイプ |
説明 |
|
アプリケーション情報 |
channel |
String |
アプリケーションチャネル |
|
app_version |
String |
アプリケーションバージョン |
|
|
SDK 情報 |
sdk_version |
String |
SDK バージョン |
|
sdk_type |
String |
SDK タイプ |
|
|
システム情報 |
os |
String |
オペレーティングシステム |
|
os_version |
String |
オペレーティングシステムバージョン |
|
|
デバイス情報 |
resolution |
String |
画面解像度 |
|
mac, oaid, openid, unionid, android_id, idfa, serial, imei, idfv |
String |
デバイス識別子。 |
|
|
device_brand |
String |
デバイスブランド |
|
|
device_model |
String |
デバイスモデル |
|
|
ネットワークとキャリア |
access |
String |
ネットワークタイプ |
|
access_subtype |
String |
||
|
carrier |
String |
キャリア |
|
|
プラットフォームとシナリオ情報 |
scene |
String |
シナリオ値 (ミニプログラム) |
|
device_type |
String |
||
|
http_header とユーザーエージェントから抽出 |
browser |
String |
ブラウザ |
|
ip |
String |
IP アドレス |
ログの送信
次のメソッドを呼び出してログを送信します。
QtLogSenderHelper.syncSendLog(log);
デモ
package com.alibaba.lingyang.quick.tracking.qlc.java.sdk.model;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.config.QtGlobalPropertiesConfig;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.config.QtSdkConfig;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.sender.QtLogSenderHelper;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
/**
* ログ送信のテスト
*/
public class TestSendLog {
/**
* テスト
*/
@Test
public void testSend() throws UnsupportedEncodingException {
// 設定
QtSdkConfig.setServiceId("z1212121AOCgtG");
QtSdkConfig.setServiceSecret("f111111HvkuYu0111111QghlWMpIiU9D");
QtSdkConfig.setAppKey("123123123");
QtSdkConfig.setQlcEndpoint("https://log-api.xxxxxxx.com");
QtSdkConfig.setOpenLog(true);
QtSdkConfig.setCallback(ctx -> {
System.out.println(ctx.getResponseCode());
System.out.println(ctx.getResponseMessage());
System.out.println(ctx.getSendSuccess());
System.out.println(ctx.getSendData());
System.out.println(ctx.getResponseData());
System.out.println(ctx.getErrors());
});
// グローバルプロパティを追加
QtGlobalPropertiesConfig.put("a", "1");
QtGlobalPropertiesConfig.put("b", "2");
// グローバルプロパティを削除
QtGlobalPropertiesConfig.remove("a");
// すべてのグローバルプロパティを取得
QtGlobalPropertiesConfig.getAll();
// すべてのグローバルプロパティをクリア
QtGlobalPropertiesConfig.clear();
Map<String,String> idTracking = new HashMap();
idTracking.put("mac","id1");
idTracking.put("oaid","id2");
idTracking.put("android_id","id3");
String a = "中国語";
String s = new String(a.getBytes("utf8"),"gbk");
// カスタムプロパティまたはユーザープロパティ
Map<String,Object> customProperty = new HashMap<>();
customProperty.put("a","1");
customProperty.put("b",2);
// システムプロパティ
Map<String,Object> systemProperty = new HashMap<>();
systemProperty.put("a","1");
systemProperty.put("b",2);
// ログオブジェクトを構築
QtLog log = new QtLog.Builder()
.eventId("$$_user_profile") // イベントコード (必須)。ユーザープロパティイベントを送信する場合は、コードを $$_user_profile に設定します。
.deviceId("dev-001") // デバイス ID を設定します。デバイス ID またはユーザー ID のいずれかを設定する必要があります。
.userId("user-001") // ユーザー ID を設定します。デバイス ID またはユーザー ID のいずれかを設定する必要があります。$$_user_profile イベントの場合は必須です。
.uuid("xxxx") // (任意)
.pageName("pageName") // ページコードを設定します (任意)
.idTracking(idTracking) // システムプロパティのデバイス識別子を設定します (任意)
.customProperty(customProperty) // イベントプロパティまたはユーザープロパティを設定します (任意)
.systemProperty(systemProperty)// システムプロパティを設定します (任意)
.serverTimestamp(1111L)
.debugKey(a)
.eventTimestamp(System.currentTimeMillis())
.build();
// ログを送信
QtLogSenderHelper.syncSendLog(log);
}
その他の設定
-
サービス設定
設定
タイプ
必須
デフォルト
説明
serviceId
String
はい
-
サーバー側収集の AccessKey ID。
serviceSecret
String
はい
-
サーバー側収集の AccessKey シークレット。
qlcEndpoint
String
はい
-
データ収集サービスのエンドポイント。
appKey
String
はい
-
appKey
openLog
Boolean
いいえ
false
SDK ロギングを有効にします。
httpConnectTimeoutMillisecond
Integer
いいえ
null
HTTP 接続タイムアウト (ミリ秒)。
httpWriteTimeoutMillisecond
Integer
いいえ
null
HTTP 書き込みタイムアウト (ミリ秒)。
httpReadTimeoutMillisecond
Integer
いいえ
null
HTTP 読み取りタイムアウト (ミリ秒)。
senderType
QtSenderTypeEnum
いいえ
SYNC
送信モード:同期または非同期。
callback
Consumer<QtSendCallbackContext>
いいえ
null
コールバック関数。
-
コールバック設定
プロパティ
タイプ
説明
sendSuccess
Boolean
ログが正常に送信されたかどうか。
errors
List<String>
送信失敗時のエラーメッセージのリスト。
qtLog
QtLog
送信された QtLog オブジェクト。
responseData
String
レスポンスボディ。
responseCode
String
レスポンスステータスコード。
responseMessage
String
レスポンスメッセージ。
sendData
String
HTTP リクエストペイロード。
コールバック関数の登録例
// コールバック関数を登録 QtSdkConfig.setCallback(ctx -> { System.out.println(ctx.getResponseCode()); System.out.println(ctx.getResponseMessage()); System.out.println(ctx.getSendSuccess()); System.out.println(ctx.getSendData()); System.out.println(ctx.getResponseData()); System.out.println(ctx.getErrors()); }); -
一意のログ ID (log_id) の生成
デフォルトでは、SDK は各イベントログの
log_idとして UUID を生成します。より細かく制御するために、UUID を手動で設定することもできます:QtLog log = new QtLog.Builder() .eventId("order_success") .deviceId("dev-001") .userId("user-001") .pageName("pageName") .customProperty(new HashMap<>()) .systemProperty(new HashMap<>()) .idTracking(new HashMap<>()) .debugKey("dk-0001")// トラッキング検証用のフラグを設定します (任意)。公開前に削除してください。 .eventTimestamp(System.currentTimeMillis()) .uuid("xxxx") // イベントログの一意の識別子を設定して log_id を生成します (バージョン 1.0.1 でサポート) .build();