UniApp セッションリプレイ¶
UniApp セッションリプレイは現在 Android と iOS をサポートしており、HarmonyOS は未サポートです。通常の uni-app はオプションの GC-UniSessionReplay モジュールで初期化します。uni ミニアプリは、ホストアプリが対応プラットフォームの Native SDK を介して初期化します。
前提条件¶
- UniApp アプリケーション連携 が完了し、Mobile SDK、RUM、View 収集が初期化されていること
0.3.0以降のGC-UniPlugin、GC-JSPlugin、GC-UniSessionReplayを使用していること。3 つのモジュールのバージョン番号は一致している必要があります- HBuilderX のバージョンが
4.25.0以上であること - Android は API 24 以上、iOS は 12.0 以上をサポート
インストール¶
SDK ソースコードリポジトリの対応バージョンの Hbuilder_Example/uni_modules から、GC-UniSessionReplay を業務プロジェクトの uni_modules にコピーします。
初期化¶
最初に Mobile SDK と RUM の初期化を完了し、次に Session Replay を初期化します。View の自動収集を開始する前に、GCUniSessionReplay.setConfig() を 1 回呼び出すことを推奨します。
import {
GCUniSessionReplay,
GCSessionReplayTouchPrivacy,
GCSessionReplayTextAndInputPrivacy,
GCSessionReplayImagePrivacy
} from '@/uni_modules/GC-UniSessionReplay';
GCUniSessionReplay.setConfig({
sampleRate: 100,
sessionReplayOnErrorSampleRate: 0,
touchPrivacy: GCSessionReplayTouchPrivacy.SHOW,
textAndInputPrivacy:
GCSessionReplayTextAndInputPrivacy.MASK_SENSITIVE_INPUTS,
imagePrivacy: GCSessionReplayImagePrivacy.MASK_NON_BUNDLED_ONLY,
enableLinkRUMKeys: ['wgt_id', 'wgt_name']
});
推奨される初期化順序:
mobileAgent.sdkConfig()
-> rum.setConfig()
-> GCUniSessionReplay.setConfig()
-> gcViewTracking.startTracking()
uni-app ページコンテンツの収集¶
Android および iOS プラットフォームの uni-app ページは、アプリケーション内蔵の WebView 上で動作します。GC-UniSessionReplay を初期化した後、gcViewTracking.evalSessionReplayJS() を使用して Web 監視 SDK を uni-app のレンダリング WebView に注入し、Web Session Replay を有効にする必要があります。この操作により、セッションリプレイで uni-app のページコンテンツとユーザーのページ操作を表示できるようになります。
gcViewTracking.startTracking() を呼び出す前に、以下の注入スクリプトを設定してください。
import { gcViewTracking } from '@/uni_modules/GC-JSPlugin';
// #ifdef APP-PLUS
const jsCode = `
// uni-app のレンダリング WebView に Web 監視 SDK をロード
var script = document.createElement('script');
script.src = 'https://static.guance.com/browser-sdk/v3/dataflux-rum.js';
script.onload = function() {
DATAFLUX_RUM.setGlobalContextProperty('wgt_id', 'wgt_id_1');
DATAFLUX_RUM.setGlobalContextProperty('wgt_name', 'wgt_name_1');
window.DATAFLUX_RUM &&
window.DATAFLUX_RUM.init({
// ブリッジモードでもデータ受信アドレスは検証しますが、RUM データは
// FTWebViewJavascriptBridge を介して送信され、このアドレスにはリクエストしません
datakitOrigin: window.location.origin,
});
window.DATAFLUX_RUM.startSessionReplayRecording();
};
document.head.appendChild(script);
`;
gcViewTracking.evalSessionReplayJS(jsCode);
// #endif
wgt_id と wgt_name はオプションのカスタムフィールドで、uni-app レンダリング層によって生成されたデータを識別するために使用できます。これらのフィールドをセッションリプレイデータに関連付ける必要がある場合は、GCUniSessionReplay.setConfig() の enableLinkRUMKeys でフィールド名を宣言し、DATAFLUX_RUM.setGlobalContextProperty() で同名フィールドに実際の値を設定します。これらのフィールドでデータを区別する必要がない場合は、enableLinkRUMKeys を設定せず、注入スクリプト内の 2 行の setGlobalContextProperty() 呼び出しを削除してください。
evalSessionReplayJS() は uni-app ページに対応するレンダリング WebView でスクリプトを実行するため、各ページで繰り返し呼び出す必要はありません。
ここで収集されるのは uni-app 自身のレンダリングページです。<web-view> コンポーネントでロードされた外部 Web ページを収集する必要がある場合は、WebView データ監視 を参照してください。
パラメータ説明¶
| パラメータ名 | パラメータタイプ | 必須 | パラメータ説明 |
|---|---|---|---|
| sampleRate | number | いいえ | サンプリングレート。範囲 [0,100]。0 は収集しない、100 は全収集。デフォルト 100 |
| sessionReplayOnErrorSampleRate | number | いいえ | エラー収集率。範囲 [0,100]。sampleRate のサンプリングに該当しないセッションでエラーが発生した場合、この割合でエラー発生 1 分前のデータを収集。デフォルト 0 |
| touchPrivacy | string | いいえ | タッチ操作のプライバシーレベル:show、hide。デフォルト hide |
| textAndInputPrivacy | string | いいえ | テキストと入力のプライバシーレベル:maskSensitiveInputs、maskAllInputs、maskAll。デフォルト maskAll |
| imagePrivacy | string | いいえ | 画像のプライバシーレベル:maskNonBundledOnly、maskAll、maskNone。デフォルト maskAll。Android では maskNonBundledOnly は大きな画像のみをマスクする動作にマッピングされます |
| enableSwiftUI | boolean | いいえ | iOS のみ。SwiftUI ページを録画するかどうか。デフォルト false |
| enableLinkRUMKeys | array |
いいえ | 指定した RUM Context フィールドを Session Replay データに関連付けます |
セッションリプレイの表示¶
モバイル端末のセッションリプレイの表示方法は Web 端末と同じです。詳細は Web セッションリプレイのアクセス方法 を参照してください。