1. Java SDK の統合
JAR パッケージ「quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar」を手動で導入します。QT Q&A 担当者に連絡して入手できます。
2 基本構成(必須!)
appkey、データ収集エンドポイント、および認証情報を設定します
appkey を設定する
QtSdkConfig.setAppKey("Your appkey"); // アプリケーションキーを設定
データ収集エンドポイントを設定する
QtSdkConfig.setQlcEndpoint("Your data collection endpoint"); // データ収集エンドポイントを設定
注:ドメインに接尾辞「/server」を追加する必要があります。
認証情報を入力する
QtSdkConfig.setServiceId("Your ServiceID"); // サービスIDを設定
QtSdkConfig.setServiceSecret("Your ServiceSecret"); // サービスシークレットを設定
場所は、「管理コンソール - トラッキング情報 - サーバートラッキング情報」で取得します。
3. グローバルプロパティ設定
// プロパティを追加します。
QtGlobalPropertiesConfig.put("a", "1");
QtGlobalPropertiesConfig.put("b", "2");
// プロパティを削除します。
QtGlobalPropertiesConfig.remove("a");
// すべてのプロパティをクエリします。
QtGlobalPropertiesConfig.getAll();
// プロパティをクリアします。
QtGlobalPropertiesConfig.clear();
4. トラッキングレポート
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 | デバイス識別子。「idTracking(new HashMap<>())」を介して報告する必要があります。詳細については、上記のデモを参照してください。 | |
device_brand | String | デバイスブランド | |
device_model | String | デバイスモデル | |
ネットワークとオペレーター | access | String | ネットワークタイプ |
access_subtype | String | ||
carrier | String | ISP | |
プラットフォームとシナリオ情報 | scene | String | シーン値(ミニプログラム) |
device_type | String | ||
HTTP_header および UA | browser | String | ブラウザ |
ip | String | IP アドレス |
5 ロゴ配信
ログを送信するときは、次の API を呼び出してログを送信します。
QtLogSenderHelper.syncSendLog(log); // ログを同期送信
6 デモ
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.util.HashMap;
import java.util.Map;
/**
* ログ送信テスト
*/
public class TestSendLog {
/**
* テスト
*/
@Test
public void testSend() {
// 構成
QtSdkConfig.setServiceId("Your ServiceId"); // サービスIDを設定
QtSdkConfig.setServiceSecret("Your ServiceSecret"); // サービスシークレットを設定
QtSdkConfig.setAppKey("Your appkey"); // アプリケーションキーを設定
QtSdkConfig.setQlcEndpoint("Your domain name"); // ドメイン名を設定
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");
// ログオブジェクトを構築します。
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()) // サーバーのタイムスタンプを設定します。このパラメータはオプションです。
// ログを送信します。
QtLogSenderHelper.syncSendLog(log);
}
}
7 その他の構成
スペックアップされるサービスインスタンスの範囲。デフォルトでは、[サービス構成] が選択されています。
アラート連絡先を構成します。 | タイプ | 必須 | 有効な値 | 説明 |
serviceId | String | はい | - | サーバーによって収集された AccessKey ID。 |
serviceSecret | String | はい | - | サーバーによって収集された SK |
qlcEndpoint | String | はい | - | 受信サービスアドレス |
appKey | String | はい | - | アプリケーションキー |
openLog | ブール値 | いいえ | false | ロギングを有効にするかどうかを指定します。 |
httpConnectTimeoutMillisecond | Integer | いいえ | null | HTTP リクエストの送信のタイムアウト期間(接続) |
httpWriteTimeoutMillisecond | Integer | いいえ | null | HTTP リクエストの送信のタイムアウト期間(書き込み) |
httpReadTimeoutMillisecond | Integer | いいえ | null | HTTP リクエストの送信のタイムアウト期間(読み取り) |
senderType | QtSenderTypeEnum | いいえ | SYNC | 送信タイプは、同期送信と非同期送信をサポートしています。 |
callback | Consumer<QtSendCallbackContext> | いいえ | null | コールバック関数を構成する |
コールバックの構成
プロパティ | 制限 | 移行の説明 |
sendSuccess | ブール値 | 送信が成功したかどうか |
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 は各イベントログの uuid をログの一意の ID「log_id」の生成要素として生成します。「log_id」をより一意にする場合は、UUID を設定できます。次の操作を実行します。
QtLog log = new QtLog.Builder()
.eventId("order_success") // イベントIDを設定
.deviceId("dev-001") // デバイスIDを設定
.userId("user-001") // ユーザーIDを設定
.pageName("pageName") // ページ名を設定
.customProperty(new HashMap<>()) // カスタムプロパティを設定
.systemProperty(new HashMap<>()) // システムプロパティを設定
.idTracking(new HashMap<>()) // IDトラッキングを設定
.debugKey("dk-0001") // トラッキング検証フラグビットを設定します(オプション)。オンラインにする場合は削除する必要があります。
.eventTimestamp(System.currentTimeMillis()) // イベントタイムスタンプを設定
.uuid("xxxx") // イベントログの一意の識別子を設定します。このパラメータは、log_id を生成するために使用されます。このパラメータは 1.0.1 でサポートされています。
.build(); // ログを構築