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
Introducing Firebase Analytics to an Existing P...
Search
Sho Ikeda
June 22, 2016
Programming
0
480
Introducing Firebase Analytics to an Existing Project
関西モバイルアプリ研究会 #15での発表資料です #関モバ
Sho Ikeda
June 22, 2016
Tweet
Share
More Decks by Sho Ikeda
See All by Sho Ikeda
Package Traits
ikesyo
2
380
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
2.5k
Renovateで実現するライブラリの自動更新生活 / Automated Library Updates with Renovate
ikesyo
3
620
XcodeのDevelopment Assets探訪
ikesyo
1
1.3k
RenovateによるiOSライブラリーの自動更新
ikesyo
2
3.7k
2019年のSwiftモック事情
ikesyo
3
8.2k
5分でわかる!Xcode 11から使えるXCFrameworks
ikesyo
2
3.8k
Travis CIのBuild Matrixを活用して、Swift製ライブラリをLinux対応させる
ikesyo
3
2.5k
Swift Packages and XCFrameworks in Xcode 11
ikesyo
1
1.2k
Other Decks in Programming
See All in Programming
PicoRuby on Rails
makicamel
2
120
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
420
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
130
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
630
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
540
5つのアンチパターンから学ぶLT設計
narihara
1
160
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
500
XP, Testing and ninja testing
m_seki
3
230
Team operations that are not burdened by SRE
kazatohiei
1
300
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
450
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
100
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
220
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.6k
Fireside Chat
paigeccino
37
3.5k
Bash Introduction
62gerente
614
210k
How GitHub (no longer) Works
holman
314
140k
The Invisible Side of Design
smashingmag
301
51k
Side Projects
sachag
455
42k
GitHub's CSS Performance
jonrohan
1031
460k
Automating Front-end Workflow
addyosmani
1370
200k
Why Our Code Smells
bkeepers
PRO
337
57k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Thoughts on Productivity
jonyablonski
69
4.7k
Transcript
Introducing Firebase Analytics to an Existing Project @ikesyo ؔϞόΠϧΞϓϦݚڀձ #15,
2016-06-22 Wed #ؔϞό
@ikesyo • ͍͚͠ΐʔʗా ᠳ • ͯͳ@ژ • https://twitter.com/ikesyo • https://github.com/ikesyo
✨ Contributions ✨ • ReactiveCocoa • Carthage (Commandant, ReactiveTask) •
Result • Himotoki • 2.1.0 is released today with Swift 2.3/Xcode 8 compatibility ✨ • APIKit
Firebase
Products • Analytics • Auth • Database • Hosting •
Remote Config • Test Lab • Crash • Notifications • Dynamic Links • AdMob • ...
Firebase Analytics with Google TagManager
Getting Started • Get Started with Firebase Analytics for iOS
| Firebase • Tag Manager + Firebase: Getting Started | Google Tag Manager for iOS | Google Developers
Firebase Analytics • GoogleTagManager v5 FirebaseAnalytics ʹґଘ͢ΔΑ ͏ʹ import FirebaseAnalytics
... // Previously: // TAGManager.instance().dataLayer.push(["event": "eventName", "foo": "bar"]) // This sends the event to Google TagManager too. FIRAnalytics.logEventWithName("eventName", parameters: ["foor": "bar"])
Google TagManagerͷηοτΞοϓ
Google TagManagerͷηοτΞοϓ • ৽͍͠ίϯςφͷ༻ҙ • طଘͷίϯςφʢैདྷ൛ʣFirebaseͰ͑ͳ͍ • λάɺτϦΨʔɺมΛ࠶Ճ • ैདྷ൛ίϯςφͰΤΫεϙʔτͨ͠JSONϑΝΠϧFirebase൛ίϯςφͰΠϯϙʔτ
Ͱ͖ͳ͍ • ઃఆϑΝΠϧͷஔ͖͑ • όΠφϦ͔ΒJSONʹϑΥʔϚοτ͕มߋ • λʔήοτʹcontainerͱ͍͏folder referenceΛՃ͠ɺͦͷϑΥϧμԼʹJSON ϑΝΠϧΛઃஔ
Firebase AnalyticsͷηοτΞοϓ
Firebase AnalyticsͷηοτΞοϓ • https://console.firebase.google.com ͔Β • “৽نϓϩδΣΫτΛ࡞” • “GoogleϓϩδΣΫτΛΠϯϙʔτ” •
Google Sign-InΛར༻͍ͯ͠ΔϓϩδΣΫτͰ͋ΕޙऀΛબͿ • طଘͷOAuth 2.0 ΫϥΠΞϯτIDΛҾ͖ܧ͛Δ • ΫϥΠΞϯτIDʹొࡁΈͷόϯυϧIDͰFirebaseϓϩδΣΫτʹࣗಈతʹϞόΠϧΞϓϦ͕Ճ͞Ε Δ • ಉҰΞϓϦͷAndroid൛͕͋Εɺ༧ΊΫϥΠΞϯτIDΛҠͯ͠GoogleϓϩδΣΫτΛ1ͭʹ·ͱΊ͓ͯ ͘ͷΛ͓͢͢Ί • Firebaseίϯιʔϧͷ֘ϞόΠϧΞϓϦ͔ΒGoogleService-Info.plistΛμϯϩʔυ͠ɺϓϩδΣΫτ ʹՃʢطଘϑΝΠϧͷஔ͖͑ʣ
Firebase AnalyticsͷηοτΞοϓ // AppDelegate.swift import UIKit import FirebaseAnalytics class AppDelegate:
UIResponder, UIApplicationDelegate { func application(application: UIApplication, didFinishLaunchingWithOptions... { // No more TAGContainerOpener.openContainerWithId( // _:tagManager:openType:timeout:notifier: // ) FIRApp.configure() return true } }
Within App Extensions • ॳظԽϙΠϯτ: ΤϯτϦʔϙΠϯτͷVCͷviewDidLoad() • ෳճͷExtensionͷىಈͰಉҰϓϩηε͕༻͞Ε͏ΔͨΊ FIRApp.configure()Λෳճݺͳ͍Α͏ʹҙ͢Δ •
Today Extension: ϝϞϦෆͰFIRApp.configure()ΛݺͿ͚ͩͰΫϥογϡ͢Δ ! func viewDidLoad() { super.viewDidLoad() if FIRApp.defaultApp() == nil { FIRApp.configure() } }
!" Happy Firebase!! "!
Thank you❗"