メインコンテンツまでスキップ

HarmonyOS

最終更新 2026/10/07

最新バージョン: 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
TDRemoteConfigAE管理画面の設定情報を取得します1.0.0
  1. ページ上部のリソースのダウンロードリンクをクリックしてダウンロード・解凍し、TDExperiment.har、TDAnalytics.har、TDRemoteConfig.harをアプリモジュールのlibs/ディレクトリに配置します
  2. アプリモジュールのoh-package.json5に、ローカルHARの依存関係を追加します:
{
"dependencies": {
"@thinkingdata/experiment": "file:./libs/TDExperiment.har",
"@thinkingdata/analytics": "file:./libs/TDAnalytics.har",
"@thinkingdata/remoteconfig": "file:./libs/TDRemoteConfig.har"
}
}
  1. 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' });
このページは役に立ちましたか?