관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] Firebase Analytics 사용 방법, 이벤트 로깅, logEvent() 본문

iOS framework

[iOS - swift] Firebase Analytics 사용 방법, 이벤트 로깅, logEvent()

jake-kim 2022. 1. 7. 01:14

Firebase Analytics 특성

  • 몇 가지 이벤트를 자동으로 로깅하여 별도의 코드 없이 이벤트 수신 가능
  • 대소문자 구분 ("abc"와 "Abc"는 다른 이벤트로 인식)
  • logEvent(): 앱의 사용량과 행동을 수집
    • 이벤트: 사용자 Action, 시스템 이벤트, 오류 등
    • 사용자 속성: 사용자층을 나눈 개발자가 정의하는 언어 설정 (지리적 위치 등)

Analytics SDK 연동

  • Firebase 앱 등록, GoogleService-Info.plist 다운로드하여 프로젝트에 포함

  • sdk 설치
    cocoapods 이용 시)
pod 'Firebase'
pod 'Firebase/Analytics'
  • Firebase SDK 초기화 코드 AppDelegate.swift의 didFinishLaunchingWithOptions 메소드안에 추가
import UIKit
import Firebase

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    FirebaseApp.configure() // <- 이곳
    return true
  }
}
  • Firebase Debug 모드 활성화 - Arguments 추가
    • Firebase 콘솔 안에서 데이터를 확인하는 부분인 DebugView는 (사용자 기기의 배터리 절약과 네트워크 데이터 사용량을 줄이기 위하여) 약 1시간동안 앱에서 취합된 후 일괄 업로드하지만, Arguments를 추가할 경우 지연 시간을 최소화하여 분석에 집중 가능
    • Edit Scheme -> Run -> -FIRDebugEnabled 인자 추가

-FIRDebugEnabled 추가

로깅 logEvent() 사용

  • 주의) simulator가 아닌 device에서 테스트해야 로깅 기록 확인 가능
  • Analytics.logEvent(_:parameters:)를 사용하여 로깅
    • setUserID(_:), setUserProperty(_:forName:)과 같이 사용자 속성을 설정하여 보고서에 필터로 적용하면 다양한 사용자 세그먼트의 행동 분석이 가능 (단, 데이터가 보고서에 포함되기까지 몇시간 소요)
@IBAction func didTapButton(_ sender: Any) {
  let event = "didTapButton"
  let parameters = [
    "file": #file,
    "function": #function
  ]
  
  Analytics.setUserID("userID = \(1234)")
  Analytics.setUserProperty("ko", forName: "country")
  Analytics.logEvent(AnalyticsEventSelectItem, parameters: nil) // select_item으로 로깅
  Analytics.logEvent(event, parameters: parameters)
}
  • Firebase -> DebugView에서 확인 가능

  • 로그 2개 확인
    • select_item -> "Analytics.logEvent(AnalyticsEventSelectItem, parameters: nil)"
    • didTapButton -> "Analytics.logEvent(event, parameters: parameters)"

  • didTapButton을 클릭해보면 직접 정의했었던 파라미터인 file, function 확인 가능
    // 직접 정의한 파라미터
      
    @IBAction func didTapButton(_ sender: Any) {
      let event = "didTapButton"
      let parameters = [
        "file": #file,
        "function": #function
      ]
      
      Analytics.logEvent(event, parameters: parameters)
    }

주의사항

// AppDelegate.swift
// application:didFinishLaunchingWithOptions

#if DEBUG
var newArguments = ProcessInfo.processInfo.arguments
newArguments.append("-FIRDebugEnabled")
ProcessInfo.processInfo.setValue(newArguments, forKey: "arguments")
#endif

* 전체 코드: https://github.com/JK0369/ExAnalytics

 

* 참고

https://firebase.google.com/docs/analytics/debugview?hl=ko 

https://help.apple.com/xcode/mac/8.0/#/dev3ec8a1cb4

https://firebase.google.com/docs/ios/setup?hl=ko 

https://firebase.google.com/docs/analytics/get-started?platform=ios&hl=ko 

https://support.google.com/firebase/answer/9234069?hl=ko&visit_id=637770705494270289-2963828229&rd=1 

 

Comments