モバイルアプリのクラッシュ原因を効率的に分析しよう

モバイルアプリがクラッシュに至るまでの経路を俯瞰して把握し、より効率的に原因分析することを可能にするNew Relic Mobile User Journeyをご紹介します。

# New Relic Mobileとは
すでにNew Relic Mobileをご存知の方は次のセクションに飛んでいただいて大丈夫です。

オブザーバビリティプラットフォームであるNew Relicの一機能であるモバイル監視機能（New Relic Mobile）は、モバイルアプリに組み込まれたSDKがモバイルアプリのパフォーマンスやエラー、ユーザー操作などを記録することで、モバイルアプリにおけるユーザー操作、パフォーマンスやアプリのエラー、クラッシュなどの問題を分析できる機能です。


SwiftやObjective-C、Javaなどで開発されたiOS/Androidのネイティブアプリはもちろん、FultterやReact Native、Xamarinなどのクロスプラットフォームフレームワーク、ゲームでよく利用されるUnity、Unreal Engineにも対応しています。


また、モバイルアプリと通信しているバックエンドのアプリケーションと自動的に情報を関連づけるので、エンドツーエンドでユーザー影響のある問題の調査を効率的に行えることが特徴です。

ざっくりですがNew Relic Mobileでは以下のようなことができます。
- クラッシュや例外の分析
- HTTP通信などネットワークパフォーマンスの分析
- バックエンドのアプリケーションでの一気通貫でのボトルネックやエラーの分析
- バージョン毎の品質分析
- 利用者の地域や端末種別、ユーザー操作の分析
- ビジネス的なKPIの収集と可視化、分析

New Relic Mobileの詳細については公式ドキュメントをご参照ください。

https://docs.newrelic.com/jp/docs/mobile-monitoring/new-relic-mobile/get-started/introduction-mobile-monitoring/


# モバイルアプリのクラッシュ分析

New Relic Mobileの提供するクラッシュ分析機能によって、モバイルアプリがクラッシュした際のトレースや、クラッシュに至ったユーザー操作を簡単に把握することができます。

例えば、以下の画像はクラッシュ1件の情報を表示した画面ですが、クラッシュ時のスタックトレースや、クラッシュに至るまでのユーザー操作、OSや端末などの環境情報が確認でき、クラッシュの原因分析に利用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/4688170c-387e-fef8-e169-39daa4920fcd.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/d99fa5f1-8a3c-4c4d-d957-b885b23826e6.png)


一方で、消費者向けのモバイルアプリなど、ユーザー数やユーザーの利用回数が多いモバイルアプリの場合、クラッシュの詳細情報を1件、1件確認しているのではラチがあきません。

膨大な量のクラッシュの情報を全件見るわけにもいきませんし、ある<strong>クラッシュ1件が特定の条件下でしか発生しないようなマイナーなものなのか、クラッシュを被っている多くのユーザーに共通して発生しているものなのか、1つ1つみているだけではすぐに判別が出来ない</strong>ためです。


# クラッシュの発生経路を俯瞰し、効率的に原因を調査
そこで役に立つのが <strong>Mobile User Journey</strong> です。Mobile User Journeyは、モバイルアプリの利用開始からクラッシュに至るまでに行われた、アプリの画面表示や通信、または任意の操作といった<strong>一連のイベントの流れをユーザー横断で集約して、俯瞰して直感的に理解</strong>できるようにビジュアライズしたものです。

下の図中で、アイコンや文字があるものが画面遷移などの各イベントを表しており、それを繋ぐ線が遷移を表しています。線が太いほど、より多くのユーザーが通っていることを表しています。そして、図の一番右の赤い部分がクラッシュしたことを表しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/5ff21915-9bb5-6661-0ae3-c82825659f9c.png)


クラッシュに至る経路の中で、<strong>線の太さが太い部分、経路がすなわちクラッシュに至ったユーザーが多い</strong>ことを表しています。

例外ケースはありますが、この線の太い部分がクラッシュの原因に直結している可能性が高いと考えられるので、<strong>クラッシュの原因分析の際は太い部分に関連する処理から調査することで、より効率的に原因分析を行うことが可能</strong>になります。


なお、線や各イベントをクリックすると、そこを通過したユーザー（セッション）の詳細を確認することが出来ます。選択した経路にフィルタされた状態で情報が確認できるので、例えば特定のデバイスやアプリのバージョン、ネットワーク環境など、クラッシュの原因となる共通の要因を発見できるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/3eda1331-bf7c-b3a2-aacd-f5e3e004364d.png)


また、各セッションをクリックすると該当のユーザーがクラッシュに至った過程を詳細に見ることができます。さらにふかぼって調査したり、クラッシュに至る割合の多い操作をして再現させてみることもできるかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/beefddba-e57f-2a0d-adc9-2d8de911ffec.png)


:::note info
関連するアップデートの詳細はこちら
[New Relic アップデート(2024年7月)
](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202407 "New Relic アップデート(2024年7月)")[New Relic アップデート一覧
](https://newrelic.com/jp/blog/nerdlog/new-relic-update  "New Relic アップデート一覧")
:::

# やってみよう
今回ご紹介したNew Relic Mobile User Journeyを利用するための追加の設定はありません。カスタムでアプリ固有のデータを入れたい、といったことでなければ今回紹介したデータも含め自動で収集されます。

New Relic MobileのSDKをアプリケーションに組み込むだけですぐに利用出来ます。SDKの組み込みは非常に簡単ですので、公式サイトを参考に是非お試しください。

https://newrelic.com/jp/blog/how-to-relic/new-relic-faststep-guide

https://docs.newrelic.com/jp/docs/mobile-monitoring/new-relic-mobile/get-started/introduction-mobile-monitoring/

New Relicのアカウントをまだお持ちでないかたはフリープランも利用できます。

:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！
](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::


# まとめ
いかがでしょうか？今回は、モバイルアプリがクラッシュするまでの情報をユーザー横断で俯瞰して把握し、効率的に原因調査をすることを可能にするMobile User Journeyを紹介しました。

クラッシュの情報を最初から1件1件調べるのではなく、より多くのユーザーがクラッシュに至っている箇所を把握することにより、点の分析から面の分析へとシフトさせ問題への対応をより効率的にしていくことが可能になります。

Mobile User Journeysについては、以下の公式ブログも参考にしてください。

https://newrelic.com/jp/blog/nerdlog/charting-a-course-for-mobile-app-success-with-new-relic-mobile-user-journeys


:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::