analytics #9

Merged
t.schmitt merged 9 commits from analytics into master 2025-07-17 09:15:43 +02:00
12 changed files with 306 additions and 66 deletions
Showing only changes of commit b509cf2797 - Show all commits

View File

@@ -84,10 +84,14 @@ class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
path: String,
params: [String: Any]?
) {
let parameters = [
var parameters = [
AnalyticsParameterScreenName: name as NSObject
]
if path.isEmpty == false {
parameters["path"] = path + "/iOS" as NSObject
}
if let supplementaryParameters = params {
for (newKey, newValue) in supplementaryParameters {
if parameters.contains(where: { (key: String, value: NSObject) in
@@ -113,11 +117,17 @@ 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,
AnalyticsParameterItemName: name.replacingOccurrences(of: " ", with: "_") as NSObject
]
if category.isEmpty == false {
parameters["AnalyticsParameterItemCategory"] = category as NSObject
}
if action.isEmpty == false {
parameters["action"] = action as NSObject
}
if let supplementaryParameters = params {
for (newKey, newValue) in supplementaryParameters {
if parameters.contains(where: { (key: String, value: NSObject) in
@@ -191,11 +201,11 @@ class AnalyticsManager {
// MARK: - section_one
static func logScreenS1DefOne(title: String, test2: String = "test") {
static func logScreenS1DefOne() {
AnalyticsManager.shared.logScreen(
name: "s1 def one \(title)",
path: "",
params: ["test2": test2]
path: "s1_def_one/\(title)",
params: nil
)
}
@@ -222,7 +232,7 @@ class AnalyticsManager {
static func logScreenS2DefOne() {
AnalyticsManager.shared.logScreen(
name: "s2 def one",
path: "",
path: "s2_def_one/",
params: nil
)
}

View File

@@ -9,14 +9,8 @@ categories:
parameters:
- name: title
type: String
value: try test
replaceIn: name,path
- name: test
type: String
value: test
replaceIn: name,path
- name: test2
type: String
defaultValue: test
events:
- id: s1_def_two

View File

@@ -51,10 +51,9 @@ class AnalyticsDefinition {
}
private func getParameters() -> String {
var params = parameters
var result: String
let paramsString = params.compactMap { parameter -> String? in
let paramsString = parameters.compactMap { parameter -> String? in
guard parameter.value.isEmpty else { return nil }
let defaultValue: String

View File

@@ -105,6 +105,12 @@ class AnalyticsFileParser {
Analytics.exit(withError: error)
}
if dtoParameter.value != nil, dtoParameter.replaceIn != nil {
let error = AnalyticsError.invalidParameter("you can't set 'value' and 'replaceIn' for \(dtoParameter.name)")
print(error.description)
Analytics.exit(withError: error)
}
verify(value: dtoParameter.value, for: typeEnum)
verify(value: dtoParameter.defaultValue, for: typeEnum)