モバイル RUM のセッションリプレイ(ベータ版)

セッションリプレイを使用すると、クリック、スクロール、ナビゲーションなどのインタラクションを記録することで、モバイルアプリケーションでのユーザーアクティビティを追跡できます。セッションのリプレイを見ると、次のことができます。
  • ユーザーエクスペリエンスを最適化する。

  • アプリケーションクラッシュのエラーをデバッグする。

  • アプリケーションが低速である理由を診断します。

注: 免責事項

このドキュメントでは、現在早期プレビュー(「ベータ」)としてのみ利用可能な製品について説明します。Splunk AppDynamics は、ベータ版およびその資料(本書の内容を含む)について、一般公開する前、または最終的に一般公開しないと決定した場合でも、理由を問わず、お客様への通知および補償なしにいつでも変更する権利を留保します。この資料は、将来の製品機能を保証するものではありません。購入の判断材料にはしないでください。実際の製品の成果は、Splunk AppDynamics およびお客様のテクノロジーの変化、経済動向やターゲット市場に関連する要因、他社の買収、人員の雇用・解雇、およびその他の要因により、将来予測に関する記述とは異なる場合があります。詳細については、 https://www.splunk.com/en_us/legal/appdynamics-limited-license-agreement.html の全用語を参照してください。

考慮すべき点:

ベータ段階では、各アカウントは 1 ヵ月あたり最大 20,000 件のセッションリプレイを記録できます。ベータ版が終了したら、アカウントマネージャに問い合わせて、完全な機能をご購入ください。

ストレージはデフォルトで 8 日間に設定されており、ベータ版では延長することはできません。ベータ版が終了したら、拡張ストレージ SKU を購入してストレージを追加できます。

前提条件

セッションリプレイを使用するには、次の条件が満たされていることを確認してください。
  • コントローラ 25.1 以降

  • iOS エージェント 25.2 以降

  • Android エージェント 25.2 以降

セッションリプレイをレポートするための iOS エージェントの設定

モバイルアプリケーションのセッションリプレイをレポートするには、次のように iOS エージェントを設定する必要があります。
Objective-C
PYTHON
#import <ADEumInstrumentation/ADEumInstrumentation.h>
#import "AppDelegate.h"
  
    // ...
    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];
        //The default SaaS EUM Server and Screenshot Service are in the Americas,
        // so you can omit the following settings if you are in the Americas.
        config.collectorURL = @"https://<your_region>-col.eum-appdynamics.com";
        config.screenshotURL = @"https://<your_region>-image.eum-appdynamics.com";
        config.sessionReplayURL = @"https://<your_region>-blob-service.eum-appdynamics.com";
        [ADEumInstrumentation initWithConfiguration: config];
        // other tasks
        return YES;
     }
Swift
JAVASCRIPT
#import <ADEumInstrumentation/ADEumInstrumentation.h>
#import "AppDelegate.h"
  
    // ...
     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>)
        config.collectorURL = "https://<your_region>.eum-appdynamics.com"
        config.screenshotURL = "https://<your_region>-image.eum-appdynamics.com"
        config.sessionReplayURL = "https://<your_region>-blob-service.eum-appdynamics.com"
        ADEumInstrumentation.initWith(config)
        // other tasks
        return true
    }
// ...
注: オレゴン(PDX)リージョンにリージョンを追加しないでください。

セッションリプレイをレポートするための Android エージェントの設定

モバイルアプリケーションのセッションリプレイをレポートするには、次のように Android エージェントを設定する必要があります。
  1. 以下の方法でエージェントを初期化します。
    • .withSessionReplayEnabled(true)

    • .withBlobServiceURL(configHelper.getSessionReplayUrl())

    PYTHON
    import com.appdynamics.eumagent.runtime.Instrumentation;
    ...
    @Override public void onCreate(Bundle savedInstanceState) {
      Instrumentation.start(AgentConfiguration.builder()
        .withAppKey("<EUM_APP_KEY>")
        .withContext(getApplicationContext())
        // The default SaaS EUM Server and Screenshot Service are in the Americas,
        // so you can omit the following settings if you are in the Americas.
        .withSessionReplayEnabled(true)
        .withBlobServiceURL(configHelper.getSessionReplayUrl()) 
        .build());
      ...
    }
  2. アプリケーション モジュール レベルの build.gradle ファイルで、セッションリプレイ SDK を追加します。
    JSON
    ...
    ...
    repositories {
            maven {
                url = "https://sdk.smartlook.com/android/release"
            }
        }
    ...
    ...
    dependencies {
            implementation 'com.cisco.android:sr-instrumentation-session-recording-core:1.0.12' 
    }

セッションリプレイの有効化

管理者はセッションリプレイのみを有効にできます。選択したモバイルアプリケーションのセッションリプレイを有効にするには、以下のオプションを実行します。
  1. コントローラ UI にログインします。
  2. 対象のモバイルアプリケーションを開きます。
  3. 左のナビゲーションメニューで、[Configuration] を選択します。
  4. [Mobile App Group Configuration.] をクリックします。
  5. [Session Replay] タブで、[Enable Session Replay] を選択します。
    注: Xcode's Main Thread Checker

    デバッグモードで iOS アプリを起動すると、数秒間停止することがあります。セッションリプレイを有効にすると、セッションリプレイが開始し警告が表示されます。この問題は、Xcode のメインスレッドチェッカーの診断によって引き起こされます。

    CODE
    Main Thread Checker: UI API called on a background thread: -[UIView drawViewHierarchyInRect:afterScreenUpdates:]

    この警告は無害であり、iOS エージェントがバックグラウンドで画面をキャプチャしていることが原因で発生します。別の方法(メインスレッドでスクリーンショットをキャプチャする)は、アプリケーション UI の不具合を引き起こす可能性があります。そのため、この方法で実装し、この警告を表示することは、シームレスな記録機能を有効にするために必要なトレードオフです。

    この警告は、デバッグ中にアプリケーションが短時間フリーズする場合にも表示されます。このフリーズは実稼働環境ビルドでは発生せず、メインスレッドチェッカーの Xcode 診断オプションが原因で発生します。

    このオプションは、それぞれの実行スキームの診断オプションでオフにすることができます。詳細については、「メモリ、スレッド、クラッシュの問題の早期診断」の「バックグラウンドセクションの不適切な UI 更新の検出」セクションを参照してください。

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

セッションリプレイでは、複数の録音とユーザーインタラクションが組み合わされています。セッションリプレイを表示するには、以下の手順を実行します。
  1. ユーザー Experience > Mobile Apps に移動します。記録が可能な場合、[セッションリプレイ(Session Replay)] に再生アイコンが表示されます。[セッションリプレイ(Session Replay)] タブを展開します。
  2. セッションリプレイを有効にしたアプリケーションを選択します。
  3. Sessions を選択します。
    記録が可能な場合、Session Replay に再生アイコンが表示されます。
  4. [Session Replay] タブを展開します。
Session Replay は、セッションのアクティブなセグメントを強調表示します。録画またはユーザー アクティビティがない場合は、空白の画面が表示されます。
セッションリプレイの表示中に、以下のアクションを実行できます。
  • 再生速度を調整する。

  • Video モードと Wireframe モードを切り替える。Wireframe モードでは、セッションリプレイは UI レイアウトだけを表示し、テキストはマスクされます。