メインコンテンツまでスキップ

カスタム属性を設定してみる

カスタム属性とは、キャプチャに対して任意のKey-Value形式のデータを設定できる機能です。DeployGate SDKを通してKey-Valueデータを設定すると、それらのKey-Valueデータが紐づいたキャプチャを保存できるようになりました。開発者がエラー発生時などに取得しておきたいデータをあらかじめ設定することで、更にフィードバックの質を高めることが可能です。

ご利用条件

カスタム属性をご利用いただくには、DeployGate SDK v4.8.0以上、DeployGate Androidクライアントアプリ v1.17.0以上を利用する必要があります。

設定方法

カスタム属性は DeployGate SDK の DeployGate.getRuntimeExtra() もしくは DeployGate.getBuildEnvironment() から設定できます。

CustomAttributes buildEnvironmentAttrs = DeployGate.getBuildEnvironment();

// BuildConfig.BUILD_TYPE -> release
buildEnvironmentAttrs.putString("build_type", BuildConfig.BUILD_TYPE);
// BuildConfig.FLAVOR -> devreal
buildEnvironmentAttrs.putString("flavor", BuildConfig.FLAVOR);

CustomAttributes runtimeExtraAttrs = DeployGate.getRuntimeExtra();

runtimeExtraAttrs.putString("string", "value");
runtimeExtraAttrs.putInt("int", 123);
runtimeExtraAttrs.putBoolean("boolean", true);
runtimeExtraAttrs.putFloat("float", 1.23f);
runtimeExtraAttrs.putDouble("double", 1.23);
runtimeExtraAttrs.putLong("long", 123L);

Capture custom attribute

削除について

任意のタイミングで保存した値については削除を行うこともできます。

CustomAttributes attrs = DeployGate.getRuntimeExtra(); // もしくは DeployGate.getBuildEnvironment();

// 値の設定
attrs.putString("string", "value");

// 値の削除
attrs.remove("string");
attrs.removeAll();

その他利用に関する制限や仕様について

その他利用に関する制限や仕様については、 https://github.com/DeployGate/deploygate-android-sdk の README や利用しているSDKバージョンのコードをご参照ください。

利用例

例えばアプリ利用時にログインをし、買い物ができるシンプルなECアプリがあるとします。 このようなアプリのQAや動作確認時に不具合を発見した場合には、原因究明のためにどのユーザーでログインしていたのか、どの商品を閲覧していたのか、その時のユーザーの会員ランクはどんなものだったのかなどの情報が有益になる場合があります。

上記のように動的に変化する値を記録したい場合は、DeployGate.getRuntimeExtra(); を利用して、カスタム属性を設定してください。 以下のコードをアプリケーションの任意の箇所に記述しておくことで、login_user_idlast_access_item_iduser_rank を保存するキャプチャに紐づけることができます。

CustomAttributes attrs = DeployGate.getRuntimeExtra();

attrs.putInt("login_user_id", 123);
attrs.putInt("last_access_item_id", 456);
attrs.putString("user_rank", "Premium");

またその不具合が発生したアプリはProduction環境で動作していたのか、テスト環境なのか、開発環境なのかなどのビルド時に決定される値が、原因究明時に必要となる場合もあります。ビルド環境といった静的な情報を記録する際は DeployGate.getBuildEnvironment(); を利用して、カスタム属性を設定してください。

CustomAttributes attrs = DeployGate.getBuildEnvironment();

attrs.putString("build_type", BuildConfig.BUILD_TYPE); // Release
attrs.putString("flavor", BuildConfig.FLAVOR); // Staging
attrs.putString("api_endpoint", BuildConfig.API_ENDPOINT); // https://staging.example.com/api

このように、カスタム属性を利用することでキャプチャに対してさまざまな情報を付与することができるので、不具合の原因究明に役立たせることができます。

Capture custom attribute usecase