シナリオマスタとLINE Messaging APIで柔軟なアンケートシステムを構築。ユーザー属性に基づく動的な介護施設レコメンドシステムの実現へ
顧客中心のアプローチで介護ニーズに応える
ユーザー体験を重視したLINEアンケートの導入
PL(プロジェクトリーダー):私たちは、介護ドメインでサービスを提供していますが、ユーザーニーズの多様化に伴い、よりパーソナライズされた対応が求められるようになってきました。そこで、LINEを活用してユーザーの属性や状況を直接収集し、適切なサービスを提案できるようにしたいと考えました。このPJが企画されたとき、率直にどう思いましたか?
エンジニア:今回、LINE Messaging APIとBigQueryを使ったサブシステムとして切り出そうという方針のもと、アーキテクチャ設計から任せてもらいました。自分にとっては初めてづくしの挑戦だったので正直不安はありました。それでも挑戦の機会を与えてくれて、設計レビューなど支援してくれたマネージャやテックリードの方々に感謝しています。
PL:エンジニアとして、すごく良い経験になりましたね。設計時点では、単に質問を投げかけるだけではなく、ユーザービリティへの配慮が課題として見えてきたので、ユーザーにストレスなく回答してもらえるよう、UIにこだわったものになりました。具体的な工夫を教えてください。
エンジニア:選択肢からタップするだけで回答できるようにしたり、設問の表示を工夫したりしています。また、回答に応じてパーソナライズされたメッセージを返すことで、ユーザーエンゲージメントの向上も狙っています。
選択肢から回答可能なUIで利便性を高める
PL:ユーザーが手間なく回答できるUIを実現するため、実装レベルで工夫したことを教えてください。
エンジニア:まず、デザイナーと協力して選択肢をボタン化し、タップするだけで回答できるようにしました。自由入力よりも選択肢の方が、ユーザーの手間が少なくて済むと考えたからです。ただし、選択肢の文言が長くなる場合は、デザイナーの提案でボタンのサイズを調整して読みやすさを確保しています。
PL:ユーザービリティを高める上で選択肢方式は有効ですよね。ただ、選択肢の文言次第では、ボタンが潰れて見づらくなるリスクもあります。回答を促す質問文と選択肢のデザインのバランスが重要だったのではないでしょうか。
エンジニア:その通りです。デザイナーと適宜打ち合わせの機会を設け、設問文と選択肢のレイアウト調整に取り組みました。フォントの種類や大きさ、行間などを数パターン試して最適化しました。また、長文の選択肢が出た場合は、デザイナーの提案でボタンをタテ長にして文字が潰れないよう工夫しています。この過程で、デザイナー視点のプロダクトへの落とし込みの重要性を再認識しました。
柔軟性と拡張性を備えたアーキテクチャ
シナリオマスタを活用した設問・選択肢の動的管理
PL:設問や選択肢の文言は、プログラム上に硬直的に組み込まれているのではなく、シナリオマスタから動的に取得されているんですよね。この設計に至った経緯を教えてください。
エンジニア:この設計には主に2つの課題がありました。1つ目は、マーケティング部門からの頻繁な内容変更要求に迅速に対応する必要があったこと。2つ目は、将来的な機能拡張を見据えて、システムの拡張性を確保することでした。
そこで、柔軟性の面では、シナリオマスタからアンケート内容を動的に取得することで、コードの変更なしに内容を更新できるようにしました。拡張性については、データ構造を汎用的に設計し、新しい質問の追加が容易になるようにしています。
PL:コンテンツの管理とアプリケーションの分離によって、それぞれの変更サイクルを個別に制御できるようにしたのは素晴らしいですね。ただ、シナリオマスタとアプリケーションの連携部分は、パフォーマンスの課題が潜んでいる可能性のある箇所だったので、エンジニアの腕の見せ所でしたね。
エンジニア:確かに、そこが一番の懸念事項だったので、シナリオマスタからのデータ取得はアプリケーション起動時に一括で行い、メモリ上にキャッシュするようにしました。これによりリクエスト多重化を回避し、パフォーマンスの劣化を最小限に抑えられました。
データ活用による介護サービスの最適化
収集データに基づくパーソナライズされた施設レコメンド
PL:プロジェクトの最終的な目的は、ユーザーごとに最適な介護施設をレコメンドすることにあるわけですが、具体的なアプローチの設計について振り返ってください。
エンジニア:まずは、アンケートで収集したユーザーの属性データと、施設の特徴データをマッチングさせることで、ユーザーごとの施設適性スコアを算出しています。例えば、介護度が高い方には介護が手厚い施設を、予算が心配な方には低価格の施設をレコメンドするといった具合です。
PL:ユーザープロファイリングと施設特性のマッピングによるレコメンド機能ですね。アンケートの設問で特に工夫した項目はどのようなものですか?
エンジニア:「入居に際して最も重視する点は何か」という質問は重要だと考えています。この回答を分析し、施設の評価ポイントとマッチングさせることで、個々のニーズにより適したレコメンドが可能になります。また、施設の体験談ページへのアクセス履歴なども加味しています。
継続的な改善とユーザー体験の向上を目指す
PL:レコメンドの精度を高めるために、今後どのようなステップを考えていますか?
エンジニア:まずは、アンケートの回答傾向を継続的に分析し、設問内容や選択肢を最適化していく予定です。加えて、レコメンド結果に対するユーザーの行動履歴を追跡し、アルゴリズムの改善を重ねていきます。さらに、アンケート回答以外の行動データも取り込んで、ユーザープロファイルの精緻化を図る計画があります。
PL:データ主導のアプローチによる継続的な改善サイクルを構築するわけですね。ただ、行動データの収集には個人情報保護の観点から細心の注意を払う必要がありそうです。
エンジニア:その点は十分に意識しています。個人を特定できる情報は徹底的にハッシュ化やアノニマイズ処理を施し、利用目的を明確にした上で最小限の情報しか収集しないよう心がけています。ユーザープライバシーの保護と、サービス向上のための情報活用のバランスを常に考えながらの運用を目指していきます。