# はじめに
スライドの QR -> Twitter のプロフィールページに飛べる
本トークのスライドをつぶやいている
手元の環境で見たい方はチェック
# iOS Engineer@Sansan
# キーボード
ものを作ることが好きで最近は自作キーボード沼にはまっている
右下の画像はリモートワーク用とプライベート用のキーボード
# 本 LT のアジェンダです。
あらすじから Firebase In-App Messaging で実現できることを説明し、採用するメリットを述べます。その後、 Sansan アプリに導入した際の手順を共有して、まとめとします。
スライドの動画は機能のアップデートが必要なユーザーに対して、モーダルを表示し、アップデートボタンに App Store Connect のアプリページへのリンクを仕込んでおき、タップしたユーザーへ更新を促している動画です。
簡易なアラートであれば、そこまでコードは増えないと思いますが、デザインされたカードやモーダル、ボタンのアクションに画面遷移のロジックを埋め込んだりする場合、メッセージを実装するたびにコードが増えたり、分岐が増えたりします。
右の画像はとあるダイアログのコードですが、種別に応じて、高さやタイトル、 Description などを分岐しています。
Firebase In-App Messaging を使えば、テンプレートのデザインのままでよければ、アプリ本体にコードを追記せずに新たなメッセージを追加することが出来ます。
以下の表にどんなユーザーにどんなタイミングで送信できるかまとめています。
ユーザーについてはアプリ、アプリのバージョン、 OS の言語とこの後3つの項目については補足します。
プロパティ: Firebase Analytics の機能でユーザーに対して任意の属性を付与することが出来、その属性のユーザーに対して、メッセージを発信することが出来る。例えば、無課金ユーザーに課金することによってアプリでどんな事ができるようになるか紹介するメッセージを配信したり出来るかも。
オーディエンス: Firebase Analytics の機能でイベント、パラメータ、プロパティを組み合わせることでユーザーを分類して、一覧を作ることが出来、こちらもプロパティと同じく利用可能。
Predictions: Firebase Predictions の機能で、アナリティクスデータに機械学習を適用し、予測された行動に基づいて動的にユーザーを分類します。 Sansan は法人向けアプリということもあり、 Predictions のメインのユースケースであるコンバージョンを高めたり、アプリの利用が停止することが予測されるユーザーへのアクションしても、効果が低いため、使っていません。
残り2つは初回起動時のユーザー、前回のアプリ利用から指定した日にちが経過したユーザーです。
タイミングについては表に乗せているのは Sansan アプリで利用可能なものだけでこれ以外にも Firebase Analytics が自動で収集してくれるイベントは利用できますし、自分で Firebase Analytics でイベントを追加すれば、 Firebase In-App Messaging のタイミングとして利用できるようになります。
デザインのテンプレートはカード、モーダル、画像のみ、トップバナーがあり、 Firebase コンソールからはレイアウトは変更ができませんが、中身のコンテンツは自由に変更することが可能です。
まず、 Firebase プロジェクトを作成しましょう。
プロジェクト名を入力し、 Firebase Analytics の設定を有効にするか選択します。
Firebase In-App Messaging は Firebase Analytics を利用するので、有効にした状態でプロジェクトを作成します。
次に Firebase プロジェクトにアプリを登録します。
アプリの Bundle Itentifier を入力し、 Firebase の設定ファイルをダウンロードします。
それ以降の手順はスキップして構いません。
注意事項に「アプリを開くと、テストメッセージがトリガーされます」とありますが、 アプリの起動時に仕込んだ FirebaseApp.configure() の内部とアプリが前面に出る前のイベントにメッセージを取得するフローが登録されていることが SDK から分かりました。
スライドの動画は Sansan アプリを開いて、テストメッセージの「Hello world!」がトップバナーに表示される様子です。
Sansan アプリはすでに Firebase は導入済みでしたので、 Podfile に InAppMessaging を追加するだけでメッセージを表示できるようになりました。
とてもお手軽ですね。
悲しいですが、 Sansan アプリには Firebase In-App Messaging を採用できませんでした。次になぜ、採用できなかったのか理由を共有しようと思います。
Sansan アプリは AWS の EC2 サーバーにデプロイされた API を叩いているため、すでに AWS に依存しています。
そこからさらに現在、ベータ版である Firebae In-App Messaging に依存することはアプリの可用性の観点から難しかったです。 API は動いているけど、 In-App Messaging が動いていないからガイドが出来ないといったことも考えられます。
実は Sansan アプリにはお知らせ機能があって、
お知らせを出せば、デイリーで 900 タップされているそうです。
現状はスライドの画像のように何もお知らせがないユーザーがほとんどですが、
お知らせに Push 通知をつけたり、トップ画面でフルスクリーンで表示するなどの改善を施すことも出来ますし、すでにある運用フローをそのまま利用することも可能です。
弊社では今年の5月に「Builders Box」というエンジニアのための情報サブスクリプションを立ち上げました。
Builders Boxにご登録いただくと、会員専用サイトを通じて厳選情報を受け取ったり、会員限定イベントへの招待、技術カンファレンス参加支援などの特典が受けられます。
詳細はこちらのQRコードから、もしくは「buildersbox-online」と検索していただき、ご確認いただければと思います。