본문으로 건너뛰기

다중 인스턴스

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

1. 기능 소개​

여러 APPID를 사용하여 SDK 인스턴스를 생성할 수 있으며, 이를 줄여서 다중 인스턴스라고 합니다. 다중 인스턴스 기능을 사용하면 서로 다른 프로젝트로 데이터를 전송할 수 있습니다.

2. 다중 인스턴스 생성​

서로 다른 APP ID를 전달하여 SDK를 초기화하면 여러 SDK 인스턴스를 생성할 수 있습니다.

// SDK 초기화
TDAnalytics.init(this, TA_APP_ID, TA_SERVER_URL);
TDAnalyticsAPI.track("some_event",properties, TA_APP_ID);

TDAnalytics.init(this, ANOTHER_TA_APP_ID, TA_SERVER_URL);
TDAnalyticsAPI.track("some_event",properties, ANOTHER_TA_APP_ID);

TDAnalytics.init(this, TA_APP_ID, TA_SERVER_URL, NAME);
TDAnalyticsAPI.track("some_event",properties, NAME);

여러 SDK 인스턴스의 APP ID는 반드시 서로 달라야 하며, 다중 인스턴스 간 대부분의 데이터는 공유되지 않습니다. 자세한 내용은 4절 다중 인스턴스 간 데이터 공유를 참고하십시오.

3. 경량 인스턴스 생성​

경량 인스턴스 방식으로 같은 APPID에 여러 인스턴스를 생성할 수 있습니다

//먼저 SDK 인스턴스를 하나 생성
TDAnalytics.init(this, TA_APP_ID, TA_SERVER_URL);
//앞서 생성한 인스턴스로 lightInstance를 호출하여 경량 인스턴스 생성
String uuid = TDAnalytics.lightInstance();
TDAnalyticsAPI.login("anotherAccount",uuid);
TDAnalyticsAPI.track("some_event",properties,uuid);

하위 경량 인스턴스는 상위 인스턴스와 APPID, 수집 주소 및 일부 설정이 같지만 그 밖의 정보는 공유하지 않습니다. 자세한 내용은 4절 다중 인스턴스 간 데이터 공유를 참고하십시오.

4. 다중 인스턴스 간 데이터 공유​

대부분의 인터페이스는 인스턴스 객체에서 호출되므로 대부분의 데이터와 설정은 여러 APPID 인스턴스 간, 상위 인스턴스와 경량 인스턴스 간에 공유되지 않습니다. 다만 일부 데이터와 설정은 모든 인스턴스에 적용됩니다. 다음은 각 데이터와 설정이 다중 인스턴스 간에 공유되는지에 대한 상세 설명입니다.

  1. 계정 관련 정보
  • 시스템이 기본으로 생성한 게스트 ID #distinct_id: 공유
  • identify를 호출하여 설정한 게스트 ID #distinct_id: 공유하지 않음
  • login을 호출하여 설정한 계정 ID #account_id: 공유하지 않음
  1. 이벤트 전송 track과 유저 속성 전송 user_set, user_setOnce, user_add, user_delete: 공유하지 않음
  2. 공통 속성 setSuperProperties와 동적 공통 속성 setDynamicSuperPropertiesTracker: 공유하지 않음
  3. SDK 설정 정보의 다중 인스턴스 간 공유 여부:
  • 전송 정책 관련(전송 간격과 배치당 데이터양): 공유하며, 가장 먼저 인스턴스화된 APPID에 해당하는 프로젝트 데이터에 따라 결정됩니다
  • 업로드 네트워크 조건 setNetworkType: 공유
  • 업로드 데이터 Log 출력 EnableTrackLogging: 공유
  1. 자동 수집 이벤트
  • 자동 수집 이벤트는 하나의 인스턴스에서만 활성화하는 것을 권장합니다

  • 여러 APP ID로 자동 수집 이벤트를 전송할 수 있습니다

  • 자동 수집 이벤트 관련 설정의 다중 인스턴스 간 공유 여부:

    • 컨트롤 ID 설정 setViewID: 공유하지 않음
    • 컨트롤 커스텀 속성 setViewProperties 등: 공유하지 않음
    • 특정 페이지의 자동 수집 이벤트 무시 ignoreAutoTrackActivity 등: 공유하지 않음
    • 특정 타입 컨트롤의 클릭 이벤트 무시 ignoreViewType: 공유하지 않음
    • 특정 컨트롤 무시 ignoreView: 공유하지 않음
    • 모든 어노테이션: appId 파라미터를 설정하여 적용할 인스턴스를 지정할 수 있습니다. 설정하지 않으면 모든 인스턴스가 해당 설정을 공유합니다. 예:
@ThinkingDataIgnoreTrackAppViewScreen(appId = "debug-appid")
  1. 이벤트 소요 시간 기록 timeEvent: 공유하지 않음
이 문서가 도움이 되었나요?