Piwik \ \插件\维度

VisitDimension

从Matomo 2.5.0开始

定义一个新的访问维度,用于记录跟踪期间与访问相关的任何信息。

您可以通过执行以下事件记录任何访问信息:onNewVisit ()onExistingVisit ()onConvertedVisit ()onAnyGoalConversion ().通过定义columnName美元而且columnType美元将在数据库(表)中创建一个新列log_visit),并且您在前面提到的事件中返回的值将保存在此列中。

您可以使用console命令创建一个新维度。/控制台生成:维度

属性

这个抽象类定义了以下属性:

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,它用于基于此维度生成指标名称。

签名

  • 它返回一个字符串价值。

安装()

安装操作维度(以防尚未安装)。的基础上已经实现了安装columnName美元而且columnType美元.如果您希望执行除向数据库添加列之外的其他操作(例如添加索引),则可以覆盖此方法。我们建议调用这个父方法来获得所需的最小操作,然后添加进一步的自定义操作,因为这样可以确保正确安装列。我们还建议仅在确实需要时才更改默认安装行为。供您参考:这里我们不直接执行这些alter table语句,因为我们将它们与其他几个alter table语句组合在一起,在一个步骤中执行这些更改,从而加快安装速度。列将被添加到log_link_visit_actionMySQL表。

例子:

公共函数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(段);

签名

  • 它接受以下参数:

  • 它不返回任何东西,也不返回混合结果。

  • 它会抛出以下异常之一:

configureMetrics ()

配置此维度的度量。

对于某些维度类型,将自动添加一些指标。

签名

  • 它接受以下参数:

  • 它不返回任何东西,也不返回混合结果。

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 ()

此事件稍后执行onNewVisitonExistingVisit以防客队进球。

通常这个事件是不需要的,因此你可以简单地删除这个方法。例如,持久化最后转换的操作url。返回布尔值如果您不想更改当前值。

签名

  • 它接受以下参数:

    • 美元的请求Piwik \追踪\请求) - - -

    • 美元的游客Piwik \追踪\访客) - - -

    • 美元的行动Piwik \追踪\行动|) - - -

  • 返回:混合|- - - - - -

onAnyGoalConversion ()

方法实现此事件,可以将值持久化到log_conversion表,以防发生转换。

持久化值将在转换过程中记录下来,之后不再更改。这允许您生成报告,显示例如哪个url被调用的频率为特定的转换。对象中的列定义了$columnType后,就实现了此事件log_conversionMySQL表将自动创建。

签名

  • 它接受以下参数:

    • 美元的请求Piwik \追踪\请求) - - -

    • 美元的游客Piwik \追踪\访客) - - -

    • 美元的行动Piwik \追踪\行动|) - - -

  • 返回:混合|- - - - - -

shouldForceNewVisit ()

这个钩子由跟踪器执行,当确定一个动作是一个新的访问的开始还是一个现有的一部分。派生类可以使用它来强制基于维数据的新访问。

例如,Referrers插件中的Campaign维度将强制执行一次新的访问,如果当前操作的Campaign信息与上次不同。

签名

  • 它接受以下参数:

    • 美元的请求Piwik \追踪\请求) -当前跟踪器请求信息。
    • 美元的游客Piwik \追踪\访客) -当前已识别的访问者的信息。
    • 美元的行动Piwik \追踪\行动) -当前操作信息(如有)。
  • 返回:保龄球-返回true强制访问,否则返回false。

sortStaticListByUsage ()

按key =>值数组在所提供的表和列中出现的次数降序排序

签名

  • 它接受以下参数:

    • 美元的数组数组)—键值数组
    • 美元的表数据表) -用于计数事件的数据表
    • keyColumn美元字符串) -数据表中的列,以匹配数组键
    • maxValuesToReturn美元int-限制返回数组的元素个数
  • 返回:数组-来自源数组的值的数组,按大多数出现次数排序,降序排列

Baidu