Piwik \ \插件\维度
从Matomo 2.5.0开始
定义一个新的访问维度,用于记录跟踪期间与访问相关的任何信息。
您可以通过执行以下事件记录任何访问信息:onNewVisit (),onExistingVisit (),onConvertedVisit ()或onAnyGoalConversion ().通过定义columnName美元而且columnType美元将在数据库(表)中创建一个新列log_visit
),并且您在前面提到的事件中返回的值将保存在此列中。
您可以使用console命令创建一个新维度。/控制台生成:维度
.
这个抽象类定义了以下属性:
columnName美元
灰;如果指定了$columnType,这将是数据库表中列的名称。继承自维
columnType美元
灰;如果定义了columnType,我们将在MySQL表中创建一个具有此类型的列。继承自维
美元的类型
灰;定义此维所持有的数据类型。继承自维
namePlural美元
灰;名称复数的翻译键继承自维
segmentName美元
灰;通过定义段名,用户将能够通过该列筛选他们的访问者。继承自维
suggestedValuesCallback美元
灰;设置当用户调用段的建议值时执行的回调。继承自维
acceptValues美元
灰;在这里,你应该解释哪些值对你的细分市场是被接受的/有用的,例如:“1,2,3,等等”或“comcast.net, proxad.net,等等”。继承自维
sqlSegment美元
灰;定义该段属于MySQL数据库中的哪一列(如果已配置)。继承自维
sqlFilter美元
灰;在指定段时很有趣。继承自维
sqlFilterValue美元
灰;类似于sqlFilter美元您可以将给定的段值映射到另一个值。继承自维
allowAnonymous美元
灰;定义匿名用户是否可以使用该维度(以及基于该维度的段)。继承自维
dbTableName美元
灰;此维度引用的数据库表的名称维
metricId美元
灰;缺省情况下,metricId是根据维度id自动生成的。继承自维
columnName美元
如果指定了$columnType,这将是数据库表中列的名称。
字符串
价值。columnType美元
如果定义了columnType,我们将在MySQL表中创建一个具有此类型的列。请确保MySQL理解这个类型。一旦您更改了列类型,Matomo(以前是Piwik)平台将通知用户执行更新,这有时会花费很长时间,所以在选择正确的列类型时要小心。
字符串
价值。美元的类型
定义此维所持有的数据类型。默认情况下,类型是基于自动检测的columnType美元
但有时可能需要纠正这个值。例如,根据这种类型,维度的格式将有所不同。
字符串
价值。namePlural美元
名称复数的翻译键
字符串
价值。segmentName美元
通过定义段名,用户将能够通过该列筛选他们的访问者。如果不想为这个维度定义段,只需将名称保留为空。
suggestedValuesCallback美元
设置当用户调用段的建议值时执行的回调。
可调用的
价值。acceptValues美元
在这里,你应该解释哪些值对你的细分市场是被接受的/有用的,例如:“1,2,3,等等”或“comcast.net, proxad.net,等等”。如果值需要任何特殊编码,也应该提到这一点。例如“任何包含协议的URL。URL必须是URL编码。”
字符串
价值。sqlSegment美元
定义该段属于MySQL数据库中的哪一列(如果已配置)。默认为这一美元。dbTableName。“。”。this.columnName美元
但你可以自定义它,如小时(log_visit.visit_last_action_time)
.
sqlFilter美元
在指定段时很有趣。有时,您希望用户设置的段值与实际存储的段值不同。例如,如果你想允许通过任何URL进行过滤,那么你可能必须将这个URL解析为一个动作id。或者国家名称可能必须映射到2个字母的国家代码。您可以通过指定一个可调用对象,例如阵列(“名称”、“methodName”)
或者通过传递一个闭包。
将有四个值传递给给定的闭包或可调用对象:字符串valueToMatch美元
,字符串部分美元
(见setSegment ()),字符串matchType美元
(例如SegmentExpression::MATCH_EQUAL或该类的任何其他匹配常量)和segmentName美元
.
如果闭包返回NULL,则Matomo假定段子字符串不匹配任何访问者。
字符串
关闭
sqlFilterValue美元
类似于sqlFilter美元您可以将给定的段值映射到另一个值。例如,您可以将“new”映射为0,将“returning”映射为1,将任何其他值映射为“2”。您可以定义一个可调用对象或一个闭包。将只有一个值传递给闭包或可调用对象,该值包含用户为这个段设置的值。
字符串
数组
allowAnonymous美元
定义匿名用户是否可以使用该维度(以及基于该维度的段)。
保龄球
价值。dbTableName美元
此维引用的数据库表的名称
字符串
价值。metricId美元
缺省情况下,metricId是根据维度id自动生成的。这有时可能不那么可读,而且很长。如果你想要更有表现力的指标名称,比如nb_visits
相比nb_corehomevisitid
,你可以设置一个metricId访问
.
字符串
价值。抽象类定义了以下方法:
getDbColumnJoin ()
灰;当一个列引用从其继承的另一个列时实现维
getDbDiscriminator ()
继承自维
getEnumColumnValues ()
灰;当列表示枚举时实现。继承自维
getMetricId ()
灰;获取metricId,它用于基于此维度生成指标名称。继承自维
安装()
-安装动作维度,以防尚未安装。卸载()
灰;如果a,则卸载维度columnName美元,设置“columnType”。getCategoryId ()
灰;返回类别的ID(通常是一个转换键)。继承自维
getName ()
灰;返回此维度的翻译名称,通常为单数。继承自维
getNamePlural ()
灰;返回此维度的复数形式的翻译名称。继承自维
isAnonymousAllowed ()
灰;定义是否允许匿名用户查看“继承自”的维度维
setSqlSegment ()
灰;设置(覆盖)继承自的SQL段维
setType ()
灰;设置(覆盖维度类型)继承自维
groupValue ()
灰;维度应该使用此方法对值进行分组。继承自维
formatValue ()
灰;格式化维度值。继承自维
configureSegments ()
灰;重写此方法以配置段。继承自维
configureMetrics ()
灰;配置此维度的度量。继承自维
getSegmentName ()
灰;返回此维度从其定义的段的名称维
getSqlSegment ()
灰;返回此维度的sql段表达式。继承自维
getDbTableName ()
灰;返回此维所属的数据库表的名称。继承自维
getId ()
灰;返回此维度的唯一字符串ID。继承自维
getAllDimensions ()
-获得所有激活插件定义的所有访问尺寸。getDimensions ()
继承自维
getRemovedDimensions ()
灰;返回维度类名的列表,这些维类名随着时间的推移从核心中删除维
getModule ()
灰;返回包含此维度的插件的名称。继承自维
方法()
灰;返回维度的类型,该类型定义了该维度存储的值的类型。继承自维
getRequiredVisitFields ()
-有时你可能想要确保在你的维度之前执行另一个维度,这样你就可以根据其他维度的值持久化这个维度的值。onNewVisit ()
- - -onNewVisit
方法在检测到新访问者时触发。onExistingVisit ()
- - -onExistingVisit
方法在识别访问者时触发,这意味着它不是新访问者。onConvertedVisit ()
—该事件稍后执行onNewVisit
或onExistingVisit
以防客队进球。onAnyGoalConversion ()
-通过实现此事件,可以将值持久化到log_conversion
表,以防发生转换。shouldForceNewVisit ()
-这个钩子是由跟踪器执行,当确定一个动作是一个新的访问的开始或现有的一部分。sortStaticListByUsage ()
-按key在提供的表和列中出现的次数降序排列key =>值数组getDbColumnJoin ()
当一个列引用另一个列时实现
加入
|零
- - - - - -getDbDiscriminator ()
鉴频器
|零
- - - - - -getEnumColumnValues ()
当列表示枚举时实现。
数组
价值。getMetricId ()
获取metricId,它用于基于此维度生成指标名称。
字符串
价值。安装()
安装操作维度(以防尚未安装)。的基础上已经实现了安装columnName美元而且columnType美元.如果您希望执行除向数据库添加列之外的其他操作(例如添加索引),则可以覆盖此方法。我们建议调用这个父方法来获得所需的最小操作,然后添加进一步的自定义操作,因为这样可以确保正确安装列。我们还建议仅在确实需要时才更改默认安装行为。供您参考:这里我们不直接执行这些alter table语句,因为我们将它们与其他几个alter table语句组合在一起,在一个步骤中执行这些更改,从而加快安装速度。列将被添加到log_link_visit_action
MySQL表。
例子:
公共函数install() {$changes = parent::install();$changes['log_link_visit_action'][] = "ADD INDEX index_idsite_servertime (idsite, server_time)";返回$变化;}
数组
-一个包含表名作为键的数组和一个应该在给定表上执行的MySQL alter table语句数组。例子:array('log_link_visit_action' => array("ADD COLUMN ' $this->columnName ' $this->columnType", "ADD INDEX…"));
卸载()
如果a,则卸载维度columnName美元,设置“columnType”。以防您在期间执行任何自定义操作安装()—例如添加索引—您应该确保通过重写此方法来撤销这些操作。请确保调用这个父方法,以确保将完成列的卸载。
getCategoryId ()
返回类别的ID(通常是一个转换键)。
字符串
价值。getName ()
返回此维度的翻译名称,通常为单数。
字符串
价值。getNamePlural ()
返回此维度的复数形式的翻译名称。
字符串
价值。isAnonymousAllowed ()
定义是否允许匿名用户查看此维度
保龄球
价值。setSqlSegment ()
设置(覆盖)SQL段
它接受以下参数:
美元市场
它不返回任何东西,也不返回混合结果。
setType ()
设置(覆盖维度类型)
它接受以下参数:
美元的类型
它不返回任何东西,也不返回混合结果。
groupValue ()
维度应该使用此方法对值进行分组。否则,同一行可能出现多次。
它接受以下参数:
美元的价值
(混合
) - - -
idSite美元
(int
) - - -
它返回一个混合
价值。
formatValue ()
格式化维度值。默认情况下,维度基于设置的维度类型进行格式化。
它接受以下参数:
美元的价值
(混合
) - - -
idSite美元
(int
) - - -
美元格式化程序
(格式化程序
) - - -
它返回一个混合
价值。
configureSegments ()
重写此方法以配置段。为此,只需创建一个实例段类,配置它并调用addSegment()方法。您可以为这个维度添加一个或多个段。例子:
$segment = new segment ();段- > setSegment(“exitPageUrl”);段- > setName(“Actions_ColumnExitPageURL”);段- > setCategory(“General_Visit”);segmentsList - > addSegment(段);
它接受以下参数:
segmentsList美元
(SegmentsList
) - - -
dimensionSegmentFactory美元
(DimensionSegmentFactory
) - - -
它不返回任何东西,也不返回混合结果。
configureMetrics ()
配置此维度的度量。
对于某些维度类型,将自动添加一些指标。
它接受以下参数:
metricsList美元
(MetricsList
) - - -
dimensionMetricFactory美元
(DimensionMetricFactory
) - - -
它不返回任何东西,也不返回混合结果。
getSegmentName ()
返回此维度定义的段的名称
字符串
价值。getSqlSegment ()
返回此维度的sql段表达式。
字符串
价值。getDbTableName ()
返回此维所属的数据库表的名称。
字符串
价值。getId ()
返回此维度的唯一字符串ID。ID是使用维度的命名空间类名构建的,但经过了修改,使其更便于人类阅读。
字符串
,例如,“反向链接。关键字”
异常
-如果无法确定该实例的插件名和简单类名。只有维位于错误的目录中才会发生这种情况。getAllDimensions ()
获得所有激活插件定义的所有访问尺寸。
维度[]
价值。getDimensions ()
它接受以下参数:
美元的插件
(插件
) - - -它不返回任何东西,也不返回混合结果。
getRemovedDimensions ()
返回随着时间的推移从核心中删除的维类名称的列表
string []
价值。getModule ()
返回包含此维度的插件的名称。
字符串
价值。异常
-如果Dimension不在Plugin模块中。方法()
返回维度的类型,该类型定义了该维度存储的值的类型。
字符串
价值。getRequiredVisitFields ()
有时,您可能希望确保在您的维度之前执行另一个维度,以便您可以根据其他维度的值持久化该维度的值。可以通过定义维名数组来实现这一点。如果您访问事件中任何其他列的任何值,则应该在此处要求它们。
否则,这些值可能不可用。
数组
价值。onNewVisit ()
的onNewVisit
方法在检测到新访问者时触发。这意味着您可以在这里为该用户定义一个初始值。返回布尔值假
不会保存任何值。一旦用户做出另一个动作,事件“onExistingVisit”将被执行。这意味着对于每个访问者该方法执行一次。
它接受以下参数:
美元的请求
(Piwik \追踪\请求
) - - -
美元的游客
(Piwik \追踪\访客
) - - -
美元的行动
(Piwik \追踪\行动
|零
) - - -
返回:混合
|假
- - - - - -
onExistingVisit ()
的onExistingVisit
方法在识别访问者时触发,这意味着它不是新访问者。
您可以覆盖事件设置的任何先前值onNewVisit
通过实现此事件。返回布尔值假
没有值将被更新。
它接受以下参数:
美元的请求
(Piwik \追踪\请求
) - - -
美元的游客
(Piwik \追踪\访客
) - - -
美元的行动
(Piwik \追踪\行动
|零
) - - -
返回:混合
|假
- - - - - -
onConvertedVisit ()
此事件稍后执行onNewVisit
或onExistingVisit
以防客队进球。
通常这个事件是不需要的,因此你可以简单地删除这个方法。例如,持久化最后转换的操作url。返回布尔值假
如果您不想更改当前值。
它接受以下参数:
美元的请求
(Piwik \追踪\请求
) - - -
美元的游客
(Piwik \追踪\访客
) - - -
美元的行动
(Piwik \追踪\行动
|零
) - - -
返回:混合
|假
- - - - - -
onAnyGoalConversion ()
方法实现此事件,可以将值持久化到log_conversion
表,以防发生转换。
持久化值将在转换过程中记录下来,之后不再更改。这允许您生成报告,显示例如哪个url被调用的频率为特定的转换。对象中的列定义了$columnType后,就实现了此事件log_conversion
MySQL表将自动创建。
它接受以下参数:
美元的请求
(Piwik \追踪\请求
) - - -
美元的游客
(Piwik \追踪\访客
) - - -
美元的行动
(Piwik \追踪\行动
|零
) - - -
返回:混合
|假
- - - - - -
shouldForceNewVisit ()
这个钩子由跟踪器执行,当确定一个动作是一个新的访问的开始还是一个现有的一部分。派生类可以使用它来强制基于维数据的新访问。
例如,Referrers插件中的Campaign维度将强制执行一次新的访问,如果当前操作的Campaign信息与上次不同。
它接受以下参数:
美元的请求
(Piwik \追踪\请求
) -当前跟踪器请求信息。美元的游客
(Piwik \追踪\访客
) -当前已识别的访问者的信息。美元的行动
(Piwik \追踪\行动
) -当前操作信息(如有)。返回:保龄球
-返回true强制访问,否则返回false。
sortStaticListByUsage ()
按key =>值数组在所提供的表和列中出现的次数降序排序
它接受以下参数:
美元的数组
(数组
)—键值数组美元的表
(数据表
) -用于计数事件的数据表keyColumn美元
(字符串
) -数据表中的列,以匹配数组键maxValuesToReturn美元
(int
-限制返回数组的元素个数返回:数组
-来自源数组的值的数组,按大多数出现次数排序,降序排列