콘텐츠로 이동

Widget Extension 데이터 수집

Widget Extension 데이터 수집

데이터 수집 지원 유형

  • Logger 사용자 정의 로그
  • Trace 분산 추적
  • RUM 데이터 수집

HTTP Resource 데이터는 View와 바인딩되어 있으므로, 사용자가 View 데이터를 수동으로 수집해야 합니다.

수집 설정

FTExtensionConfig를 사용하여 Widget Extension 데이터 수집의 자동 스위치와 파일 공유 Group Identifier를 구성합니다. 다른 설정은 메인 프로젝트 SDK에 이미 설정된 구성을 사용합니다.

필드 유형 필수 설명
groupIdentifier NSString 파일 공유 Group Identifier
enableSDKDebugLog BOOL 아니요 (기본값 NO) SDK 디버그 로그 출력 허용 여부 설정
enableTrackAppCrash BOOL 아니요 (기본값 NO) 충돌 로그 수집 필요 여부 설정
enableRUMAutoTraceResource BOOL 아니요 (기본값 NO) 사용자 네트워크 요청 추적 여부 설정 (native http에만 적용)
enableTracerAutoTrace BOOL 아니요 (기본값 NO) 자동 http 분산 추적 활성화 여부 설정
memoryMaxCount NSInteger 아니요 (기본값 1000개) Widget Extension에 저장되는 최대 데이터 개수

Widget Extension SDK 사용 예시:

let extensionConfig = FTExtensionConfig.init(groupIdentifier: "group.identifier")
extensionConfig.enableTrackAppCrash = true
extensionConfig.enableRUMAutoTraceResource = true
extensionConfig.enableTracerAutoTrace = true
extensionConfig.enableSDKDebugLog = true
FTExtensionManager.start(with: extensionConfig)
FTExternalDataManager.shared().startView(withName: "WidgetDemoEntryView")

또한 메인 프로젝트에서 FTMobileConfig를 설정할 때 groupIdentifiers를 반드시 설정해야 합니다.

// 메인 프로젝트
 FTMobileConfig *config = [[FTMobileConfig alloc]initWithMetricsUrl:url];
 config.enableSDKDebugLog = YES;
 config.groupIdentifiers = @[@"group.com.ft.widget.demo"];
let config = FTMobileConfig.init(metricsUrl: url)
config.enableSDKDebugLog = true
config.groupIdentifiers = ["group.com.ft.widget.demo"]

Widget Extension 수집 데이터 업로드

Widget Extension SDK에서는 데이터 수집만 구현하며, 데이터 업로드 로직은 메인 프로젝트의 SDK가 담당합니다. 수집된 데이터를 메인 프로젝트로 동기화하는 시점은 사용자가 정의할 수 있습니다.

사용 방법

// 메인 프로젝트에서 호출
/// Track App Extension groupIdentifier에 캐시된 데이터
/// - Parameters:
///   - groupIdentifier: groupIdentifier
///   - completion: track 완료 후 callback
- (void)trackEventFromExtensionWithGroupIdentifier:(NSString *)groupIdentifier completion:(nullable void (^)(NSString *groupIdentifier, NSArray *events)) completion;
/// Track App Extension groupIdentifier에 캐시된 데이터
/// - Parameters:
///   - groupIdentifier: groupIdentifier
///   - completion: track 완료 후 callback
open func trackEventFromExtension(withGroupIdentifier groupIdentifier: String, completion: ((String, [Any]) -> Void)? = nil)

코드 예시

// 메인 프로젝트에서
-(void)applicationDidBecomeActive:(UIApplication *)application{
    [[FTMobileAgent sharedInstance] trackEventFromExtensionWithGroupIdentifier:@"group.identifier" completion:nil];
}
func applicationDidBecomeActive(_ application: UIApplication) {
   FTMobileAgent.sharedInstance().trackEventFromExtension(withGroupIdentifier: "group.identifier" )
}

문서 평가

이 페이지가 도움이 되었나요?