본문으로 건너뛰기

iOS

최근 업데이트 2026. 10. 05.
팁

연동하기 전에 먼저 연동 전 준비를 읽어 주십시오.

iOS SDK의 최소 시스템 버전 요구 사항은 iOS 9.0입니다

iOS SDK(Framework 형식)의 크기는 약 2.7 MB입니다

최신 버전: v3.5.3

업데이트 시간: 2026-09-22

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

주의

이 문서는 v3.0.0 이상 버전에 적용됩니다. 과거 버전은 iOS 연동 가이드(V2), SDK 다운로드(v2.8.4)를 참고하십시오

1. SDK 통합​

1.1 자동 통합​

  • CocoaPods로 SDK 설치

1. Podfile을 생성하고 내용을 편집합니다(이미 있으면 바로 편집합니다).

Podfile 생성: 프로젝트(.xcodeproj) 파일과 같은 디렉터리에서 명령줄로 다음 명령을 실행합니다.

pod init

Podfile의 내용을 다음과 같이 편집합니다:

platform :ios, '9.0'
target 'YourProjectTarget' do
pod 'ThinkingSDK', '3.5.3'
end

2. 프로젝트 루트 디렉터리에서 설치 명령을 실행합니다

pod install

성공하면 터미널에 다음과 같은 메시지가 표시됩니다:

Analyzing dependencies
Downloading dependencies
Installing ThinkingDataCore
Installing ThinkingSDK
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 2 total pods installed.

3. 가져오기가 완료되면 프로젝트를 시작합니다

명령이 성공적으로 실행되면 .xcworkspace 파일이 생성되며, 이는 iOS SDK를 성공적으로 가져왔음을 의미합니다. .xcworkspace 파일을 열어 프로젝트를 시작합니다(주의: 이때 .xcodeproj 파일을 동시에 열면 안 됩니다)

1.2 수동 통합​

1. iOS SDK를 다운로드하고 압축을 해제합니다

2. ThinkingSDK.xcframework, ThinkingDataCore.xcframework를 XCode Project Workspace 프로젝트로 드래그합니다

3. Targets를 찾아 Build Settings 메뉴의 Other linker flags 옵션에 -ObjC를 추가합니다

4. Build Phases 탭으로 전환하고 Link Binary With Libraries 항목에 다음 의존 항목을 추가합니다.

libz.tbd、Security.framework、SystemConfiguration.framework、libsqlite3.tbd

2. 초기화​

#import <ThinkingSDK/ThinkingSDK.h>

NSString *appid = @"APPID";
NSString *url = @"SERVER_URL";

//방법 1
[TDAnalytics startAnalyticsWithAppId:appid serverUrl:url];

//방법 2
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];

파라미터 설명:

  • APPID: 프로젝트의 APPID로, AE 백엔드의 프로젝트 관리 페이지에서 확인할 수 있습니다

  • SERVER_URL: 데이터 전송 URL

    • 클라우드 서비스를 사용하는 경우 다음을 입력합니다: https://global-receiver-ta.thinkingdata.cn
    • 프라이빗 배포 버전을 사용하는 경우 데이터 수집 주소에 도메인을 바인딩하고 HTTPS 인증서를 설정하십시오: https://데이터 수집 주소에 바인딩한 도메인

3. 자주 사용하는 기능​

자주 사용하는 기능을 사용하기 전에 먼저 유저 식별 규칙을 이해하는 것을 권장합니다. SDK는 기본적으로 디바이스 ID_설치 횟수를 게스트 ID로 사용하고, 게스트 ID를 로컬에 영구 저장합니다. 유저가 로그인하기 전에는 게스트 ID가 신원 식별 ID로 사용됩니다. 참고: 게스트 ID는 유저가 앱을 재설치하거나 디바이스를 변경하면 바뀝니다.

3.1 계정 ID 설정​

유저가 로그인할 때 login을 호출하여 유저의 계정 ID를 설정할 수 있습니다. AE 플랫폼은 계정 ID를 신원 식별 ID로 사용하며, 설정한 계정 ID는 logout을 호출하기 전까지 계속 유지됩니다. login을 여러 번 호출하면 이전 계정 ID를 덮어씁니다.

// 유저의 로그인 고유 식별자로, 전송 데이터의 #account_id에 해당합니다. 이때 #account_id 값은 TD입니다
[TDAnalytics login:@"TD"];

이 메서드는 로그인 이벤트를 전송하지 않습니다

3.2 공통 이벤트 속성 설정​

공통 이벤트 속성은 모든 이벤트에 포함되는 속성입니다. setSuperProperties를 호출하여 공통 이벤트 속성을 설정할 수 있으며, 이벤트를 보내기 전에 먼저 공통 이벤트 속성을 설정하는 것을 권장합니다. 유저의 회원 등급, 유입 채널 등 일부 중요한 속성은 모든 이벤트에 설정해야 하므로, 이러한 속성은 공통 이벤트 속성으로 설정할 수 있습니다.

NSDictionary *superProperties = @{
@"channel": @"ta",
@"age": @1,
@"isSuccess": @YES,
@"birthday": [NSDate date],
@"object": @{
@"key":@"value"
},
@"object_arr":@[
@{
@"key":@"value"
}
],
@"arr": @[@"value"],
};
[TDAnalytics setSuperProperties:superProperties];

공통 이벤트 속성은 캐시에 저장되므로 앱을 시작할 때마다 호출할 필요가 없습니다. setSuperProperties를 호출하여 이전에 이미 설정한 공통 이벤트 속성을 설정하면 이전 속성을 덮어씁니다.

  • 이벤트 속성은 NSDictionary 객체이며, 각 요소가 하나의 속성을 나타냅니다.
  • Key는 해당 속성의 이름으로 문자열 타입입니다. 영문자로 시작해야 하며 숫자, 영문자, 밑줄 "_"을 포함할 수 있고, 최대 길이는 50자입니다. 대소문자를 구분하지 않으며 AE에서 모두 소문자로 변환합니다
  • Value는 해당 속성의 값으로 문자열, 숫자, 불리언, 시간, 객체, 객체 그룹, 배열을 지원합니다
  • 불리언 타입 속성을 업로드하려면 @YES와 @NO 또는 [NSNumber numberWithBool:YES]와 [NSNumber numberWithBool:NO]로 값을 지정하십시오. @true, @false, @TRUE, @FALSE로 불리언 데이터를 지정하는 것은 허용되지 않습니다.

이벤트 속성과 유저 속성의 요구 사항은 공통 이벤트 속성과 같습니다

3.3 자동 수집 활성화​

다음 코드 예시는 설치, 시작, 종료 이벤트를 활성화합니다. SDK의 자동 수집 기능을 자세히 알아보려면 자동 수집 이벤트를 참고하십시오

[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAppInstall | TDAutoTrackEventTypeAppStart | TDAutoTrackEventTypeAppEnd];

3.4 이벤트 전송​

track을 호출하여 이벤트를 업로드할 수 있습니다. 정리한 트래킹 문서에 따라 이벤트 속성과 전송 조건을 설정하는 것을 권장합니다. 여기서는 유저가 어떤 상품을 구매하는 경우를 예로 듭니다.

NSDictionary *eventProperties = @{@"product_name": @"book"};
[TDAnalytics track:@"product_buy" properties:eventProperties];

이벤트 이름은 문자열 타입이며, 영문자로 시작해야 하고 숫자, 영문자, 밑줄 "_"을 포함할 수 있으며, 최대 길이는 50자입니다.

3.5 유저 속성 설정​

일반적인 유저 속성은 userSet을 호출하여 설정할 수 있습니다. 이 인터페이스로 업로드한 속성은 원래 속성 값을 덮어쓰며, 이전에 해당 유저 속성이 없었다면 새로 생성하고 타입은 전달된 속성의 타입과 같습니다. 여기서는 사용자 이름 설정을 예로 듭니다.

//이때 "username"은 "ThinkingData"입니다
[TDAnalytics userSet:@{@"username": @"ThinkingData"}];
//이때 "username"은 "TA"입니다
[TDAnalytics userSet:@{@"username": @"TA"}];

4. 모범 사례​

다음 예시 코드에는 위의 모든 작업이 포함되어 있으며, 다음 단계에 따라 사용하는 것을 권장합니다.

if (개인정보 처리방침 동의) {

//SDK 초기화
NSString *appid = @"APPID";
NSString *url = @"SERVER_URL";
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];

//자동 수집 활성화
[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAppInstall | TDAutoTrackEventTypeAppStart | TDAutoTrackEventTypeAppEnd];

[TDAnalytics login:@"TD"];

NSDictionary *superProperties = @{
@"channel": @"ta",
@"age": @1,
@"isSuccess": @YES,
@"birthday": [NSDate date],
@"object": @{
@"key":@"value"
},
@"object_arr":@[
@{
@"key":@"value"
}
],
@"arr": @[@"value"],
};
[TDAnalytics setSuperProperties:superProperties];

NSDictionary *eventProperties = @{@"product_name": @"book"};
[TDAnalytics track:@"product_buy" properties:eventProperties];

[TDAnalytics userSet:@{@"username": @"ThinkingData"}];
}
이 문서가 도움이 되었나요?