データ収集のマスキング¶
フィールドを完全にマスキングする場合は、パフォーマンスがより優れている 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 または空の map を返すと変更なしと見なされます)
*/
@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 または空の map を返すと変更なしと見なされます)
*/
override fun modify(
measurement: String,
data: HashMap<String, Any>
): Map<String, Any>? {
return if (measurement == "view") {
hashMapOf("view_url" to "xxx")
} else {
null
}
}
}))