Firebase 트래킹 추가

- 회원가입, 로그인
This commit is contained in:
Yu Sung 2025-03-10 20:45:07 +09:00
parent 96dbe50a09
commit e83164ded5
4 changed files with 37 additions and 11 deletions

View File

@ -82,17 +82,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
}
private func logUtmInFirebase() {
let utmSource = AppState.shared.marketingUtmSource.trimmingCharacters(in: .whitespacesAndNewlines)
let utmMedium = AppState.shared.marketingUtmMedium.trimmingCharacters(in: .whitespacesAndNewlines)
let utmCampaign = AppState.shared.marketingUtmCampaign.trimmingCharacters(in: .whitespacesAndNewlines)
if !utmSource.isEmpty && !utmMedium.isEmpty && !utmCampaign.isEmpty {
Analytics.logEvent("campaign_utm", parameters: [
"utm_source": utmSource,
"utm_medium": utmMedium,
"utm_campaign": utmCampaign
])
}
FirebaseTracking.shared.logUtm()
}
}

View File

@ -0,0 +1,34 @@
//
// FirebaseTracking.swift
// SodaLive
//
// Created by klaus on 3/10/25.
//
import Firebase
class FirebaseTracking {
static let shared = FirebaseTracking()
func signUp(method: String) {
Analytics.logEvent(AnalyticsEventSignUp, parameters: [AnalyticsParameterMethod: method])
}
func login(method: String) {
Analytics.logEvent(AnalyticsEventLogin, parameters: [AnalyticsParameterMethod: method])
}
func logUtm() {
let utmSource = AppState.shared.marketingUtmSource.trimmingCharacters(in: .whitespacesAndNewlines)
let utmMedium = AppState.shared.marketingUtmMedium.trimmingCharacters(in: .whitespacesAndNewlines)
let utmCampaign = AppState.shared.marketingUtmCampaign.trimmingCharacters(in: .whitespacesAndNewlines)
if !utmSource.isEmpty && !utmMedium.isEmpty && !utmCampaign.isEmpty {
Analytics.logEvent("campaign_utm", parameters: [
"utm_source": utmSource,
"utm_medium": utmMedium,
"utm_campaign": utmCampaign
])
}
}
}

View File

@ -50,6 +50,7 @@ final class LoginViewModel: ObservableObject {
let decoded = try jsonDecoder.decode(ApiResponse<LoginResponse>.self, from: responseData)
if let data = decoded.data, decoded.success {
FirebaseTracking.shared.login(method: "email")
UserDefaults.set(data.profileImage, forKey: .profileImage)
UserDefaults.set(data.nickname, forKey: .nickname)
UserDefaults.set(data.userId, forKey: .userId)

View File

@ -99,6 +99,7 @@ final class SignUpViewModel: ObservableObject {
let decoded = try jsonDecoder.decode(ApiResponse<LoginResponse>.self, from: responseData)
if let data = decoded.data, decoded.success {
FirebaseTracking.shared.signUp(method: "email")
UserDefaults.set(data.profileImage, forKey: .profileImage)
UserDefaults.set(data.nickname, forKey: .nickname)
UserDefaults.set(data.userId, forKey: .userId)