Logo of the project

GampKit

SwiftPM Twitter GitHub GitHub issues Beerpay

GitHub Workflow Status Travis (.com) CircleCI Bitrise

Codecov CodeFactor Grade codebeat badge Code Climate maintainability Code Climate technical debt Code Climate issues

Version License Platform Cocoapods doc percentage Carthage compatible Reviewed by Hound

使用 Google Analytics 跟踪事件、计时、错误等

无需下载大量的库框架来了解您的应用如何被使用,您可以使用此库来轻松获取数据。 该库直接使用 Google Analytics 的 Measurement Protocol API。 您可以直接在 Google Analytics 仪表板中查看所有数据。

特性

此库包含以下跟踪能力:

要求

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理工具。 有关使用和安装说明,请访问其网站。 要使用 CocoaPods 将 GampKit 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

pod 'GampKit', '~> 0.1.0'

Swift Package Manager

Swift Package Manager 是一种用于自动分发 Swift 代码的工具,并且已集成到 swift 编译器中。 GampKit 支持在受支持的平台上使用它。

设置好 Swift 包后,将 GampKit 作为依赖项添加到 Package.swiftdependencies 值中即可。

dependencies: [
    .package(url: "https://github.com/brightdigit/GampKit.git", .upToNextMajor(from: "0.1.0"))
]

用法

API 文档

在继续操作之前,请确保在您的 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 参数参考。

调试 vs. 发布

默认情况下,该库将使用 Google Analytics Measurement Protocol API URL 进行验证,或者根据构建是 DEBUG 还是 RELEASE 来使用实际 URL。 使用验证服务器时,不会实际跟踪任何项目,只会进行验证。 您可以通过两种方式之一来覆盖此设置:

  1. 为 AnalyticsSessionManager 提供自定义 URL
  let tracker = AnalyticsTracker(configuration: AnalyticsConfiguration(
    trackingIdentifier: "UA-XXXXXXXX-XX",
    applicationName: "GampKitDemo",
    applicationVersion: "1.0",
    clientIdentifier: clientIdentifer
  ), sessionManager: AnalyticsURLSession(url : url))
  1. 使用调试模式标志来使用验证服务器
  let tracker = AnalyticsTracker(configuration: AnalyticsConfiguration(
    trackingIdentifier: "UA-XXXXXXXX-XX",
    applicationName: "GampKitDemo",
    applicationVersion: "1.0",
    clientIdentifier: clientIdentifer
  ), debugMode: false)

链接

许可证

GampKit 在 MIT 许可证下发布。 查看 LICENSE 以获取详细信息。