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
490
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
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
3.4k
Package Traits
ikesyo
2
770
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
3k
Renovateで実現するライブラリの自動更新生活 / Automated Library Updates with Renovate
ikesyo
3
670
XcodeのDevelopment Assets探訪
ikesyo
1
1.5k
RenovateによるiOSライブラリーの自動更新
ikesyo
2
3.9k
2019年のSwiftモック事情
ikesyo
3
8.4k
5分でわかる!Xcode 11から使えるXCFrameworks
ikesyo
2
3.9k
Travis CIのBuild Matrixを活用して、Swift製ライブラリをLinux対応させる
ikesyo
3
2.6k
Other Decks in Programming
See All in Programming
AI & Enginnering
codelynx
0
110
AgentCoreとHuman in the Loop
har1101
5
240
MUSUBIXとは
nahisaho
0
130
CSC307 Lecture 01
javiergs
PRO
0
690
CSC307 Lecture 03
javiergs
PRO
1
490
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.3k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Implementation Patterns
denyspoltorak
0
290
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
180
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
69
Typedesign – Prime Four
hannesfritz
42
2.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Embracing the Ebb and Flow
colly
88
5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
640
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❗"