Add Manager + MatomoManager
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
This commit is contained in:
@ -1,27 +1,70 @@
|
||||
// Generated by ResgenSwift.Tags 1.2
|
||||
|
||||
import UIKit
|
||||
import MatomoTracker
|
||||
import Firebase
|
||||
|
||||
// MARK: - Protocol
|
||||
|
||||
protocol AnalyticsManager {
|
||||
protocol AnalyticsManagerProtocol {
|
||||
func logScreen(name: String, path: String)
|
||||
func logEvent(name: String)
|
||||
}
|
||||
|
||||
// MARK: - Matomo
|
||||
|
||||
class MatomoAnalyticsManager: AnalyticsManager {
|
||||
func logScreen(name: String, path: String) {
|
||||
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) {
|
||||
|
||||
guard !tracker.isOptedOut else { return }
|
||||
tracker.track(
|
||||
eventWithCategory: "category",
|
||||
action: "action",
|
||||
name: name,
|
||||
number: nil,
|
||||
url: nil
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Firebase
|
||||
|
||||
class FirebaseAnalyticsManager: AnalyticsManager {
|
||||
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
|
||||
func logScreen(name: String, path: String) {
|
||||
|
||||
}
|
||||
@ -31,23 +74,41 @@ class FirebaseAnalyticsManager: AnalyticsManager {
|
||||
}
|
||||
}
|
||||
|
||||
extension Tags {
|
||||
// MARK: - Manager
|
||||
|
||||
class AnalyticsManager {
|
||||
static var shared = AnalyticsManager()
|
||||
|
||||
// MARK: - Properties
|
||||
|
||||
let managers: [AnalyticsManager] = [MatomoAnalyticsManager(), FirebaseAnalyticsManager()]
|
||||
var managers: [AnalyticsManagerProtocol] = []
|
||||
|
||||
// MARK: - ScreenTag
|
||||
func configure(sideId: String, url: String) {
|
||||
managers.append(MatomoAnalyticsManager(siteId: sideId, url: url))
|
||||
|
||||
func logEcranUn() {
|
||||
managers.append(FirebaseAnalyticsManager())
|
||||
FirebaseApp.configure()
|
||||
}
|
||||
|
||||
private func logScreen(name: String, path: String) {
|
||||
managers.forEach { manager in
|
||||
manager.logScreen(name: name, path: path)
|
||||
}
|
||||
}
|
||||
|
||||
func logEcranDeux() {
|
||||
|
||||
private func logEvent(name: String) {
|
||||
managers.forEach { manager in
|
||||
manager.logEvent(name: name)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - ScreenTag
|
||||
|
||||
func logScreenEcranUn(name: String, path: String) {
|
||||
logScreen(name: name, path: path)
|
||||
}
|
||||
|
||||
func logEventEcranDeux(name: String) {
|
||||
logEvent(name: name)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user