无法通过 Matomo/Piwik 跟踪 Angular 8 中的路线变化

h34*_*3r5 5 frontend analytics matomo angular piwiktracker

我遵循了 Matomo 文档(在放置东西以及如何实现它们方面并不是特别有帮助),并且我还尝试了使用ngx-Matomo的方法,但由于某种原因也不起作用。

我遇到的问题是我的初次访问被记录,但当我单击新的“页面”(路线)时,没有什么其他记录。我得到触发的唯一时间是刷新页面或重新加载本地主机或测试站点,但未跟踪正常导航。

由于配置文件限制,我目前无法访问 Matomo 本身内部的任何选项,但我想知道这是否是问题所在。

这是我的 ngx-matomo 代码和样板 Matomo 脚本(更改了 URL 和一些名称以保护项目):

var _paq = window._paq || [];
_paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function () {
    var u = "//MY_URL/";
    _paq.push(['setTrackerUrl', u + 'piwik.php']);
    _paq.push(['setSiteId', '000']);
    var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
    g.type = 'text/javascript'; g.async = true; g.defer = true; g.src = u + 'piwik.js'; s.parentNode.insertBefore(g, s);
  })();
Run Code Online (Sandbox Code Playgroud)

应用程序根目录:

import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { filter } from 'rxjs/operators';
import { MatomoInjector } from 'ngx-matomo';


@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
constructor(router: Router, private matomoInjector: MatomoInjector) {
this.matomoInjector.init('//MY_URL/', 000);
}
Run Code Online (Sandbox Code Playgroud)

组件设置:

import { Component, OnInit } from '@angular/core';
import { ResourceLinksService } from './resource-links.service';
import { MatomoTracker } from 'ngx-matomo';

@Component({
  selector: 'app-component',
  templateUrl: './component.html',
  styleUrls: ['.component.css']
})
export class Component implements OnInit{

 constructor(private matomoTracker: MatomoTracker) {
  }

ngOnInit() {
  this.matomoTracker.setDocumentTitle('Title Test');
  }
}
Run Code Online (Sandbox Code Playgroud)

这个 NPM 也导入到我的 app.module.ts 中

任何帮助都会很棒。我完全不明白为什么 ngx-matomo 不起作用。这可能表明我正在使用的 Matomo 服务本身存在问题。

Chr*_*yes 0

我无法发表评论,所以我会在这里提问。当页面更改时,您是否运行以下代码?该文档说“目前跟踪事件和操作是手动的,不会注入到 html 中”。我认为这意味着如果您单击一个按钮来登录,则需要在更改时包含以下代码。

this.matomoTracker.trackEvent('category', 'action', 'name', someVal);
Run Code Online (Sandbox Code Playgroud)

  • 我们不会跟踪登录或任何形式的用户输入等。(我们的网站没有此类事情的后端)。我只想跟踪某人何时通过路由从“家”导航到“关于”。我没有实现跟踪事件代码,因为我没有那么精细。 (2认同)