より良いモバイル分析を見つける

公開: 2022-03-10
クイックサマリー↬モバイルアプリケーションを作成するとき、開発者はモデルとユーザーがアプリケーションを使用する方法を想像します。 開発者が直面する問題の1つは、ユーザーが常に開発者が想定した方法でアプリを使用するとは限らないことです。 ユーザーはアプリをどのように操作しますか? 彼らはアプリで何をしますか? 彼らは開発者が彼らにしたいことをしますか? モバイル分析は、これらの質問に答えるのに役立ちます。 分析により、開発者は実際にアプリで何が起こっているかを理解し、ユーザーが実際にアプリをどのように使用しているかを確認した後、アプリを調整および改善する機会を提供できます。 簡単に言えば、分析はユーザーの行動の研究です。

モバイルアプリケーションを作成するとき、開発者はモデルとユーザーがアプリケーションを使用する方法を想像します。 開発者が直面する問題の1つは、ユーザーが常に開発者が想定した方法でアプリを使用するとは限らないことです。

ユーザーはアプリをどのように操作しますか? 彼らはアプリで何をしますか? 彼らは開発者が彼らにしたいことをしますか? モバイル分析は、これらの質問に答えるのに役立ちます。 分析により、開発者は実際にアプリで何が起こっているかを理解し、ユーザーが実際にアプリをどのように使用しているかを確認した後、アプリを調整および改善する機会を提供できます。 簡単に言えば、分析はユーザーの行動の研究です。

SmashingMagの詳細

  • デバイスの優先順位付け:テストとレスポンシブWebデザイン
  • ノアのモバイルユーザビリティテストへの移行
  • 世界最高のオープンデバイスラボはどこにありますか?
  • シンプルで痛みのないモバイルユーザーテストのガイド

この記事では、最も人気のあるモバイル分析システムのいくつかを比較します。 アプリに分析を追加するプロセスには、多くの詳細を考慮することが含まれます。私たちの目的は、分析を実装するための役立つヒントを提供することです。 この情報は、ニーズに合ったモバイル分析システムを見つけるのに役立ち、アプリに適切に実装するのに役立ちます。

ジャンプした後もっと! 以下を読み続けてください↓

実生活での分析

例として、私たちが開発した小さなiOSアプリケーションを使用してみましょう。 これは「私が食べるもの」と呼ばれ、ユーザーの食生活を追跡することを目的としています。

ユーザーは、食事を追跡したり、毎日の食事ログを確認したり、カレンダーの日を切り替えて以前のログを確認したりできます。 アプリケーションには広告バナーがありますが、ユーザーはそれを無効にするために支払うことができます。

私が食べるものを設計するとき、私たちの主な焦点は、ユーザーが新しい食事の記録を簡単に追加し、毎日の食事の履歴を簡単に確認できるようにすることでした。 また、広告を削除するためにアプリ内購入でアプリケーションを収益化したいと考えていました。 これを実行できたかどうかを理解するために、アプリで次のイベントを追跡します。

  • ユーザーがアプリを初めて起動したとき(アプリケーションのインストール)、
  • ユーザーが毎日の食事リスト(メインアプリケーション画面)を開くと、
  • ユーザーが新しい食事記録を追加すると、
  • ユーザーがアプリ内購入を行って広告を削除したとき。

食事リスト、食事画面と設定の追加
広告を削除する機能を備えた食事リスト、「食事の追加」画面、および設定のビュー。 (拡大版を表示)

この記事の後半では、ユーザーがアプリの使用を開始したかどうかを分析で判断する方法と、アプリのインストール後にユーザーの何パーセントが食事の追跡を開始するかを示します。

分析サービスの比較

今日、Google Analyticsなどの有名なシステムからニッチなツールに至るまで、多くの分析サービスが市場に出回っています。 それらすべての分析と比較には、永遠に時間がかかります。 したがって、この記事では、最も便利であると判断したものだけを使用します。 つまり、ダッシュボードインターフェイスとデータマイニングツールボックスが比較的理解しやすく、クライアントのように分析の経験があまりない人にとっても使いやすいものを選択しました。 モバイル指向の分析システムとして、分析コードをモバイルアプリに簡単に実装および調整できるため、開発の観点からも便利です。 システムは次のとおりです。

  • YahooによるFlurry
  • Crashlyticsによる回答
  • 振幅
  • ミックスパネル

私が食べるものがどのように機能するかを分析するために、ほとんどすべての分析システムが提供する2つの主要なツールであるイベントと目標到達プロセスを使用します。 イベントはユーザーがアプリで何をするかを説明し、目標到達プロセスはこのデータの定性分析を可能にします。 各システムが私が食べるもののためにこれらをどのように実装するかを調べてみましょう。

ミックスパネル

Mixpanelを使用すると、カスタムイベントを追跡できます。 開発者は、カスタムパラメータをイベントに追加し、これらのパラメータを使用してコンバージョンファネルをセグメント化できます。

「インストール」(インストール後のアプリの最初の起動を示す)と「食事の追加」(ユーザーが食事を追加するたびに追跡する)の2つのイベントを含む目標到達プロセスを構築しました。 これらは、ユーザーの何パーセントがアプリをダウンロードしただけでなく、それを使い始めたかを示しています。 コンバージョンは65%と推定されます。これは、アプリをインストールした100人のうち、65人が食事の追跡を開始したことを意味します。

インストールから食事チャートを追加するための変換
アプリのインストールから「私が食べるもの」の「新しい食事を追加する」への変換(拡大版を表示)

開発者は、イベントがアプリケーションで発生した後、リアルタイムで、または最小限の遅延で分析ダッシュボードに表示する必要がある場合があります。 たとえば、開発者がソーシャルメディアマーケティングキャンペーンを開始し、それがアプリケーションにどのように影響するかをリアルタイムで追跡する必要がある場合があります。 Mixpanelは、ほぼリアルタイムでイベントを表示します。 新しく作成された目標到達プロセスは、ほぼ瞬時に計算および視覚化されます。

振幅

開発者がAmplitudeのソフトウェア開発キット(SDK)をプロジェクトに追加した直後、イベントやファネルをさらに設定しなくても、ソフトウェアは日次および月次のアクティブユーザー(DAUおよびMAU)データの追跡を開始します。 毎日何人の人がアプリを使用しているかを理解するために、私たちはそれを「私が食べるもの」でよく使用します。

私が食べるものDAUチャート
私が食べたもののAmplitudeのDAUチャート(拡大版を表示)

Mixpanelと同様に、Amplitudeはイベントや目標到達プロセスを操作するための強力なツールボックスを提供します。 開発者は、目標到達プロセスを作成し、パラメーターでセグメント化できます。 Mixpanelとは異なり、Amplitudeはファンネルチャートでセグメントを直接視覚化できます。これは、パラメーターがコンバージョン率にどのように影響するかを理解する必要がある場合に便利です。 下のグラフは、「インストール」から「食事の追加」への変換がインターフェースの言語によってどのように変化するかを示しています。

インストールして、振幅による食事変換を追加します
コンバージョン率は、What IEatアプリのユーザーの言語によって異なります。 (拡大版を表示)

ご覧のとおり、ロシア語のインターフェースは英語のインターフェースよりも優れた変換を示しています(83%対66%)。 したがって、次のアプリの更新では、ロシア以外のオーディエンスをさらに調べる必要があるかもしれません。

Crashlyticsによる回答

Amplitudeと同様に、AnswersのSDKがアプリケーションプロジェクトに追加されると、データの追跡が開始されます。 Answersは、開発者の努力をほとんど必要とせずに、モバイルアプリケーションのいくつかの主要業績評価指標(KPI)(MAU、DAU、毎日の新規ユーザーおよびセッション)の整理されたビューを提供します。

振幅でKPIを食べるもの
Answersが提供するIEatのKPIの一部(拡大版を表示)

開発者はカスタムKPIをイベントとして定義および追跡でき、Answersは同じ方法でそれらを視覚化します。

Answersは、オーディエンスがどれだけアクティブで、人々がアプリで費やす時間についての洞察も提供します。

Answersによるユーザーアクティビティ
Answersによる私が食べるもののオーディエンスアクティビティ(拡大版を表示)

Answersの分析では、過去30日間のデータが保持され、目標到達プロセスはありません。 したがって、アプリのパフォーマンスの単純で短期的な分析に対してのみ機能します。

YahooによるFlurry

目標到達プロセスを構築してコホート分析を行う必要がある場合、FlurryはMixpanelやAmplitudeほど便利ではありません。

Flurryユーザーは、最大10個のセグメントを作成し、それらを目標到達プロセスに適用できます。 既存の目標到達プロセスに新しいセグメントを追加するには、再計算が必要であり、これには約1日かかる場合があります。 ユーザーは、目標到達プロセスに適用するセグメントを10個以上作成することはできません。 新しく作成された目標到達プロセスの計算には、最大3日かかる場合があります。

Flurryのイベントと目標到達プロセスが私が食べるものに役立つことはわかりませんでした。主にMixpanelとAmplitudeを使用しました。

他に何が重要ですか?

イベントと目標到達プロセスは重要な機能ですが、他のいくつかのことが適切な分析システムの選択に影響します。

人口統計データ

一部の分析サービスは、アプリで収集されていない場合でも、アプリケーションのオーディエンスに関する洞察データを提供します。 彼らはあなたのモバイルアプリケーション以外のソースからユーザーデータを取得することによってそれを行います。 これは、パワーユーザーを特定する必要があるが、アプリケーションがパワーユーザーに関するデータを収集しない場合に便利です。 たとえば、What I Eatアプリでは、ユーザーは登録する必要がなく、ユーザーデータを受信する方法は他にありませんが、アプリで新しいユーザーを正確にターゲティングするために、誰がそれを使用しているかを知りたいと考えています。更新。

Answersは、性別や興味など、視聴者に関するデータを提供します。 あなたはそれがどのようにそれをするのか疑問に思うかもしれませんか? AnswersはTwitterと緊密に統合されており、Twitterはプラットフォームを使用するすべての人についてほぼすべてを知っているため、この個人データはAnswersによって活用されます。

回答による聴衆
Answersで人口統計を食べるもの(拡大版を表示)

Flurryは、データを共有しているアプリから受け取ったユーザー情報を概算することにより、人口統計データを推定します。 開発者がこの情報を共有する理由は、Flurryに洞察データを提供することで、より正確なオーディエンスデータセットを受け取るためです。 Flurryは、ユーザーの興味、年齢層、性別を示します。

Flurryによるユーザーの関心
Flurryでユーザーの興味を引くもの(拡大版を表示)

Flurry and Answersの助けを借りて、私が食べるものの聴衆は主に健康とフィットネスに興味のある中年の女性であることがわかります。

MixpanelとAmplitudeは、人口統計データを提供しません。

データをインポートおよびエクスポートするための外部API

アナリティクスでは、外部APIを介したデータのインポートとエクスポートが可能です。 エクスポートにより、分析ダッシュボードの外部でデータを分析できます(つまり、WindrushやDataHeroなどのサードパーティのデータマイニングソフトウェアを使用します)。 APIをインポートすると、バックエンドサーバーやAppsFlyerなどのアトリビューション追跡システムなどのソースから分析プラットフォームにデータをデプロイできます。 どの分析サービスがそのような機能を提供するかを調べてみましょう。

  • Amplitudeは、イベントのインポートとエクスポートの両方に外部APIを提供します。
  • MixpanelにはAPIのインポートとエクスポートがあります。 複雑なエクスポートクエリを可能にするJavaScriptクエリ言語をサポートしています。
  • Answersには外部APIがありません。 ダッシュボードからイベントデータをCSVファイルとしてダウンロードできますが、イベントパラメータは含まれていません。
  • FlurryにはインポートAPIがありません。 エクスポートAPIを使用してのみデータをエクスポートできます。

価格

モバイル分析会社は価格設定を実験しており、料金を頻繁に変更する可能性があります。 次のデータは2016年7月のものです。

  • Flurry andAnswersは完全に無料です。
  • Amplitudesの無料プランでは、1か月あたり1,000万件のイベントが提供されます。 それ以上の追跡を期待する場合は、月額2,000ドルかかります。 かなり多くのプロジェクトでAmplitudeを使用しましたが、無料プランの制限も高いため、有料階層に切り替える必要はありませんでした。
  • Mixpanelには、月に25,000イベントの無料枠があります。 100万のイベントは月額300ドルかかります。 1,000万を超えるイベントの場合、月額1,250ドルを支払う必要があります。

アナリティクスの実装のヒント

各分析システムの主な違いがわかったところで、分析の実装の実際的な側面について詳しく見ていきましょう。

宿題をしなさい

アプリに分析が必要であると判断した場合、それをコーディングすることは最初に考えるべきことではありません。 優れた開発者は、次の手順から始める必要があると考えています。

  • 追跡する必要があるものを書き留めます。 。 アナリティクスに回答してほしい質問のリストを作成することから始めます。 そのリストに基づいて、質問に答えるために追跡する必要のあるイベントとパラメーターをレイアウトします。 それのためにアプリに分析を含めないでください。
  • 分析の観点から言い換えてください。 。 イベントのリストが完成したら、選択した分析プラットフォームに従ってそれを形式化します。 たとえば、Amplitudeでは任意のパラメータセットを使用したイベントが許可されますが、Googleアナリティクスには事前定義されたパラメータセットがあります。 分析を実装するときは、そのようなニュアンスを考慮に入れてください。
  • 小さなデモを作成します。 。 小さなテストアプリを作成し、その助けを借りて12のイベントを追跡し、選択したプラットフォームでこれらのイベントがどのように視覚化されるか、およびどのデータマイニング機器が利用可能かを確認することをお勧めします。 この知識を使用して、ライブアプリに分析を実装するときに、選択したプラットフォームの機能を最大化します。

コーディングするときに大きく考える

アナリティクスのコードを設計して、プロジェクトのコードとアナリティクスのSDKから独立させます。 したがって、分析コードを別のサブシステムまたはクラスに配置し、アプリケーションコードから呼び出すことができるインターフェイスメソッドを定義します。 たとえば、ユーザーがメニューボタンをタップすると、アプリケーションコードは分析クラスコードを呼び出します。 Swiftで記述されたiOSアプリの場合、次のようになります。

 /** Application code: menu tap handler */ @IBAction func menuButtonPressed(sender: UIButton) { //Showing menu, etc... AnalyticsManager.sharedInstance.userTapMenuButton() }

アプリケーションコードによって呼び出される一般的な分析クラスは、パラメーターのリストを収集し、このデータを特定の分析クラスに送信します。

 /** General analytics class: a bridge between the application code and the specific analytics class */ class AnalyticsManager { static let sharedInstance = AnalyticsManager() private var services: [AnalyticsService] private init() { services = [AmplitudeAnalyticsService()] } func userTapMenuButton() { let name = "MenuTap" let properties: [String: AnyObject] = [/* define your properties */] for service in services { service.trackEvent(withName: name, properties: properties) } } }

特定の分析クラスは、分析SDKにデータを送信します。 私たちの場合、それはAmplitudeのSDKです。

 /** Specific analytics class. */ class AmplitudeAnalyticsService: AnalyticsService { func trackEvent(withName name: String, properties: [String : AnyObject]?) { if let propertiesToTrack = properties { Amplitude.instance().logEvent(name, withEventProperties: propertiesToTrack) } else { Amplitude.instance().logEvent(name) } } }

このような構造では、別の分析プラットフォームに移行したり、追跡するパラメーターのセットを調整したりする場合は常に、分析クラスコードを変更するだけで、アプリケーションコードは変更できません。

すべてのデータを分析する

選択した分析プラットフォームのすべてのソースからデータを収集します。 外部APIを使用して、モバイルアプリだけでなくバックエンドからもデータを送信します。 広告キャンペーンを実行する場合は、AppsFlyerやAdjustなどのインストール追跡システムを使用して、その効率を測定し、ユーザーがどこから来ているのかを理解します。 分析プラットフォームで適切に機能することを確認するために使用するインストール追跡システムを事前に選択してください。

SDKの数を制御する

すでにアプリケーションに含まれている分析プラットフォームのSDKを使用してみてください。 Crashlyticsでクラッシュを追跡する場合、CrashlyticsとAnswersの両方がFabric SDKに含まれているため、追加のコードなしでAnswersの分析を使用できます。 アプリでFacebookへの登録が許可されている場合は、Facebookのモバイル分析を実装するSDKが既に含まれているため、これを使用することをお勧めします。

SDKは私が食べるものにリストされています
SDKは、「私が食べるもの」(「ポッド」フォルダーの下)にリストされています。

さまざまな分析システムを組み合わせてみてください。ただし、SDKが多すぎてアプリケーションのバイナリを圧倒しないでください。

それを文書化する

最後に、アプリケーションの分析の実装と並行して、そのドキュメントに取り組みます。追跡するイベントとパラメーター、およびその方法を書き留めます。 このために、通常、プロジェクトのコアフォルダーに保存されているReadme.mdファイルを使用します。 各イベントは、次のデータによって記述されます。

  • イベント名(たとえば、「ユーザー登録」)。
  • 追跡されたとき(たとえば、「新規ユーザーの登録が成功したとき」)。
  • パラメータ(たとえば、「Eメール/文字列」)。
  • トラッキングコードが呼び出されるコントローラー(たとえば、「SignInController」)。

このような詳細は忘れがちですが、追跡するデータセットを変更する場合や、別の分析プラットフォームに移行する場合に重要になります。

まとめ

完璧な分析サービスはありません。 それぞれに長所と短所があります。 いずれかを選択するときは、アプリケーションのタイプ、分析ダッシュボードのインターフェース、予算などの要素を考慮する必要があります。 非線形のユーザーエクスペリエンスを分析するために作成されたゲーム分析(GameAnalyticsなど)や開発者指向の分析(Keen IOなど)などのニッチなソリューションを使用することもできます。

AnswersとAmplitudeの組み合わせが、私が食べたものと完全に連携し、アプリに必要なすべての分析を提供することがわかりました。 Answersは無料で、人口統計データとアプリのKPIを表示しますが、Amplitudeではより複雑な行動コホート分析が可能です。 AnswersのFabricSDKを使用してアプリケーションのクラッシュも追跡します。

モバイルアプリケーションで使用している分析ツールボックスについてお聞かせください。 コメントであなたのアイデアを共有してください。