GampKit 0.1.0

GampKit 0.1.0

Leo G Dion维护。



GampKit 0.1.0

  • 作者:
  • BrightDigit

Logo of the project

GampKit

SwiftPM Twitter GitHub GitHub issues Beerpay

macOS ubuntu Travis (.com) 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的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。当使用验证服务器时,不会实际跟踪任何项目,只进行验证。您可以通过以下两种方式中的任意一种来覆盖这一设置:

  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