スマホゲームの運用フローで継続的に使っているFirebaseについて
株式会社コロプラ / 松元拓也
メンバー / モバイルエンジニア / 従業員規模: 501名〜1,000名 / エンジニア組織: 101名〜300名
導入の背景・解決したかった問題
導入背景
本番アプリでのクラッシュについて少しでも情報を取得したいという要望は古くからありましたが、自前で UncaughtExceptionHandler を利用、サーバ側でデータを収集/分析するシステムを構築するのは非常に難易度が高いと考えていました。そこで Firebase の前身の Fabric の Crashlytics の利用を始めました。 その後 Fabric から Firebase への移行、そして、ネイティブ向け SDK の利用から Unity 版 SDK への移行を経て現在に至ります。
導入の成果
Firebase を導入したことで、アプリや機能のリリース監視と分析を行いやすくなりました。 自前でシステムを構築する場合と比べ、実装コストと運用負荷を大きく抑えられています。
現在は Crashlytics でクラッシュを監視し、Analytics でユーザー行動を分析する流れが定着しています。
導入に向けた社内への説明
上長・チームへの説明
既存機能の移行としての Firebase の導入であるため機能的な面の説明はほぼ不要でした。FCM と Crashlytics については無料で利用できるためコスト面についての課題もありませんでした。 社内から要望があったのは Firebase コンソールの各機能へアクセスできるメンバーの適切な管理方法についてです。
メンバーのアカウントを Firebase Console に直接設定しない
現在、弊社では Firebase プロジェクトに個別のアカウントを設定せず、Google グループを利用しています。 必要なロールごとに Google グループを作成し、そのグループに対して Firebase の権限を付与しています。
これにより Firebase プロジェクト(Firebaseコンソール)を利用するメンバーの交代は Google グループのメンバー交代で対応することができます。また、メンバー管理者に必要な権限が Google グループの管理者権限のみとなり、Firebase プロジェクトの Admin 権限と分離されますので、メンバー管理自体の変更にも柔軟に対応することが可能です。
活用方法
普段の Firebase 活用は、次のように運用しています。
- アプリや機能のリリース後は、Crashlytics で状況を監視し、安定性を確認する
- Analytics でユーザー行動や利用状況を確認し、改善の優先度を判断する
- エンジニアを中心に日常的にダッシュボードを確認し、クラッシュの解消や性能改善を進める
- Release Monitoring で直近リリースの状態を比較し、リリース直後の様子を継続して確認する
- 現在のキーやログを定期的に見直し、必要に応じて設定を更新する
- 申請用のアプリをビルドする際にシンボル情報をアップロードする処理を組み込み、Crashlytics で確認できる情報の質を改善している
よく使う機能
Crashlytics
リリース後のアプリの安定性を継続的に監視しています。新規クラッシュの発生、クラッシュ件数と発生率の推移、問題が起きているバージョンを中心に確認しています。ユーザー属性をカスタムキーで設定することで、利用機能や場面といったゲーム固有の情報も記録できます。これにより「一部のユーザーだけで起きているのか」「特定機能に偏っているのか」といった判断がしやすくなり、原因調査の初動が大きく短縮されます。Analytics
端末や OS、アプリバージョンといった軸で、実際のユーザー環境を柔軟に確認できます。「ある端末の比率が想定より高い」「まだ多くのユーザーが古いバージョンを使っている」といった判断が必要になることは頻繁にあり、Analytics で条件を指定して検索・確認できることが非常に役立っています。
ツールの良い点
- Crashlytics では、問題が起きていることを把握するだけでなく、件数や影響範囲、さらに新規に発生したクラッシュまで確認しやすく、深刻さや問題の切り分けを判断しやすい。
- Analytics で独自の集計軸を持てることと、見たい条件で柔軟に検索・確認できることが強い。
- Release Monitoring により、直近のリリースバージョンごとの大まかな比較がやりやすくなり、新規リリース時の様子見がしやすい。
- カスタムキーで独自情報を追加できるため、ゲーム固有のメトリクスで調査を進められる。
ツールの課題点
- 例えば Crashlytics で「この端末は全体の何%か」という問いが生じたときに Analytics で確認する必要があり、ツール間の行き来がもっとスムーズだと効率が上がりそう。
- Analytics は自由度が高いぶん、集計手順や見方が人によってばらつきやすい。よく使う集計方法を共有しやすくなったり、ダッシュボードでチームでよく使う集計をピン留めできたりすると、調査効率がさらに上がる。
- 使用例やドキュメントが少なく、多機能なぶん、使いこなすには慣れが必要だと感じる。
ツールを検討されている方へ
スマートフォンアプリを運用する場合、リリース後のクラッシュを捕捉できるツールは必須です。特に Crashlytics はセットアップが簡単で、気軽に利用できる点が大きなメリットです。 ユーザー環境は多種多様なため、本番環境での問題を可視化できるかどうかが開発・運用する上で効率に大きく影響します。
ただし、ツールの価値や性能を引き出すには「カスタムキーやログの設計」と「ツールの使い方」を十分に把握する必要があります。導入時にチーム内で「どんな情報を載せるか」「どんな流れで情報を確認するか」「どんな情報を確認するか」をあらかじめ決めておくと、あとの分析がしやすくなります。
今後の展望
今後、Analytics で自前のカスタムイベントをさらに拡充していくことで、より多角的にユーザー行動を把握したいと考えています。
また、普段どのように活用しているかをチームに共有し、ツール利用に慣れたエンジニアを中心に運用知見を広げていきたいと考えています。 Crashlytics 側の集計やフィルタ機能が現在よりも充実すると、ツール間の組み合わせがしやすくなり、さらに調査効率が上がることを期待しています。
株式会社コロプラ / 松元拓也
メンバー / モバイルエンジニア / 従業員規模: 501名〜1,000名 / エンジニア組織: 101名〜300名
よく見られているレビュー
株式会社コロプラ / 松元拓也
メンバー / モバイルエンジニア / 従業員規模: 501名〜1,000名 / エンジニア組織: 101名〜300名
レビューしているツール
目次
- 導入の背景・解決したかった問題
- 活用方法


