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: 데이터 수집 주소
- 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' });

