From 23bf3c3a821eed7dedb171a835801d99b2265d57 Mon Sep 17 00:00:00 2001 From: Loris Perret Date: Thu, 7 Mar 2024 16:08:21 +0100 Subject: [PATCH] fix: Use category and action if not matomo --- .../Generated/Analytics+GenAllScript.swift | 81 ++----------------- SampleFiles/genAllRessources.sh | 2 +- .../Generator/FirebaseGenerator.swift | 7 +- .../Parser/AnalyticsFileParser.swift | 8 ++ 4 files changed, 20 insertions(+), 78 deletions(-) diff --git a/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift b/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift index 3cd930c..5018618 100644 --- a/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift +++ b/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift @@ -1,6 +1,5 @@ // Generated by ResgenSwift.Analytics 1.2 -import MatomoTracker import FirebaseAnalytics // MARK: - Protocol @@ -15,72 +14,11 @@ protocol AnalyticsManagerProtocol { ) } -// MARK: - Matomo - -class MatomoAnalyticsManager: AnalyticsManagerProtocol { - - // MARK: - Properties - - private var tracker: MatomoTracker - - // MARK: - Init - - init(siteId: String, url: String) { - debugPrint("[Matomo service] Server URL: \(url)") - debugPrint("[Matomo service] Site ID: \(siteId)") - tracker = MatomoTracker( - siteId: siteId, - baseURL: URL(string: url)! - ) - - #if DEBUG - tracker.dispatchInterval = 5 - #endif - - #if DEBUG - tracker.logger = DefaultLogger(minLevel: .verbose) - #endif - - debugPrint("[Matomo service] Configured with content base: \(tracker.contentBase?.absoluteString ?? "-")") - debugPrint("[Matomo service] Opt out: \(tracker.isOptedOut)") - } - - // MARK: - Methods - - func logScreen(name: String, path: String) { - guard !tracker.isOptedOut else { return } - guard let trackerUrl = tracker.contentBase?.absoluteString else { return } - - let urlString = URL(string: "\(trackerUrl)" + "/" + "\(path)" + "iOS") - tracker.track( - view: [name], - url: urlString - ) - } - - func logEvent( - name: String, - action: String, - category: String, - params: [String: Any]? - ) { - guard !tracker.isOptedOut else { return } - - tracker.track( - eventWithCategory: category, - action: action, - name: name, - number: nil, - url: nil - ) - } -} - // MARK: - Firebase class FirebaseAnalyticsManager: AnalyticsManagerProtocol { func logScreen(name: String, path: String) { - var parameters = [ + let parameters = [ AnalyticsParameterScreenName: name as NSObject ] @@ -97,8 +35,9 @@ class FirebaseAnalyticsManager: AnalyticsManagerProtocol { params: [String: Any]? ) { var parameters: [String:NSObject] = [ + AnalyticsParameterItemName: name.replacingOccurrences(of: " ", with: "_") as NSObject, + AnalyticsParameterItemCategory: category as NSObject, "action": action as NSObject, - "category": category as NSObject, ] if let supplementaryParameters = params { @@ -114,7 +53,7 @@ class FirebaseAnalyticsManager: AnalyticsManagerProtocol { } Analytics.logEvent( - name.replacingOccurrences(of: [" "], with: "_"), + AnalyticsEventSelectContent, parameters: parameters ) } @@ -137,13 +76,7 @@ class AnalyticsManager { isEnabled = enable } - func configure(siteId: String, url: String) { - managers.append( - MatomoAnalyticsManager( - siteId: siteId, - url: url - ) - ) + func configure() { managers.append(FirebaseAnalyticsManager()) } @@ -178,7 +111,7 @@ class AnalyticsManager { func logScreenS1DefOne(title: String) { logScreen( name: "s1 def one \(title)", - path: "s1_def_one/\(title)" + path: "" ) } @@ -199,7 +132,7 @@ class AnalyticsManager { func logScreenS2DefOne() { logScreen( name: "s2 def one", - path: "s2_def_one/" + path: "" ) } } diff --git a/SampleFiles/genAllRessources.sh b/SampleFiles/genAllRessources.sh index 63c1949..4d62a1d 100755 --- a/SampleFiles/genAllRessources.sh +++ b/SampleFiles/genAllRessources.sh @@ -54,7 +54,7 @@ FORCE_FLAG="$1" # Analytics swift run -c release ResgenSwift analytics $FORCE_FLAG "./Tags/sampleTags.yml" \ - --target "matomo firebase" \ + --target "firebase" \ --extension-output-path "./Tags/Generated" \ --extension-name "Analytics" \ --extension-suffix "GenAllScript" diff --git a/Sources/ResgenSwift/Analytics/Generator/FirebaseGenerator.swift b/Sources/ResgenSwift/Analytics/Generator/FirebaseGenerator.swift index 1957156..5c54aca 100644 --- a/Sources/ResgenSwift/Analytics/Generator/FirebaseGenerator.swift +++ b/Sources/ResgenSwift/Analytics/Generator/FirebaseGenerator.swift @@ -32,7 +32,7 @@ enum FirebaseGenerator { private static var logScreen: String { """ func logScreen(name: String, path: String) { - var parameters = [ + let parameters = [ AnalyticsParameterScreenName: name as NSObject ] @@ -54,8 +54,9 @@ enum FirebaseGenerator { params: [String: Any]? ) { var parameters: [String:NSObject] = [ + AnalyticsParameterItemName: name.replacingOccurrences(of: " ", with: "_") as NSObject, + AnalyticsParameterItemCategory: category as NSObject, "action": action as NSObject, - "category": category as NSObject, ] if let supplementaryParameters = params { @@ -71,7 +72,7 @@ enum FirebaseGenerator { } Analytics.logEvent( - name.replacingOccurrences(of: [" "], with: "_"), + AnalyticsEventSelectContent, parameters: parameters ) } diff --git a/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift b/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift index 1137f8e..f667247 100644 --- a/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift +++ b/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift @@ -139,6 +139,14 @@ class AnalyticsFileParser { } definition.action = action + } else { + if let category = event.category { + definition.category = category + } + + if let action = event.action { + definition.action = action + } } return definition