SwiftUI Google Analytics for Firebaseを使う
📉Google Analyticsとは?
Google アナリティクスは、アプリの使用状況とユーザー エンゲージメントについて分析できるアプリ測定ソリューションです。ご利用料金はかかりません。
Firebase は、料金のかからない無制限の分析ソリューションである Google アナリティクスが中核となっています。アナリティクスは Firebase 機能と統合されていて、Firebase SDK を使用して定義できる最大 500 種類の一意のイベントに対応可能な無制限のレポート作成機能を備えています。アナリティクス レポートを見ることでユーザーの行動を明確に把握でき、アプリのマーケティングやパフォーマンス改善に関する意思決定を確かなデータに基づいて行うことができます。
公式の設定方法
このクイックスタートでは、アプリに Google アナリティクスを追加し、イベントのロギングを始める方法について説明します。
Google アナリティクスは、アプリの使用状況や動作に関するデータを収集します。この SDK は主に次の 2 種類の情報を記録します。
イベント: ユーザーの操作、システム イベント、エラーなど、アプリで起こっていること。
ユーザー プロパティ: 言語や地理的位置など、ユーザー層を示す属性。自由に定義できます。
アナリティクスでは、一部のイベントとユーザー プロパティが自動的にロギングされます。こうしたロギングを有効にするコードを追加する必要はありません。
始める前に
- まだ追加していない場合は、Apple プロジェクトに Firebase を追加し、Firebase プロジェクトで Google アナリティクスが有効になっていることを確認します。
-
新しい Firebase プロジェクトを作成する場合は、プロジェクトの作成ワークフローで Google アナリティクスを有効にします。
-
既存の Firebase プロジェクトで Google アナリティクスが有効になっていない場合は、settings > [プロジェクトの設定] の [統合] タブに移動して Google アナリティクスを有効にします。
プロジェクトで Google アナリティクスを有効にすると、Firebase アプリが Google アナリティクスのデータ ストリームにリンクされます。
- 推奨)AdSupport フレームワークをプロジェクトに追加して、対象デバイス、キャンペーン アトリビューションなどの追加機能を有効にします。
ここまで、公式の手順なのですが、SwiftUIのやり方ではなくて、UIKitしかないような💦
こちらの動画を参考に進めるとできたので、参考にしてみてください。
📝やること
- SwiftUIのプロジェクトを作成
- SPMでios-firebase-sdkを追加
- GoogleService-Info.plistを追加
- Firebaseの設定を追加
FirebaseCoreの設定をする
import SwiftUI
import FirebaseCore
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
FirebaseApp.configure()
return true
}
}
@main
struct FirebaseAnalyticsTutorialApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
ボタンを押すとログを収集するロジックを追加
import SwiftUI
import FirebaseAnalytics
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
Button(action: {
Analytics
.logEvent("event_name", parameters: ["click_event": "button clicked"])
}, label: {
Text("click mi")
.font(.largeTitle)
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
})
}
.padding()
}
}
#Preview {
ContentView()
}
Firebaseのコンソールで、GoogleAnalyticsを設定。最初はこの状態
ボタンを押すと、イベントのログを収集します。この後、GoogleAnalyticsが変化していれば、成功してます。
使ってみた感想
init()
メソッドを使って、アプリ起動時に実行する方法も試してみたのですが、うまくいかなかったですね。やはりボタンを押したら、ログを収集するのが本来の使い方なのかな。
Discussion