You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Piwik/Matomo API的JSON请求中指定URL含特定段的细分条件?

如何在Matomo/Piwik API的JSON请求中按URL包含特定字符串细分浏览器语言数据

我网站MyWebsite使用Piwik/Matomo做流量追踪,想通过API导出浏览器语言相关数据,但仅针对URL包含MySection的特定板块。请问能不能在JSON请求里指定这个细分条件?具体怎么实现?我写的示例代码如下:

'{
    "date_from": "'.$dateStart.'",
    "date_to": "'.$dateEnd.'",
    "website_id": "'.$siteId.'",
    "offset": 0,
    "segment": {"pageUrl": "@'.$mySectionUrl.'"}
}'

我在《API Segmentation with GET request》文章里看到可以用@表示包含,但没说怎么在JSON请求里实现同样的效果。


解答

完全可以实现,Matomo API的JSON POST请求中,segment参数的语法规则和GET请求完全一致,用@即可表示“包含”匹配。不过你当前的示例代码存在格式错误,segment字段需要是字符串格式的细分表达式,而非键值对对象,修正后的代码如下:

$jsonPayload = '{
    "date_from": "'.$dateStart.'",
    "date_to": "'.$dateEnd.'",
    "website_id": "'.$siteId.'",
    "offset": 0,
    "method": "Language.getLanguages",
    "segment": "pageUrl=@'.$mySectionUrl.'"
}';

需要注意几个关键点:

  • 必须指定method字段:要获取浏览器语言数据,需使用Language.getLanguages接口(如果需要其他维度数据,替换为对应API方法即可)
  • 细分表达式格式:pageUrl=@xxx表示匹配所有URL包含xxx的访问数据,@就是“包含”的匹配符,和GET请求中的规则完全一致
  • 字符串拼接注意事项:确保$mySectionUrl的值是正确的URL片段(比如/MySection/),如果片段包含特殊字符,需要进行URL编码后再拼接,避免JSON格式错误

你可以先在Matomo后台的“访客>细分”功能中验证这个细分条件的有效性,确认能筛选出目标数据后,再将对应的表达式复制到API请求的segment字段中,这样能确保逻辑正确。

内容的提问来源于stack exchange,提问作者Fabbio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 12:35:05