GampKit
使用Google Analytics进行跟踪事件、计时、错误等
为了理解您的应用程序是如何被使用的,而不是下载大量的库框架,您可以使用这个库来轻松地访问数据。该库直接通过Google Analytics的Measure Protocol API与Google Analytics配合使用。直接从Google Analytics仪表板上查看所有数据。
特性
此库支持跟踪以下内容
- 带自定义数据的事件
- 各种操作的计时
- Swift错误和NSExceptions
- 自定义操作,如屏幕和事务
要求
- iOS 8.0+ / macOS 10.9+ / tvOS 9.0+ / watchOS 2.0+ / Linux
- Xcode 10.2+
- Swift 5+
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问其网站。要使用 CocoaPods 将 GampKit 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'GampKit', '~> 0.0.1'
Swift Package Manager
Swift Package Manager 是一种用于自动化 Swift 代码发布的工具,它集成到 swift
编译器中。GampKit 支持其在受支持平台上的使用。
一旦您设置了 Swift 包,添加 GampKit 作为依赖项就像将其添加到您的 Package.swift
中的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/brightdigit/GampKit.git", .upToNextMajor(from: "0.0.1"))
]
使用方法
API 文档
在进行下一步之前,请确保在 Google Analytics 账户下设置一个属性。对于您的应用程序的新属性,您需要 跟踪标识符。通常,跟踪标识符 的格式为 UA-XXXXXXXXX-XX
。您将需要 跟踪标识符 以及
- 应用程序名称
- 应用程序版本
- 客户端标识符 - 这应该在应用程序安装时创建一个匿名 UUID,并在启动时保存以供将来使用
配置
为了开始跟踪,您需要使用一个 AnalyticsTracker
并使用一个 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 度量协议文档 中查阅。
计时
要对计时进行追踪,可以创建一个 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 度量协议文档 中查阅。
错误和异常
要对错误和异常进行追踪,可以使用 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 度量协议文档 中查阅。
自定义项目
您还可以通过实现 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 度量协议参数参考 中找到。
调试与发布
默认情况下,该库将根据自己的构建是调试
还是发布
,选择使用AnalyticsSessionManager的验证服务器或验证用例的URL。当使用验证服务器时,不会实际跟踪任何项目,只进行验证。您可以通过以下两种方式中的任意一种来覆盖这一设置:
- 为AnalyticsSessionManager提供自定义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)
链接
- Google Analytics Measurement Protocol API
- 仓库
- 问题跟踪
许可证
GampKit遵循MIT许可证发布。有关详细信息,请参阅LICENSE。