【インターンレポート2024夏】データ解析業務を経験した話
こんにちは、C-Style の広報担当です。
C-Style ではオフィスで 5 日間、高専生向けにデータ解析業務のインターンを行いました。今回はインターン生の K 君にインタビューしました! インターンやデータ解析業務に興味のある方は、ぜひご覧ください!
なぜ、C-Styleのインターンに参加してくれたんですか?
K 君:昨年度に Kloud で開催されたハッカソンイベントに出場した経験から、Kloud の運営会社である C-Style に興味を持ちました。DM にてインターンシップをしたい旨をお伝えすると快諾いただき、インターン生として 5 日間お仕事をする運びとなりました。
インターン参加前はどのような技術を使ったことがありましたか?
K 君:以前から小さなプロダクトを作成しており、プログラミング言語は
Google Apps Script
TypeScript
Emacs Lisp
C++
を利用したことがあります。今回の業務では Google Apps Script, TypeScript の経験はかなり役に立ったと思います。
データ解析業務とはなんですか?
K 君:データ解析業務は、Google Analytics などで蓄積した利用状況データを可視化・分類することで、データの背後にあるサービスの現状を理解するだけでなく、改善すべき点や戦略的な意思決定のためのエビデンスを提供し、サービスの最適化や成長に貢献することを目的としたお仕事です。
K 君がインターンで担当した業務を教えてください!
K 君:私が携わった業務は、先方のサービスの利用状況やサイトの離脱率・どの機能が使われたかというデータを解析、改善のご提案をするといったものです。
私はまだエビデンスを提供してサービスを改善する……というところまで携わったことがありませんが、先輩曰く「指摘が綺麗に決まったときの嬉しさは半端じゃない」とのことです。この段階まで辿り着いてみたいです。
今回使用したツール
今回使用したツールは以下の 4 つです。
Looker Studio:ダッシュボードを作成するツール
Google Analytics 4:サービスのアクセス解析ツール
BigQuery:複雑なデータの操作も可能なクラウドデータベース
Google Apps Script:ECMAScript の構文を利用し Google 関連のサービスを操作できるツール
どのような業務スケジュール・内容でしたか?
広報担当:K君に以下の業務スケジュールを書いてきてもらいました。
K 君:今回の業務スケジュールはこのような流れでした。
■ 1 日目
前もってある程度作成されていた「CSV を加工し、複数の Google SpreadSheets に変換するツール」の仕上げを行いました。
今回の業務で取り扱っている、先方から頂いた CSV データには、いくつかのカラムに JSON が含まれています。
この CSV データを Looker Studio で読み込む際、パースできずエラーが出てしまいました。
ーーーイメージ
user_name,sleep_datetime,user_behavior
suzuki,2024-08-20T02:00:00Z,"{ ""wakeup"": {""BOOL"": false}, ""sleep"": {""NUM"": 420} }"
tanaka,2024-08-20T04:00:00Z,"{ ""wakeup"": {""BOOL"": true}, ""sleep"": {""NUM"": 180} }"
そのため、ダッシュボード作成よりも前に Looker Studio で解釈できるフラットな CSV に変換することが必要でした。つまり、こうしたいわけです:
ーーーシート 1
user_name,sleep_datetime
suzuki,2024-08-20T02:00:00Z
tanaka,2024-08-20T04:00:00Z
ーーーシート 2
user_name,behavior_wakeup,behavior_sleep
suzuki,false,420
tanaka,true,180
CSV をこのようなシートになるように処理するスクリプトを Google Apps Script (以下GAS)を用いて書きました。
生の GAS を触るのはかなりストレスなので、TypeScript + webpack を用いることで対処しています。
■ 2 日目
午前は 1 日目に書いた CSV を処理するツールのリファクタリングとバグフィクスを行いました。
ーーーリファクタリング
早くダッシュボード作成に取り掛かりたく、雑に即時関数実行式を main に全ベタ書きしていたため……
再利用性の向上のために処理をある程度分離した
null / undefined を握りつぶしていたが、ちゃんと early return するようにした
ーーーバグフィクス
勘で書いてる上に型が信用ならない状態だったため……
動かして変だったところを直していました
TypeScript を活用できていなくない?と誰かに言われて何も言えなくなりました
REPL 駆動開発で育ちました
午後からは既存の Looker Studio ダッシュボードの修正依頼に対応しました。
我々と先方の間での、特定のデータに対してどのようなグラフを用いて可視化するなどのイメージのすり合わせには限度があるため、ある程度概形を作っておいて、細かいところを一緒に修正していくという形をとっています。
■ 3, 4, 5 日目
この 3 日間に関しては、1, 2 日目で行った CSV 処理で利用可能となったデータを Looker Studio で可視化するのが主な業務内容でした。
ーーー3 日間に共通するダッシュボード作成の手順
( 1 )以下のような CSV があるとします (この CSV は ChatGPT に生成させたイメージです)
( 2 )この CSV が与えられて、例えば「ユーザーがどのようなボタンを押しているかの割合を収集したい」と先方がおっしゃった場合、以下のようなダッシュボードを作成しています。
( 3 )今回のダッシュボードでは、ユーザーがどのようなボタンを押しているかを表す ”button_interacted” のカラムの情報を集計したいため、
ディメンション: “button_interacted” , 指標: “Record Count”
として円グラフを作成し、表にはそのアクションを行ったユニークなユーザー数を表示するようにしました。
以上のように「可視化したいもの」がたくさん与えられており、これらが見やすくなるようにダッシュボードを作るのが 3日間の仕事でした。
■ 3 日目
サービスのアクセス情報を収集するために、先方のサイトには Google タグ (gtag.js) が埋め込まれています。
しかし既存の gtag のみで収集できるデータでは解析に不十分であるため、新たに gtag を埋め込みたい箇所を検討する会議を社内にて行いました。
この検討内容はその後の会議にて先方と共有しました。
■ 4 日目
サービスを運営している先方との定例会議が行われました。私は普段出席できていないのですが、インターン中ということもあり出席させていただきました。3 日半かけて作成した複数個のダッシュボードを報告し確認していただきました。
■5日目
ダッシュボードは 15 個ほど作成しなければならなかったのですが、1 日 3 個ペースで作成して最終日に完成することができました。
今回のインターンに参加してみてどうでしたか?
K 君:日々更新される生きた実際のデータを解析する経験は、個人では得られない経験かつユーザー体験について考える絶好の機会であると考えています。この機会を活かしてユーザーのことを考えられるエンジニアに成長したいです。また、わからない箇所があれば C-Style のオフィスにいる方にいつでも気軽に質問ができたため、生産性の高い労働ができたと思います。今回のインターンでの経験をきっかけにデータ解析に興味を持ったので、これからも勉強を続けていきたいです。
ご回答ありがとうございました!
K 君:5 日間のインターン期間はとても楽しかったです。お世話になりました!今後もまた機会があれば C-Style の業務に貢献したいです。インターン生として受け入れていただきありがとうございました!
広報担当:K君がC-Styleでインターンをしてくれることになったきっかけは、C-Styleが運営しているKloudのイベント!高専生支援コミュニティであるKloudでは、日々の交流やハッカソン、LT会などを開催しています。興味のある高専生はぜひこちらのKloudのマガジンをご覧ください!
この記事が気に入ったらサポートをしてみませんか?