はじめに
概要
作品名 | KPI収集システム |
制作期間 | 2024.01.17~2024.01.31 (15日) |
※勤務先の社内用ツールのため、受注金額は0円
※当作品は株式会社 ModelingX の所有物
リンク
システムの仕様
毎日 23:00~24:00 に1度、下記の値を取得して Google Spreadsheet に入力する。
- アプリのマルチプレイ用サーバーへの総アクセス数
- アプリ公式 LP の PV 数
- アプリ公式 Instagram アカウントのフォロワー数
- アプリ公式 Instagram アカウントのインプレッション数
- Android 版アプリのインストール数
- iOS 版アプリのユニット数(インストールしたユーザー数)
※社外秘の情報のため上画像の各値は実際のアプリの値とは異なる
工夫した点
プログラミング
- 複数の関数で使用する値のみをメンバ変数にする事で、メモリの使用量を抑えた
- HTTPレスポンスのテキスト内に「error」の文字列を含んでいるかどうかで条件分岐させる事で、エラーの発生にも対応できるようにした
- セルへ値を入力したり、セルの値を取得したりする際に「parseInt()」を使用する事で、整数型として正常に処理できるようにした
- Google Play Console のレポートを取得する際、「try-catch」を使用する事で、まだ今月分のレポートが生成されていなくても対応できるようにした
設計
- App Store Connect API を使用するために生成する必要のあるJWT(RSA256)を取得するライブラリが Google Apps Script に存在しなかったため、.NET 8.0 の Visual Studio でコードを作成し、それを Google Cloud Functions に置き、それを Google Apps Script から呼ぶようにした事で、Google Apps Script でもJWT(RSA256)を取得できるようにした
- 取得する値の対象プラットフォーム毎にGSファイルを分ける事で、どのファイルにどんな処理が書かれているのかを分かりやすくした
- Google Cloud の管理者アカウントで各APIを使用するのではなく、権限の限られているサービスアカウントで各APIを使用する事で、安全性を向上させた
- Slack のチャンネルに送信されたメッセージを取得する際、取得したメッセージをユーザーIDでふるいに掛ける事で、無関係なメッセージを取得しないようした
- エラーや例外が発生する度に Slack へエラー内容を送信する事で、問題が発生しても正確に問題の内容を捉えて対処できるようにした