6 个稳定版本

2.3.0 2023 年 7 月 27 日
2.2.0 2022 年 2 月 28 日
2.1.1 2022 年 2 月 10 日
2.1.0 2022 年 1 月 24 日
2.0.1 2021 年 6 月 2 日

#153 in 测试

MIT 许可证

83KB
1.5K SLoC

Clean Insights SDK

Clean Insights 为开发者提供了一种连接到安全、私有测量平台的方式。它专注于帮助回答关于应用程序使用模式的关键问题,而不是使所有用户习惯的侵犯性监控成为可能。我们的方法提供了程序性的杠杆,以满足特定的用例和隐私需求。它还提供了最终能够赋权用户而非疏远用户的方法。

示例


    // Instantiate with configuration:
    let mut ci: CleanInsights = CleanInsights::new_from_json_with_default_store(
        "example/cleaninsights.json", "tests");

    // Ask for consent:
    let period = match ci.can_ask_consent_for_campaign(campaign_id) {
        None => return,
        Some(period) => period
    };
    
    [Ask user for consent]
    
    if granted {
        ci.grant_campaign(campaign_id);
    }
    else {
        ci.deny_campaign(campaign_id);
    }

    // Measure a page visit:
    ci.measure_visit(&["Main"], "test");

    // Measure an event (e.g. a button press):
    ci.measure_simple_event("music", "play", "test");

    // Make sure to persist the locally cached data. E.g. when app is sent into background;
    ci.persist();

请注意: CleanInsights 的核心概念是 活动。由于我们不希望您记录任何东西,就像其他人那样,您需要配置您真正感兴趣的内容以及持续多长时间。为了更深入的了解,请参阅下面的 概念 部分。

此项目还包含一个示例应用程序。请参阅 GitLab 仓库 以全面了解如何使用此库。

安装

CleanInsightsSDK 通过 Cargo 提供。要安装它,只需将以下行添加到您的 Cargo.toml

clean_insights_sdk = "2.0"

更多文档

Rust 版本特定信息

此库目前完全同步,以避免强制任何异步运行时。

因此,强烈建议您实现自己的 Store,它利用异步功能,并使用异步 HTTP 客户端,如 hyper,或者在调用测量函数时使用线程,以便在 SDK 决定将数据持久化到磁盘时不会阻塞。

或者,您可能希望禁用自动持久性并自己调用 #persist

概念

测量

测量是对SDK的单次调用,用于测量访问或事件。

测量总是立即汇总并仅以汇总形式存储,以避免过高的分辨率,从而避免不必要的用户隐私侵犯。

所有测量都是为了您需要配置的特定活动进行的。

对于未配置的活动进行的测量将被忽略,以及对于已运行完毕或数据收集天数达到最大限度的活动进行的测量也将被忽略。

这有助于您避免使用旧活动的遗留测量代码进行不想要的测量。

活动

活动有一个活动期间,以及数据收集的最大天数,这是在用户同意测量后为特定用户收集数据的。

活动的具体开始日期有助于您协调跨平台的活动。当然,活动开始之前的测量将被忽略。

进行测量的天数由每日汇总周期长度和周期数量定义。

用户同意后,测量将立即开始,直到当前的测量周期仍在进行。

如果您想进一步提高用户的匿名性保证,并确保第一个测量的周期是一个完整的周期,您可以使用配置选项 strengthen_anonymity 来配置,这将强制测量仅在下一个完整的汇总周期开始。

汇总周期结束时,活动数据将自动发送到您的洞察服务器。

如果您配置的 numberOfPeriods 大于1,下一个汇总周期将在第一个周期结束后立即开始,并且测量将继续。

事件

与访问测量相比,事件测量支持完整的 Matomo事件API

这意味着您还可以记录数值,例如,例如某事花费的时间。

当同一个事件多次记录时,您可以配置要使用的汇总方法:事件值可以相加,或者可以计算平均值。

这可以按活动进行配置。

不是Matomo活动

注意与Matomo的区别:CleanInsights中的活动概念与Matomo的活动概念不匹配,Matomo的活动概念主要是找出营销活动(如广告或着陆页)是否向网站发送了额外的访问者。

您需要请求用户同意您的测量。

有两种类型的同意

  • 活动同意:每个测量活动都需要用户同意。您需要向用户解释您想测量什么,您想测量多长时间以及为什么。

SDK包含UI来帮助您。

  • 常见功能同意:某些数据与您想测量的访问或事件是正交的,例如地区或使用的设备类型。由于这些功能仅在为活动进行测量时才会记录,因此同意只需在用户每次使用每个功能时收集一次。

用户可能想主动撤回同意。SDK支持这一点。请确保用户实际上可以这样做。

SDK提供UI来帮助您。

配置

为了确保您的CleanInsights配置有效,您可以使用我们的 JSON方案进行验证。

这里有一个 在线验证器

从该JSON方案生成 完整的文档

支持的后端

当前CleanInsights SDK通过CIMP支持Matomo作为后端。

作者

Benjamin Erhart,[email protected],为Guardian Project

许可证

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

依赖项

~9.5MB
~260K SLoC