From 36feca6bf83b8fe9bdd0b66491a17bf7e0b035e0 Mon Sep 17 00:00:00 2001 From: Mateusz Fraczek Date: Thu, 19 Oct 2023 19:15:59 +0200 Subject: [PATCH] Add campaign parameters to the screen event (#20) --- Sources/SegmentFirebase/FirebaseDestination.swift | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Sources/SegmentFirebase/FirebaseDestination.swift b/Sources/SegmentFirebase/FirebaseDestination.swift index 8690508..dc5ce08 100644 --- a/Sources/SegmentFirebase/FirebaseDestination.swift +++ b/Sources/SegmentFirebase/FirebaseDestination.swift @@ -116,12 +116,18 @@ public class FirebaseDestination: DestinationPlugin { public func screen(event: ScreenEvent) -> ScreenEvent? { if let eventName = event.name { + var parameters: [String: Any] = [FirebaseAnalytics.AnalyticsParameterScreenName: eventName] + + if let campaign = event.context?.dictionaryValue?["campaign"] as? [String: Any] { + let campaignParameters = returnMappedFirebaseParameters(campaign, for: FirebaseDestination.campaignMappedKeys) + parameters = parameters.merging(campaignParameters) { (current, _) in current } + } + FirebaseAnalytics.Analytics.logEvent(FirebaseAnalytics.AnalyticsEventScreenView, - parameters: [FirebaseAnalytics.AnalyticsParameterScreenName: eventName]) + parameters: parameters) analytics?.log(message: "Firebase setScreenName \(eventName)") } - return event } }