動的構成と動的更新アドレス¶
動的構成の手動同期¶
FTSdk を使用して動的構成を手動で同期します。自動更新が要件を満たさない場合に、手動呼び出しによって更新タイミングを調整します。
ft-sdk >= 1.6.16 でサポートされています。
FetchResult.onConfigSuccessFetched(RemoteConfigBean configBean, String jsonConfig)を使用して、環境変数を独自に解析できます。
/**
* リモート構成を手動で更新します。呼び出し頻度は FTSDKConfig.setRemoteConfigMiniUpdateInterval の影響を受けます。
*/
FTSdk.updateRemoteConfig();
/**
* リモート構成を手動で更新します。このメソッドは FTSDKConfig.setRemoteConfigMiniUpdateInterval の設定を無視します。
*
* @param remoteConfigMiniUpdateInterval リモート構成の更新間隔(秒)[0,)
* @param result 更新結果を返すコールバック
*/
FTSdk.updateRemoteConfig(int remoteConfigMiniUpdateInterval, FTRemoteConfigManager.FetchResult result);
/**
* リモート構成を手動で更新します。呼び出し頻度は FTSDKConfig.setRemoteConfigMiniUpdateInterval の影響を受けます。
*/
FTSdk.updateRemoteConfig()
/**
* リモート構成を手動で更新します。このメソッドは FTSDKConfig.setRemoteConfigMiniUpdateInterval の設定を無視します。
*
* @param remoteConfigMiniUpdateInterval リモート構成の更新間隔(秒)[0,)
* @param result 更新結果を返すコールバック
*/
FTSdk.updateRemoteConfig(remoteConfigMiniUpdateInterval, result)
コードサンプル¶
FTSdk.updateRemoteConfig(0, new FTRemoteConfigManager.FetchResult() {
@Override
public void onResult(boolean success) {
//
}
@Override
public RemoteConfigBean onConfigSuccessFetched(RemoteConfigBean configBean, String jsonConfig) {
// オプションの拡張:カスタム解析を行い、ローカル構成を変更します
boolean isVip = false;
try {
JSONObject jsonObject = new JSONObject(jsonConfig);
String userid = jsonObject.optString("custom_userid");
isVip = (userid.equals("custom_user_test6"));
} catch (JSONException e) {
}
if (isVip) {
configBean.setRumSampleRate(1f);
configBean.setLogSampleRate(1f);
configBean.setTraceSampleRate(1f);
}
return configBean;
}
});
FTSdk.updateRemoteConfig(0, object : FTRemoteConfigManager.FetchResult {
override fun onResult(success: Boolean) {
//
}
override fun onConfigSuccessFetched(
configBean: RemoteConfigBean,
jsonConfig: String
): RemoteConfigBean {
// オプションの拡張:カスタム解析を行い、ローカル構成を変更します
var isVip = false
try {
val jsonObject = JSONObject(jsonConfig)
val userId = jsonObject.optString("custom_userid")
isVip = userId == "custom_user_test6"
} catch (e: JSONException) {
// ignore
}
if (isVip) {
configBean.setRumSampleRate(1f)
}
return configBean
}
})
AndroidID 取得の動的な有効化/無効化¶
FTSdk を使用して、SDK 内で Android ID を取得するかどうかを設定します。
送信先アドレスの動的更新¶
FTSdk を使用して、SDK 実行時にデータ送信先アドレスを動的に切り替えます。設定が成功すると、後続のデータは新しいアドレスにアップロードされ続けます。
ft-sdk >= 1.6.17 でサポートされています。
setDatakitUrlとsetDatawayUrlはどちらか一方を選択して使用します。setDatawayUrlを使用する場合は、新しいclientTokenも同時に渡す必要があります。
ユースケースの説明¶
FTSDKConfig.builder() は、初期化時に datakitUrl または datawayUrl を渡さないことをサポートしています。このシナリオでは、SDK はデータ収集を実行しますが、アップロードは行いません。
その後、FTSdk.setDatakitUrl(...) または FTSdk.setDatawayUrl(..., ...) を呼び出して送信先アドレスを動的に設定すると、SDK はローカルキャッシュの消費を開始し、データ送信を実行します。
注意事項として、送信先アドレスが設定されていない間も、収集されたデータはローカルキャッシュの上限の制限を受けます。キャッシュ上限は主に以下の設定によって影響を受けます。
FTLoggerConfig.setLogCacheLimitCountFTRUMConfig.setRumCacheLimitCountFTSDKConfig.enableLimitWithCacheSizeに対応する合計キャッシュサイズの上限
キャッシュが上限に達した場合、上限を超えたデータは破棄される可能性があります。そのため、このモードでは速やかに送信先アドレスを補完するか、ビジネスシナリオに合わせてキャッシュ制限を適切に設定することをお勧めします。
| メソッド名 | 型 | 必須 | 意味 |
|---|---|---|---|
| setDatakitUrl | String | はい | Datakit 送信先アドレスを動的に設定します。設定が成功すると、SDK は新しい Datakit アドレスにデータをアップロードし続けます。 |
| setDatawayUrl | String, String | はい | Dataway 送信先アドレスと clientToken を動的に設定します。設定が成功すると、SDK は新しい Dataway アドレスにデータをアップロードし続けます。 |