HarmonyOS
最新バージョン: v1.0.0
更新日: 2026-07-24
リソースのダウンロード:ダウンロード
1. 概要
バージョン6.1から、AEに実験スイート機能が追加されました。AE管理画面で実験を作成し、コントロールグループとテストグループの変数値を設定して、クライアントSDKでAppに取得することで、グループごとに異なるコンテンツをユーザーに表示できます。
このドキュメントでは、HarmonyOSクライアントSDKの統合手順を説明します。App側はThinkingData SDKとのやり取りだけを考慮すればよく、AE管理画面のタスクの詳細を気にする必要はありません。
なお、実験SDKは構成センターSDKと組み合わせて使用する必要があります。
2. 統合
2.1 SDKの自動統合
アプリモジュールのディレクトリで次のコマンドを実行します:
ohpm install @thinkingdata/experiment
または、省略形を使用します:
ohpm i @thinkingdata/experiment
ohpmは推移的な依存関係(@thinkingdata/remoteconfig、@thinkingdata/analyticsなど)を自動的にインストールします。
アプリモジュールのoh-package.json5に依存関係を手動で追加してから、ohpm installを実行することもできます:
{
"dependencies": {
"@thinkingdata/experiment": "1.0.0"
}
}
2.2 SDKの手動統合
構成センターには、次のThinkingData SDKが必要です:
| SDK名 | 機能の紹介 | バージョン要件 |
|---|---|---|
| TDAnalytics | データの収集と処理を行います | 1.9.0 |
| TDRemoteConfig | AE管理画面の設定情報を取得します | 1.0.0 |
- ページ上部のリソースのダウンロードリンクをクリックしてダウンロード・解凍し、
TDExperiment.har、TDAnalytics.har、TDRemoteConfig.harをアプリモジュールのlibs/ディレクトリに配置します - アプリモジュールの
oh-package.json5に、ローカルHARの依存関係を追加します:
{
"dependencies": {
"@thinkingdata/experiment": "file:./libs/TDExperiment.har",
"@thinkingdata/analytics": "file:./libs/TDAnalytics.har",
"@thinkingdata/remoteconfig": "file:./libs/TDRemoteConfig.har"
}
}
ohpm installを実行して依存関係をインストールします
組み込み側のコードで直接
import { TDAnalytics }し、初期化を完了する必要があります。IDEまたはビルドでanalyticsモジュールを解決できない場合は、oh-package.json5で"@thinkingdata/analytics": "1.9.0"を追加で明示的に宣言してください。
3. 初期化
実験SDKは分析SDKと組み合わせて使用する必要があります。先にTDAnalyticsの初期化を完了してから、実験SDKを初期化してください。
import { common } from '@kit.AbilityKit';
import { TDAnalytics } from '@thinkingdata/analytics';
import { TDExperiment, TDExperimentConfig } from '@thinkingdata/experiment';
const context = ... as common.UIAbilityContext;
const APP_ID = 'your_app_id';
const SERVER_URL = 'https://your-receiver-url';
// データ収集SDKを初期化
TDAnalytics.init(context, APP_ID, SERVER_URL);
TDAnalytics.login('user_distinct_id');
// 実験SDKを初期化
const config = new TDExperimentConfig(APP_ID, SERVER_URL);
config.automaticExposureTracking = true;
config.customBucketId = { 'user_id': 'user_distinct_id' };
config.customFetchParams = { 'platform': 'harmonyos' };
config.initCallback = {
onFetchSuccess: () => {
// 実験設定情報の取得に成功
},
onError: (code: number, message: string) => {
// 実験設定情報の取得に失敗
}
};
TDExperiment.enableLog(true);
TDExperiment.init(context, config);
初期化パラメータの説明:
- appId:APP ID
- serverUrl:データの送信先URL
- automaticExposureTracking:デフォルトはtrueです。getで実験パラメータを取得するときに、インプレッションイベントを自動的に送信します
- customBucketId:カスタム振り分け主体
- customFetchParams:クライアントの構成チャンネルに設定したカスタムパラメータ
- enableLog:デバッグログを有効にするかどうか(TDExperiment.enableLogで設定)
- initCallback.onFetchSuccess:実験設定情報の取得に成功
- initCallback.onError:実験設定情報の取得に失敗
4. 使用方法
4.1 実験情報の取得
TDExperiment.getValueAsString(key, defaultValue);
TDExperiment.getValueAsNumber(key, defaultValue);
TDExperiment.getValueAsBoolean(key, defaultValue);
TDExperiment.getValueAsJson(key, defaultValue);
automaticExposureTrackingがtrueの場合、getの際にインプレッションイベントが自動的に送信されます。
4.2 インプレッションイベントの送信
exposureメソッドを呼び出して、インプレッションイベントを手動で送信できます。
TDExperiment.exposure(key);
4.3 すべての実験情報を能動的に取得
TDExperiment.fetch();
TDExperiment.fetch().addOnSuccessListener({
onSuccess: () => {
// 成功
}
}).addOnFailureListener({
onFailure: (code: number, msg: string) => {
// 失敗
}
});
4.4 カスタム振り分け主体
TDExperiment.setCustomBucketId({ 'bucket_id': 'account_id' });
4.5 カスタムリクエストパラメータ
TDExperiment.setCustomFetchParams({ 'key': 'value' });

