🪶

SwiftUI Google Analytics for Firebaseを使う

2024/08/02に公開

📉Google Analyticsとは?

offical

Google アナリティクスは、アプリの使用状況とユーザー エンゲージメントについて分析できるアプリ測定ソリューションです。ご利用料金はかかりません。

Firebase は、料金のかからない無制限の分析ソリューションである Google アナリティクスが中核となっています。アナリティクスは Firebase 機能と統合されていて、Firebase SDK を使用して定義できる最大 500 種類の一意のイベントに対応可能な無制限のレポート作成機能を備えています。アナリティクス レポートを見ることでユーザーの行動を明確に把握でき、アプリのマーケティングやパフォーマンス改善に関する意思決定を確かなデータに基づいて行うことができます。

公式の設定方法

iOSの設定方法

このクイックスタートでは、アプリに Google アナリティクスを追加し、イベントのロギングを始める方法について説明します。

Google アナリティクスは、アプリの使用状況や動作に関するデータを収集します。この SDK は主に次の 2 種類の情報を記録します。

イベント: ユーザーの操作、システム イベント、エラーなど、アプリで起こっていること。
ユーザー プロパティ: 言語や地理的位置など、ユーザー層を示す属性。自由に定義できます。
アナリティクスでは、一部のイベントとユーザー プロパティが自動的にロギングされます。こうしたロギングを有効にするコードを追加する必要はありません。

始める前に

  1. まだ追加していない場合は、Apple プロジェクトに Firebase を追加し、Firebase プロジェクトで Google アナリティクスが有効になっていることを確認します。
  • 新しい Firebase プロジェクトを作成する場合は、プロジェクトの作成ワークフローで Google アナリティクスを有効にします。

  • 既存の Firebase プロジェクトで Google アナリティクスが有効になっていない場合は、settings > [プロジェクトの設定] の [統合] タブに移動して Google アナリティクスを有効にします。

プロジェクトで Google アナリティクスを有効にすると、Firebase アプリが Google アナリティクスのデータ ストリームにリンクされます。

  1. 推奨)AdSupport フレームワークをプロジェクトに追加して、対象デバイス、キャンペーン アトリビューションなどの追加機能を有効にします。

ここまで、公式の手順なのですが、SwiftUIのやり方ではなくて、UIKitしかないような💦

こちらの動画を参考に進めるとできたので、参考にしてみてください。
https://www.youtube.com/watch?v=aLiBj0PTuJs

📝やること

  1. SwiftUIのプロジェクトを作成
  2. SPMでios-firebase-sdkを追加
  3. GoogleService-Info.plistを追加
  4. 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