Android セッションリプレイ¶
前提条件¶
- FTSdk RUM の設定と初期化が完了し、View のモニタリング収集が有効になっていることを確認してください。
- Android セッションリプレイには
ft-sdk:1.7.0以降のバージョンが必要です。 ft-session-replayとft-session-replay-materialは同じバージョン番号を使用してください。ft-sdk1.7.2 以降ではft-session-replayへの強依存はなくなりました。セッションリプレイを有効にする場合のみ、ft-session-replayおよび関連する拡張依存関係を追加する必要があります。-
ドキュメント上部のバッジに表示されている正式リリースの安定版を優先して使用することを推奨します。
alpha、betaなどのプレリリース版は推奨しません。 -
先行機能をいち早く取り入れたい、最新機能を確認したい、または未正式リリースの変更を追跡したい場合は、GitHub で Android SDK リポジトリおよび関連する更新ログを参照してください:GuanceCloud/datakit-android
Android ヒートマップ(実験的機能)
Android ヒートマップを使用するには、ft-sdk >= 1.7.4 と ft-session-replay >= 0.1.7 の両方を併用し、RUM ユーザー行動収集とセッションリプレイを有効にする必要があります。
ft-sdk >= 1.7.0 は引き続き通常の Android セッションリプレイの最小バージョン要件です。上記のバージョン組み合わせは Android ヒートマップにのみ適用されます。
設定¶
// SDK の依存関係を追加
implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-sdk:[latest_version]'
// session replay 機能を有効にする場合
implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-session-replay:[session_replay_version]'
// session replay で material コンポーネントをサポートする場合
implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-session-replay-material:[session_replay_version]'
// session replay で compose コンポーネントをサポートする場合
implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-session-replay-compose:[session_replay_version]'
Flutter RUM コンテキスト互換性¶
ft-session-replay 0.1.5 以降では、Flutter セッションリプレイのアップロード時に使用される RUM コンテキストフィールドと互換性があります。Android ネイティブプロジェクトに Flutter ページまたは Flutter SDK 収集リンクが同時に存在する場合、ft-session-replay:0.1.5 以降にアップグレードすると、追加設定なしで Flutter リプレイデータを対応するリプレイセグメントに正しくマッピングできます。
ハイブリッドシナリオでは、最初に RUM を初期化してからセッションリプレイを初期化し、
app_id、session_id、view_idなどのコンテキストが確立されていることを確認することを推奨します。
コード呼び出し¶
| メソッド名 | 型 | 必須 | 説明 |
|---|---|---|---|
| setSampleRate | Float | いいえ | サンプリングレートを設定します。範囲は [0,1]、0 は収集なし、1 は全収集、デフォルト値は 1 です。 |
| setSessionReplayOnErrorSampleRate | Float | いいえ | エラーサンプリングレートを設定します。セッションが setSampleRate でサンプリングされていない場合でも、セッション中にエラーが発生した場合、エラー発生の 1 分前までのデータを収集できます。範囲は [0,1]、0 は収集なし、1 は全収集、デフォルト値は 0 です。ft-session-replay 0.1.2-alpha01 以降でサポート |
| setPrivacy | SessionReplayPrivacy | いいえ | SessionReplayPrivacy.ALLOW プライバシーデータをマスクしない、SessionReplayPrivacy.MASK すべてのデータ(テキスト、CheckBox、RadioButton、Switch)をマスクする、SessionReplayPrivacy.USER_INPUT(推奨)ユーザーが入力した一部のデータ(入力ボックス内のテキスト、CheckBox、RadioButton、Switch)をマスクする、デフォルトは SessionReplayPrivacy.MASK。まもなく非推奨となります。互換性は維持されますが、setTouchPrivacy、setTextAndInputPrivacy を使用したマスク設定を推奨します |
| setTextAndInputPrivacy | TextAndInputPrivacy | いいえ | TextAndInputPrivacy.MASK_SENSITIVE_INPUTS パスワードなどの情報のみマスクする、TextAndInputPrivacy.MASK_ALL_INPUTS ユーザーが入力した一部のデータ(入力ボックス内のテキスト、CheckBox、RadioButton、Switch)をマスクする、TextAndInputPrivacy.MASK_ALL すべてのデータ(テキスト、CheckBox、RadioButton、Switch)をマスクする。デフォルトは TextAndInputPrivacy.MASK_ALL、設定後は setPrivacy の設定を上書きします、ft-session-replay 0.1.1-alpha01 以降でサポート |
| setImagePrivacy | ImagePrivacy | いいえ | ImagePrivacy.MASK_ALL すべての画像をマスクする、ImagePrivacy.MASK_LARGE_ONLY 大きな画像のみマスクする(100x100 dp を超えるコンテンツ画像)、ImagePrivacy.MASK_NONE 画像をマスクしない。デフォルトは ImagePrivacy.MASK_ALL、設定後は setPrivacy の設定を上書きします、ft-sdk、>= 1.7.0-alpha40、ft-session-replay、>= 0.1.3-alpha14 |
| setTouchPrivacy | TouchPrivacy | いいえ | TouchPrivacy.SHOW タッチデータをマスクしない、TouchPrivacy.HIDE タッチデータをマスクする。設定後は setPrivacy の設定を上書きします、ft-session-replay 0.1.1-alpha01 以降でサポート |
| addExtensionSupport | ExtensionSupport | いいえ | 追加のカスタムサポートを追加します。ft-session-replay-material を使用すると、MaterialExtensionSupport が提供する追加の Material コンポーネント収集サポートを利用できます。 |
プライバシーオーバーライド¶
ft-session-replay 0.1.1-alpha01 以降でサポート
SDK は、FTSessionReplayConfig によるグローバルマスクレベルの設定に加えて、ビューレベルでのこれらの設定のオーバーライドもサポートしています。
ビューレベルのプライバシーオーバーライド:
- 画像マスクレベルのオーバーライドをサポート
- テキストおよび入力マスクレベルとタッチマスクレベルのオーバーライドをサポート
- 特定のビューの完全非表示の設定をサポート
注意:
- オーバーライド設定を正しく認識するには、ビューのライフサイクルのできるだけ早い段階で適用してください。これにより、設定されたオーバーライドが適用される前にセッションリプレイがビューを処理するのを防ぎます。
- プライバシーオーバーライドは、ビューとその子ビューに影響します。つまり、オーバーライドがすぐに有効にならない可能性のあるビュー(例えば、画像オーバーライドをテキスト入力に適用する場合)に適用された場合でも、オーバーライドはすべての子ビューに適用されます。
- プライバシーオーバーライドの優先順位:子ビュー > 親ビュー > グローバル設定
画像オーバーライド¶
ft-sdk、>= 1.7.0-alpha40、ft-session-replay、>= 0.1.3-alpha14
画像プライバシーをオーバーライドするには、ビューインスタンスで PrivacyOverrideExtensions.setSessionReplayImagePrivacy(View,ImagePrivacy) を使用して、ImagePrivacy 列挙型のいずれかの値に設定します。既存のオーバーライドルールを削除するには、属性を null に設定します。
テキストと入力のオーバーライド¶
テキストと入力のプライバシーをオーバーライドするには、ビューインスタンスで PrivacyOverrideExtensions.setSessionReplayTextAndInputPrivacy(View,TextAndInputPrivacy) を使用して、TextAndInputPrivacy 列挙型のいずれかの値に設定します。既存のオーバーライドルールを削除するには、属性を null に設定します。
タッチオーバーライド¶
タッチプライバシーをオーバーライドするには、ビューインスタンスで PrivacyOverrideExtensions.setSessionReplayTouchPrivacy(View,TouchPrivacy) を使用して、TouchPrivacy 列挙型のいずれかの値に設定します。既存のオーバーライドルールを削除するには、属性を null に設定します。
非表示要素オーバーライド¶
完全に非表示にする必要がある機密要素については、PrivacyOverrideExtensions.setSessionReplayHidden(View,Boolean) を使用して設定します。
要素を非表示に設定すると、リプレイでは "Hidden" というプレースホルダーに置き換えられ、その子ビューは記録されません。
注意:ビューを非表示に設定しても、その要素でのタッチインタラクションの記録は防止されません。タッチインタラクションを非表示にするには、要素を非表示にするだけでなく、タッチオーバーライド を使用してください。
Webview セッションリプレイ¶
ft-session-replay 0.1.3-alpha11、ft-sdk 1.7.0-alpha36 以降でサポート
WebView セッションリプレイを使用するには、WebView でアクセスするページに Web モニタリング SDK を統合し、WebView でセッションリプレイを有効にする必要があります。
Tencent Webview X5 サポート¶
Jetpack Compose サポート¶
ft-session-replay-composeとft-session-replayは同じバージョン番号を使用してください。
Android セッションリプレイは、Jetpack Compose インターフェースの収集とリプレイをサポートしています。Compose ページを使用する場合は、追加で Compose 拡張依存関係を導入し、FTSessionReplayConfig に ComposeExtensionSupport を追加する必要があります。
依存関係の追加¶
implementation 'com.cloudcare.ft.mobile.sdk.tracker.agent:ft-session-replay-compose:[session_replay_version]'
初期化設定¶
FTSdk.initSessionReplayConfig(new FTSessionReplayConfig().setSampleRate(1f)
.setTouchPrivacy(TouchPrivacy.SHOW)
.setImagePrivacy(ImagePrivacy.MASK_LARGE_ONLY)
.setTextAndInputPrivacy(TextAndInputPrivacy.MASK_SENSITIVE_INPUTS)
.addExtensionSupport(new ComposeExtensionSupport())
.addExtensionSupport(new MaterialExtensionSupport()), context);
FTSdk.initSessionReplayConfig(FTSessionReplayConfig().setSampleRate(1f)
.setTouchPrivacy(TouchPrivacy.SHOW)
.setImagePrivacy(ImagePrivacy.MASK_LARGE_ONLY)
.setTextAndInputPrivacy(TextAndInputPrivacy.MASK_SENSITIVE_INPUTS)
.addExtensionSupport(ComposeExtensionSupport())
.addExtensionSupport(MaterialExtensionSupport()), context)
Compose プライバシーオーバーライド¶
Compose ページでは、Modifier を使用してセッションリプレイのプライバシー設定をオーバーライドできます:
sessionReplayHide(Boolean):指定された Compose ノードを非表示にするsessionReplayImagePrivacy(ImagePrivacy):画像プライバシーレベルをオーバーライドするsessionReplayTextAndInputPrivacy(TextAndInputPrivacy):テキストと入力のプライバシーレベルをオーバーライドするsessionReplayTouchPrivacy(TouchPrivacy):タッチプライバシーレベルをオーバーライドする
現在の制限事項¶
- Compose リプレイはセマンティックノードとコンポーネントマッピングに依存するため、ピクセル単位の再現は保証されません。
- 現在、一般的なテキスト、入力ボックス、画像、ボタン、スイッチ、スライダー、ラジオボタン、チェックボックス、タブ、およびコンテナ系コンポーネントのリプレイをサポートしています。
Brushの背景は現在サポートされていません。例えば、線形グラデーションや放射状グラデーションなどの背景は元のグラデーション効果で再現されません。重要なデモ領域では、ソリッドカラーの背景を優先して使用することを推奨します。