데이터 수집 마스킹¶
필드 전체를 마스킹하려면 setDataModifier를 사용하는 것이 좋습니다. 성능이 더 우수합니다. 세부적인 규칙을 적용해야 하는 경우 setLineDataModifier를 권장합니다.
콜백 메서드에서 복잡하거나 지연 시간이 긴 메서드를 사용하지 마십시오. SDK 데이터 쓰기 성능에 큰 영향을 미칠 수 있습니다.
FTSdk.install(
FTSDKConfig.builder("xxx")
.setDataModifier(new DataModifier() {
/**
* 특정 필드 변경
*
* @param key 필드 이름
* @param value 필드 값(원본 값)
* @return 새 값, null을 반환하면 변경하지 않음
*/
@Override
public Object modify(String key, Object value) {
if (key.equals("device_uuid")) {
return "xxx";
}
return null;
}
}).setLineDataModifier(new LineDataModifier() {
/***
* 특정 데이터 행 수정
*
* @param measurement 데이터 측정 유형: view, action, resource,
* longtask, error, df_rum_android_log
* @param data 원본 데이터의 key-value 쌍
* @return 수정해야 할 key-value (null 또는 빈 맵을 반환하면 변경하지 않음)
*/
@Override
public Map<String, Object> modify(String measurement, HashMap<String, Object> data) {
if(measurement.equals("view")){
HashMap<String,Object> changeMap = new HashMap<String,Object>();
changeMap.put("view_url", "xxx");
}
return null;
}
}))
FTSdk.install(
FTSDKConfig.builder("xxx")
.setDataModifier(object : DataModifier {
/**
* 특정 필드 변경
*
* @param key 필드 이름
* @param value 필드 값(원본 값)
* @return 새 값, null을 반환하면 변경하지 않음
*/
override fun modify(key: String, value: Any?): Any? {
return if (key == "device_uuid") {
"xxx" // 사용자 정의 device_uuid로 대체
} else {
null
}
}
})
// 단일 데이터의 여러 필드 일괄 수정
.setLineDataModifier(object : LineDataModifier {
/**
* 특정 데이터 행 수정
*
* @param measurement 데이터 측정 유형: view, action, resource,
* longtask, error, df_rum_android_log
* @param data 원본 데이터의 key-value 쌍
* @return 수정해야 할 key-value (null 또는 빈 맵을 반환하면 변경하지 않음)
*/
override fun modify(
measurement: String,
data: HashMap<String, Any>
): Map<String, Any>? {
return if (measurement == "view") {
hashMapOf("view_url" to "xxx")
} else {
null
}
}
}))