ABEJA Tech Blog

中の人の興味のある情報を発信していきます

個人アプリ開発で課金がかさむ設計になっていた話

インターンシップ生としてABEJAで活動している和田です。こちらは、ABEJAアドベントカレンダー2024の2日目の記事です。

大学院で研究やインターンをこなす傍ら、同級生3人と自分たちのレベルアップのため「気分や好きな場所に合わせて、お出かけを提案するアプリ」の開発に取り組んでいます。

今回は、そんな私たちが直面した 高額請求事件 と、それを乗り越えた経験についてお話しします。

突然の通知

ある朝、三井住友銀行アプリから届いた通知が目に入りました。

「高額な請求がありました」

寝ぼけていた私は「また詐欺メールか」と軽く流し、そのまま大学へ。ところが昼になり通知を思い出し、念のため口座を確認すると… 10万円超えの請求 がありました。

請求元を調べると「GOOGLE CLOUD」の文字が。さらに詳細を確認した結果、原因は Google Cloud の API 利用料金が無料枠を超えていたことだと判明しました。

なぜ気付けなかったのか?

この10万超えの高額請求にすぐに気付けなかった理由は次の2つです。

  1. 銀行口座の選択ミス 普段使わない口座を登録していたため、請求に気づくのが遅れてしまいました。
  2. メール通知の設定ミス カスタムドメインのGmailアドレスを使用しており、重要な通知を受信できない状態でした。

カスタムドメインを発行した嬉しさのあまり、Gmailが利用できないのに、それを決済用アカウントとして登録してしまっていました。

応急対応:まずは火を消す

そこで、この事態を収束させるため、応急的に以下の対応を実施しました。

  • 請求通知を確認しやすくする 普段使用しているDiscordに請求額がリアルタイムに通知されるように設定しました。

  • API利用を一時的に制限 コストの大部分を画像取得が占めていることが判明したため、画像取得がなるべく行われないように関連機能の調整を行いました。

  • カスタマーセンターへの問い合わせ Google Cloudが提供しているカスタマセンターに連絡して、助けを求めました。

このアプリでのGoogle Places Detail APIの呼び出し方法

  • プラン作成時には複数回、Place Detailによる情報が必要な場面がある(開店時刻、写真、レビュー等)
  • これらのリクエストを別々に行ってしまうと、SKU料金*リクエスト回数の料金が発生してしまう
  • したがって、Pleace Detailによる情報を一度に取得するようにしている

リクエストのフロー

アプリの価値を見つめ直す

応急処置を終えたあと、急きょメンバーを集めて、アプリの設計を振り返りました。

そこで気づいたのが、アプリの大部分がGoogle Places Detail APIに依存しすぎてるということです。

多くの人にアプリを使ってもらうために開発しているのに、アプリがたくさん使われるほどコストがどんどん膨んでしまう悲しい構造になっていました。

そこで、まず手をつけたのが、Google Places Detail APIの依存を減らすこと。そのために、「このアプリで価値を生み出せるようにしよう」と話になりました。

たとえば、Google Placess Detail APIから取得した画像を利用するのではなく、ユーザーが撮った写真を表示できるように、写真をアップロードできる機能をつけようという案が挙がりました。

しかし、ふと疑問が湧きました。

「本当に写真をアップロードしてくれるのか?」

正直なところ、私達自身も、面倒で写真をアップロードしないと感じたのです。 

それならば、アップロードしたくなるような仕掛けを作成しようとなりました。

写真アップロードを促す仕掛け

そこで考えたのが、「プランのコラージュ画像を自動生成する」仕組みです。

この機能はSNSに投稿したくなるような画像をカンタンに作れることを目的としていています。これなら、アプリに写真がアップロードされ、SNS投稿を通じてアプリの宣伝にもなる。一石二鳥です。

プランのコラージュ画像を自動生成

アプリを広めるのは簡単じゃない

機能的に使いやすいようにしても、そもそも使ってくれる人がいないとその価値が発揮できない。そこで、アプリを広めるために3つのアプローチで動き出しました。

  • 大学で宣伝 大学内の掲示板にアプリのチラシを掲載することを検討しました。 しかし、大学の学務課に相談すると、「公認の部活やサークルとして登録されてないとダメです」とあっさり断られてしまいました。 

  • 地方自治体への売り込み 地方自治体に「アプリを地域活性化に活用してみませんか」とメールを送ってみたのですが、残念ながら返信ゼロという結果に…。

  • SNSの運用 アカウント開設直後は、フォロワー数やビュー数の出だしは好調でした。 どうやら、おすすめに出やすくなるようなアルゴリズムになっているようです。 しかし、1ヶ月程度経つと、この伸びも止まってしまいました。

SNSが伸び悩んだのは、投稿が「アプリの使い方を説明する動画」だったからではないかと感じました。 冷静に考えると、そんなの見ない…。

そこで、アプリの良さを直接的に伝えるのではなく、Instagramを使っている人が見たいと思うトピックから伝えられないかと方針を変えました。 その取り組みの一つとして、投稿する動画の内容をお出かけスポットを紹介する動画にしてみました。 この方針転換をしてから、ありがたいことに1ヶ月でフォロワーが約1000人増えました。

まだ、課題が…

SNSのフォロー数が伸びる反面、アプリのアクティブユーザー数は増えませんでした。 アクティブユーザを増やすために、2つのアプローチをしました。

  • アプリの質を上げて、ユーザにいいと思ってもらえるようにする

  • より多くの流入を得るためにSNS以外の窓口を作る

SNSで流入を増やすためには、SNSの運用を頑張らなければいけません。 そのような方法以外に、Google Play StoreやApp Storeから自然流入を生み出すために、現在ネイティブアプリ化を進めています。

We Are Hiring!

ABEJAは、テクノロジーの社会実装に取り組んでいます。 技術はもちろん、技術をどのようにして社会やビジネスに組み込んでいくかを考えるのが好きな方は、下記採用ページからエントリーください! (新卒の方やインターンシップのエントリーもお待ちしております!)

careers.abejainc.com

特に下記ポジションの募集を強化しています!ぜひ御覧ください!

プラットフォームグループ:シニアソフトウェアエンジニア | 株式会社ABEJA

トランスフォーメーション領域:ソフトウェアエンジニア(リードクラス) | 株式会社ABEJA

トランスフォーメーション領域:データサイエンティスト(シニアクラス) | 株式会社ABEJA