Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ----------------------------------------------------------------------------
- //
- // FirebaseLogAnalytics.swift
- //
- // @author Nikita Semakov <SemakovNV@ekassir.com>
- // @copyright Copyright (c) 2017, eKassir Ltd. All rights reserved.
- // @link http://www.ekassir.com/
- //
- // ----------------------------------------------------------------------------
- import FirebaseAnalytics
- // ----------------------------------------------------------------------------
- public final class FirebaseLogAnalytics: AnalyticsContract
- {
- // MARK: - Construction
- public static let shared = FirebaseLogAnalytics()
- private init() {
- // Do nothing
- }
- // MARK: - Methods
- public func log(event: AnalyticsEvent, screen: Analytics.ScreenName?)
- {
- if Analytics.isLoggable()
- {
- FIRAnalytics.setScreenName(screen?.rawValue, screenClass: nil)
- FIRAnalytics.setUserID(self.trackingId)
- var parameters: [String : NSObject] = [FirebaseKeys.Category.rawValue : event.category]
- if let label = event.label {
- parameters[FirebaseKeys.Label.rawValue] = label
- }
- if let value = event.value {
- parameters[FirebaseKeys.Value.rawValue] = value
- }
- FIRAnalytics.logEventWithName(event.action, parameters: parameters)
- }
- }
- public func logScreenOpen(screen: Analytics.ScreenName)
- {
- if Analytics.isLoggable()
- {
- FIRAnalytics.setScreenName(screen.rawValue, screenClass: nil)
- FIRAnalytics.logEventWithName(Inner.OpenScreenAction, parameters: nil)
- }
- }
- func setTrackingId(trackingId: String?) {
- self.trackingId = trackingId
- }
- // MARK: - Private Functions
- // ...
- // MARK: - Inner Types
- enum FirebaseKeys: String
- {
- case Label = "label"
- // case Action = "action" // use "name" parameter in function instead
- case Category = "category"
- case Value = "value"
- }
- // MARK: - Constants
- private struct Inner {
- static let OpenScreenAction = "open_screen_action"
- }
- // MARK: - Variables
- private var trackingId: String?
- }
- // ----------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement