사용자 정의 태그 사용¶
이 문서는 React Native SDK의 전역 컨텍스트 및 사용자 정의 태그 관련 기능을 설명합니다.
런타임 시 사용자 정의 태그 추가¶
사용 방법¶
/**
* 사용자 정의 전역 파라미터를 추가합니다. RUM, Log 데이터에 적용됩니다.
*/
appendGlobalContext(context: object): Promise<void>;
/**
* 사용자 정의 RUM 전역 파라미터를 추가합니다. RUM 데이터에 적용됩니다.
*/
appendRUMGlobalContext(context: object): Promise<void>;
/**
* 사용자 정의 Log 전역 파라미터를 추가합니다. Log 데이터에 적용됩니다.
*/
appendLogGlobalContext(context: object): Promise<void>;
사용 예시¶
FTMobileReactNative.appendGlobalContext({ global_key: 'global_value' });
FTMobileReactNative.appendRUMGlobalContext({ rum_key: 'rum_value' });
FTMobileReactNative.appendLogGlobalContext({ log_key: 'log_value' });
사용자 정의 태그 사용 예시¶
컴파일 설정 방식¶
react-native-config를 사용하여 여러 환경을 구성하고, 각 환경에 맞는 사용자 정의 태그 값을 설정합니다.
let rumConfig: FTRUMConfig = {
iOSAppId: iOSAppId,
androidAppId: androidAppId,
monitorType: MonitorType.all,
enableTrackUserAction: true,
enableTrackUserResource: true,
enableTrackError: true,
enableNativeUserAction: false,
enableNativeUserResource: false,
enableNativeUserView: false,
globalContext: { track_id: Config.TRACK_ID },
};
await FTReactNativeRUM.setConfig(rumConfig);
런타임 시 파일 읽기/쓰기 방식¶
AsyncStorage와 같은 데이터 영속화 방식을 통해 SDK 초기화 시 저장된 사용자 정의 태그를 읽습니다.
let rumConfig: FTRUMConfig = {
iOSAppId: iOSAppId,
androidAppId: androidAppId,
monitorType: MonitorType.all,
enableTrackUserAction: true,
enableTrackUserResource: true,
enableTrackError: true,
enableNativeUserAction: false,
enableNativeUserResource: false,
enableNativeUserView: false,
};
await new Promise(function (resolve) {
AsyncStorage.getItem('track_id', (error, result) => {
if (result === null) {
console.log('획득 실패' + error);
} else {
console.log('획득 성공' + result);
if (result != undefined) {
rumConfig.globalContext = { track_id: result };
}
}
resolve(FTReactNativeRUM.setConfig(rumConfig));
});
});
- 임의의 위치에서 파일에 사용자 정의 태그를 추가하거나 변경합니다.
AsyncStorage.setItem('track_id', valueString, (error) => {
if (error) {
console.log('저장 실패' + error);
} else {
console.log('저장 성공');
}
});
- 마지막으로 애플리케이션을 재시작하면 적용됩니다.
SDK 런타임 시 동적 추가¶
SDK 초기화가 완료된 후 FTMobileReactNative.appendGlobalContext(globalContext), FTMobileReactNative.appendRUMGlobalContext(globalContext), FTMobileReactNative.appendLogGlobalContext(globalContext)를 사용하여 태그를 동적으로 추가할 수 있으며, 설정 즉시 적용됩니다.
!!! warning
SDK 초기화 설정의 `globalContext` 또는 SDK 내장 필드와 동일한 key를 사용하지 않도록 주의하세요. key가 동일한 경우, 초기화 설정의 정적 태그가 동적으로 추가된 태그보다 우선순위가 높습니다.
FTMobileReactNative.sdkConfig(config);
function getInfoFromNet(info: Info) {
const globalContext = { delay_key: info.value };
FTMobileReactNative.appendGlobalContext(globalContext);
}
추가 규칙은 Android 충돌 필드 설명을 참조하세요.