Upgrade to Pro — share decks privately, control downloads, hide ads and more …

New features in RemoteConfig, Analytics at Google I/O 2019

New features in RemoteConfig, Analytics at Google I/O 2019

FJUG Google I/O 2019報告会で発表した資料です

yu mitsuhori

June 27, 2019
Tweet

More Decks by yu mitsuhori

Other Decks in Technology

Transcript

  1. New features in RemoteConfig & Analytics at Google I/O 2019

    FJUG Google I/O 報告会 養命酒/@1013Youmeee
  2. 自己紹介 - 三堀 裕(みつほり ゆう) - 養命酒(youmeee, youmitsu) - メインはAndroid

    - 新宿の隣でヘルスケア系アプリを開発しています。 - Github: youmitsu - Twitter: @1013Youmeee 2 2
  3. I/O 2019行ってきました 3

  4. この発表で紹介すること - Google I/O 2019で紹介されたRemoteConfig, Analytics周りの技術の紹介 - セッションの内容をベースに興味を持った技術、新技術について紹介していきます 4

  5. 私がなぜここにいるのか - I/O 2019に参加した - 前回のFirebase Meetup#13でRemoteConfig、UserPropertyを利用したプッシュ通知 についてLTをさせていただいた - コキチーズさんと懇親会でお話しさせていただいて、I/O報告会するので登壇してみ

    ないかと誘われた - I/Oに関するLTは社外ではやっていなかったため良い機会だと思った みなさまに有用な情報をお届けできるように頑張ります 5
  6. Firebase in I/O 2019 6

  7. What’s new in Firebase - Firebaseの新機能について紹介さ れたセッション - 以下の3つのコンセプト -

    Build better apps - Improve app quality - Drive user engagement 7
  8. 8

  9. Build better apps - よりアプリの実装を簡単にするための新たな機能の紹介 - ML Kit - Object

    Detection API, Tracking API - Auto ML Vision Edge - Firestore - Collection Group - Functions - Scheduled functions - Emulator - Remote Config Event 9
  10. Improve app quality - クラッシュやANRなどが少なくするようアプリの品質を改善していく - Test Labs - Wear

    OS, App Bundle support - Firebase Performance Monitoring - Web support - Big query Integration - Crashlytics - Migration from fabric - Big query integration 10
  11. Drive user engagement - 安定してきたらユーザーのエンゲージメントを生み出すためのビジネス施策を実施 していく - Google Analytics for

    Firebase - Flexible filtering - New audience builder 11
  12. 12

  13. こちらについて詳解していきます - New Audience Builder - Realtime Propagation of Remote

    Config Update 13
  14. New Audience Builder 14

  15. Google Analytics for Firebase - Firebase向けに最適化されたGoogle Analytics - アプリの使用状況とユーザー エンゲージメントについて分析するこ

    とができる、無料のアプリ測定ソリューション - アプリにカスタムイベントを仕込んだり、プロパティを定義して、セ グメンテーションしたりすることも可能 15 Google Analytics for Firebase
  16. Audience - ユーザーを特定の意味のある塊でまとめて管理できる - Audience Builderを使って構築する 16

  17. 新しいAudienceのコンセプト 17 Dynamic Evaluation Membership duration Exclusion

  18. 今までのAudience Builder 18

  19. 新しいAudience Builder 19

  20. Audience Builder in new UI 〜Audienceの作成方法の選択〜 20 カスタムの条件でオーディエンス を作成する場合 Firebaseから提案されたものを

    選択可能
  21. Audienceに含める条件、有効期間の設定 〜例:Tutorialを始めたユーザをグループ化〜 21 ↑と↗の条件に 該当するユーザ数 グループに 含めたい条件を設定 グループに含める期 間の指定 (1~540)

    最大値に設定 該当する セッション数
  22. Audienceに含めない条件(除外グループ)の設定 〜例:Tutorialを終えていないユーザを除外〜 22 グループに 含めたくない条件を設定 除外された ユーザー数も 表示される 次の条件に当てはまるユーザーを 一時的に除外する

    現時点で条件を満たすユーザを対象(動的) 次の条件に当てはまるユーザーを 完全に除外する 一度でも満たしたユーザを対象(静的)
  23. 設定可能な細かい条件 ディメンション 23 指標 イベント 【LTV】期間で指定も可能 【ディメンション】 指定あり:動的 指定なし:静的 【イベント】

    期間で指定も可能 以下が選択可能
  24. 条件をシーケンスとして設定 〜イベントの一連の流れをまとめて条件に設定可能〜 (例)アプリを最初に開いたあと 課金をしたユーザ 24 シーケンスの追加はここから行う 時間の制約をつけることも可能

  25. 作成したAudienceはフィルタリングに使用可能 - Dashboard - Events - Conversions - Funnels 25

  26. 作成したオーディエンスをターゲットにプッシュ通知を 送信することもできる 26 作成したAudienceを 指定可能

  27. - Understand and Engage Your Top Users with Dynamic Audiences

    - https://youtu.be/ouZkadjMn94 27 こちらのセッションでも紹介されています
  28. Realtime Propagation of Remote Config Update 28

  29. Firebase Remote Config - 環境変数的なConfig値をクラウドを通じてクライアントに 配信することができる - ユーザの割合や、ロケールなどの条件を使って、配信 するConfig値を変えることが可能 -

    ABテストにも利用できる 29 Remote Config
  30. Remote Configの利用例 〜表示画像URLをOS、ロケールごとに分ける〜 French English

  31. Remote Config Update Propagation - Remote Config の変更を即時にアプリ側に伝搬させ最新のConfigを取得できるよう にする仕組み -

    キャンペーンを打つ際など即時性が要求されるケースで有用 - Remote Config Eventを使う 31
  32. Remote Config Event - Remote Configの設定更新時にCloud Functionsでイベントを受け取ることができる - Firebase Summit

    2018で発表された 32
  33. Firebase Cloud Functionsについて - Firebase上で関数を実行できるサービス - GCPのCloud FunctionsをFirebaseで使えるようにしたも の -

    多くのイベントハンドラが用意されている - FireStore, RealtimeDatabase, Auth, Analytics, CloudStorage, Cloud Pub/Sub, Http, Remote Config 33 Cloud Functions for Firebase
  34. Firebase Cloud Messaging - プッシュ通知配信基盤サービス - Firebaseコンソールでは送信クライアントが用意されてい る - Firebase

    AdminSDKを使うと、Cloud Functionsからも通 知を送信することができる 34 Firebase Cloud Messaging
  35. 実装例〜Remote Config Propagation〜 35

  36. 何が美味しいか - 本番環境ではfetchのキャッシュ有効時間(デフォルト12時間)が設定されるため、 RemoteConfigの更新を即時反映することが難しかった。 - RemoteConfigの値が変更された瞬間にアプリ側で新たなConfig値を取得すること が可能 - I/O19ではゲームのポイントなどを増量するキャンペーンを実施するデモにて利用さ れていた

    36
  37. 実装してみる〜Remote Config Propagation〜 37

  38. 実装するもの 〜スプラッシュをクリスマス限定デザインにする〜 1. アプリ起動時にSplash画面を表示する 2. Splashの画像URL、タイトル、メッセージはRemoteConfigの値を参照 3. RemoteConfigに変更があった瞬間にアプリに通知し、新たなConfig値を取得 4. 次回アプリ起動時にSplashがクリスマス限定デザインに更新される

    ※Androidアプリでの実装の紹介になります 38
  39. 要するにこうなります 39 RemoteConfigを更新 通常時 限定デザイン時

  40. ①Remote Configの設定 40 RemoteConfigの更新

  41. ①Remote Configの設定 〜コンソールにてConfigを定義〜 41 Configの更新

  42. ②Remote Config Eventを受け取る 42 RemoteConfigの更新を トリガーにFunctionを実行する

  43. ②Remote Config Eventを受け取る 〜Functionの作成〜 43 - 関数の作成はこちらを参照 https://firebase.google.com/docs/functions/get-started?hl=ja - onUpdate()というメソッドの引数にコールバックを定義

    - versionMetadataの中身は。。。 RemoteConfigのversion情報や更 新時間などの情報が入っている
  44. ③FunctionsからAppへConfigの更新通知 44 FCMでプッシュ通知を アプリに送信する

  45. ③FunctionsからFCMを送る 〜AdminSDKでプッシュ送信〜 45 通知に含めるデータを記述 ・topic: 通知の種類 (アプリ側で受け取るか否かを指定) ・data: CONFIG_STATEは RemoteConfigの更新を表すフラグ

    プッシュ通知を 送信
  46. 46 ③FunctionsからFCMを送る 〜Appで通知受け取るための準備〜 Manifestに通知受け取り用 Serviceを定義 通知受け取り用Serviceを定義

  47. ③FunctionsからFCMを送る 〜AppでTopicのSubscribe〜 - PUSH_RCのTopicをSubscribe - PUSH通知送信クライアントが PUSH_RCのトピックを指定している通知のみ受け取る 47

  48. ④AppのストレージにStaleフラグを立てる 48 Remote Configの値が 古いことを表す フラグをtrueにする

  49. 49 ④AppのストレージにStaleフラグを立てる 〜通知のデータからConfig更新フラグを保存 - アプリ内ストレージのStaleフラグを更新する - Android: SharedPreferences, iOS: UserDefault

    - Staleフラグ:RemoteConfigの値が古くなったことを表す Staleフラグをtrueにする Cloud Functionで指定した データペイロード
  50. ⑤最新のRemoteConfigをfetchする 50 最新のConfigを取得する

  51. ⑤最新のRemoteConfigをfetchする 〜RemoteConfigのキャッシュ有効時間の設定〜 51 アプリ内ストレージの Staleフラグを参照 true: 古い => 最新を取得(0ms) false:

    新しい =>そのまま(12時間)
  52. ⑤最新のRemoteConfigをfetchする 〜最新のConfigを取得=>画面反映〜 52 取得したConfigを使って 画面反映 取得したあとは Staleフラグをfalseに戻す RemoteConfigの値を取得

  53. 結果こうなります 53 RemoteConfigを更新 通常時 限定デザイン時

  54. 注意点 - FCM経由で更新を知らせるためプッシュ通知受信をオフにしているユーザは即時反 映されない - 実際にSplashに適用する際は、レイテンシがあるので、ローカル内に画像を持たせ て、IDだけをRemoteConfig経由で渡すようにした方が良いと思います。 54

  55. デモ(時間があれば) - ソースコードはこちら https://github.com/youmitsu/HatenaRssReaderApp 55

  56. まとめ 56

  57. まとめ - I/O19では、実際の開発ストーリーに沿ってFirebaseをアプリのグロース施策に役立 てるための方法が紹介されていた。 - より優れたアプリを開発 > アプリの品質を改善 > ユーザを分析しビジネス施策を実施

    - Remote Config Eventを使うとRemote Configの変更を即時にアプリ側に伝え、新た なConfig値を取得することができる - Audience BuilderはUIが新しくなり、より柔軟かつ活用的になっている - 動的評価、除外グループ、有効期間 57
  58. 参考資料 - Google I/O 2019 での Firebase の新機能(Google Developers Japan)

    - https://developers-jp.googleblog.com/2019/06/google-io-2019-firebase.html - ユーザーリスト(Firebase ヘルプ) - https://support.google.com/firebase/answer/6317509?hl=ja - セッション動画 - Understand and Engage Your Top Users with Dynamic Audiences https://youtu.be/ouZkadjMn94 - What's New in Firebase https://youtu.be/x8qTEMkZCPs - Engage and Keep Your Users in Your App with Firebase https://youtu.be/Bg1Kb-mMnAM 58