사용자 정의 태그 사용¶
컴파일 구성 방식¶
build.gradle에서 여러 개의productFlavors를 생성하여 태그를 구분합니다.
android{
//…
productFlavors {
prodTest {
buildConfigField "String", "CUSTOM_VALUE", "\"Custom Test Value\""
//…
}
prodPublish {
buildConfigField "String", "CUSTOM_VALUE", "\"Custom Publish Value\""
//…
}
}
}
- RUM 구성에 해당
BuildConfig상수를 추가합니다.
런타임 파일 읽기/쓰기 방식¶
SharedPreferences와 같은 파일 유형 데이터를 저장하고 SDK를 구성할 때 태그 데이터를 가져오는 코드를 추가합니다.
- 필요 시 파일 데이터를 수정하는 메서드를 추가합니다.
- 마지막으로 애플리케이션을 재시작합니다. 자세한 내용은 SDK Demo를 참조하세요.
SDK 런타임 추가¶
SDK 초기화가 완료된 후 FTSdk.appendGlobalContext(globalContext), FTSdk.appendRUMGlobalContext(globalContext), FTSdk.appendLogGlobalContext(globalContext) 를 사용하여 동적으로 태그를 추가할 수 있으며, 설정 즉시 적용됩니다. 이후 RUM 또는 Log에서 보고하는 데이터에 자동으로 해당 태그가 포함됩니다.
이 사용 방식은 로그인, 인터페이스 요청 또는 로컬 비동기 초기화 후에 태그 데이터를 가져와야 하는 지연 데이터 획득 시나리오에 적합합니다.
!!! warning
SDK 초기화 구성의 `globalContext` 또는 SDK 내장 필드와 동일한 key를 사용하지 마십시오. key가 동일한 경우, 초기화 구성의 정적 태그가 동적으로 추가된 태그보다 우선순위가 높습니다.
사용 방법¶
/**
* 전역 태그 동적 설정
* @param globalContext
*/
public static void appendGlobalContext(HashMap<String,Object> globalContext)
/**
* RUM 전역 태그 동적 설정
* @param globalContext
*/
public static void appendRUMGlobalContext(HashMap<String,Object> globalContext)
/**
* 로그 전역 태그 동적 설정
* @param globalContext
*/
public static void appendLogGlobalContext(HashMap<String,Object> globalContext)
/**
* 전역 태그 동적 설정
* @param globalContext
*/
fun appendGlobalContext(globalContext: HashMap<String, Any>)
/**
* RUM 전역 태그 동적 설정
* @param globalContext
*/
fun appendRUMGlobalContext(globalContext: HashMap<String, Any>)
/**
* 로그 전역 태그 동적 설정
* @param globalContext
*/
fun appendLogGlobalContext(globalContext: HashMap<String, Any>)
//SDK 초기화 의사 코드, 네트워크에서 파라미터를 가져온 후 태그 설정
FTSdk.init()
getInfoFromNet(info){
HashMap<String, Object> globalContext = new HashMap<>();
globalContext.put("delay_key", info.value);
FTSdk.appendGlobalContext(globalContext)
}
코드 예제¶
HashMap<String, Object> globalContext = new HashMap<>();
globalContext.put("global_key", "global_value");
FTSdk.appendGlobalContext(globalContext);
HashMap<String, Object> rumGlobalContext = new HashMap<>();
rumGlobalContext.put("rum_key", "rum_value");
FTSdk.appendRUMGlobalContext(rumGlobalContext);
HashMap<String, Object> logGlobalContext = new HashMap<>();
logGlobalContext.put("log_key", "log_value");
FTSdk.appendLogGlobalContext(logGlobalContext);
val globalContext = hashMapOf<String, Any>(
"global_key" to "global_value"
)
FTSdk.appendGlobalContext(globalContext)
val rumGlobalContext = hashMapOf<String, Any>(
"rum_key" to "rum_value"
)
FTSdk.appendRUMGlobalContext(rumGlobalContext)
val logGlobalContext = hashMapOf<String, Any>(
"log_key" to "log_value"
)
FTSdk.appendLogGlobalContext(logGlobalContext)