数据库模式

Matomo(以前的Piwik)保存两种主要类型的数据:

  • 日志数据: Matomo在跟踪器中接收到的原始分析数据
  • 归档数据:聚合分析数据(由日志数据构建),这些数据被缓存并用于构建报告

Matomo还坚持其他更简单的数据形式,包括:

  • 网站
  • 用户
  • 目标
  • 选项

你知道吗?你可以扩展数据库用插件。

日志数据

日志数据有五种类型:

以类似的方式持久化所有日志数据:不断地以高容量向集中添加新数据,并且不存在更新,除了访问

访问数据在访问活动时更新。因此,在访问结束之前,Matomo可能会尝试更新它。

在计算分析数据时读取日志数据,有时会删除旧数据(通过数据清除特性).

后端必须确保插入新日志数据的速度尽可能快,并且聚合日志数据的速度不会太慢(当然,越快越好)。

访问

访问被存储在log_visit表格

每次访问包含以下信息:

  • idsite:被追踪网站的ID
  • idvisitor访问者ID(8字节二进制字符串)
  • user_id:用户ID(如果设置)
  • visitor_localtime:访问者在一天中的时间中的访问日期和时间
  • visitor_returning:该访客是否首次到访
  • visitor_count_visits:该访问者迄今为止的访问次数
  • visitor_days_since_last:距离该访客上次到访的天数(如有)
  • visitor_days_since_order:距离该访客上一次订购的天数(如有)
  • visitor_days_since_first:该访客第一次来访的天数
  • visit_first_action_time:访问第一次操作的日期时间
  • visit_last_action_time:访问最后一次操作的日期时间
  • visit_exit_idaction_url:访问最后一个动作的URL动作类型ID
  • visit_exit_idaction_name:访问最后一个操作的页面标题操作类型的ID
  • visit_entry_idaction_url:访问第一个动作的URL动作类型ID
  • visit_entry_idaction_name:此访问的第一个操作的页面标题操作类型的ID
  • visit_total_actions:在此访问期间执行的操作数
  • visit_total_searches:在此访问期间进行的网站查册次数
  • visit_total_events:在此访问期间执行的自定义事件的计数
  • visit_total_time:访问经过的总时间
  • visit_goal_converted这次访问是否实现了目标
  • visit_goal_buyer:访问者是否在这次访问期间点了东西
  • referer_type:该访客的推荐人的类型。可以是以下值之一:
    • Common::REFERRER_TYPE_DIRECT_ENTRY = 1:如果设置为此值,则表示otherreferer_……字段没有意义。
    • Common::REFERRER_TYPE_SEARCH_ENGINE = 2:如果设置为此值,referer_url搜索引擎的url和referer_keyword是否使用关键字(如果我们能找到它)。
    • Common::REFERRER_TYPE_WEBSITE = 3:如果设置为此值,referer_url是网站的url。
    • Common::REFERRER_TYPE_CAMPAIGN = 6:如果设置为此值,referer_name是活动的名称。
  • referer_name:推荐人姓名;它的含义取决于特定的引用类型
  • referer_url:推荐人URL;它的含义取决于特定的引用类型
  • referer_keyword:如果搜索引擎是引用者,则使用该关键字
  • campaign_keyword: campaign关键字(需要MarketingCampaignsReporting插件
  • campaign_medium:活动媒介(需要MarketingCampaignsReporting插件
  • campaign_name:活动名称(需要MarketingCampaignsReporting插件
  • campaign_source:活动源(需要MarketingCampaignsReporting插件
  • campaign_content:活动内容(需要MarketingCampaignsReporting插件
  • campaign_id:活动ID(需要MarketingCampaignsReporting插件
  • config_id:所有访问的配置选项的散列,包括操作系统,浏览器名称,浏览器版本,浏览器语言,IP地址和所有浏览器插件信息
  • profilable: 0或1。如果没有使用visitorId或userId,则该值为0.这意味着不能为这个特定的访问者创建配置文件,这意味着访问者配置文件在大多数情况下只显示一次访问,新/回访等功能将不适用于该访问者等。
  • config_os:一个短字符串,标识用于进行访问的操作系统。看到设备探测器更多信息
  • config_browser_name:一个短字符串,用于标识进行此访问的浏览器。看到设备探测器更多信息
  • config_browser_version:标识用于进行此访问的浏览器版本的字符串
  • config_resolution:一个字符串,标识访问者用于进行这次访问的屏幕分辨率(例如,“1024 x768”
  • config_pdf:访问者的浏览器是否可以浏览PDF文件
  • config_flash:访问者的浏览器是否可以查看flash文件
  • config_java:访问者的浏览器是否能运行Java
  • config_director
  • config_quicktime:访问者浏览器是否使用quicktime播放媒体文件
  • config_realplayer:访问者的浏览器是否可以播放realplayer媒体文件
  • config_windowsmedia:访问者的浏览器是否使用Windows媒体播放器播放媒体文件
  • config_gears
  • config_silverlight:访问者的浏览器是否可以运行silverlight程序
  • config_cookie:访问者的浏览器是否启用cookies
  • location_ip:进行访问的计算机的IP地址。可以匿名
  • location_browser_lang:描述访问者浏览器中使用的语言的字符串
  • location_country:由两个字符组成的字符串,描述访问者在访问该网站时所在的国家。由UserCountry插件。
  • location_region:由两个字符组成的字符串,描述访问者所在国家的地区。由UserCountry插件。
  • location_city:访问者访问该网站时所在城市的字符串。由UserCountry插件。
  • location_latitude:访问者访问该网站时所处的纬度。由UserCountry插件。
  • location_longitude:访问者访问站点时的经度。由UserCountry插件。
  • custom_var_k1:访问自定义变量第一个槽位的访问自定义变量名。
  • custom_var_v1:访问自定义变量第一个槽位的访问自定义变量值。
  • custom_var_k2:访问自定义变量中第二个槽位的访问自定义变量名。
  • custom_var_v2:访问自定义变量在第二个插槽中的访问自定义变量值。
  • custom_var_k3:访问自定义变量第三槽位的访问自定义变量名。
  • custom_var_v3:访问自定义变量第三槽位的访问自定义变量值。
  • custom_var_k4:访问自定义变量第4槽位的访问自定义变量名。
  • custom_var_v4:访问自定义变量在第四个槽位中的访问自定义变量值。
  • custom_var_k5:访问自定义变量第五位的访问自定义变量名。
  • custom_var_v5:访问自定义变量在第5个槽位中的访问自定义变量值。

一些插件,如提供者插件,将添加新的信息访问。

表的细节

index_idsite_config_datetime索引在试图识别回访访客时使用。

index_idsite_datetime索引在聚合访问时使用。由于日志聚合只发生在个别的日子期间,这个索引帮助Matomo快速找到一个网站和期间的访问。如果没有它,日志聚合将需要对整个数据库进行表扫描log_visit表格

访问行为

访问还包含一个操作列表,访问者在访问期间所做的每个操作都有一个操作列表。存储在log_link_visit_action表格

访问操作包含以下信息:

  • server_time:在UTC时区跟踪动作的日期时间
  • idaction_url:该动作的URL动作类型ID
  • idaction_url_ref:访问中上一次操作的URL操作类型的ID
  • idaction_name:此操作的页面标题操作类型的ID
  • idaction_name_ref:访问中前一个操作的页面标题操作类型的ID
  • pageview_position:页面浏览量在访问中的位置,从1开始。如果被记录的动作不是浏览量(而是另一个动作,如事件、下载等),那么位置将被设置为上次记录的浏览量的位置(在该动作被记录之前)。
  • time_spent_ref_action:执行上述操作所花费的时间(以秒为单位)(详情见下文)
  • time_spent:花费在这个动作上的时间(由CustomDimensions插件设置)
  • custom_var_k1:页面自定义变量的第一个槽的自定义变量名
  • custom_var_v1:页面自定义变量的第一个槽的自定义变量值
  • custom_var_k2:页面自定义变量的第二个槽的自定义变量名
  • custom_var_v2:页面自定义变量的第二个槽的自定义变量值
  • custom_var_k3:页面自定义变量第三插槽的自定义变量名
  • custom_var_v3:页面自定义变量第三个槽位的自定义变量值
  • custom_var_k4:页面自定义变量的第四个槽位的自定义变量名
  • custom_var_v4:页面自定义变量第4个槽位的自定义变量值
  • custom_var_k5:页面自定义变量槽的自定义变量名
  • custom_var_v5:页面自定义变量槽位的自定义变量值
  • custom_float:一个未指定的浮动字段,主要用于存储自定义事件值,以及存储的服务器花费的时间为这个动作服务

表的细节

idsite而且idvisitor列是从visit操作的关联访问中复制的,以避免在某些情况下必须加入log_visit表。

index_idvisitindex允许Matomo快速查询访问的访问动作。

index_idsite_servertime索引在聚合访问操作时使用。它允许快速访问在特定时期内跟踪的特定网站的访问行为,并让我们避免对整个表进行扫描。

time_spent_ref_action列包含访问者在其上一个页面视图上花费的时间。所定义的前一个页面视图的页面URLidaction_url_ref和以前页面视图的页面标题定义为idaction_name_ref.例如,要获得花费在特定页面URL上的时间:首先获得相应的idaction_url值为这个页面URL,然后查询eg。SELECT count(*) as page_hits, sum(time_spent_ref_action) as total_time_spent_in_seconds FROM log_link_visit_action WHERE idaction_url_ref = IDACTION_URL_ID_HERE.注意:为了确保您收集到准确的花费在每一页的时间,启用Heartbeat定时器

动作类型

操作类型,如特定的URL或页面标题,以及访问被分析。这样的分析可以帮助我们了解,例如,哪些页面与访问者更相关。

当Matomo遇到一个新的操作类型时,一个新的操作类型实体将被持久化。

操作类型持久化在log_action表并包含以下信息:

  • 的名字:描述动作类型的字符串。可以是URL、页面标题、活动名称或任何其他内容。意思是由决定的类型字段。
  • 哈希:使用名称计算的哈希值。
  • 类型:动作类型的类别。可以是以下值之一:
    • Piwik\Tracker\Action::TYPE_PAGE_URL = 1:动作是指向被跟踪网站上某个页面的URL。
    • Piwik\Tracker\Action::TYPE_OUTLINK = 2:动作是一个URL是网站上的一个链接被跟踪。一位访客点击了它。
    • Piwik\Tracker\Action::TYPE_DOWNLOAD = 3:动作是从被跟踪的网站下载的文件的URL。
    • Piwik\Tracker\Action::TYPE_PAGE_TITLE = 4:动作是被跟踪网站上某个页面的页面标题。
    • Piwik\Tracker\Action: TYPE_ECOMMERCE_ITEM_SKU = 5:动作是在网站上销售的电子商务项目的SKU。
    • Piwik\Tracker\Action::TYPE_ECOMMERCE_ITEM_NAME = 6动作是该网站上销售的电子商务商品的名称。
    • Piwik\Tracker\Action: TYPE_ECOMMERCE_ITEM_CATEGORY = 7:动作是在网站上使用的电子商务项目类别的名称。
    • Piwik\Tracker\Action::TYPE_SITE_SEARCH = 8:动作类型为站点搜索动作。
    • Piwik\Tracker\Action::TYPE_EVENT_CATEGORY = 10:动作是一个事件类别(参见跟踪事件用户指南)
    • Piwik\Tracker\Action::TYPE_EVENT_ACTION = 11:动作为事件类别
    • Piwik\Tracker\Action::TYPE_EVENT_NAME = 12:动作为事件名称
    • Piwik\Tracker\Action::TYPE_CONTENT_NAME = 13:动作是一个内容名称(参见内容跟踪用户指南和开发人员指南
    • Piwik\Tracker\Action::TYPE_CONTENT_PIECE = 14:动作是一个内容片段
    • Piwik\Tracker\Action::TYPE_CONTENT_TARGET = 15:动作是内容目标
    • Piwik\Tracker\Action::TYPE_CONTENT_INTERACTION = 16:动作是一种内容交互
  • url_prefix:如果名称是URL,则引用URL的前缀。前缀从实际url中删除,因此协议和www。URL的某些部分在分析过程中被忽略。可以是以下值:
    • 0“http://”
    • 1“http://www”。
    • 2“https://”
    • 3.“https://www”。

引用动作类型

操作类型在其他日志表中通过idaction引用。例如,log_link_visit_action.idaction_url而且log_link_visit_action.idaction_name列引用访问中单个操作的URL和页面标题。其他专栏包括log_link_visit_action.idaction_event_category可以引用其他动作类型。

一些动作类型引用根据上下文更改含义。例如,idaction_name列可以是操作的页标题,如果idaction_url也指定了,或者如果idaction_event_categoryidaction_event_action提供。

具体情况取决于插件如何实现跟踪。

表的细节

index_type_hashIndex在跟踪期间用于查找现有的操作类型。

插件特定的动作

某些插件没有使用log_action/log_link_visit_action表来持久化它们的操作。相反,为了能够存储所需的操作细节,使用了一些自定义表

转换

当跟踪与目标转换参数匹配的访问操作时,将创建并持久化转换。转换是一个统计,计算一个期望的行动,您的一个访问者采取。Matomo将分析这些统计与导致他们的行动,以帮助Matomo用户了解如何使他们的访问者采取更多想要的行动。

转换存储在log_conversion表和由以下信息组成:

  • idvisit:导致此转换的访问的ID
  • idsite:此转换用于的站点的ID
  • idvisitor:引起此转换的访问者的ID
  • server_time: UTC时区转换的datetime
  • idaction_url:导致此转换的访问操作的URL操作类型的ID
  • idlink_va:导致此转换的特定访问操作的ID
  • referer_visit_server_date
  • url:导致此转换被跟踪的URL
  • idgoal:转换目标的ID
  • idorder:如果此转换是针对电子商务订单或废弃购物车,这将是订单的ID
  • 项目:如果此转换是针对电子商务订单或废弃购物车,则这将是订单/购物车中的商品数量
  • 收入:如果此转换是针对电子商务订单或废弃购物车,则此转换为该订单产生的总收入
  • revenue_subtotal:如果此转换是针对电子商务订单或废弃购物车,则这是订单/购物车中商品的总成本
  • revenue_tax:如果此转换是针对电子商务订单或废弃购物车,则这是应用于订单/购物车中的商品的总税款
  • revenue_shipping:如果此转换是针对电子商务订单或废弃购物车,则这是运输的总成本
  • revenue_discount:如果此转换是针对电子商务订单或废弃购物车,则此为应用于该订单的总折扣

表的细节

存储在表中、上面没有列出的所有额外信息都是从此转换的Visit实体复制的。这使我们可以避免加入log_visit表在某些情况下。

index_idsite_datetime在聚合转换时使用Index。它允许快速访问在特定时期内跟踪的特定网站的转换,并让我们避免对整个表进行扫描。

电子商务项目(又名转换项目)

电子商务商品是指在电子商务订单中出售的商品或被遗弃在废弃的购物车中。

电子商务项目存储在log_conversion_item表和由以下信息组成:

  • server_time
  • idorder:该电子商务项目所属订单的ID
  • idaction_sku:包含项目SKU的操作类型实体的ID
  • idaction_name:包含电子商务项目名称的操作类型实体的ID
  • idaction_category:包含此电子商务项目类别的操作类型实体的ID
  • idaction_category2:包含此电子商务项目类别的操作类型实体的ID
  • idaction_category3:包含此电子商务项目类别的操作类型实体的ID
  • idaction_category4:包含此电子商务项目类别的操作类型实体的ID
  • idaction_category5:包含此电子商务项目类别的操作类型实体的ID
  • 价格:该电子商务商品的价格
  • 数量:在相关电子商务订单中出现的该项目的数量
  • 删除:该项目是否已从订单中删除

表的细节

idsiteidvisitorserver_time而且idvisit列是从该电子商务项目所属的转换实体复制的。它们被复制,所以我们可以聚合电子商务项目,而不必加入其他表。

index_idsite_servertime在聚合电子商务项目时使用索引。它允许快速访问特定网站和特定时期内跟踪的项目,并让我们避免对整个表进行扫描。

使用SQL查询选择并导出日志数据(访问、操作、转换)

提供了通过上面的表读取Log数据的SQL查询常见问题解答:SQL查询选择访问者,页面视图列表,搜索,Matomo数据库中的事件

归档数据

归档数据包括指标而且报告.度量是数值,并按数值方式存储。报表存储在数据表实例和持久化为压缩二进制字符串。

档案数据与网站ID、时间段和段以及数据的标识名称相关联。所有的存档数据将通过该信息查询很多次。目前,段被散列并附加到指标名称的末尾。归档数据也被持久化为当前日期和时间,因此可以知道一些数据的年龄。

所有存档数据将包含以下信息:

  • idarchive:与所有使用相同的网站ID、周期和段归档的档案数据共享的ID。
  • 的名字:报表或指标的名称。如果使用段,则将段的散列附加到名称后。
  • idsite:此存档数据用于的网站的ID。
  • date1:存档数据使用期间的第一个日期。
  • date2:存档数据在此期间的最后一个日期。
  • :该归档数据的周期类型。可以是以下值之一:
    • 1:对于一天期。
    • 2:对于期。
    • 3.:对于期。
    • 4:对于一年期。
    • 5:对于范围期。
  • ts_archived:缓存归档数据的日期。
  • 价值:数值(用于度量)或二进制字符串(用于报告)。

表的细节

归档数据存储在按月划分的表中,缺失的表将自动创建。2012年1月的汇总访问量报告将与2012年2月的汇总访问量报告放在不同的表格中。

Matomo创建了两种类型的归档表,分别对应一种类型的归档数据。的archive_numeric表存储度量数据和archive_blob表存储报表数据。表的后缀是年和月:例如archive_numeric2012年1月的表格将被命名archive_numeric_2012_01

archive_numeric表:

  • index_idsite_dates_period索引用于查询归档数据。它允许Matomo快速查询任何站点和时期的存档数据,以及过去某个日期-时间存档的数据。
  • index_period_archived索引在以下情况下使用清除归档数据.它允许Matomo快速找到特定时期的存档数据,这些数据足够旧,可以被清除。

archive_blob表:

  • index_period_archivedIndex的用法与in中的相同archive_numeric
  • archive_blob表没有索引,无法快速按站点、周期和存档日期查询行。这是因为不应该以这种方式查询它们。相反,archive_numeric表应查询的idarchive值保存。中的数据可以使用这些值查询archive_blob表格

在一个归档表中应该有多少行?

在归档表中看到数百万行的情况并不少见。根据Matomo所启用的功能以及站点跟踪每个存档的独特目标、自定义报告、漏斗、动作url和引用者的数量,每个归档在blob表中平均包含大约30-100个条目,在数值表中每个存档平均包含10-30个条目。有些Matomos可能会在每个存档中存储更多或更少的行。

对于一个完整的月,我们通常每天有大约30个存档,每周有4个存档,每月有1个存档。这意味着每个站点或部分每个月可能会看到大约35个不同的档案。每个存档都包含多个条目,如上面所示(在blob表中通常是40-80个条目,在数字表中是10-30个条目)。

如果你有10个站点和10个片段,那么你将有(10 + 10)* 35 = 700个档案。同样,每个存档中的每个条目可能包含不同数量的条目。如果你有10个站点和10个全局段(适用于每个站点),那么会有(10 + 10*10)* 35 = 3850个不同的档案。

在请求某个日期范围的数据时,将存储额外的档案,但这些档案应随着时间的推移再次删除。当前月份可能存储更多的归档条目,因为存档可能每天启动多次,导致许多无效的归档。这些也应该随着时间的推移自动删除。

其他数据

网站(又名网站)

网站实体包含有关被跟踪访问的网站的信息。这些数据不会像访问和归档数据条目那样多,但它们会经常被查询。

每个报告请求(通过报告API或通过Matomo的UI)将查询一个或多个站点实体。如果需要更新跟踪器缓存,跟踪器只会查询站点数据。对于大多数跟踪请求,站点数据将不会被查询(从而导致跟踪器的性能更高)。

站点实体存储在网站表并包含以下信息:

  • idsite:网站的唯一ID。
  • 的名字:网站名称。
  • main_url:访问者访问网站时应使用的主要网址。
  • ts_created:站点实体被持久化的日期和时间。
  • 电子商务1如果该网站是电子商务网站,0如果不是。
  • sitesearch1如果网站包含内部搜索功能,0如果不是。
  • sitesearch_keyword_parameters:站点用来保存内部站点搜索关键字的查询参数。这是一个逗号分隔的列表。
  • sitesearch_category_parameters:网站用来保存内部网站搜索类别的查询参数。这是一个逗号分隔的列表。
  • 时区:网站的时区。
  • 货币:该网站使用的货币。仅当该网站是电子商务网站时有效。
  • excluded_ips:以逗号分隔的IP地址或IP地址范围列表。来自这些IP地址之一的访问将不会被本网站跟踪。
  • excluded_parameters:以逗号分隔的查询参数名称列表。在跟踪访问和操作之前,这些查询参数将从页面url中删除。
  • excluded_user_agents:逗号分隔的字符串列表。对于此网站,对包含这些字符串之一的用户代理的访问将不会被跟踪。
  • 集团:用于定义网站组的字符串。这个功能隐藏在UI中,但可以用于获取带有api的网站SitesManager.getSitesFromGroup
  • 类型:设置为的字符串网站默认情况下。也可以设置为内部网常见问题解答),mobileapp汇总文档)等。
  • keep_url_fragment1如果URL片段(所有在)在追踪动作时,应保存在网址内,0如果不是。
  • creator_login:添加此网站的用户名

网站实体还包含可用于访问网站的额外url列表。它们不存储在站点实体本身中:它们存储在site_url表格

站点实体数据访问主要通过Piwik \网站类。类不能查询的任何内容都可以通过SitesManager核心插件。

目标

每个网站都有一个可选的目标列表。目标是网站访问者应该采取的预期行动。

目标存储在目标表并包含以下信息:

  • idsite:该目标所属网站的ID。
  • idgoal:此目标的ID(仅在此网站的目标中唯一)。
  • 的名字:这个目标的名称。
  • 描述:这个目标的描述。
  • match_attribute:字符串,描述在转换目标时应该匹配请求的哪个部分。可以是以下值之一:
    • 手动:目标转换为手动转换请求
    • url:目标基于action URL包含的内容进行转换。
    • 标题:目标根据动作页面标题所包含的内容进行转换。
    • 文件:目标是根据下载文件的文件名来转换的。
    • external_website:目标是根据外链接的URL所包含的内容进行转换。
  • 模式:检查目标是否转换时使用的模式。
  • pattern_type:在检查目标是否转换时使用的模式匹配类型。
    • 包含:如果match属性包含模式,则转换目标。
    • 确切的:如果match属性完全等于模式,则转换目标。
    • 正则表达式:如果match属性是与模式的正则匹配,则目标将被转换。
  • case_sensitive1如果匹配应该区分大小写,0否则如果。
  • allow_multiple1如果每次访问允许多次转换,0否则如果。
  • 收入:转换产生的收益(如果有的话)。
  • 删除1如果这个目标被Matomo用户删除了,0如果不是。
  • event_value_as_revenue:设置为1激活功能,其中目标转换收入被设置为触发目标的Event的Event值。

注意:电子商务和废弃购物车目标是两个具有特殊id的特殊目标。电子商务网站自然就有这些目标。

是一种基于维度和度量的组合来过滤访问的简单而灵活的方法。

文件中保存以下信息段实体中的表:

  • idsegment:段id。
  • 的名字:段名。
  • 定义:段定义,见段API参考
  • 登录:创建此段的用户名。
  • enable_all_users:如果设置为1,该段对所有用户可见。
  • enable_only_idsite:如果设置为网站ID,则该段仅对本网站可见。如果设置为0,该段对所有网站可见。
  • auto_archive:设置为1方法对段进行预处理核心:存档控制台crontab
  • ts_created:段创建的日期。
  • ts_last_edit:最后一次编辑片段的日期。
  • 删除:设置为1删除段时。

用户

用户实体描述每个Matomo用户。他们坚持在用户表格

用户实体中存储的信息如下:

  • 登录:用户的登录句柄。
  • 密码”:用户密码的哈希值。
  • 别名:用户的别名(如果有)。当在UI中寻址用户时,该值将显示而不是登录句柄。
  • 电子邮件:用户的电子邮件地址。
  • twofactor_secret: 2FA的秘密
  • token_auth:用户的token认证。
  • superuser_access:该用户是否具有超级用户权限。
  • date_registered:用户数据被持久化的日期。
  • ts_password_modified:用户密码最后一次修改的日期。

在每个UI上读取用户数据报告API请求。

有一些与用户相关的信息没有直接存储在用户实体中。现将它们说明如下:

用户权限

用户可以被允许和不被允许访问网站。Matomo将每个用户的访问级别持久化到他们访问的每个网站访问表格

Matomo定义了4种类型的权限:

文件中保存以下信息访问表:

  • 登录:用户的登录句柄。
  • 访问:使用者在本网站的许可(视图管理).
  • idsite:用户所属的网站ID登录将会有指定的访问

注意,超级用户权限存储在用户列中的表superuser_access

要了解更多关于用户访问的信息,请阅读权限指南。

用户语言选择

Matomo还将在表中持久化每个用户选择的语言user_language存储以下信息:

  • 登录:用户名。
  • 语言:表示首选用户语言的语言代码字符串。
  • use_12_hour_clock:用户是喜欢12小时时钟还是24小时时钟。

类实现了该关联和持久性逻辑LanguagesManager插件。

用户仪表板

Matomo的自定义仪表板和小部件布局存储在user_dashboard表:

  • 登录:该仪表盘所属的用户名。
  • iddashboard:仪表盘id。
  • 的名字:自定义仪表盘名称。
  • 布局:描述仪表板布局和小部件的JSON字符串。

选项

选项键值对,其中键是字符串,值是另一个字符串(可能更大,也可能是二进制)。它们在每个UI和上都被查询报告API请求。跟踪器将缓存相关的选项值,因此只有在缓存需要更新时才会查询选项。

应该在每个非跟踪请求上加载一些选项。这些选项有一个特殊的自动装载属性设置为1

高级功能

高级功能是否在InnoCraft许可证Matomo On-P亚博账号每天2000元出租remise (GPL许可).如果你正在使用Matomo内亚博账号每天2000元出租部Matomo for WordPress您可以从我们的Matomo市场.在我们的云端的Matomo服务自动包含这些功能。

热图会话记录

了解更多的热图而且会议记录

site_hsr

所有配置的热图和会话记录都存储在该表中。

  • idsitehsr:热图或会话记录的唯一标识。
  • idsite:网站的ID。
  • 的名字:热图或会话记录的名称。
  • sample_rate: 0到100之间的小数,表示页面浏览量或会话被记录的可能性
  • sample_limit:定义应该记录多少个样品。对于热图,这是页面浏览量,对于会话记录,这是会话(访问)的数量。
  • match_page_rules:存储一个JSON编码数组,该数组定义了应该在哪些页面上记录热图或会话记录。
  • excluded_elements:存储应该排除的JSON编码的CSS选择器数组。
  • record_type:包含1如果这一行表示热图,2如果是会话记录。
  • page_treemirror:当该行为热图时,实际记录的DOM存储在该列。使用压缩存储DOMgzcompress.如果还没有记录DOM,那么下一次有人查看匹配页面时,Matomo就会知道我们需要捕获DOM。
  • screenshot_url:如果该行是热图,并且配置了截图URL,则仅当有人访问此特定URL时,热图的DOM才会被记录。如果没有配置截图URL,并且正在记录DOM(请参阅page_treemirror),则该网页的网址会储存在此列内。这样我们就可以设置正确的HTML“基本”URL。
  • breakpoint_mobile:任何以像素为单位低于此值的客户端宽度都将被认为是“移动”设备,除非该值为“0”。
  • breakpoint_tablet:任何以像素为单位低于此值但高于移动断点的客户端宽度将被假定为“平板”设备,除非该值为“0”。
  • min_session_time:只有当访问者在页面上花费了至少指定的秒时,会话才会被记录。
  • requires_activity:如果value为1,只有在一个页面视图中有滚动和单击活动的会话才会被记录。
  • capture_keystrokes:如果value为1,任何输入到文本表单字段的文本都将被记录。在记录文本时,用户输入的任何字符都被替换为星号('*')。
  • created_date:热图或会话记录的创建日期。
  • updated_date:热图或会话记录最后一次更新的时间。
  • 状态:配置的热图或会话记录的状态,可以是“活动”、“结束”(例如达到样本限制)或“删除”。

log_hsr

对于记录会话中的每个记录页面视图,我们创建一行。

在这里和其他地方log_hsr_ *你会注意到我们经常保存相对/百分比值而不是绝对值。这允许我们更准确地重放内容,因为确切的坐标总是根据设备和浏览器而变化。

  • idloghsr:该日志条目的唯一ID。
  • idsite:网站的ID。
  • idvisit:访问ID。
  • idhsrview:一个随机生成的标识此页面视图的ID。通过这种方式,我们可以确保当用户打开多个选项卡时,所有操作都存储在正确的“idloghsr”条目中。
  • idpageview属性匹配的页面视图条目的IDlog_link_visit_action.idpageview列。允许我们将此交互分配给特定的操作。
  • idaction_url:一个log_action在哪个页面URL上记录这个页面视图的ID。
  • device_type1对于桌面,2平板电脑,3.为移动。
  • server_time:创建该行的日期和时间。
  • time_on_page:在这个页面上花费的时间(以毫秒为单位)。
  • viewport_w_px:视图端口的宽度,以像素为单位。
  • viewport_h_px:视图端口的高度,以像素为单位。
  • scroll_y_max_relative: 0到1000之间的整数,表示用户向下滚动的距离。如果该值为1000,则表示用户滚动到页面底部。如果该值为700,则意味着用户已经看到了页面的前70%。
  • fold_y_relative: 0 ~ 1000之间的整数,类似scroll_y_max_relative但这一次是指当页面打开时,有多少页面是可见的。如果该值为200,则20%的页面在折叠上方可见。

log_hsr_site

这个表存储一个已配置会话的引用,记录一个已记录页面所属的会话。这个可以存储在log_hsr表中的idsitehsr列,但是当配置多个会话记录时,没有这样做以降低存储使用。有时用户配置多个会话记录,当查看一个页面时,我们需要为多个不同的会话记录相同的记录。通过这里的引用,我们只需要写log_hsr所有其他条目只需一次,然后在这里链接所有需要的会话记录。

  • idsitehsr:会话记录表项的唯一IDsite_hsr
  • idloghsr中标识特定记录页面的唯一IDlog_hsr

log_hsr_event

存储在页面上执行的每个事件/操作。例如,鼠标移动、鼠标单击、DOM更改、表单交互等等。

  • idhsrevent:该事件的唯一ID。
  • idloghsr:独一无二的log_hsrID此事件所属的ID。
  • time_since_load:表示自加载页面以来经过的毫秒数的整数。这样我们就知道什么时候该重播哪个事件。
  • event_type:执行事件的类型:1:鼠标移动,2:鼠标点击,3.:滚动,4:窗口大小调整,5:页面加载时初始DOM的样子6: HTML DOM更改,9:表单文本字段更改,10:表单选择字段更改,12:滚动到元素内部,13: CSS内容。
  • idselector:一个log_action引用CSS选择器的ID,该选择器唯一地描述了在哪个元素上执行操作(例如在元素内部滚动,或窗体文本字段更改)。
  • x: X坐标,例如用于鼠标移动,即鼠标在元素中移动到的位置。这通常是一个百分比,而不是绝对像素值。如果窗口大小被调整,那么它将存储绝对像素值。
  • y: Y坐标,例如用于鼠标移动,即鼠标在元素中移动到的位置。这通常是一个百分比,而不是绝对像素值。如果窗口大小被调整,那么它将存储绝对像素值。
  • idhsrblob:一些事件存储额外的信息,如DOM如何更改。该ID链接到log_hsr_blob包含相关内容的条目。

log_hsr_blob

在blob表中,我们存储DOM更改之类的内容。为了减少存储空间,这个特性要求我们只存储每个blob一次,并且在每次有新的页面记录时再次引用它。这可能会对存储减少产生巨大影响,因为对于同一URL的所有页面视图,整个DOM通常是相同的。同样,相同的DOM更改经常重复,我们可以重用现有的条目。

  • idhsrblob:该blob条目的唯一ID。
  • 哈希:表示实际内容的哈希值的整数。通过这种方式,我们可以更快地搜索特定的blob是否已经存在,而不需要比较整个值(可能是几个兆字节)。
  • 压缩1如果数据存储压缩使用gzcompress0否则。较小的内容可能不会被压缩,因为在这种情况下不压缩需要更少的存储空间,而且可以在数据库中看到原始文本。
  • 价值:实际记录的内容。

多渠道转换属性

了解更多多渠道转换属性

goal_attribution

我们应该为哪些目标计算多属性报告。

  • idsite:网站的ID。
  • idgoal:计算报表的目标ID。

活动日志

了解更多活动日志

activity_log

这个特性所记录的每个活动都将存储在这个表中。

  • id:此活动的唯一ID。
  • 用户_:触发此活动的用户登录名。
  • 类型:执行的活动类型。
  • 参数:存储关于所执行的活动的php序列化附加信息。例如,更改了网站的哪些属性。
  • ts_created:此活动发生的日期时间。
  • 国家:此活动发生时用户所在的国家代码。
  • 知识产权:触发此活动的客户端的IP地址。

形式分析

了解更多形式分析

site_form

为每个应该记录的配置表单存储一行。

  • idsiteform:表单的唯一ID。
  • idsite:此表单所属的网站的ID。
  • 的名字:表单的名称。
  • 描述:表单的描述。
  • 状态:表单的状态。可以是“运行中”,“存档”(仍然出现在UI中,但不再收集数据)或“删除”。
  • in_overview1如果此表单的报告应该出现在表单概览报告页面中。0如果它不应该出现在那里。
  • match_form_rules:一个JSON编码的数组,定义哪些表单应该匹配这个特定的表单。例如,表单名称和表单id。
  • match_page_rules:一个JSON编码的数组,定义匹配的表单是否应该只在某些页面上跟踪。
  • conversion_rules: JSON编码的数组,定义如何自动检测表单转换。
  • 字段:将HTML表单字段名映射到人类可读表单字段名的JSON编码数组。
  • auto_created1如果表单是由Matomo自动创建的。0如果用户创建了此表单。
  • created_date:创建此表单的日期。
  • updated_date:此表格最后一次更新的日期。

log_form

每当用户与配置为可跟踪的新表单交互时,我们都会在该表中创建一个新条目。与每个表单字段的交互都存储在log_form_field表格的log_form_page表通常存储与此表类似的值,除非在多个页面上与同一表单交互。

  • idlogform:对于给定的访问,此表单交互的唯一ID。
  • idsiteform:该记录所属的唯一表单ID。
  • idsite:网站的ID。
  • idvisit:访问ID。
  • idvisitor:访问者的ID(8字节二进制字符串)。
  • first_idformview:用户开始与表单交互时随机生成的ID表单的值。技术上来说,这个值是不需要的。
  • last_idformview:用户最近一次与随机生成的ID表单交互时的值。如果用户在不同的选项卡中与相同的表单交互,这可能是有益的,因为它可以帮助我们识别表单跟踪请求属于哪个操作。
  • num_views:表单被查看的频率。
  • num_starts:用户开始与此表单交互的频率。0如果用户从未开始与它进行交互。1如果用户确实与此表单交互。每当用户提交表单并再次开始与之交互时,计数器也会进一步递增。
  • num_submissions:多久提交一次这个表格。
  • 转换1如果表格转换了,0否则。
  • form_last_action_time:最后一次与表单交互的日期时间。
  • time_hesitation:访问者在与表单交互之前等待的时间(以毫秒为单位)。
  • time_spent:与此表单交互所花费的时间(以毫秒为单位)。这是与形式的最后一次相互作用和第一次相互作用之间的毫秒差。如果窗口有一段时间没有聚焦,那么这段时间就不计算在内。
  • time_to_first_submission:用户第一次填写并提交表单所花费的时间(以毫秒为单位)。这排除了犹豫时间和浏览器窗口不活跃时的时间。

log_form_field

  • idlogform:识别到哪个log_form这一行所属的条目。
  • idlogformpage:识别到哪个log_form_page这一行所属的条目。
  • idformview:一个随机生成的ID,用于标识此表单的所有交互。
  • idpageview属性匹配的页面视图条目的IDlog_link_visit_action.idpageview列。允许我们将此交互分配给特定的操作。
  • field_name:在HTML中的name属性中定义的表单字段的名称。
  • time_spent:与此字段交互所花费的时间,以毫秒为单位。
  • time_hesitation:访问者在与字段交互之前等待的时间(以毫秒为单位)。
  • field_size:文本字段答案的字符数。例如,如果有人输入“user”,那么它将存储4。
  • left_blank1如果该字段为空,0否则。
  • 提交:该字段提交的频率。
  • num_changes:访问者修改该字段的次数。
  • num_focus:该字段被聚焦的次数。
  • num_deletes:字段被更改时使用退格键或删除键的次数。
  • num_cursor:访问者使用此字段上任意光标键的次数。

log_form_page

该表存储关于在哪个页面上执行某些操作的详细信息,因为相同的表单可能出现在多个页面上。

  • idlogformpage:标识该行的唯一ID。
  • idlogform:识别到哪个log_form这一行所属的条目。
  • idaction_url:一个log_action引用与此表单交互的页面URL的ID。
  • num_views:该表单在本页上被查看的频率。
  • num_starts:用户开始在此页上与此表单交互的频率。0如果用户从未开始与它进行交互。1如果用户确实与此表单交互。每当用户提交表单并再次开始与之交互时,计数器也会进一步递增。
  • num_submissions:这个表格在本页上提交的频率。
  • time_hesitation:访问者在与表单交互之前等待的时间(以毫秒为单位)。
  • time_spent:与此表单交互所花费的时间(以毫秒为单位)。这是与形式的最后一次相互作用和第一次相互作用之间的毫秒差。如果窗口有一段时间没有聚焦,那么这段时间就不计算在内。
  • time_to_first_submission:用户第一次填写并提交表单所花费的时间(以毫秒为单位)。这排除了犹豫时间和浏览器窗口不活跃时的时间。
  • entry_field_name:开始与该表单交互时,首先与哪个表单字段交互。
  • exit_field_name:最后与哪个表单字段交互。

媒体分析

了解更多媒体分析

log_media

Media Analytics插件使用了这些表格log_media而且log_media_plays来存储有关已查看媒体元素的详细信息。

log_media保存显示给用户或与用户交互的媒体元素的详细信息:

  • idvisitor:访问者的ID(8字节二进制字符串)。
  • idvisit:访问ID。
  • idsite:网站的ID。
  • idview:用来标识特定媒体视图的随机id(6个字符[A -z0-9])。
  • player_name:媒体播放器的名称。
  • media_type:媒体类型(1 =视频,2 =音频)。
  • 决议:媒体分辨率(仅限视频)。
  • 全屏:标识媒体是否全屏观看(仅限视频)的标志。
  • media_title:媒体名称。
  • 资源:媒体的资源(通常是文件名或url位置)。
  • server_time:媒体视图开始的日期。
  • time_to_initial_play:用户启动媒体所需的时间。
  • watched_time:用户观看/收听媒体的时间之和。
  • media_progress:媒体的进度(以被消耗的最后一秒来定义)。
  • media_length:媒体总长度,以秒为单位。

log_media_plays

除了媒体视图,插件还存储了媒体的哪些片段被消费了。这在表中完成log_media_plays.除了idview而且idvisit,用于识别有条目的记录log_media,表中每个媒体段都有很多列。媒体的前5分钟以15秒的间隔进行跟踪,其余的以30秒的间隔进行跟踪。这意味着前20列log_media_plays每列表示15秒,其余列表示每列30秒。这意味着如果前三列有a1然后,用户在1-15秒、16-30秒和31-45秒之间观看这些部分的每个部分至少一秒。如果18列有一个1其他的都是0,那么用户只会看256秒到270秒之间的片段。这并不意味着用户观看了整个15秒/30秒的片段,但在这个片段中至少有1秒是被看到的。

  • idview:随机生成的log_media.idview该条目属于。
  • idvisit:访问ID。
  • segment_151如果在0 -15秒的片段中至少有1秒被观看或收听。0否则。
  • segment_301如果在15 -30秒的这段中至少有1秒被观看或收听。0否则。
  • segment_451如果在这个30 -45秒的片段中至少有1秒被观看或收听。0否则。
  • segment_……
  • segment_71701如果在7140 -7200的这个片段中至少有1秒被观看或收听。0否则。
  • segment_72001如果在7170 -7200的这个片段中至少有1秒被观看或收听。0否则。

A / B测试

了解更多A / B测试

实验

  • idexperiment: A/B测试例的唯一ID。
  • idsite:网站的ID。
  • confidence_threshold:表示期望置信度百分比的小数。
  • mde_relative:存储期望检测到的相对最小改进的百分比的整数。
  • 的名字: A/B测试例的名称。
  • 描述: A/B测试的描述。
  • 假设: A/B检验的假设。
  • included_targets:一个JSON编码的数组,存储关于A/B测试应该在哪个页面上运行的信息。
  • excluded_targets:一个JSON编码的数组,存储关于A/B测试不应该在哪些页面上运行的信息。
  • success_metrics:一个JSON编码的数组,存储已配置成功度量的列表。
  • percentage_participants:一个整数,存储有多少网站访问者应该参加这个A/B测试的百分比。也称为“抽样率”。
  • original_redirect_url:如果配置了重定向URL,则包含原始变体的URL。
  • 状态: A/B测试的状态,可以是“创建”、“运行中”、“完成”或“存档”(存档后将不再出现在UI中)。
  • start_date: A/B测试例创建的日期。
  • modified_date: A/B测试最后一次更新的日期。
  • end_date: A/B测试结束/结束的日期。

experiments_strategy

因为在a /B测试期间,我们用于计算指标的策略不应该改变,所以我们在这个表中存储了对于给定指标应该应用什么策略。

  • idexperiment:该策略所属的A/B测试例的唯一ID。
  • 度规:该策略在A/B测试中属于的度量的名称。
  • 策略:应该采用什么策略来计算置信度等等。例如,“TT”代表Ttest,“CS”代表x平方分布,“MN”代表Mann Whitney U。

experiments_variations

每个A/B测试都可以引用无限数量的变化。

  • idvariation:该变体的唯一ID。
  • idexperiment:该变体所属的A/B测试的唯一ID。
  • 的名字:变体的名称。
  • 百分比:一个整数,存储应该分配给该变量的流量的百分比。
  • redirect_url:如果配置了重定向URL,则为重定向URL。在这种情况下,当变量被激活时,Matomo将用户重定向到这个URL。
  • 删除0如果没有删除或1如果该变量被删除。

log_abtesting

  • idvisitor:访问者的ID(8字节二进制字符串)。
  • idvisit:访问ID。
  • idsite:网站的ID。
  • idexperiment:本次访问参与的A/B测试ID。
  • idvariation:为该访问者激活的变量。
  • 进入1如果用户确实浏览了包含实验内容的页面。0如果这是用户可能没有看到这个实验的后续访问。
  • server_time:来访者参与实验的日期和时间。

漏斗

了解更多漏斗

漏斗

每个漏斗配置都存储在这个表中。每个漏斗的配置步骤存储在funnel_steps表格

  • idfunnel:漏斗的唯一标识。
  • idsite:网站的ID。
  • idgoal:该漏斗所属目标的唯一ID。
  • created_date:创建漏斗的日期时间。
  • 激活1如果漏斗是活动的并且应该生成报告。0如果漏斗被停用。
  • 删除1如果漏斗被认为删除了,不应该再显示在UI中,0如果漏斗没有被删除。
  • deleted_date:此漏斗被删除的日期时间(如果删除列是1).

funnel_steps

每个漏斗由存储在这个表中的多个步骤组成。

  • idfunnel:该步骤所属漏斗的唯一ID。
  • 位置:这一步在漏斗内的位置。开始于1
  • 的名字:该步骤的名称。
  • pattern_type:应应用于匹配的模式类型模式.例如“path_equals”或“url_regexp”。
  • 模式:定义模式类型应与之进行比较的值,以检测访问者是否匹配此步骤。
  • 要求1如果需要此步骤或0如果不需要该步骤。

log_funnel

每次访问匹配漏斗中的某个步骤时,我们就在这个表中创建一条记录。该记录是在存档期间创建的,而不是在跟踪期间。它是在存档期间创建的,这是出于性能原因,也因为一些漏斗步骤可能会被打乱顺序匹配。

  • idfunnel:该步骤所属漏斗的唯一ID。
  • step_position:匹配的台阶位置。
  • idsite:网站的ID。
  • idvisit:访问ID。
  • idlink_va:节点IDlog_link_visit_action匹配此步骤的条目。
  • idaction:节点IDlog_action匹配此步骤的条目。例如,这是为匹配此步骤而查看的页面URL。
  • idaction_prev:节点IDlog_action用户在匹配此步骤之前查看的条目。
  • idaction_next:节点IDlog_action匹配此步骤后,用户否定到下一步的条目。
  • min_step:这次访问进入漏斗的台阶位置。如果第一步被配置为“必需的”,那么这通常是“1”。否则,用户可能已经进入了另一个步骤。
  • max_step:本次访问进入的最大步位。它告诉我们用户在漏斗中走了多远。

自定义报告

了解更多自定义报告

custom_reports

该表存储每个自定义报表的配置。

  • idcustomreport:该自定义报表的唯一ID。
  • idsite:网站的ID。
  • 修订:一个整数计数器,用户每次更新自定义报表都会增加。当报表发生更改时,这有助于我们“使”所有现有的报表“失效”。
  • report_type:“table”或“evolution”。
  • 的名字:该自定义报表的名称。
  • 描述:该自定义报表的描述。
  • 类别:定义该报表应该在UI中显示在哪个报表类别页面上。
  • 子类别:定义该报表应该在UI中显示在哪个报表子类别页面上。
  • :一个JSON编码的数组,定义此自定义报告的选定维度。演化报告存储一个空数组。
  • 指标:一个JSON编码的数组,定义此自定义报告的选定指标。
  • segment_filter:如果为该报告配置了段,则存储段字符串。
  • created_date:报表创建的日期。
  • updated_date:本报告最后一次更新的日期。
  • 状态:该报告的状态,可以是“活动”或“已删除”。

卷起的报告

了解更多卷起的报告

site_rollup

我们在一个汇总中为每个子站点存储一行。

  • parent_idsite:上卷站点的ID。
  • idsite:儿童网站的ID。

了解更多

Baidu