归档数据是在归档过程中通过聚合日志数据产生的。 Matomo(之前叫Piwik)聚合并持久化两类归档数据: Metrics:简单的数值指标 Reports:二维数组类型 报表通常包含数值指标,也包含其他数据(附加的或者替换数值指标)。 报表和数值指标由插件进行定义。插件可以扩展matomo分析出的数据。Matomo内核预定义了一些核心指标(Core metric)。 欢迎加入Matomo中文网。请加入官方QQ群255820112(点击滚动至本页末可扫描二维码),随时提问,有问必答。 数据子集参数 报表和数值指标提供了数据的分析结果。这个分析结果由下面几个参数进行范围限制: 站点ID 周期(Period) 分段(Segments) 站点ID限制了数据只属于特定站点。在HTTP请求中用idSite参数进行表示。 周期限制了数据只处于特定时间段。在HTTP请求中用date和period来表示(一个表示日期,一个表示按天还是按周按月按年)。 分段(segment)是以访客属性构成的布尔表达式,它类似于SQL语句中的where条件。在HTTP请求中用segment参数进行表示。通过它可以限定得到任何子集的访问数据。 分析参数是以metadata的方式存储在报表里。也就是存储在DataTable对象的metadata中。 数值指标 核心指标 核心数值指标是由Piwik内核定义的,而不是由插件定义的。 新的报表如果要分析访客、行为类型或转化的话,应当包含这些指标。 访客指标 名称 指标ID 描述 访问(visits) nb_visits 访问数 同一访客在间隔不超过30分钟的一系列访问事件就构成一次访问。 独立访客(Unique visitors) nb_uniq_visitors 独立访问源的数量 访问源代表一个被追踪访问的对象。 行为数(Actions) nb_actions 被追踪行为数 一个行为就是一次被Matomo追踪的事件。 最大行为数(Max Actions) max_actions 一次访问中发生的最大行为数。 总访问时长(Sum Visit Length) sum_visit_length 每次访问的时间总和 弹出数(Bounce Count) bounce_count 只发生一次行为的访问数 转化访问数(Converted Visits) nb_visits_converted 至少发生一次转化的访问数 … Continue reading “Matomo数据模型系列文章之(四)归档数据”
Category: 二次开发
Matomo数据模型系列文章之(三)归档过程
日志数据(Log Data)不会被直接用于终端用户的报告。因为一个报告所需要的数据很多,直接使用会直接影响报告的呈现效率。 为了解决这个问题,归档过程就应运而成,它会将日志数据归档为归档数据。然后报表就能使用这些归档数据呈现报表了。 欢迎加入Matomo中文网。请加入官方QQ群255820112(点击滚动至本页末可扫描二维码),随时提问,有问必答。 举例 让我们来举个例子,有个网站每天会有1000个页面访问。它的日志数据就会是下面的样子(省略号表示其他属性) 。 URL Time … /homepage 17:00:19 … /about 17:01:10 … /homepage 17:05:30 … /categories 17:06:14 … /homepage 17:10:03 …… 归档过程聚合原始数据成归档数据。如果你想构建每个页面访问次数的报表(找到最热门的网页),归档会列举所有的网页并计算每个网页的访问次数。 URL Page views /homepage 205 /categories 67 /about 5 … 这个数据就是归档数据。 对1000个PV进行预计算看起来似乎是多余的,不过当处理大量数据的时候就尤显必要了。 何时归档 默认情况下,归档数据是按需计算和缓存的。当某个报表被请求的时候,Piwik会检查所需的归档数据是否存在,如果不存在它会启动归档。 提前归档 当追踪的网站流量很大时,按需归档会花费很多时间。在这种情况下,按需归档必须被禁用,取而代之的是将归档变成后台定时任务。 提前归档可以针对每个站点和日期区间(除了自定义日期范围),命令如下: $ ./console core:archive 通常设置的方法是使用cron(Linux定时任务)固定间隔时间执行。 这个命令会记住最后运行的位置,只有在有新记录的时候才会继续执行。 如何执行 日志数据会按照站点、周期(日、周、月、年或自定义时间段)、分段条件(Segment)进行归档。 归档的逻辑是由插件来定义的。插件定义的所有报表会被一起归档,而不是单个单个归档。 如果分段条件(Segment)没有被指定,并且数据没找到,每个插件的每个报表会一次性被生成和缓存。如果分段条件被指定,所请求数据对应插件的所有报表会被生成和缓存。 周期聚合 归档数据的运算方式依赖于周期的类型: 按天数据是直接归档原始日志数据 … Continue reading “Matomo数据模型系列文章之(三)归档过程”
Matomo数据模型系列文章之(二)日志数据
HTTP追踪接口(如Piwik\Tracker 组件)用于收集原始分析数据,这些数据被称为日志数据。 有以下几种日志数据:访问(Visits),行为类型(Action Types),转化(Conversions),电子商务产品(Ecommerce Items) 日志数据由归档过程处理成归档数据。 日志数据从来不会被直接用于Matomo(之前叫Piwik)报告,而是归档数据直接用于报告。唯一的一个例外就是实时(Live)插件,它用日志数据直接生成实时报告。 欢迎加入Matomo中文网。请加入官方QQ群255820112(点击滚动至本页末可扫描二维码),随时提问,有问必答。 持久化 日志数据在PHP中用Piwik\Tracker\Visit对象来表示,并被存储在以下几个表中: log_visit:每次访问对应一条记录(回头客也是) log_action:包含网站上各种类型的行为(如独立url,网页标题,下载网址) log_link_visit_action:访客的每个行为对应一条记录(网页浏览) log_conversion:包含访问过程中所有的转化(与目标匹配的行为) log_conversion_item:包含电子商务转化条目 关于这些表的内容(和它们对应的PHP实体)在“Matomo数据库结构”中有详细解释。
Matomo数据模型系列文章之(一)概述
如果你有以下问题,请详细阅读数据模型系列文章 : Matomo是如何聚合、存储、提供分析数据给插件的? 什么是归档处理?它是如何被用作数据聚合和缓存的? 如何使用PHP存储和操作分析数据? 什么是分段数据(Segments)?又如何自定义呢? 欢迎加入Matomo中文网。请加入官方QQ群255820112(点击滚动至本页末可扫描二维码),随时提问,有问必答。 关于分析 分析数据意味着在很多东西中找到符合特定模式的目标。在Matomo中,这些东西就是访问(visits),网页行为(Web actions)和目标转化(Goal Conversions)。 我们通过缩小(reduce)东西的集合来找到目标。换句话说,我们通过将原始数据分组创建子集来查找目标。这样的子集数据更具识别性和意义。 在Matomo中分组的结果就是分析数据(analytics data)。分析数据通过API被存储、展示和曝光。以下内容涉及分析数据包含什么,如何计算和存储数据,如何将数据展示给用户。 数据工作流 以下是数据的工作流: 原始数据(raw data)通过追踪器进行收集,然后存储为日志数据(log data) 归档处理(archiving process)聚合日志数据成归档数据(archive data)。 归档数据被加载并呈现到报表(reports)中 下一步学习内容 • 日志数据 • 归档过程 • 归档数据 • 报表
Matomo用的是什么框架
Matomo应用中不同的设计层使用的是不同的框架,有的是自己开发,有的是用的第三方类库。随着不断阅读源代码,我会将相关的信息更新到此页。欢迎大家的交流。 Matomo的WEB场景下的MVC框架是由Matomo团队自己开发的,具体的流程和插件逻辑后续再补充,视图层用到了twig。 Matomo的console开发是基于Synfony的Console组件。 Matomo的数据库部分用到了Doctrine ORM。 Matomo还使用了对象的依赖注入工具php-di用于可配置化、方便替代的获取特定类对象。