维度提供了扩展跟踪器以轻松记录任何自定义数据的可能性。在记录任何自定义数据之前,你必须决定你需要什么样的维度:
要创建一个新维度,请使用控制台:
。/控制台生成:维度
该命令将询问您的插件名称和您想创建的维度类型。你可以在访问
,行动
而且转换
.接下来,它会问你维度的名称(例如“Browsername”),MySQL数据库列的名称(例如“Browsername”)browser_name
)和列类型(例如Varchar(255)不为空
).
类中创建了一个维度类列
包含如何定义应该跟踪哪些数据的示例的插件目录。一旦您打开Matomo(以前是Piwik) UI,维度就会自动安装。
让我们假设您想添加一个新的跟踪URL参数sport_activity_type
它可以让你追踪体育活动的类型(例如跑步、骑自行车……)。您可以通过实现该方法来做到这一点onNewVisit
:
公共函数onNewVisit(Request $ Request, Visitor $ Visitor, $action){返回Common::getRequestVar('sport_activity_type', $default = false, 'string', $ Request ->getParams());}
每当你发送sport_activity_type
参数与任何跟踪请求和跟踪器检测到一个新的访问者,该信息将被记录在数据库中,并可用于创建新的报告或扩展现有的报告和API方法。跟踪URL的示例如下所示matomo.php吗?idsite = 1 &sport_activity_type =运行
可选地,您可以覆盖通过实现该方法检测到新访问时写入的任何初始值onExistingVisit
.例如,你可以在计数器中使用它来存储上一次操作的时间等:
公共函数onNewVisit(Request $ Request, Visitor $ Visitor, $action){返回1;}公共函数onExistingVisit(请求$ Request,访问者$ Visitor, $action){返回$ Visitor ->getVisitorColumn($this->column_name) + 1;}
当跟踪一个新访问者时,值1
将被存储。在每个进一步的跟踪请求中,此维度的值将增加。
动作维度的工作方式类似,只是方法名称不同。假设您想通过公开一个新的URL参数来跟踪一个跑步者的当前速度速度
:
公共函数onNewAction(Request $ Request, Visitor $ Visitor, Action $ Action) {$value = Common::getRequestVar('speed', false, 'string', $ Request ->getParams());$isRunner = 'running' === $visitor->getVisitorColumn('sport_activity_type');if ($isRunner && is_numeric($value)){//只存储值如果它是一个runner,如果速度是数值返回$value;}返回false;//不为该动作存储任何值
跟踪请求可以这样完成:matomo.php吗?idsite = 1 &sport_activity_type =跑步速度= 50
.
当然,你可以添加任何自定义行为,如限制最大速度等。
自Matomo 3.2.0起,当你定义一个维度时,一个新的段会自动创建segmentName美元
财产。还建议调整接受值的描述。
维度功能非常强大。例如,可以通过创建具有相同列名的维度来更改现有维度的行为,也可以通过使用查找表有效地存储与操作相关的数据。维度还可以在现有访问者被识别的情况下强制创建新的访问。我们建议查看已创建维度中的文档和类的API-ReferenceVisitDimension,ActionDimension而且ConversionDimension