Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Firebase & BigQuery 實戰分享
Search
Steven Hsieh
February 24, 2017
Technology
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firebase & BigQuery 實戰分享
2017.02.24 @ iChef
Steven Hsieh
February 24, 2017
Transcript
44 slides
Intro to Firebase / BigQuery BigQuery + Steven Hsieh shared@iChef
2017.02.24
Gogolook Sr. Product Planner, Growth Team HTC Sr. Engineer, Data
Insight Management StorySense Web Developer & Project Manager Hi, I’m Steven 2
• Firebase Introduction • Access raw data à BigQuery •
Export/Pricing/Structure • 操作語法 (SQL) • How to save money? • Application Case • Debug View • Calculate churn retention (with A/B test) • Monitor performance • Last action before removing app • What’s next? 3 Agenda
Firebase Introduction 4
5 Firebase Analytics is now Google’s recommended solution for mobile
app analytics (from Google‘s official blog)
Firebase Analytics • 免費 & 事件記錄總數量無上限 (500 個 unique 事件)
• 專為 App 設計的自動事件 (Android & iOS) • first open, in app purchase • app update, app remove, os update, app exception • notification receive, notification open, notification dismiss 6
Firebase Analytics • 自動記錄的 user properties • first open time
• brand, model, OS version, app version • language, country, city • acquisition source, acquisition campaign (Google UTM), install store 7
Case: Uninstall Detection Mar 8, 2013 #stackoverflow “It’s not possible”
Workaround: 自己定義「用戶流失」,例如:7天無任何活動 如果 user 出國 / 都沒電話? 8
Case: Uninstall Detection Device Not Registered è Uninstalled Mar 6,
2014 #hackfindings “A quick answer is GCM” Workaround: 每天發送數千萬個 silent push 若要深入到每小時? 9 • As-is: 利用 GCM server 的回覆狀態判定
Case: Uninstall Detection • 只要整合 SDK,自動記錄 • Android only •
想算每微秒的用戶流失率也可以唷 10 • To-be: Firebase auto collected events
Firebase 11
Firebase Analytics 與它的快樂夥伴們! 12
Firebase Analytics Analysis Action 與它的快樂夥伴們! 13
Firebase Analytics Backend As A Service 與它的快樂夥伴們! 14
Firebase Analytics • 切分目標受眾 (Audience Segmentation) • By user properties
(國家、地區、語言、版本、型號…) • By events 15
Remote Config • App 不需改版即可從後台快速更改內容/ 設定 • 根據目標受眾賦予不同值 • 傳遞不同訊息
• A/B testing • 精準的 percentile 抽樣 16
Case: Suggest Update • 只能同時對所有 user 設定 (要做彈性 targeting,要自己整合資料、設定規則) •
要修改 DB 內的資料值 • As-is: 在自己的 DB 內設定,透過 server API 回給 app Developer API Show 17
Case: Suggest Update • To-be: Firebase Remote Config • 彈性的
user group 設定 • Web 後台修改 18 Show PM/Marketer
Game over 不想等? 買金幣 看廣告 邀請朋友 不願意花錢的人 應用:依據行為模式 傳遞最適合的訊息 19
Firebase Cloud Messaging (FCM) • GCM è FCM: Android &
iOS • 鎖定 目標受眾 • 追蹤 轉換事件 • 自定義參數 • 在地化 • 語言 / 國家 • 當地時間 20
Dynamic Links • Dynamic Link: 根據平台,導至不同頁面 • iOS - 開
app 特定頁面 or App Store (未安裝) • Android - 開 app 特定頁面 or Google Play (未安裝) • Desktop - 官網 • Deep Link: 安裝前後不中斷體驗 • 個人化初次開啟流程 • Attribution Analysis • 從哪個渠道下載的用戶黏度最高? • 從哪個渠道下載的用戶邀請最多朋友安裝? • 從哪個渠道下載的用戶消費最高? 21
Firebase Analytics 與它的快樂夥伴們! 22
Firebase Analytics • 免費,無總數上限 • App 專屬的自動事件記錄 • 支援原始資料匯出 •
分析 çè 行動 (Actionable metrics) • 推播訊息 • A/B testing • 分眾內容 • Deep links 23
Access Raw Data - BigQuery 24
Firebase Analytics BigQuery 匯出原始資料 只要一個開關 25
BigQuery , which is part of the growing serverless computing
trend, is described as a "fully managed, petabyte scale, low-cost analytics data warehouse" with a pay-as-you-go pricing model. The new standard- based SQL dialect may open it up to a new universe of developers. 26
27 Schema app_events_YYYYMMDD user_dim event_dim: <array> device_info: model, brand, os_version…
geo_info: country, region, city… app_info: version, store… traffic_source: channel, campaign... user_properties: <Array> key, int_value, float_value, str_value key, int_value, float_value, str_value . . . date, name, time… params: <Array> key, int_value, float_value, str_value key, int_value, float_value, str_value . . . date, name, time… params: <Array> key, int_value, float_value, str_value key, int_value, float_value, str_value . . . . . .
28 user_dim event_dim: <array>
Standard SQL • From Jun. 2016,取代 Legacy SQL • 和
SQL 2011 (ISO standard) 更一致 • 可以寫更多更複雜的子查詢 • 更好的最佳化 (more advanced query optimization) • 提供更多資料型態 date, time, array, structs • Theta (θ) JOIN: 連結的條件可以不只是 ‘=’ • 例如:列出在至少兩個不同日期有借閱的人 SELECT DISTINCT Firsts.borrower_id FROM Checkouts Firsts, Checkouts Seconds WHERE Firsts.date > Seconds.date AND Firsts.borrower_id = Seconds.borrower_id; 29
30 Use Standard SQL to query
31 Array in SQL???
32 Handle array – use UNNEST()
Pricing 33 Product Daily count Size Cost for 1-day data
Cost for 1-year data 小熊來電 150萬 1.5 GB $0.9 NTD/m $330 NTD/m Whoscall 2.5億 150GB $90 NTD/ m $33000 NTD/ m
Pricing 34 Query Product Data processed Query cost 每日反安裝數 小熊來電
150MB $0.02 NTD Whoscall 13GB $1.95 NTD 一週的 retention 小熊來電 500MB $0.075 NTD Whoscall 500GB $75 NTD
How to save money? • 縮小時間範圍計算 FROM `xxxxproject.app_events_2017*` WHERE _TABLE_SUFFIX
BETWEEN '0220' AND '0220' • 要操作很多次的 è 匯出小 table 35
How to save money? • 善用 Common Table Expression (CTE)
à 合併一個 Query 36 Select 3 times (about 2TB processed) WITH xxx AS (SELECT xxx) (about 500G processed)
Application Case 37
Test – Debug view (real-time)
Test – Debug view (real-time)
40 Case 1: Calculate A/B test churn retention 找出參與實驗的 device
id 以及組別 找出這些 device id 的反安裝時間 (若有反安裝) device_id, exp_group, remove_time GROUP BY exp_group, remove_time JOIN
41 Case 2: Monitor performance • 算平均 à 算分布 (percentile)
PERCENT_RANK() OVER (PARTITION BY app_ver ORDER BY response_time DESC) • 暫存到新 table • Query 快 / 省錢 • 避免 BQ 運算資源不足 • 隨時查某個百分位的值
42 Case 3: Last action before removing app • LAG()
LAG(event_dim.name, 1) OVER (PARTITION BY user_dim.device_info.resettable_device_id ORDER BY event_dim.timestamp_micros ASC)
43 What’s next? (Google I/O 2017) • A/B test suite
• 現有架構,需自己記錄 (可能有欄位不足問題) • 新版 console • Compare with Facebook App Analytics
[email protected]
Thank you J
More Decks by Steven Hsieh
See All by Steven Hsieh
Intro to Firebase Analytics
peikangh
0
5.1k
Data-driven User Experience Design
peikangh
1
700
Other Decks in Technology
See All in Technology
属人化したISMS運用をGitHubとAIで仕組み化した1年間の記録
sioncojp
4
2.2k
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
1
760
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
0
230
少ない人手 限られた予算 それでも守る 消せない・見つける・戻れる オールハザード型BCP on AWS / 20261107 Mitsutoshi Matsuo
shift_evolve
PRO
0
350
Linuxネットワークスタック進化の軌跡: 過去10年の歩みと最新トレンド
orimanabu
1
240
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
360
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
310
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
660
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
230
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
440
大江戸Ruby会議でデータベース クライアントの話をするのは 間違っているだろうか
yahonda
1
120
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
150
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
460
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Balancing Empowerment & Direction
lara
6
1.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
2
3.8k
WENDY [Excerpt]
tessaabrams
15
40k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
590
AI: The stuff that nobody shows you
jnunemaker
PRO
11
1.3k
Heart Work Chapter 1 - Part 1
lfama
PRO
11
37k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
750