본문으로 건너뛰기

iOS

최근 업데이트 2026. 10. 02.

최신 버전: v1.0.2

업데이트 시간: 2026-07-24

리소스 다운로드: 다운로드

1. 개요​

6.1 버전부터 AE에 실험 키트 기능이 추가되었습니다. AE 백엔드에서 실험을 생성하고 대조군과 실험 그룹의 변수 값을 설정한 후, 클라이언트 SDK를 통해 App으로 가져와 그룹별로 유저에게 서로 다른 콘텐츠를 표시할 수 있습니다.

이 문서에서는 클라이언트 SDK의 통합 과정을 소개합니다. App 측에서는 ThinkingData SDK와의 상호 작용만 고려하면 되며, AE 백엔드의 작업 세부 사항은 신경 쓸 필요가 없습니다.

실험 SDK는 반드시 구성 센터 SDK와 함께 사용해야 한다는 점에 유의하십시오.

2. 통합​

2.1 CocoaPods 자동 통합​

  1. 프로젝트의 Podfile에 의존성을 추가합니다:
platform :ios, '9.0'
use_frameworks!

target 'YourApp' do
pod 'TDExperiment', '1.0.2'
end
  1. 설치 명령을 실행합니다:
pod install

설치가 완료되면 .xcworkspace로 프로젝트를 엽니다.

2.2 SDK 수동 통합​

실험 SDK에는 다음 ThinkingData SDK가 필요합니다:

SDK 이름기능 소개버전 요구 사항
ThinkingSDK데이터 수집 및 처리>= 3.1.6
TDRemoteConfigAE 백엔드의 설정 정보 가져오기>= 1.3.1
  1. 페이지 상단의 리소스 다운로드 링크를 클릭하여 SDK를 다운로드하고 압축을 해제합니다
  2. ThinkingSDK.xcframework, ThinkingDataCore.xcframework, TDRemoteConfig.xcframework, TDExperiment.xcframework를 프로젝트로 드래그하고 Embed & Sign을 선택합니다(또는 프로젝트의 정적 라이브러리 정책에 따라 설정)
  3. Build Settings에서 Framework Search Paths에 위의 xcframework 경로가 포함되어 있는지 확인합니다

3. 초기화​

실험 SDK는 분석 SDK와 함께 사용해야 합니다. 먼저 TDAnalytics 초기화를 완료한 후 실험 SDK를 초기화하십시오.

#import <ThinkingSDK/ThinkingSDK.h>
#import <TDExperiment/TDExperiment.h>

// 수집 SDK 초기화
[TDAnalytics startAnalyticsWithAppId:@"APP_ID" serverUrl:@"https://YOUR_SERVER_URL"];

// 실험 SDK 초기화
TDExperimentConfig *config = [[TDExperimentConfig alloc] initWithAppId:@"APP_ID"
serverUrl:@"https://YOUR_SERVER_URL"];
config.automaticExposureTracking = YES;
config.customBucketId = @{ @"bucket_id": @"account_id" };
config.customFetchParams = @{ @"key": @"value" };

TDExperimentTask *startupTask = [[TDExperimentTask alloc] init];
[startupTask addOnSuccessListener:^{
// 실험 구성 정보 가져오기 성공
}];
[startupTask addOnFailureListener:^(NSInteger code, NSString *message) {
// 실험 구성 정보 가져오기 실패
}];
config.startupTask = startupTask;

[TDExperiment enableLog:YES];
[TDExperiment startWithConfig:config];

간소화된 시작 방식을 사용할 수도 있습니다:

[TDExperiment startWithAppId:@"APP_ID" serverUrl:@"https://YOUR_SERVER_URL"];

초기화 파라미터 설명:

  • appId:APP ID
  • serverUrl: 데이터 수집 주소
  • automaticExposureTracking: 기본값은 YES이며, get으로 실험 파라미터를 가져올 때 노출 이벤트를 자동으로 업로드합니다
  • customBucketId: 커스텀 분할 단위
  • customFetchParams: 클라이언트 구성 채널의 커스텀 파라미터
  • startupTask: 시작 시 처음으로 실험 구성을 가져올 때의 콜백 작업(addOnSuccessListener / addOnFailureListener로 등록)
  • enableLog: 디버깅 로그 활성화 여부(TDExperiment.enableLog로 설정)

4. 사용​

4.1 실험 정보 가져오기​

[TDExperiment getValueAsString:key];
[TDExperiment getValueAsString:key defaultValue:@"default"];

[TDExperiment getValueAsNumber:key];
[TDExperiment getValueAsNumber:key defaultValue:@0];

[TDExperiment getValueAsBoolean:key];
[TDExperiment getValueAsBoolean:key defaultValue:NO];

[TDExperiment getValueAsJson:key];
[TDExperiment getValueAsJson:key defaultValue:@{}];

automaticExposureTracking이 YES이면 get할 때 노출 이벤트를 자동으로 업로드합니다.

4.2 노출 이벤트 업로드​

exposure 메서드를 호출하여 노출 이벤트를 수동으로 업로드할 수 있습니다.

[TDExperiment exposure:key];

4.3 모든 실험 정보 능동적으로 가져오기​

[TDExperiment fetch];

[[[TDExperiment fetch]
addOnSuccessListener:^{
// 성공
}]
addOnFailureListener:^(NSInteger code, NSString *message) {
// 실패
}];

4.4 커스텀 분할 단위​

NSDictionary<NSString *, NSString *> *bucketId = @{ @"bucket_id": @"account_id" };
[TDExperiment setCustomBucketId:bucketId];

4.5 커스텀 요청 파라미터​

NSDictionary<NSString *, NSObject *> *params = @{ @"key": @"value" };
[TDExperiment setCustomFetchParams:params];
이 문서가 도움이 되었나요?