본문으로 건너뛰기

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: 데이터 수집 주소
  • 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' });
이 문서가 도움이 되었나요?