daandelange / simplestats
为您的 kirby3 网站提供非常简单的访问者分析。
Requires
- buzz/which-browser-parser: ^2.1
- getkirby/composer-installer: ^1.1
- snowplow/referer-parser: ^0.2.0
This package is not auto-updated.
Last update: 2024-09-20 22:37:31 UTC
README
跟踪您的 Kirby 3 网站的页面浏览量、引用者和设备。此插件提供了一种简单的方法来执行 自托管、最小化 和 非侵入式 访问者分析。
- 它跟踪 引用者 URL 以记录链接到您网站的人,分类为
搜索
、社交
或网站
。 - 它跟踪 设备信息(设备类型、浏览器引擎、操作系统家族;所有版本信息),以记录您的网站是如何被访问的。
- 它跟踪 页面访问,每24小时内每页每个独特用户计算一次点击。
- 收集的数据存储在 .sqlite 数据库(原始数据)中,您可以查询该数据库以进行自定义目的。此外,
Stats
类还公开了大多数收集到的数据。 - 一个面板区域通过图表 可视化 数据。
工作原理
- 跟踪发生在页面由 Kirby 提供时。
- 存储一个加密的用户唯一指纹以跟踪独特的页面浏览量。 公式 大致为
sha1( base64_encode( mix( anonymize(IP, 0.0.0.x) + trunc(UserAgent) + Salt)) )
。 它与访问过的页面列表、设备类别(机器人/移动/桌面/平板电脑/其他)、浏览器的引擎(Gecko/Webkit/Blink/其他)和操作系统家族一起存储。这些数据仅保留很短的时间,以确保仅计算独特点击。 - 24小时后,收集到的数据将被处理,并将删除任何用户标识数据。
- 访问页面的点击次数将全局和按语言增加。
- 设备、引擎和操作系统家族将单独增加。
- 引用者将立即处理,并且与任何用户相关的标识符无关。
- 默认情况下,所有数据按月汇总。您可以轻松地将此“时间段”更改为
每周
,甚至提供自己的自定义时间段实用程序。
当前状态
请将此插件视为测试版。欢迎任何反馈或错误报告。它已在多个生产网站上成功运行约一年。跟踪部分几乎完成,当面板界面更加完善时,我将考虑第一个版本发布。请注意,数据库结构可能会随着时间的推移而演变,直到推出更稳定的版本(那时您将能够升级旧数据库;升级机制已经工作)。
贡献
我想可以添加很多选项来满足更广泛的网站设置对插件的需求。面板界面也可以得到改进和翻译。任何贡献(讨论、报告、反馈和拉取请求)都受欢迎,只要收集的统计信息保持最小化和合理非侵入性即可。您还可以查看 开放问题。
设置
要求
- 最近的 Kirby 安装(目前测试了 3.9+)和 SQLite3 支持。
- 在插件面板视图的
信息
选项卡中有一个自动的要求检查器。
安装
-
选项 1 : 下载 下载并将此存储库复制到
/site/plugins/simplestats
。 -
选项 2 : Git 子模块
git submodule add https://github.com/daandelange/kirby3-simplestats.git site/plugins/simplestats
最终添加 --depth 1
以删除存储库的提交历史记录。(节省磁盘空间)
- 选项 3 : Composer (更新命令以匹配最新版本)
composer require daandelange/simplestats:~0.6.2-beta
(使用composer update
更新)
注意:虽然SimpleStats
仍处于alpha阶段,但composer没有稳定渠道,所以您需要指定不稳定版本。
注意:我不会为每个小变化发布版本。如果您想使用最新版本并通过composer使用,可以手动输入一个提交。
composer require daandelange/simplestats:dev-master#dbdb4a2 --with-dependencies
.
配置
统计蓝图部分
如果您希望在一个部分中显示页面统计信息,您可以在页面的蓝图添加一个pagestats
面板部分。
sections: pagestats: type: pagestats label: TestHeadline size: small showTotals: true showTimeline: true showLanguages: true showFullInfo: false
语言设置
支持多语言网站。对于每个页面,都有一个全局计数器,每个语言可选的计数器。警告:不要在未重置数据库文件的情况下向您的Kirby安装添加或删除语言!另外,面板视图尚未翻译。注意:在alpha阶段,我正在处理多语言环境。虽然我偶尔会尝试测试单语言设置,但SimpleStats在这些设置中偶尔可能会出错。
数据库配置
数据库文件是一个简单的.sqlite
文件,它包含所有跟踪数据。您可以从专用面板区域或通过在面板页面编辑器中包含较小的小部件部分来查看它。流行的Sqlite格式允许您轻松地抓取数据并按自己的方式可视化它,或将其导入其他软件。建议您定期备份您的统计数据库文件。
跟踪分辨率和Kirby语言(重要!)
请注意,数据库紧密绑定到跟踪分辨率选项(
daandelange.simplestats.tracking.timeFrameUtility
),并且之后不能更改。在保持相同数据库文件的同时更改分辨率会导致未定义的行为。对于Kirby的语言设置也是如此:如果您更改多语言设置,您需要创建一个新的数据库文件(但是,手动编辑以前的数据库文件,您可能能够保留您的数据)。这可以通过更新脚本自动完成。
生成统计信息
如果您想将一些假统计信息填充到数据库中(用于测试或开发SimpleStats),您可以使用面板界面在“信息”标签中生成一些。
法律配置
根据您的当地法律,您可能需要坐下来定义如何处理个人访问者数据。您可能需要检查源代码以了解详细信息。根据许可证声明,没有任何保证。
集成到您的页面
如果您想使用默认的onLoad
跟踪方法,不需要采取任何进一步的操作,插件会自动钩接到Kirby路由事件。如果您选择任何其他跟踪方法,您需要在您的代码中集成该方法。
可能的跟踪方法:(配置值:
tracking.method
)
SimpleStatsTrackingMode::OnLoad
:使用kirby的路由钩子跟踪内容,当内容被提供时。 优点:确保每个请求都被跟踪。 缺点:会减慢页面提供时间。 设置步骤:无。SimpleStatsTrackingMode::OnImage
:在您的HTML中生成一个简单的图像标签。 优点:不会减慢页面提供时间。 缺点:您必须信任用户加载图像。 设置步骤:您需要在模板代码中调用$page->simpleStatsImage()
。您可能想在例如site/snippets/footer.php
中这样做一次。SimpleStatsTrackingMode::Disabled
:禁用跟踪,不需要采取任何进一步的操作。(尚未充分测试) 设置步骤:无。SimpleStatsTrackingMode::Manual
:手动调用跟踪函数。 优点:非常灵活,可能会解决边缘情况的使用。 设置步骤:您必须手动调用SimpleStats::track()
。此外,您需要相应地填充http头参数以跟踪引用者和设备信息。
选项
就像任何Kirby插件一样,您可以在您的site/config/config.php
中设置选项。所有可用的选项都在src/config/options.php
中列出并解释。
示例
// site/config/config.php // The custom variable types (SimpleStatsTimeFrameUtility, SimplestatsTrackingMode) are namespaced, you can shorten their invocations with the line below: // use daandelange\SimpleStats\SimpleStatsTrackingMode; require_once(__DIR__ . '/../plugins/simplestats/src/models/SimpleStatsTimeFrameUtility.php'); return [ // [...] your options ... // Simplestats 'daandelange.simplestats.panel.enable' => false, // Disable the panel view completely 'daandelange.simplestats.tracking.enableReferers' => false, // Disable referer tracking 'daandelange.simplestats.tracking.timeFrameUtility' => new \daandelange\SimpleStats\SimpleStatsTimeFrameUtilityWeekly(), // Here you can put your custom inherited class from SimpleStatsTimeFrameUtility 'daandelange.simplestats.tracking.timeFrameUtility' => 'weekly', // Alternative 'daandelange.simplestats.tracking.method' => \daandelange\SimpleStats\SimpleStatsTrackingMode::OnImage, ];
以下是一个已测试的选项列表。(已删除daandelange.simplestats
部分)您也可以在options.php
的注释中找到更多详细的信息。
- 注意 - 您必须在初始化之前选择
timeFrameUtility
设置。如果您之后想要更改它,将无法导入之前收集的数据。更改timeFrameUtility
,您需要用新的数据库文件替换它(或设法将其转换)。
更新
在更新之前,请务必备份您的数据库文件。如果出现问题,您可以在稍后替换数据库文件来恢复您的统计信息。
根据您使用的安装方法,进行更新的逻辑步骤。
更新后
- 查看新选项并按需配置。
- 有时需要升级数据库。如果是这样,请转到面板的
信息
选项卡,并按照升级部分的说明操作。 - 检查日志文件以查找任何错误也是一个好主意。
API
单例
SimpleStats::safeTrack($id)
是track()
的抛出安全替代方案。$id
是要跟踪的$page->id()
。SimpleStats::track($id)
调用此函数以跟踪用户数据。$id
是要跟踪的$page->id()
。
页面方法
$page->simpleStatsImage()
当使用OnImage跟踪方法时,跟踪图像的HTML代码。$page->getPageStats()
返回一个包含有关页面有用跟踪信息的数组。
用户方法
$user->hasSimpleStatsPanelAccess($forSpecialAdminAccess=false)
如果用户有权访问SimpleStats面板,无论是否有特殊管理员权限,则返回true。
面板界面
图表
图表是交互式的,您可以将鼠标悬停在它们上以查看详细信息,并单击标签以切换过滤。您甚至可以下载时间线为PNG文件。
表格
表格是交互式和分页的。您可以在其中搜索数据,并单击列标题对其进行排序。
开发
开发是从一个标准Kirby PluginKit开始的,有关使用它的更多详细信息,请参阅他们的插件指南。这些步骤是可选的,用于构建开发版本。
- Npm需求(可选):
npm install -g parcel-bundler
- 设置:
cd /path/to/website/site/plugins/simplestats && npm install
- 在开发过程中:
npm run dev
- 编译生产版本:
npm run build
- 更新依赖项:
npm update
由
- noUi-slider:一个滑块界面[* MIT *]
- Chart.js用于显示交互式图表。[* MIT *]
- 包管理器和打包工具:NPM、Parcel、Composer、Yarn。
- Kirby CMS:提供插件界面[授权软件]
- WhichBrowser/Parser-PHP:一个准确且性能良好的php用户代理解析器。[MIT]
- Snowplow/php-referer-parser:一个性能良好的php refer(r)er解析器。[MIT]
替代品/类似产品
- DistantNative/retour-for-kirby : 从面板直接管理重定向和跟踪404错误。
- Bnomei/Pagecounter : 统计您的 Kirby 页面上的页面访问次数和最后访问日期。
- SylvainJulé/kirby-matomo : 为 Kirby 3 提供的 Matomo 包装器。
- FabianSperrle/kirby-stats : Kirby 2 的简单统计。
- Arnoson/kirby-stats : 更简单的 Kirby 3 统计(甚至更简单)。
许可证
-
MIT - 自由使用,自由改进。
-
版权所有 2020-2021 Daan de Lange