Slide 1

Slide 1 text

Firestoreを使って純広告配信機能 を作った話

Slide 2

Slide 2 text

Masahiro Higuchi / 樋口雅拓 ● グリーグループのリミア株式会社で、LIMIA という住まい領域のメディアを 作っています。ゲーム会社ですが、最近はメディアに力を入れています。 ● 機械学習のエンジニアですが、iOS, Android,JSなどもやっている何でも屋 です。4歳の娘のパパ。twitter: @mahiguch1 ● https://limia.jp/ ● https://arine.jp/ ● https://aumo.jp/ ● https://moguna.com/ ● https://www.mine-3m.com/mine/

Slide 3

Slide 3 text

Firestoreの説明

Slide 4

Slide 4 text

Firestoreとは? ● FirestoreはFirebaseの機能の一つ。Document Databaseと呼ばれるも の。2019年1月31日にGAになった。 ● SDKがあり、iOS/Androidから直接アクセス可能。 ● データの入力はFirebase管理画面から可能。 —> つまり、アプリ実装のみで、ClientServer型のシステムを構築できる!

Slide 5

Slide 5 text

Firestoreのモデル ● Document DatabaseとはNoSQLの一種。 ● OracleやMySQLといったRDBでは事前にSchemaを定義しておくが、Document Databaseで は後から自由に変更できる。 jsonをそのまま格納できるイメージ。 ● データはDocumentという場所に格納され、それが Collectionでまとめられている。 ● 分かりやすくMySQLで例えると、Collectionがテーブル、Documentがレコード。 —> 正直分かりづらいと思うので、画面とコードを見ながら説明していきます!

Slide 6

Slide 6 text

Firestoreへのデータ入力方法 ● 左: コレクション ● 中: ドキュメント ● 右: ドキュメントの中身 管理画面があるので、ここから 入力できる。

Slide 7

Slide 7 text

Firestoreからのデータ取得方法 Collectionと Documentを指 定することで取得 可能。

Slide 8

Slide 8 text

Firestoreから複数データ取得方法 SQLのように whereで絞り込み が可能

Slide 9

Slide 9 text

自作した純広告配信機能の説明

Slide 10

Slide 10 text

純広告 is 何? ● 自社で販売している広告商品 ● AdNet経由で流れてくる広告と区別するためにこう呼んでいる ● 表示回数やクリック数を保証しているので、それを達成する必要がある。 ● 関東在住40代男性のような絞り込みをかける必要がある

Slide 11

Slide 11 text

ターゲティングはUserPropertyxRemoteConfig ● ユーザの所在地、年齢、性別の推定情報などを UserPropertyに設定する。 ● それを使ってRemoteConfigで細かく制御 ● 条件に一致していた場合true、それ以外の場合falseを返すようにする。

Slide 12

Slide 12 text

その情報を取得する documentSnapshotsには、掲載枠で絞り込んだ全案件が入っています。 それをObjectにして、配信比率で絞り込み、制約条件でも絞り込みます。 残った候補の中からランダムに 1つを掲載します。 制約条件に一致しているかどうかは、 RemoteConfigから取得した値で判定しています。

Slide 13

Slide 13 text

罠: バージョンアップでnullableになる バージョンアップすると、取得したドキュメントがnullableになっていった。GAに なったので、もう無いと思いますが。。。

Slide 14

Slide 14 text

まとめ ● Firestoreを使うと、アプリだけでClientServerシステムができる。 ● UserProperty x RemoteConfigと組み合わせると、色々できそう。 ● Firestoreはバージョンアップするとnullableなものが増えている可能性が あるので注意 ご静聴、ありがとうございました!