使用 Google Analytics 跟踪事件、计时、错误等
无需下载大量的库框架来了解您的应用如何被使用,您可以使用此库来轻松获取数据。 该库直接使用 Google Analytics 的 Measurement Protocol API。 您可以直接在 Google Analytics 仪表板中查看所有数据。
此库包含以下跟踪能力:
CocoaPods 是 Cocoa 项目的依赖管理工具。 有关使用和安装说明,请访问其网站。 要使用 CocoaPods 将 GampKit 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'GampKit', '~> 0.1.0'
Swift Package Manager 是一种用于自动分发 Swift 代码的工具,并且已集成到 swift
编译器中。 GampKit 支持在受支持的平台上使用它。
设置好 Swift 包后,将 GampKit 作为依赖项添加到 Package.swift
的 dependencies
值中即可。
dependencies: [
.package(url: "https://github.com/brightdigit/GampKit.git", .upToNextMajor(from: "0.1.0"))
]
在继续操作之前,请确保在您的 Google Analytics 帐户下设置一个资源。 对于您的应用程序的新资源,您将需要您的跟踪标识符。 通常,跟踪标识符的格式为 UA-XXXXXXXXX-XX
。 您将需要跟踪标识符以及以下信息:
为了开始跟踪,您需要使用 AnalyticsConfiguration
对象设置具有您的应用程序配置的 AnalyticsTracker
。
let tracker = AnalyticsTracker(configuration: AnalyticsConfiguration(
trackingIdentifier: "UA-XXXXXXXX-XX",
applicationName: "GampKitDemo",
applicationVersion: "1.0",
clientIdentifier: clientIdentifer
))
现在您已经设置了 AnalyticsTracker
,让我们开始跟踪事件。
有三种类型的跟踪对象:事件、计时和异常。
对于跟踪事件,您可以创建一个带有类别和操作的 AnalyticsEvent
。
let event = AnalyticsEvent(category: "category", action: "action")
tracker.track(event) { result in
if case let .failure(error) = result {
debugPrint(error)
}
}
您可以在 Google Analytics Measurement Protocol 文档上阅读有关事件的更多详细信息。
对于跟踪计时,您可以创建一个 AnalyticsTiming
或使用带有类别和操作的 AnalyticsTracker.track(time:...)
。
let start : Date
...
let timing = start.timeIntervalSinceNow
tracker.track(time: -timing, withCategory: "jsonLoader", withVariable: "load") { result in
if case let .failure(error) = result {
debugPrint(error)
}
}
您可以在 Google Analytics Measurement Protocol 文档上阅读有关计时的更多详细信息。
对于跟踪错误和异常,您可以使用 AnalyticsTracker.track(error:...)
。
do {
try doSomething()
} catch let error {
tracker.track(error: error, isFatal: false) { result in
if case let .failure(error) = result {
debugPrint(error)
}
}
}
您可以在 Google Analytics Measurement Protocol 文档上阅读有关事件的更多详细信息。
您还可以通过实现 AnalyticsTrackable
来跟踪自定义项目。 这需要实现两个方法
var hitType: AnalyticsHitType {
get
}
func parameters() -> AnalyticsParameterDictionary
AnalyticsParameterDictionary
只是一个键类型为 AnalyticsParameterKey
的字典。
public typealias AnalyticsParameterDictionary = [AnalyticsParameterKey: Any]
public enum AnalyticsParameterKey: String, CaseIterable {
case hitType = "t", version = "v", trackingId = "tid",
userTimingCategory = "utc", userTimingLabel = "utl", timing = "utt", clientId = "cid",
userTimingVariable = "utv",
applicationName = "an", applicationVersion = "av", eventAction = "ea",
eventCategory = "ec", eventLabel = "el", eventValue = "ev",
userLanguage = "ul", operatingSystemVersion = "cd1", model = "cd2",
exceptionDescription = "exd", exceptionFatal = "exf"
}
有关基于命中类型和每个参数的所需规则,请参见 Google Analytics Measurement Protocol 参数参考。
默认情况下,该库将使用 Google Analytics Measurement Protocol API URL 进行验证,或者根据构建是 DEBUG
还是 RELEASE
来使用实际 URL。 使用验证服务器时,不会实际跟踪任何项目,只会进行验证。 您可以通过两种方式之一来覆盖此设置:
let tracker = AnalyticsTracker(configuration: AnalyticsConfiguration(
trackingIdentifier: "UA-XXXXXXXX-XX",
applicationName: "GampKitDemo",
applicationVersion: "1.0",
clientIdentifier: clientIdentifer
), sessionManager: AnalyticsURLSession(url : url))
let tracker = AnalyticsTracker(configuration: AnalyticsConfiguration(
trackingIdentifier: "UA-XXXXXXXX-XX",
applicationName: "GampKitDemo",
applicationVersion: "1.0",
clientIdentifier: clientIdentifer
), debugMode: false)
GampKit 在 MIT 许可证下发布。 查看 LICENSE 以获取详细信息。