menu
Is this helpful?

# iOS

::: 팁

구현하기 전에 데이터 액세스 준비를 확인하십시오.

iOS SDK 지원 시스템 버전은 iOS 9.0 이상이 필요합니다.

iOS SDK (프레임워크 형식) 크기 약 6.3MB

:::

최신 버전: v3.0.0-beta.1 다운로드 (opens new window)

업데이트 시간: 2023-08-31

소스 코드:Source Code (opens new window)

# SDK 구현

# 1.1 자동 구현

  • CocoaPods를 사용하여 SDK 구현
  1. Podfile 생성 및 편집 (기존이 있다면 그대로 편집):

Podfile을 생성하고, 프로젝트 (.xcodeproj) 파일과 같은 카탈로그에서 아래 코드를 실행

pod init

Podfile의 아래 내용을 편집:

platform :ios, '9.0'
target 'YourProjectTarget' do
  pod 'ThinkingSDK'  #ThinkingSDK
end
  1. 프로젝트의 루트 디렉토리에서, 아래의 설치 코드를 실행
pod install

성공 후에는, 터미널에서 아래의 힌트가 제시됩니다:

  1. 임포트가 성공하면, 워크스페이스를 시작합니다

코드 실행 성공 후, .xcworkspace 파일이 생성되면 iOS SDK가 임포트에 성공한 것입니다. .xcworkspace를 시작하십시오. (주의: 동시에 .xcodeproj 파일을 시작할 수 없습니다)

  • Carthage를 사용하여 SDK 설치
    1. Cartfile 파일에서 아래의 설정을 추가합니다
github "ThinkingDataAnalytics/ios-sdk"
  1. carthage update --platform iOS를 실행하고, ThinkingSDK.framework를 프로젝트 내에 추가합니다

# 1.2 수동 구현

  1. iOS SDK (opens new window)를 다운로드하고 압축을 풉니다

  2. ThinkingSDK.framework를 XCode Project Workspace로 이동합니다

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

  4. Xcode에서 Targets를 찾아내고 Build Phases 메뉴에, Link Binary With Libraries 아래에 다음의 의존 항목을 추가합니다: libz.dylib, Security.framework, SystemConfiguration.framework, libsqlite3.tbd

# 2. 초기 설정

매개 변수 설명:

  • APPID: 프로젝트의 APPID, TE 프로젝트 관리 화면에서 얻을 수 있습니다.
  • SERVER_URL: 데이터 전송 URL - SaaS의 경우 프로젝트 관리 → 데이터 액세스 URL에서 확인하십시오 - 프라이빗 구축의 경우, 데이터 전송 URL을 지정할 수 있습니다.

# 3. 주요 기능

주요 기능을 사용하기 전에, 유저 식별 규칙을 확인해 주세요.

SDK는 게스트 ID를 자동으로 생성하고, 로컬에 저장됩니다; 유저가 로그인하기 전에, 게스트 ID를 신분 식별 ID로 사용됩니다.

주의: 게스트 ID는 유저가 앱을 재설치할 때 리셋됩니다.

# 3.1 계정 ID 설정

유저가 로그인할 때, login을 호출하여 유저의 계정 ID를 설정할 수 있습니다. TE 플랫폼은 계정 ID를 신원 확인 ID로 logout을 호출하기 전까지 유지합니다. login을 여러 번 호출하면 이전의 계정 ID가 덮어씌워집니다.

이 방법으로는 로그인 이벤트를 전송하지 않습니다.

# 3.2 퍼블릭 이벤트 속성 설정

퍼블릭 이벤트 속성은 모든 이벤트에 포함되는 속성입니다. setSuperProperties를 호출하여 설정할 수 있습니다. 이벤트를 전송하기 전에, 퍼블릭 이벤트 속성을 설정해주세요.

예를 들어: 플레이어의 레벨, 전투력, 보유 자원 등의 속성

퍼블릭 이벤트 속성은 캐시에 저장되며, 앱을 시작할 때마다 호출할 필요가 없습니다. 만약 호출한다면 setSuperProperties: 이전에 설정한 퍼블릭 이벤트 속성은 덮어씌워집니다.

  • 이벤트의 속성은 하나의 NSDictionary 대상이 되며, 각 요소별로 속성을 분리할 수 있습니다.
  • Key는 해당 속성의 이름으로 문자열 타입이며, 영문자와 숫자, "_"를 포함하며, 최대 50자입니다. TE 시스템은 일괄적으로 소문자로 통일됩니다.
  • Value는 해당 속성의 값으로, String, Number, Bloon, Time, object, array, list object를 지원합니다.
  • Bloon 타입의 속성을 업로드하려면, @YES와 @NO 또는 [NSNumber numberWithBool:YES]와 [NSNumber numberWithBool:NO]로 값을 부여해야 합니다. @true, @false, @TRUE, @FALSE를 사용해서는 안됩니다.이벤트 속성과 유저 속성은 퍼블릭 이벤트 속성과 일치해야 합니다.

# 3.3 자동 수집 이벤트의 On/Off

클라이언트 SDK는 일부 이벤트를 자동으로 수집할 수 있으며, 실제 업무 상황에 따라 on/off를 설정하십시오. 아래는 참고가 됩니다. 자세한 내용은 자동 수집 가이드

// enable autotrack event
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID]enableAutoTrack:ThinkingAnalyticsEventTypeAppInstall | ThinkingAnalyticsEventTypeAppStart |ThinkingAnalyticsEventTypeAppEnd];

# 3.4 이벤트 전송

track을 호출하여 이벤트 전송을 수행합니다. 사전에 데이터 플랜을 준비하고 전송하십시오. 아래는 모델 코드입니다. 예: 아이템 구매

이벤트 이름은 string 타입이며, 영문자와 숫자, "_"를 포함하여 최대 50 문자까지 입력할 수 있습니다.

# 3.5 유저 속성 설정

일반적인 유저 속성에 대해서는, user_set을 사용하여 설정할 수 있습니다. 그러나 UserSet은 원래의 값을 덮어씁니다. 원래 해당 속성에 값이 없는 경우, 속성이 새로 생성됩니다. 아래는 코드 예시입니다.

# 4. 코드 예시 (Example Code)

아래의 코드 예시에 모든 작업이 포함되어 있으며, 아래 순서대로 사용하는 것을 권장합니다:

ThinkingAnalyticsSDK *instance;
if (privacy policy is authorized) {
    instance = ThinkingAnalyticsSDK.sharedInstance(this, TE_APP_ID, TE_SERVER_URL);
    if(instance != null{

      //if the user has logged in, the account ID of the user could be set as the unique identifier
      instance.login("TE");//퍼블릭 이벤트 속성을 설정한 후, 각 이벤트는 퍼블릭 이벤트 속성을 가집니다
      NSMutableDictionary *superProperties = [NSMutableDictionary new];
      [superProperties setValue:@"te" forKey:@"channel"]; //문자열
      [superProperties setValue:@1 forKey:@"age"]; //숫자
      [superProperties setValue:@YES forKey:@"isSuccess"]; //불리언
      [superProperties setValue:[NSDate now] forKey:@"birthday"]; //시간
      [superProperties setValue:@{@"key":@"value"} forKey:@"object"]; //객체
      [superProperties setValue:@[@{@"key":@"value"}] forKey:@"object_arr"]; //배열 객체
      [superProperties setValue:@[@"value"] forKey:@"arr"]; //배열
      [instance setSuperProperties:superProperties]; //퍼블릭 이벤트 속성 설정

      //자동 추적 이벤트 활성화
      [[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID]enableAutoTrack:ThinkingAnalyticsEventTypeAppInstall | ThinkingAnalyticsEventTypeAppStart |ThinkingAnalyticsEventTypeAppEnd];//이벤트 보내기
      NSDictionary *eventProperties = @{ @"product_name": @"아이템 이름"};
      [instance track:@"product_buy" properties:eventProperties];

      //유저 속성 설정
      [instance user_set:@{@"username": @"TE"}];
    }
}