Stape sGTM SDK 实现了两个主要功能部分。
第一是简单的发送事件,它允许用户组合一个事件并发送到 Stape 数据客户端。
SDK API 提供了来自数据客户端的响应,并将其映射到一个包含序列化响应字段的简单模型。
第二是一个跟踪机制,它跟踪 Firebase 事件 SDK 发送的事件。
它挂钩 Firebase 事件调度并将 Firebase 事件映射到 Stape 数据客户端。
然后,它将其作为普通事件发送。
要使用 Cocoapods 安装 StapeSDK,只需将此行添加到您的 Podfile:pod 'StapeSDK'
并运行 pod install
。
目前,SPM 不支持混合 Objective-C/Swift 代码的包。
一旦 SPM 包含此功能,我们将添加 SPM 支持。
功能已在审查中,您可以在以下位置跟踪进度:https://forums.swift.org/t/se-0403-package-manager-mixed-language-target-support/66202
要使用 Stape SDK,您需要导入它
import StapeSDK
然后使用提供凭证和连接设置的配置启动它。首先创建一个 Stape.Configuration
实例,并将其传递给 Stape.start()
方法
if let url = URL(string: "https://yourdomain.com") {
let c = Stape.Configuration(domain: url)
Stape.start(configuration: c)
}
之后 SDK 就可以使用了。
要发送事件,您需要创建一个 Stape.Event
实例
let e = Stape.Event(name: "foo", payload: ["bar": "baz"])
并将其通过传递给 Stape.send()
方法发送
Stape.send(event: e) { result in
switch result {
case .success(let response): print("Event sent: \(response)")
case .failure(let error): print("Failed to send event: \(error)")
}
}
Stape.send()
方法提供了一个回调,在事件接收到响应后调用,并将结果传递给它。
如果事件发送成功,则结果包含 Stape.EventResponse
实例。
响应提供了一个 payload
属性,它是一个从后端获取的序列化键值对字典。
注意,响应处理程序是在非主线程上调用的,如果需要,您需要手动将其调度到主线程。
Stape.Event
结构体提供了一些预定义的键,方便使用。键在 Stape.Event.Keys
枚举中列出
public enum Key: String {
case clientID = "client_id"
case idfa = "idfa"
case currency = "currency"
case ipOverride = "ip_override"
case language = "language"
case pageEncoding = "page_encoding"
case pageHostname = "page_hostname"
case pageLocation = "page_location"
case pagePath = "page_path"
}
可以使用以下方式来组合事件
let e = Stape.Event(name: "foo", payload: [
.clientID: "bar",
.language: "foo"
])
要开始监听 Firebase 事件,您需要在调用 Stape.start()
方法之后调用 Stape.startFBTracking()
方法。
有一个处理程序 API 来获取发送到 Stape 数据客户端的 Firebase 事件的响应。
它由一对方方法组成,用于添加和删除由键标识的处理程序闭包。
public static func addFBEventHandler(_ handler: @escaping Completion, forKey key: String)
public static func removeFBEventHandler(forKey key: String)
Stape SDK 使用 Apple os.log 功能记录其操作。
您可以使用 com.stape.logger
子系统来过滤 Stape SDK 日志。
有关 Apple 结构化日志记录的更多信息,请参阅官方文档:https://developer.apple.com/documentation/os/logging`
请通过开启问题来告诉我们您的想法或哪些想要改进的地方。