콘텐츠로 이동

데이터 수집 마스킹

필드 전체를 마스킹하려면 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
        }
    }
}))

문서 평가

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