We help engineers build better mobile experiences.
Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.
最高のエクスペリエンスを構築するために、エンジニアは利用可能な最高のデータを必要とします。
モバイルでは、デバイスの種類、さまざまなオペレーティング システム、接続などの変数が含まれるため、この課題はさらに複雑になります。
モバイル アプリの健全性、パフォーマンス、安定性についてさまざまなレベルの可視性を提供するツールが増えているため、どの指標を追跡する必要があるかを正確に知ることが困難になる場合があります。
この投稿では、追跡する必要がある最も重要なパフォーマンス指標と、それらの指標が問題の根本原因をより迅速に特定してより良いモバイル エクスペリエンスを構築するのにどのように役立つかについて概説します。
モバイル ユーザーは通常、外出先でアプリをチェックしており、瞬時の結果に慣れています。したがって、アプリが読み込まれるまで座して待つことはありません。たとえば、Uber アプリの読み込みに時間がかかりすぎる場合、ユーザーはおそらく Lyft アプリに切り替えるでしょう。さらに、Uber アプリでは不十分なエクスペリエンスしかなく、Lyft アプリではまともなエクスペリエンスしかなかったユーザーは、忠実な Lyft ユーザーになる可能性がはるかに高くなります。
現在、そのユーザーのセッションからの収益が失われただけでなく、特定の顧客が会社にもたらす可能性のある LTV は言うまでもなく、獲得あたりのコストと解約率も増加しました。
したがって、アプリの起動時間がユーザーの期待を確実に満たすことが、アプリの成功には不可欠です。
ただし、モバイル チームが平均起動時間にしかアクセスできない場合、重要な変更を見逃して、積極的ではなく事後的に対応する可能性があります。
たとえば、ある企業がアプリを新しい市場に投入しようとしていて、全体的なフィードバックが否定的だったとします。平均起動時間は、アプリが起動前より数ミリ秒長くなったことを示していますが、起動中に劇的に遅くなったわけではありません。ということは、別の問題があるはずですよね?
残念ながら、新しい市場のユーザーの割合はユーザー ベース全体のほんの一部にすぎないため、新しい市場での起動時間がひどい場合でも、ユーザー ベース全体の起動時間に与える影響は最小限にとどまるのは当然です。
代わりに、チームはデータをセグメント化して、起動時間がビジネスにどのような影響を与えるかをよりよく理解できるようにする必要があります。
たとえば、価値の高いユーザーは起動の遅さにどのように悩まされているのでしょうか?新しい市場のユーザーはパフォーマンスの低下を経験していますか?特定のデバイスで起動が遅くなりますか?
このデータにより、企業は状況を管理できるようになり、収益に影響を与える一刻を争うシナリオにおいて推測に頼る必要がなくなりました。
詳細については、モバイル アプリの起動時間を改善する方法に関する電子書籍をご覧ください。
クラッシュは顧客を確実に怒らせる方法ですが、それには十分な理由があります。これは本質的に、顧客が実店舗に入ってきて、買い物の途中でスタッフにドアから追い出されるのと同じです。
これは、次の 2 つの理由から、同社のブランドにとって大きな問題です。
顧客は自分の時間が軽視されていると感じ、ブランドの評判が傷つきます。
顧客が即時取引を完了できないため収益が損なわれ、顧客が競合他社に乗り換えることにするとその顧客の生涯価値が失われます。
ここでは、暴落が収益の損失に直結するさまざまな業界の例をいくつか紹介します。
E コマース アプリ:チェックアウト中に E コマース アプリがクラッシュすると、顧客は購入できなくなり、戻ってこなくなる可能性があります。
POS システム: ライブ イベント中に POS システムがクラッシュした場合、ライブの顧客は購入したり、会場に入場したりできなくなります。
スマート デバイス アプリ: 歯ブラシなどのスマート デバイスがセットアップ プロセス中にクラッシュした場合、顧客は製品を返品する可能性が高くなります。
ただし、平均クラッシュ率を追跡することは良いスタートではありますが、クラッシュがビジネスにどのような影響を与えるかを理解するにはまだ十分ではありません。
たとえば、現在のクラッシュ率がわずか 0.5% であれば、さらに深く掘り下げる必要はないかもしれません。しかし、発生するすべてのクラッシュがチェックアウト画面で発生した場合はどうなるでしょうか?そのわずかな割合が、ビジネスから多額の収益をだまし取っている可能性があります。
したがって、主要な指標の数値に注目することに加えて、クラッシュ率のパターンを示すデータを取得することも重要です。具体的には、アプリ内のさまざまな高価値領域のパフォーマンスはどのようになっているのでしょうか?どのデバイスが最も多くのクラッシュを経験する傾向がありますか?価値の高いユーザーに対してアプリのパフォーマンスはどうですか?事故率が特に低い地域はありますか?もしそうなら、アプリを修正するか、それらの地域から削除する必要がありますか?
クラッシュの詳細をセグメント化することで、チームは問題の修正に優先順位を付けることができます。
アプリケーション応答なし (ANR) エラーは、通常、フリーズまたは不具合として説明されます。
基本的に、メインスレッドがブロックされると、アプリケーションは効果的に実行できなくなります。したがって、ユーザーは続行できず、ビジネスに大きな影響を与える可能性があります。
たとえば、私たちが協力した小売業者は ANR に問題を抱えていました。この問題により起動時間が約 60% 増加し、推定年間 650 万ドルの収益損失が発生していました。適切なデータがあれば、エンジニアリング チームは問題に迅速に対処し、失われた収益を取り戻すことができました。
ANR は収益以外にも、Google Play ストアでのアプリのランキングに悪影響を及ぼし、新規顧客の目に触れにくくする可能性があります。
ANR を効果的に追跡するには、スタック トレースを調べて、ユーザーが問題にどのように反応したかを確認します。
そこから、モバイル チームは、さまざまなしきい値で離脱した人の数、価値の高いユーザーが最も影響を受ける場所、ANR の影響を最も受けやすいデバイスの種類と画面に基づいて、最初に修正すべきものに優先順位を付けることができます。
詳細については、 ANR などの Android クラッシュの調査に関するこの投稿をご覧ください。
異なる地域のユーザーは異なるデバイスや異なる接続を使用しているため、地域のメトリクスを追跡することも非常に重要です。
これは、いくつかの理由からビジネスに大きな影響を与える可能性があります。
まず、地域によって企業の収益に対する重要性が異なります。
たとえば、シンガポールにいるユーザーは一部だけかもしれませんが、総年間収益の大部分を占めている可能性があります。したがって、地域の指標を詳細なレベルでチェックすると、特に価値の高いユーザーにとって、アプリを改善する機会に焦点が当てられます。
新しいリージョンを開始する場合には、セグメント化されたリージョンのメトリクスを追跡することも重要です。
たとえば、オーストラリアに事業を拡大したとしても、その地理的エリアは開始時に全ユーザーの 5% しか占めていないとします。その場合、チームが効果的にパフォーマンスを追跡できるほど中央値/平均指標に影響を与えることはありません。
文化の違いを考慮することも重要であり、地域固有の指標を提供するツールを使用すると、チームはその地域専用にアプリの特定の側面をテストできます。
たとえば、米国ではコンバージョンが良好な e コマースのチェックアウト画面は、ドバイではそれほどコンバージョンが高くない可能性があります。
さらに、詳細な領域メトリクスにより、新しい機能をゆっくりと展開することが容易になります。たとえば、チームはより小さな地域で新機能を展開し、そのパフォーマンスを確認できます。パフォーマンスが良好な場合は、価値の高いユーザーがいるより多くの地域に展開します。
このデータは、チームが次のような重要な質問に答える際に役立ちます。
注目すべきもう 1 つの重要な指標は、ユーザーがアプリを使用している時間を示すセッション継続時間です。平均セッション時間が 1 週間で大幅に変化する場合、それはアプリに問題があることを示すかなり良いヒントになります。
たとえば、ゲーム アプリを使用していて、平均セッション時間が 15 分から 5 分に短縮されたことに気付いた場合、ユーザーのエクスペリエンスが低下した可能性が高くなります。
この手がかりを使って、次のような質問をすることができます。
セッション時間を追跡することで、チームは影響を受けた個々のセッション間のパターンを調査し、問題の根本原因を発見することもできます。セッション継続時間を他の指標と並行して分析することで、モバイル エンジニアはどの問題がユーザーにとって最も煩わしいのかをより明確に把握できます。
たとえば、電子商取引ストアでは、製品のメイン スクロール フィードで OOM の問題が発生し、セッション継続時間の短縮と強く相関する可能性がありますが、別の画面でのネットワーク呼び出しの速度の低下は、セッション継続時間とほとんどまたはまったく相関関係がありません。
したがって、セッション継続時間を追跡することは、ユーザー エンゲージメントの低下を直接明らかにするため、どの問題を最初に修正する必要があるかを優先するための優れた方法です。
新しい顧客を獲得するには、現在の顧客を満足させるよりもはるかに多くのコストがかかります。また、モバイル アプリ ユーザーの離脱の主な原因は、ユーザー エクスペリエンスの低下です。
新しいアプリのダウンロードには数秒しかかかりません。そのため、アプリのエクスペリエンスがユーザーの時間を中断して数秒以上かかる場合は、ユーザーがそこに留まるとは期待しないでください。
したがって、全体的な離脱率と維持率だけでなく、ユーザー ベースのセグメント (デバイス、接続、地域などによる) の離脱率と維持率も追跡します。
これにより、定着率を向上させ優先順位を付けるためのさまざまな機会が明らかになります。たとえば、ある特定の地域での解約率が非常に高いにもかかわらず、その地域には価値の高いユーザーがほとんどいないことがわかる場合があります。したがって、より大きなビジネス成果につながる他の場所にエンジニアリング リソースを投資することを決定することもできます。
チャーンとリテンションの追跡は、新しいリリースやさまざまな実験に対するユーザーの反応を理解する優れた方法でもあります。高いチャーンと新機能アップデートの間に相関関係がある場合、それはチームがその機能アップデートをロールバックする必要があることを示す強力な指標です。
詳細なデータにより、チームはアップデートが展開されるさまざまなセグメント (特定の地域やデバイスなど) のチャーンを追跡できるようになります。
セグメント化されたデータがなければ、さまざまな機能の更新が小規模なテスト グループに与える影響を確認するのは困難になります。したがって、この機能が大規模なユーザー グループに展開されて初めて (おそらく多くの月間アクティブ ユーザーが離脱した)、その機能の展開が時期尚早であったことが明らかになります。
一部のユーザー終了はユーザーが携帯電話を整理整頓しているだけですが、多くの終了はアプリがフリーズしたために発生し、ユーザーは上にスワイプしてセッションを終了するしかありません。
もちろん、セッションを強制的に終了させられたユーザーは不満を抱き、代わりに競合他社のアプリを選択する可能性があります。
これを防ぐために、ユーザーの平均終了率を監視することは、チャーンにつながる可能性のある次のような潜在的な問題を示す優れた指標となります。
モバイル チームは、平均ユーザー終了率の概要を提供することに加えて、あらゆるユーザー エクスペリエンスの低下の原因を把握する必要があります。したがって、Embrace に組み込まれた重要な機能の 1 つは、どの画面がイライラしたユーザーがアプリを放棄する原因となっているかを確認する機能です。
したがって、エンジニアがどこで切断が発生しているかを推測している間に貴重な時間を無駄にして売上を失うのではなく、モバイル チームが即座に問題に対処できるようになり、できるだけ効率的に問題を解決できるようになります。
アプリ内には、必ず 100% 動作する必要があるユーザー アクションがいくつかあると考えられます。たとえば、オフィスでキーレス エントリが提供されている場合、その機能は常に機能する必要があります。そうしないと、追加のサポートに電話しないとオフィスに入れない可能性があります。
したがって、いくつかの主要なユーザー アクションを選択し、モバイル チームが追跡しているパフォーマンス指標のリストに追加します。
多くの場合、カスタマー レビューにはアプリ内のどこで問題が発生したかが記載されていないため、特定のユーザーのアクションを追跡することは、すぐには明らかにならない問題を見つけるための優れた方法です。
これは、次のような質問に答えるのにも役立ちます。
アプリのこれらの重要な領域で問題が発生しているユーザーは何人いますか?
アプリの特定の領域の問題とチャーンの間に直接の相関関係はありますか?
ユーザーはアプリを諦めて放棄するまでどれくらいの時間試しますか?
たとえば、ある顧客は、すべての購入試行のうち約 1% が購入に失敗していることに気づきました。ただし、関連するネットワーク呼び出しは両方とも正常に解決されていたため、検査すべき明らかなエラーはありませんでした。
そこで、顧客が購入する正確な瞬間を追跡し始めたところ、購入試行の 1% で 2 つのネットワーク呼び出しが順序どおりに発生しておらず、その結果購入が失敗していることがわかりました。顧客からはこの問題について苦情が寄せられていましたが、モバイル チームは、影響を受けるセッション内のすべてのイベントのタイミング、結果、順序が分からないため、根本原因を特定できませんでした。総売上高の 1% を取り戻すには、忠実度の高いユーザー エクスペリエンス データが不可欠でした。年間売上高が 1,000 万ドルの企業の場合、そうでなければ毎年 10 万ドルが失われることになります。
アプリのメモリ消費を追跡して、潜在的なメモリ リークを特定することが重要です。アプリのメモリ使用効率は、ユーザー エクスペリエンスの応答性の高さに直接関係します。
このため、メモリ使用量の監視と最適化は、シームレスなユーザー エクスペリエンスを提供する上で重要な役割を果たします。
アプリのメモリ使用量に関する問題は、次の方法で回避できます。
コードベースを最適化し、メモリが意図せずに保持される領域を特定すると、メモリ使用量が増加します。
アプリのメモリ消費を定期的に追跡し、新しいリリース後の変更を記録します。
大きな画像の読み込みや大きなファイルの処理など、メモリを大量に消費する操作を注意深く監視し、異常な急増や持続的な高いメモリ使用量に対してアラートを作成します。
アプリのメモリ消費に関する戦略を細かく調整することで、ユーザーが気に入る、応答性が高く、安定した効果的なアプリが作成されます。
モバイル アプリは、3G、4G、5G、Wi-Fi、場合によっては接続が制限されたり不安定になったりするなど、さまざまなネットワーク条件を持つ多様な環境で動作します。
このため、優れたユーザー エクスペリエンスを作成するには、これらのさまざまな条件によってもたらされる課題を認識することが重要です。ネットワーク パフォーマンスの低下を示す指標には次のものがあります。
遅延と応答時間の遅さ。
帯域幅の使用量。
非効率な API 呼び出し。
デバイス固有のオフライン機能。
たとえば、 Farm Dog は、農家や農学者が同僚や同僚と一緒に現場にいるときに発見したことを文書化できる農業アプリです。
ネットワークの応答時間が異常に遅い場合や、デバイスが接続されているかどうかを判断できない場合、アプリは頻繁にクラッシュしていました。彼らは、Google マップの応答時間がわずか数秒であるはずのものが 18 ~ 22 秒であることに気付きました。
適切なツールがなければ、プロキシを使用して問題を解決する複雑な回避策を使用して、不良なネットワーク接続をシミュレートする必要があります。ただし、より忠実度の高いデータを使用すると、ユーザーが現場で抱えている次のような正確な状況を確認できます。
デバイスの種類、アプリのバージョン、Wi-Fi、携帯電話にまたがるネットワーク通話。
一般的なドメイン全体にわたる 4xx および 5xx エラーの傾向を洞察し、問題のある経路を特定します。
壊れたエンドポイントにより、ユーザーはアプリを起動したり、主要なコンテンツをロードしたり、重要なトランザクションを完了したりすることができなくなります。
クライアント側からのすべてのネットワーク呼び出しの継続時間から、隠れた遅延ポイントが明らかになります。
この情報を活用して、Farm Dog チームはユーザーが直面する問題をシミュレーションし、問題のある状態を簡単に特定して修正しました。
モバイル エクスペリエンスを重視する場合は、チームが上記のすべての指標を確認できるデータが必要です。
Embrace は、そのデータだけを提供することで、エンジニアの効率を高め、退屈な作業に悩まされることなく、より良いモバイル エクスペリエンスの構築を支援します。
Embraceの詳細を確認し、 「モバイル エクスペリエンスの現状」レポートをダウンロードして、ユーザーによるアプリの主な不満について学びましょう。
抱きしめる
ここでも公開されています。
追跡を開始する必要がある 10 のモバイル アプリのパフォーマンス指標 | HackerNoon