Slide 1

Slide 1 text

Firebase In-App Messaging で 過去バージョンのユーザーへ更新を促 したい! After iOSDC Japan 2020 Sansan株式会社 Sansan事業部 プロダクト開発部 中川 泰夫 1 1

Slide 2

Slide 2 text

⾃⼰紹介 iOS Engineer@Sansan bat43 / yosino58 @ynakagawa33 2 2

Slide 3

Slide 3 text

アジェンダ . あらすじ . Firebase In-App Messaging で実現できること . Firebase In-App Messaging を採⽤するメリット . Sansan に Firebase In-App Messaging を導⼊してみた . まとめ 3 3

Slide 4

Slide 4 text

あらすじ 4 4

Slide 5

Slide 5 text

とあるプロジェクトにて PM 「バージョンアップなしに過去バージョンのユーザーへガ イドできないか?」 私「Firebase In-App Messaging が使えるかなー?」 技術調査開始 5 5

Slide 6

Slide 6 text

Firebase In-App Messaging で実現できること 6 6

Slide 7

Slide 7 text

Firebase In-App Messaging で実現できること Firebase In-App Messaging は アクティブユーザーへ⽂脈に応じ たメッセージを配信できます 7 7

Slide 8

Slide 8 text

Firebase In-App Messaging を採⽤するメリット 8 8

Slide 9

Slide 9 text

Firebase In-App Messaging を採⽤するメリット . メッセージを実装する度にコードを増やさずに済む . 特定のユーザーに特定のタイミングでメッセージを送信でき る . メッセージごとにデザインのカスタマイズができる 9 9

Slide 10

Slide 10 text

Firebase In-App Messaging を採⽤するメリット . メッセージを実装する度にコードを増やさずに済む . 特定のユーザーに特定のタイミングでメッセージを送信でき る . メッセージごとにデザインのカスタマイズができる 10 10

Slide 11

Slide 11 text

メッセージを実装する 度にコードを増やさず に済む ※ 画像はイメージです 11 11

Slide 12

Slide 12 text

Firebase In-App Messaging を採⽤するメリット . メッセージを実装する度にコードを増やさずに済む . 特定のユーザーに特定のタイミングでメッセージを送信でき る . メッセージごとにデザインのカスタマイズができる 12 12

Slide 13

Slide 13 text

特定のユーザーに特定のタイミングで メッセージを送信できる ユーザー タイミング アプリ / バージョン / ⾔語 / プロパティ / オーディエン ス / Predications / 初回起 動 / 前回の利⽤からの経過 ⽇ on_foregrand / app_launch / app_exception / dynamic_link_open / os_update / screen_view / session_start 13 13

Slide 14

Slide 14 text

Firebase In-App Messaging を採⽤するメリット . メッセージを実装する度にコードを増やさずに済む . 特定のユーザーに特定のタイミングでメッセージを送信でき る . メッセージごとにデザインのカスタマイズができる 14 14

Slide 15

Slide 15 text

メッセージごとにデザイン のカスタマイズができる カード モーダル 画像のみ トップバナー 15 15

Slide 16

Slide 16 text

Sansan に Firebase In-App Messaging を導⼊してみた 16 16

Slide 17

Slide 17 text

Sansan に Firebase In-App Messaging を導⼊してみた . 事前準備 . アプリに Firebase In-App Messaging を追加する . テストメッセージを送信する 17 17

Slide 18

Slide 18 text

Sansan に Firebase In-App Messaging を導⼊してみた . 事前準備 . アプリに Firebase In-App Messaging を追加する . テストメッセージを送信する 18 18

Slide 19

Slide 19 text

事前準備 Firebase が有効なアプリ Xcode 10.3 以降 CocoaPods 1.4.0 以降 19 19

Slide 20

Slide 20 text

Firebase を有効に してない⼈向け プロジェクトを作成する 20 20

Slide 21

Slide 21 text

Firebase を有効に してない⼈向け アプリを作成する 21 21

Slide 22

Slide 22 text

Firebase を有効にしてな い⼈向け ダウンロードした GoogleService-Info.plist をXcode プロジェクト ルートへ追加し、 すべてのターゲットに追加 22 22

Slide 23

Slide 23 text

Sansan に Firebase In-App Messaging を導⼊してみた . 事前準備 . アプリに Firebase In-App Messaging を追加する . テストメッセージを送信する 23 23

Slide 24

Slide 24 text

アプリに Firebase In-App Messaging を追加する Podfile で次の Pod をインクルードします ※ 事前に CocoaPods の導⼊を済ませておいてください pod 'Firebase' pod 'Firebase/InAppMessaging' pod 'Firebase/Analytics' pod install を実⾏し、 .xcworkspace ファイルを 開きます ※ うまく⾏かなかったら、 pod update 24 24

Slide 25

Slide 25 text

アプリに Firebase In-App Messaging を追加する Firebase モジュールを UIApplicationDelegate に インポート import Firebase 25 25

Slide 26

Slide 26 text

アプリに Firebase In-App Messaging を追加する FirebaseApp 共有インスタンスを構成 通常はアプリの application:didFinishLaunchingWithOptions: メソッド // Use Firebase library to configure APIs FirebaseApp.configure() 26 26

Slide 27

Slide 27 text

Sansan に Firebase In-App Messaging を導⼊してみた . 事前準備 . アプリに Firebase In-App Messaging を追加する . テストメッセージを送信する 27 27

Slide 28

Slide 28 text

テストメッセージを送信 する Xcode プロジェクトを開き、上 部のメニューバーから Product > Scheme > Edit scheme の順に選択 28 28

Slide 29

Slide 29 text

テストメッセージを送信 する ポップアップ表⽰されたダイア ログの Arguments タブを開 く 29 29

Slide 30

Slide 30 text

テストメッセージを送信 する Arguments Passed On Launch で + Add items を クリック 新しく作成されたフィールドに 「-FIRDebugEnabled」と⼊⼒ 30 30

Slide 31

Slide 31 text

テストメッセージを送信する Close をクリックし、アプリを実⾏します。 アプリの実⾏が開始されたら、Xcode コンソールのログで次 の⾏を探します。 [Firebase/InAppMessaging][I-IAM180017] Starting InAppMessaging runtime with Instance ID YOUR_APP_ID 31 31

Slide 32

Slide 32 text

テストメッセージを送信する Starting InAppMessaging runtime でフィルターす ると探しやすい 32 32

Slide 33

Slide 33 text

テストメッセージを 送信する Firebase コンソールで In-App Messaging を開きます。 33 33

Slide 34

Slide 34 text

テストメッセージを 送信する 最初のキャンペーンを作 成 をクリックします。 34 34

Slide 35

Slide 35 text

テストメッセージを 送信する メッセージの タイトルを⼊⼒します メッセージレイアウト はトップバナーを選び ます 35 35

Slide 36

Slide 36 text

テストメッセージを 送信する デバイスでテスト をク リックします 36 36

Slide 37

Slide 37 text

テストメッセージを 送信する インストール ID の追 加 フィールドにアプリ の Firebase インストー ル ID を⼊⼒します。 37 37

Slide 38

Slide 38 text

テストメッセージを 送信する テスト をクリックして メッセージを送信しま す。 38 38

Slide 39

Slide 39 text

テストメッセージを 送信する 39 39

Slide 40

Slide 40 text

まとめ 40 40

Slide 41

Slide 41 text

この話には続きがあります 41 41

Slide 42

Slide 42 text

Firebase In-App Messaging 採⽤されんかった 42 42

Slide 43

Slide 43 text

なぜ、採⽤できなかったか . 外部サービスに依存することによるリスク . すでにあるお知らせの機能を拡張したほうが運⽤⾯で楽 . アプリのアップデートを促すプロジェクトが別にあった 43 43

Slide 44

Slide 44 text

なぜ、採⽤できなかったか . 外部サービスに依存することによるリスク . すでにあるお知らせの機能を拡張したほうが運⽤⾯で楽 . アプリのアップデートを促すプロジェクトが別にあった 44 44

Slide 45

Slide 45 text

外部サービスに依存 することによるリス ク Sansan アプリは AWS にすでに依存している ベータ版である In-App Messaging に依存する ことは可⽤性の観点から 難しい 45 45

Slide 46

Slide 46 text

なぜ、採⽤できなかったか . 外部サービスに依存することによるリスク . すでにあるお知らせの機能を拡張したほうが運⽤⾯で楽 . アプリのアップデートを促すプロジェクトが別にあった 46 46

Slide 47

Slide 47 text

すでにあるお知らせの 機能を拡張したほうが 運⽤⾯で楽 お知らせを出せば、デイ リーで 900 タップされ ている (DAU 65000) お知らせに Push 通知を つけたり、トップ画⾯に フルスクリーンで出した り… 47 47

Slide 48

Slide 48 text

なぜ、採⽤できなかったか . 外部サービスに依存することによるリスク . すでにあるお知らせの機能を拡張したほうが運⽤⾯で楽 . アプリのアップデートを促すプロジェクトが別にあった 48 48

Slide 49

Slide 49 text

アプリのアップデートを促すプロジェクトが別 にあった ArtSabintsev/Siren を使って、 App Store のメタ情報と アプリバージョンを⽐較して、ユーザーにアプリの更新を促 す この機能とお知らせの合わせ技で PM の欲求を満たせる 49 49

Slide 50

Slide 50 text

まとめ 50 50

Slide 51

Slide 51 text

まとめ Firebase を導⼊しておけば、アプリ内メッセージは簡単に表 ⽰できる ただし、外部サービスなので、リスク分析した上で⽤法、容 量を守って使おう 51 51

Slide 52

Slide 52 text

52 52