AviaryInsights

易于使用的 Swift Package,用于记录 Plausible 的页面浏览量和自定义事件。

SwiftPM Twitter GitHub GitHub issues GitHub Workflow Status

Codecov CodeFactor Grade codebeat badge Code Climate maintainability Code Climate technical debt Code Climate issues Reviewed by Hound

目录

特性

Plausible 提供简单而有意义的网站流量洞察,而不会侵犯访问者的隐私。 然而,将 Plausible 集成到 Swift 应用程序中可能既复杂又耗时。 AviaryInsights 简化了此过程,让您可以专注于构建应用程序,同时仍然获得 Plausible 提供的宝贵洞察。

要求

Apple 平台

Linux

安装

要将 AviaryInsights package 添加到您的 Xcode 项目,选择 File > Swift Packages > Add Package Dependency 并输入仓库 URL。

使用 Swift Package Manager 添加仓库 url

https://github.com/brightdigit/AviaryInsights.git

用法

import AviaryInsights

// Initialize the client with your bundle identifier as the domain
let plausible = Plausible(domain: "com.example.yourApp")

// Define an event
let event = Event(url: "app:///login")

// Send the event
plausible.send(event: event)

Plausible 客户端

Plausible 是一个与 Plausible API 交互的客户端。它使用域名初始化,该域名通常是您的应用程序的 bundle identifier。 Plausible 客户端用于将事件发送到 Plausible API 以进行跟踪和分析。

要构建一个 Plausible 实例,您需要提供一个域名。 域名是一个字符串,用于标识您的应用程序,通常是您的应用程序的 bundle identifier。

let plausible = Plausible(domain: "com.example.yourApp")

默认情况下,Plausible 使用 URLSessionTransport,但您可以使用 AsyncClient 等替代方案。

发送一个 Event

Event 代表系统中的一个事件。 一个事件有一个名称,以及可选的域名、URL、引用者、自定义属性 (props) 和收入信息。 您可以创建一个 Event 实例并使用 Plausible 客户端发送它。

要构建一个 Event,您至少需要提供一个名称。 名称是一个字符串,用于标识您要跟踪的事件。 可选地,您还可以提供

let event = Event
    name: "eventName", 
    domain: "domain",
    url: "url", 
    referrer: "referrer", 
    props: ["key": "value"], 
    revenue: Revenue(
        currencyCode: "USD", 
        amount: 100
    )
)

AviaryInsights 提供了两种将事件发送到 Plausible API 的方法

异步抛出方法

此方法将一个事件发送到 Plausible API,如果操作失败则抛出错误。当您想以自己的方式处理错误时,这很有用。这是一个例子

do {
    try await plausible.postEvent(event)
} catch {
    print("Failed to post event: \(error)")
}

同步方法

此方法在后台将一个事件发送到 Plausible API,并忽略发生的任何错误。当您不需要处理错误并且想要即发即弃事件时,这很有用。这是一个例子

plausible.postEvent(event)

在这两种情况下,event 都是您要发送到 Plausible API 的 Event 的实例。

许可证

AviaryInsights 在 MIT 许可证下可用。 有关更多信息,请参见LICENSE文件。