コンテンツにスキップ

UniApp セッションリプレイ

UniApp セッションリプレイは現在 Android と iOS をサポートしており、HarmonyOS は未サポートです。通常の uni-app はオプションの GC-UniSessionReplay モジュールで初期化します。uni ミニアプリは、ホストアプリが対応プラットフォームの Native SDK を介して初期化します。

前提条件

  • UniApp アプリケーション連携 が完了し、Mobile SDK、RUM、View 収集が初期化されていること
  • 0.3.0 以降の GC-UniPluginGC-JSPluginGC-UniSessionReplay を使用していること。3 つのモジュールのバージョン番号は一致している必要があります
  • HBuilderX のバージョンが 4.25.0 以上であること
  • Android は API 24 以上、iOS は 12.0 以上をサポート

インストール

SDK ソースコードリポジトリの対応バージョンの Hbuilder_Example/uni_modules から、GC-UniSessionReplay を業務プロジェクトの uni_modules にコピーします。

uni_modules/
├── GC-JSPlugin
├── GC-UniPlugin
└── GC-UniSessionReplay

初期化

最初に 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_idwgt_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 いいえ タッチ操作のプライバシーレベル:showhide。デフォルト hide
textAndInputPrivacy string いいえ テキストと入力のプライバシーレベル:maskSensitiveInputsmaskAllInputsmaskAll。デフォルト maskAll
imagePrivacy string いいえ 画像のプライバシーレベル:maskNonBundledOnlymaskAllmaskNone。デフォルト maskAll。Android では maskNonBundledOnly は大きな画像のみをマスクする動作にマッピングされます
enableSwiftUI boolean いいえ iOS のみ。SwiftUI ページを録画するかどうか。デフォルト false
enableLinkRUMKeys array いいえ 指定した RUM Context フィールドを Session Replay データに関連付けます

セッションリプレイの表示

モバイル端末のセッションリプレイの表示方法は Web 端末と同じです。詳細は Web セッションリプレイのアクセス方法 を参照してください。

フィードバック

このページは役に立ちましたか?