# 행동분석

MQA MPM 행동분석은 특정 앱 사용자가 어떤 경로로 앱을 이용했는지 연계하여 추적 조회할 수 있습니다. 성능 데이터와 연결된 사용자 정보(식별 정보)를 통해, 특정 사용자의 앱 실행 \~ 앱 종료까지의 화면 흐름을 추적 조회할 수 있습니다. 또한 문제가 있었던 화면을 기준으로, 성능 상세 분석을 통해 문제의 원인을 상세하게 파악할 수 있습니다. 사용자 정보 입력 후 특정 날짜, 시간대를 선택하여 사용자의 앱 시작 시간을 기준으로 사용자 행동 흐름을 분석 가능합니다.

## **1.** 개요 <a href="#overview" id="overview"></a>

행동분석은 원하는 조회 기간과  특정 사용자 정보 입력 후 사용자의 행동 흐름을 분석 가능합니다.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf30pzED3Xsp89EWOl2YWvJJVMeGi8R1jreSVJNEALXH_f-c4MDRzjXuhR4EFmDGm7qa-zZ9AQKm1JjflWPuulZkGQVuvS9fpBfkMdxmBwIouYrXIK0NljXsc4nsLPLGMCeFeYORrfD2dPH5YxNO1U74RA?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

IMQA MPM 행동분석은 다음과 같이 구성됩니다.

**❶ 조회 기간/조회 조건**\
**❷ 검색 결과**

## 2. 조회 기간/조회 조건 <a href="#userinfo" id="userinfo"></a>

조회하고자 하는 기간을 선택하고, 조회할 사용자 정보를 입력할 수 있습니다. 선택한 기간과 기준으로 행동 흐름 데이터를 조회합니다.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcUDfe_O4r-J12OqCyq-0NmPjh4hv4gLr4hCME4ToBGRhas0AtvlD7I_QQqXiKVlWlde5dGCgbYIBJ8jzAgN4qqZTIfH60XJpVS_cee2AQLY6B5XjKmQyLnVXfojspfQ8daFviz4fT8BsNrQuK4mVA-D7Pu?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

❶ 조회하고자 하는 **특정 사용자 정보** 기준을 선택합니다. 기본 ‘사용자 ID’로 설정되어 있으며 ‘사용자 Email' ‘사용자 이름'으로 선택하고 2글자 이상의 검색어를 입력합니다.&#x20;

{% hint style="info" %}
**사용자 정보**는 별도로 SDK에서 제공하는 API를 통해 데이터를 제공하는 경우에만 조회가 가능합니다.\
**사용자 정보 설정**은 '[Android > Crash 설정 > Custom User ID 등록](https://docs.imqa.io/imqa-guide/installation/android/crash-sdk-setting#custom-user-id)'을 참고하세요.
{% endhint %}

❷ 조회하고자 하는 **조회 기간**을 \[캘린더] 아이콘을 클릭하여 선택합니다. **시작일시/종료일시**는 기본 ‘오늘 날짜 00시 \~ 현재 시간’로 설정되어 있으며 ‘1일'을 조회하는 경우에는 같은 날짜로 선택합니다. 사용자의 **앱 실행 시간**을 기준으로 조회됩니다.\
❸ \[조회 하기]를 클릭하면 선택한 기간과 기준으로 데이터가 조회됩니다.

## 3. 검색 결과 <a href="#timeline" id="timeline"></a>

조회 기간과 선택한 조건으로 앱을 실행했던 사용자 행동 흐름을 확인할 수 있습니다. 수집된 사용자 정보, 앱 버전, 앱 실행 시간과 마지막 이동시간, 총 체류 시간, 이동 화면 수와 이슈 발생 수를 표시합니다. 이를 통해 이슈가 있었던 사용자의 행동 흐름을 빠르게 파악 가능하며, ‘사용자 행동분석' 페이지로 이동할 수 있습니다.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdAPjGFenZvLub7mDoMl3nBZkHcrTmfNoM8UDZYL4MgiBxIOtJUHBHCYKjrGaLwH-7lYAW8HOnVwnp126T6fK37yxlsqJmIc1Y5Lzt8wj4IvKU18B2HYXByteak-BlodKlC2fRSbBK_R9P3G2KqYFQnjdUE?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

**❶ 검색결과**\
조회된 검색결과 항목 수를 표시합니다.

**❷ 헤더(정렬)**\
기본은 최근 마지막 이동 시간 순으로 정렬됩니다.

**❸ 행동 흐름**\
사용자별 행동 흐름 정보를 표시합니다. \[행동 흐름 항목]클릭 시 ‘사용자 행동분석’ 페이지로 이동합니다.

* **행동분석 ID**: IMQA가 특정 행동 흐름을 식별하기 위해 부여한 고유 키를 표시합니다.
* **사용자 정보**: SDK에서 사전 정의한 사용자의 ID 정보가 수집되었을 경우 해당 정보로 표시합니다. 설정한 사용자 정보가 없을 경우 ‘-’ 표시됩니다.&#x20;
* **앱 버전**: 해당 사용자의 앱 버전을 표시합니다.
* **앱 실행 시간**: 해당 사용자가 앱을 실행한 시간을 표시합니다.
* **마지막 이동 시간**: 해당 사용자가 마지막으로 화면을 이동했던 시간을 표시합니다. 해당 사용자 행동분석 데이터의 가장 마지막 화면의 시작 시간을 의미합니다.
* **총 체류 시간**: 해당 사용자의 앱 실행 시간부터 마지막으로 화면을 이동했던 시간까지를 체류 시간으로 표시합니다.&#x20;
* **이동 화면 수**: 해당 사용자의 앱 이용 중 이동한 ‘네이티브', ‘웹뷰' 화면 수를 표시합니다.
* **이슈 발생 수**: 해당 사용자의 앱 이용 중 이동한 ‘네이티브', ‘웹뷰' 화면에서 발생한 크래시 발생 수를 표시합니다. 1건 이상일 경우 위험 색상으로 표시합니다.

{% hint style="info" %}
사용자가 아직 앱을 종료하지 않고 계속 이용하는 상태인 경우, 마지막 이동 시간 및 행동 흐름 정보가 업데이트 될 수 있습니다.
{% endhint %}

## 4. 사용자 행동분석 <a href="#userflow" id="userflow"></a>

사용자 행동 흐름 목록에서 선택한 사용자의 행동 흐름을 확인할 수 있습니다. 특정 사용자의 앱 실행 \~ 앱 종료까지 어떻게 앱을 이용했는지, 발생한 이슈는 없었는지 등 앱 이용 패턴에 대한 인사이트를 얻을 수 있습니다.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXelqaN2Xf81wx2u3WdoJZWeqpN1iA0pNGX6DOGRCNd35qILsnM-YaA1dfXh2N_ea2S8XWPR34hJzhBHWT9HaHHJttx5-2dsbgzjepdbFadnjj2fZrDaexgExA1fvGTwLaZHwTnlNO6mh-Dxd2TF5etd9fI?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

### 사용자 정보

사용자의 정보와 앱 시작 시간, 총 체류 시간을 표시합니다. \[상세 정보]를 클릭하여 사용자의 디바이스, 앱 정보, OS 등의 환경 정보를 자세하게 확인할 수 있습니다.&#x20;

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfIKUdWsi_5BDt4pgYMSGcvpk2Y1PsFYouDGy8SmntF59UbDyy4ysFLRRcVSzMHp4VuQZ1LNBQDZ9wc45V341LhFoy2iyrtZMreR1N9pTMoz241li9Ssm9T6MyJ2lhItPf7r9HO-BZxeVuy2kZlR9MX100?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

* **사용자 정보**: SDK에서 사전 정의한 사용자 ID, 이름, 이메일을 표시합니다.
* **디바이스**<mark style="color:red;">**\***</mark>: 해당 사용자의 디바이스 관련 정보를 표시합니다.

{% hint style="warning" %}
최신 iOS 버전의 경우, Apple의 보안정책에 의해 통신사 정보 수집이 불가능합니다. 이 경우 통신사 정보가 표시되지 않거나, ‘Unknown’ 등으로 표시될 수 있습니다.
{% endhint %}

* **앱 정보**: 해당 사용자의 앱 실행 시작시간, 버전 정보를 표시합니다.&#x20;
* **OS 정보**: 해당 사용자의 플랫폼, OS 버전을 표시합니다.
* **SDK 정보**: 해당 사용자의 앱에 설치된 IMQA SDK 버전을 표시합니다.

### 사용자 행동 흐름&#x20;

사용자의 앱 실행 \~ 앱 종료까지의 화면 흐름을 요약하여 표시합니다. 전체 경로를 빠르게 확인할 수 있고, 특정 화면 위치로 빠르게 이동하거나, 화면 단위별 문제 발생 여부를 확인할 수 있습니다.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfuCQjK9Emkvh32uQg-LTxIywPaqszAgUwBD9IshrIt46ru6psynSA2h0t1hPgcPAmuX1pdSRaIssu0w2rVo7sgpUI6si0JuQVtOv1UzBcg2ZAS_2iwdcDr7kk8KEMOLkZ1EjWLhdLBf6x_0f_oKkueITFs?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

사용자 행동 흐름은 다음과 같이 구성됩니다.

**❶ 경로 요약 표시**\
선택한 사용자 행동 흐름을 요약 표시합니다. ‘<mark style="color:purple;">앱 실행 > ‘화면1' > ‘화면2’ > … > 앱 종료</mark>' 로 표시됩니다.

**❷ 화면 단위**\
앱 사용자가 방문했던 네이티브, 웹뷰 화면 단위를 표시합니다. 네이티브 화면, 웹뷰 화면 정보를 표시합니다. 긴 화면 이름은 마우스 포인터를 올리면 표시되는 툴팁으로 확인할 수 있습니다. \[화면] 클릭 시 아래 화면 흐름에서 해당 화면의 위치를 빠르게 확인할 수 있습니다.&#x20;

**❸ 이슈 발생 화면**\
사용자 행동 흐름 중, 에러가 발생한 화면은 <mark style="color:red;">빨간색 테두리</mark>로 표시합니다.

<br>

## 4. 화면 흐름 <a href="#screenflow" id="screenflow"></a>

사용자의 행동 데이터를 화면 흐름으로 표시합니다. 사용자가 이동한 네이티브, 웹뷰 화면의 이동 경로를 확인하고, 각 화면별 성능 정보 확인과 발생한 이슈는 무엇인지, 각 성능 지표별 상세 분석 기능을 통해 문제의 원인을 상세하게 분석할 수 있습니다.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf0rleQDuGZtLYh1ilzOUaPRjakyWNEEP7x4nIlxBmqJ63KjhDy8vwIfRPu83gEWkgZe37pmgeBfoAy7_3FNPb52gRSiwo4Fohlq_BfVNMnsUwk86ux67xZgEPoryuIgRyX5m5u7IencBiy9fYWSB8GBwVl?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

화면 흐름은 다음과 같이 구성됩니다.

❶ **화면 단위**\
앱 사용자가 방문했던 네이티브, 웹뷰 화면 단위를 표시합니다. 스텝(단계) 정보, 화면 방문 시간, 화면 유형 아이콘, 네이티브 화면, 웹뷰 화면 이름, 이슈 정보를 표시합니다. 긴 화면 이름은 마우스 포인터를 올리면 표시되는 툴팁으로 확인할 수 있습니다.

{% hint style="info" %}
‘행동분석' 페이지에서 **같은 화면이 중복 표시되는 경우**, 아래의 경우에 해당할 수 있습니다.

1. 네이티브 화면 이동 없이 프래그먼트(iOS의 경우, inner View)가 호출되는 경우
2. 웹뷰 경로 단위 이후의 URL이 변경되었을 경우

**1. 네이티브 화면 이동 없이 프래그먼트(iOS의 경우, inner View)가 호출되는 경우**

IMQA MPM 행동분석은 현재 ‘네이티브' ‘웹뷰' 단위를 이동 단위로 표시하고 있습니다. 만약, 네이티브 이동 없이 프래그먼트(iOS의 경우 inner View)가 호출되는 경우, 사용자 행동 흐름 상 ‘같은 네이티브 화면'으로 표시될 수 있습니다.

**2. 웹뷰 경로 단위 이후의 URL이 변경되었을 경우**

IMQA MPM은 기본적으로 ‘웹뷰 화면’을 ‘<mark style="color:blue;">{host}:{port}/{path}</mark>’ 형태로 수집/표시합니다. 만약, 해당 웹 페이지의 경로 단위 이후 URL이 변경되는 이동이 있었을 경우, 사용자 행동 흐름2ㄷ 상 ‘같은 웹뷰 화면'으로 표시될 수 있습니다.
{% endhint %}

❷ **화면 유형**\
네이티브, 웹뷰 화면 유형에 따라 아이콘이 표시됩니다.

❸ **화면 카드 성능 표시/숨김**\
화면 카드 클릭 시 성능 지표 영역을 표시합니다. 재 클릭 시 성능 지표 영역을 닫습니다.

{% hint style="info" %}
**여러 화면의 성능 지표를 동시에 확인**하여, 전후 성능 비교 분석이 가능합니다.
{% endhint %}

## 5. 화면별 성능 정보 <a href="#screen" id="screen"></a>

사용자가 방문한 화면 별 화면 로딩시간, 최소/최대 응답시간, 최소/최대 CPU 사용량, 최소/최대 메모리 사용량을 확인하고 다른 화면과 비교할 수 있습니다. 각 성능 수치 클릭 시 성능 상세 분석 팝업을 표시합니다. 해당 화면에서 발생한 이슈가 있었을 경우 이슈 발생 여부와 건 수를 확인할 수 있습니다. 수치 클릭시 ‘행동분석별 에러 목록’을 확인할 수 있습니다.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdZyPzKFm0OTrrO3ep-SXd1AcieLucb6C_SNPwnTjUaqPXlxREVGtSQC2G5zavrB06_CDXNdc9QHuLRa8EPtUUi-aclTrJFZ_begQcqLZduirpFSEEfAXDxBdtVU0QgC9mqRoIBS0GGeG1jyXjiZmApE-U?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

* **화면 로딩시간**: 화면 흐름 N번째 특정 네이티브, 웹뷰 화면의 **화면 로딩시간**을 표시합니다. 기준치 이상일 경우 위험 색상으로 표시합니다.\
  (리액트 네이티브의 경우, 화면/컴포넌트 로딩시간 확인이 가능합니다.)
* **응답시간**: 화면 흐름 N번째 특정 네이티브, 웹뷰 화면에서 수집된 **응답시간**의 최소값과 최댓값을 표시합니다. 기준치 이상일 경우 위험 색상으로 표시합니다.
* **CPU**: 화면 흐름 N번째 특정 화면에서 수집된 **CPU 사용량**의 최소값과 최댓값을 표시합니다. 기준치 이상일 경우 위험 색상으로 표시합니다.
* **메모리**: 화면 흐름 N번째 특정 화면에서 수집된 **메모리 사용량**의 최소값과 최댓값을 표시합니다. 기준치 이상일 경우 위험 색상으로 표시합니다.
* **크래시**: 화면 흐름 N번째 특정 화면의 크래시 발생 수를 표시합니다. 1건 이상일 경우 위험 색상으로 표시합니다.

<table><thead><tr><th width="149" align="center">성능 지표</th><th width="128" align="center">산출 구간</th><th width="149" align="center">산출 값</th><th width="131" align="center">병합 방식</th><th width="130" align="center">단위</th></tr></thead><tbody><tr><td align="center"><strong>화면 로딩시간</strong></td><td align="center">특정 화면</td><td align="center">네이티브, 웹뷰<br>화면 로딩시간</td><td align="center">고유값</td><td align="center">ms</td></tr><tr><td align="center"><strong>응답시간</strong></td><td align="center">특정 화면</td><td align="center">네이티브, 웹뷰<br>응답시간</td><td align="center">최소값, 최댓값</td><td align="center">ms</td></tr><tr><td align="center"><strong>CPU</strong></td><td align="center">특정 화면</td><td align="center">CPU 사용량</td><td align="center">최소값, 최댓값</td><td align="center">%</td></tr><tr><td align="center"><strong>메모리</strong></td><td align="center">특정 화면</td><td align="center">메모리 사용량</td><td align="center">최소값, 최댓값</td><td align="center">MB</td></tr><tr><td align="center"><strong>크래시</strong></td><td align="center">특정 화면</td><td align="center">크래시 발생 수</td><td align="center">카운트</td><td align="center">건</td></tr></tbody></table>

{% hint style="info" %}
**행동분석** 기능을 통해 운영 중 수집되는 특정 앱 사용자가 앱 이용 중 **어떤 단계**에서 **어떤 성능 문제**를 겪었었는지 확인하고, 해당 사용자의 **이동 경로를 재현**해 볼 수 있습니다. 또한 문제 화면을 기준으로 전후 상황을 확인 후 ‘[성능 상세 분석](https://docs.imqa.io/imqa-guide/user-guide/mpm/performance-analysis)' 기능을 통해 문제의 원인을 상세하게 파악할 수 있습니다.
{% endhint %}

## 6. 화면별 크래시 정보 <a href="#reverse" id="reverse"></a>

사용자가 방문한 화면에서 크래시가 발생했을 경우 어떤 크래시가 발생했는지 확인할 수 있습니다. 수치 클릭시 해당 화면에서 발생한  ‘행동분석별 에러 목록’을 확인할 수 있습니다. ‘행동분석별 에러 목록'에서 특정 에러를 클릭하면 ‘사용자별 에러 상세' 페이지로 이동할 수 있습니다.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfyqkvkQi0nnyuxCz7sGEgZwUuBQDcl4pha2cjZCHbtbkoKajZvSZTFoY5beeNHmXRO4PfyT9tMO0Zlzl_ZjR1lk_3YA_N7Nz88ENP5eatKDa6ydy1H8hIWzawo7XtOSxaS9e6uQ7ocBXlJDOVDbYZ-DMq5?key=8C3xMx2Qg8H9O2BlHdriFA" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
행동분석별 에러 목록은 특정 사용자의 앱 실행 \~ 앱 종료까지의 행동 흐름에서 발생한 에러를 확인할 수 있습니다.

사용자별 에러 상세에 대한 자세한 내용은 ‘IMQA Crash 사용자 가이드 > 4.2. 사용자별 에러 상세'를 참고하세요.
{% endhint %}
