Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firestoreを使って純広告配信機能を作った話
Search
mahiguch
March 27, 2019
Programming
3
2.2k
Firestoreを使って純広告配信機能を作った話
potatotips #60 (iOS/Android開発Tips共有会)のLT資料です。
https://potatotips.connpass.com/event/123002/
mahiguch
March 27, 2019
Tweet
Share
More Decks by mahiguch
See All by mahiguch
爆速で成長する おでかけ情報サービスの成長を支えるデザインと開発の取り組みについて
mahiguch
0
16
WebView認証連携
mahiguch
0
44
メディアアプリLIMIAにおけるプッシュ通知配信システム
mahiguch
0
74
公式部活動技術書典部の活動紹介
mahiguch
0
86
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
mahiguch
1
960
PHPからgoへの移行で分かったこと
mahiguch
2
3.7k
BigQueryを使った機械学習プロジェクトの分析とオフライン検証
mahiguch
1
1k
gRPCを使ったメディアサービス2
mahiguch
0
160
LIMIAでのBigQuery活用事例
mahiguch
0
160
Other Decks in Programming
See All in Programming
私のEbitengineの第一歩
qt_luigi
0
410
New Order in Cascade Sorting Order
mugi_uno
3
2.5k
iOSDC 2024
auramagi
3
590
状態管理ライブラリZustandの導入から運用まで
k1tikurisu
2
260
Web技術を駆使してユーザーの画面を「録画」する
yukukotani
13
6.2k
LangChainでWebサイトの内容取得やGitHubソースコード取得
shukob
0
120
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
4
2.9k
Regular Expressions, REXML, Automata Learning
makenowjust
0
180
ゲームボーイアドバンスでSwiftを動かそう
k_koheyi
0
510
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
340
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
0
220
TypeScriptで 負荷テストを書こう 〜k6のシングルバイナリの秘密〜
dora1998
7
2.8k
Featured
See All Featured
Happy Clients
brianwarren
96
6.6k
The Pragmatic Product Professional
lauravandoore
30
6.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
35
6.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
27
8.9k
We Have a Design System, Now What?
morganepeng
48
7.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Done Done
chrislema
180
16k
How to Ace a Technical Interview
jacobian
275
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
42
2k
Code Reviewing Like a Champion
maltzj
518
39k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
Transcript
Firestoreを使って純広告配信機能 を作った話
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/
Firestoreの説明
Firestoreとは? • FirestoreはFirebaseの機能の一つ。Document Databaseと呼ばれるも の。2019年1月31日にGAになった。 • SDKがあり、iOS/Androidから直接アクセス可能。 • データの入力はFirebase管理画面から可能。 —>
つまり、アプリ実装のみで、ClientServer型のシステムを構築できる!
Firestoreのモデル • Document DatabaseとはNoSQLの一種。 • OracleやMySQLといったRDBでは事前にSchemaを定義しておくが、Document Databaseで は後から自由に変更できる。 jsonをそのまま格納できるイメージ。 •
データはDocumentという場所に格納され、それが Collectionでまとめられている。 • 分かりやすくMySQLで例えると、Collectionがテーブル、Documentがレコード。 —> 正直分かりづらいと思うので、画面とコードを見ながら説明していきます!
Firestoreへのデータ入力方法 • 左: コレクション • 中: ドキュメント • 右: ドキュメントの中身
管理画面があるので、ここから 入力できる。
Firestoreからのデータ取得方法 Collectionと Documentを指 定することで取得 可能。
Firestoreから複数データ取得方法 SQLのように whereで絞り込み が可能
自作した純広告配信機能の説明
純広告 is 何? • 自社で販売している広告商品 • AdNet経由で流れてくる広告と区別するためにこう呼んでいる • 表示回数やクリック数を保証しているので、それを達成する必要がある。 •
関東在住40代男性のような絞り込みをかける必要がある
ターゲティングはUserPropertyxRemoteConfig • ユーザの所在地、年齢、性別の推定情報などを UserPropertyに設定する。 • それを使ってRemoteConfigで細かく制御 • 条件に一致していた場合true、それ以外の場合falseを返すようにする。
その情報を取得する documentSnapshotsには、掲載枠で絞り込んだ全案件が入っています。 それをObjectにして、配信比率で絞り込み、制約条件でも絞り込みます。 残った候補の中からランダムに 1つを掲載します。 制約条件に一致しているかどうかは、 RemoteConfigから取得した値で判定しています。
罠: バージョンアップでnullableになる バージョンアップすると、取得したドキュメントがnullableになっていった。GAに なったので、もう無いと思いますが。。。
まとめ • Firestoreを使うと、アプリだけでClientServerシステムができる。 • UserProperty x RemoteConfigと組み合わせると、色々できそう。 • Firestoreはバージョンアップするとnullableなものが増えている可能性が あるので注意
ご静聴、ありがとうございました!