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
440
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
2.7k
Renovateで実現するライブラリの自動更新生活 / Automated Library Updates with Renovate
ikesyo
3
630
XcodeのDevelopment Assets探訪
ikesyo
1
1.3k
RenovateによるiOSライブラリーの自動更新
ikesyo
2
3.8k
2019年のSwiftモック事情
ikesyo
3
8.3k
5分でわかる!Xcode 11から使えるXCFrameworks
ikesyo
2
3.8k
Travis CIのBuild Matrixを活用して、Swift製ライブラリをLinux対応させる
ikesyo
3
2.6k
Swift Packages and XCFrameworks in Xcode 11
ikesyo
1
1.2k
Other Decks in Programming
See All in Programming
rage against annotate_predecessor
junk0612
0
170
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.4k
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
6
2.5k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
520
概念モデル→論理モデルで気をつけていること
sunnyone
2
270
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
280
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
600
私の後悔をAWS DMSで解決した話
hiramax
4
210
アセットのコンパイルについて
ojun9
0
130
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
1.8k
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
160
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
540
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Making the Leap to Tech Lead
cromwellryan
135
9.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
A Tale of Four Properties
chriscoyier
160
23k
Docker and Python
trallard
46
3.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Site-Speed That Sticks
csswizardry
10
820
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Navigating Team Friction
lara
189
15k
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❗"