iOS
Firebase
In-AppMessaging

Firebase In-App Messagingを早速触ってみたのでまとめる

In-App Messaging, Crashlytics integrations, and more! Oh my! にて発表があり、「In-App Messaging」という機能がβ公開されたので早速触ってみました。

In-App Messagingとは


(引用: In-App Messaging, Crashlytics integrations, and more! Oh my!)

ざっくり説明すると、アプリ内で指定した条件に基づき、カスタマイズしたポップアップ形式やバナー形式のViewを表示できる機能です。
よくサービス内で、特定の条件になったらポップアップを出すとか、そういう実装をすると思うのですが、それをFirebaseが今回提供した形です。

In-App Messagingでできること

  • 表示するViewのカスタマイズが可能
    • 背景色、文字色、テキスト、画像、ボタン、ボタンのアクションが設定できる(後述)
  • Viewは横画面、タブレットにも自動対応
  • アプリケーションやユーザープロパティに基づき、配信するユーザーのセグメントを切って配信することができる
  • Viewの表示はFirebase Analyticsのイベントと連動させて発火させることができる
  • 配信は開始日と終了日を決められ、いつでも開始、終了ができる
  • 配信した結果(コンバージョン、imp,click数)を計測できる

といった具合に、できることがかなり幅広いです。そして何より、Firebase Analyticsのイベントに基づき発火させることができるので、(事前に必要なイベントを仕込んであれば) 1アプリのアップデートなし に表示することができます

アプリ側の実装は?

iOSの場合ですが、

  • podで 'Firebase/InAppMessagingDisplay' を追加
  • AppDelegateでFirebaseApp.configure() でセットアップ

するだけです! かなりお手軽!

(入れるためには、Firebaseのライブラリ群のバージョンが最新でないとだめです。。Firebase iOS SDK 5.6以上を求められました)

使ってみる

実際にどのように表示するのか試してみたので手順をまとめます。
まずは、GrowthのところにあるIn-App Messagingをクリックして、「新しいキャンペーンを作成」でキャンペーンを作成します。

スタイルの作成

作成を押すと、次のような画面がでてきます。

最初にスタイルと内容を決めることが出来ます。

スタイル

スタイルは3種類あり、「モーダル」「画像のみ」「トップバナー」があります。

スタイル毎に若干カスタマイズできる内容が違います。今回はモーダルで解説を進めます。

パラメータ(モーダル)

スタイルに適応できるパラメータは以下の通りです。

  • 背景: Viewの背景色
  • テキストの色: テキストの色です。現状タイトルと本文とでテキストの色を分けることが出来ません
  • タイトル:上部に表示されるタイトル。必須(必須だけど、空白スペース入れられる)
  • 本文:タイトル(とあれば画像)の下に表示されるテキスト。任意
  • 画像URL: 真ん中に表示する画像のURLを指定します。任意
  • ボタンのテキスト: ボタンを表示する場合はここにボタンのテキストを入れる。入力すると、更に追加項目がでる
    • ボタンの背景、テキストの色
    • ボタンのアクション: ボタンを押したときのアクションをURL形式で指定できる。URL又はURL Schemeが入力できる

アクション

それぞれのスタイルで、ボタンを押す、あるいはViewをタップした時のアクションを定義できます。
アクションはURL SchemeあるいはURLが指定できるので、アプリ内でSchemeを受け取って任意のアクションをする、外部ページに飛ばす、ということが可能。(外部ページの場合はSafariで開かれる)

もちろんFirebase Dynamic Linksも使えます。
それぞれのURLの処理は、通常のURL Schemeの処理やFirebase Dynamic Linksでの受信の処理にハンドリングが移るので、そこで受け取った情報を元に、必要があれば対応するアクションの実装をします。

実際に入れてみるとこのようになります。(画像はいやすと屋から拝借)

端末でテスト

ここまでで制作したViewを端末上でテストすることができます。
事前にここを参考にFirebase InstanceIDを取得し、IDを追加してチェックを付けると、指定した端末でIn-App MessagingにてViewが表示されます。

表示タイミングはアプリを起動したときなので、一度アプリを終了して起動するとでるはずです。

宛先

Messagingを配信する宛先を指定します。

キャンペーン名と説明は、Firebaseのコンソールで識別するためのものなので任意のものを入力します。
ターゲットとして必ず1つ以上のアプリを選択します。また、条件として、ユーザー層やユーザープロパティを指定できるので、ターゲットを絞って配信することができます。

スケジュール

配信日程

配信するスケジュールを選べます。公開直後から配信することもできますし、指定時刻から配信することもできます。
終了日も、指定の時間までの設定が可能です。
デフォルトは

  • 開始:現在
  • 終了:終了日はありません

となっています。

トリガーの条件

トリガーの条件は、Firebase Anayticsのイベントを指定できます。トリガーの条件はor条件として、複数のイベントを指定できます。

端末あたりの頻度の制限

トリガー発火したときに表示される頻度をしていできます。基本的には「キャンペーンに対して端末あたり1回」なので、トリガー発火により1回だけ表示されます。
カスタムとして、◯日毎に1回までしか表示しない、といった具合で頻度を指定することもできます

コンバージョンイベント

入力は任意です、Messagingのインプレッション、クリック数にコンバージョンイベントを紐付けることが出来ます

ここまできたら

あとは問題がなければ公開します。一旦下書き保存にすることもできます。

公開してから指定の条件を満たすと、次のようにアプリ上に表示されます。

In-App Messagingの管理

作成もしくは下書き保存したキャンペーンは、一覧として表示されます。

また、キャンペーン毎に、次の操作をおこなうことができます

まとめ

若干デザインの制約があったりしますが、今までは自分たちで条件毎に出し分けていたり、3rd party製のライブラリやツールを頼って表示し、その効果を測定したりしていましたが、それらが手軽に実現できるようになるので、少ない工数で効果を測定するにはもってこいだと思います。
Analyticsの仕込みと、ユーザープロパティの仕分け、SDKの導入さえ済んでいれば、アプリのアップデートなしに色々表示ができるのも強みかと思います。

現時点でまだβなので、今後よりカスタマイズに富んだり、機能が追加されることを願いたいですね :pray:


  1. もちろん、事前にIn-App Messagingをアプリに導入する、対応するURL Schemeのアクションを実装する、トリガーとなるAnalyticsイベントを仕込み、アプリをアップデートしておく必要はあります。