カスタムタグの使用¶
コンパイル設定方式¶
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 の以降のデータ送信時に、対応するタグが自動的に付与されます。
この使用方法は、ログイン、API リクエスト、ローカルの非同期初期化など、タグデータを遅延して取得する必要があるシナリオに適しています。
!!! warning
SDK 初期化設定内の `globalContext` や SDK 組み込みフィールドと同じキーを使用しないでください。同名の場合は、初期化設定の静的タグが動的に追加されたタグよりも優先されます。
使用方法¶
/**
* 動的にグローバルタグを設定する
* @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)