从 ngx-matomo 迁移到 ngx-matomo-client
内容提要
本文介绍了Matomo在Angular项目中的集成库ngx-matomo和ngx-matomo-client,包括配置、用户同意管理、自定义变量和维度以及自定义事件触发器的使用方法。还提到了其他与Matomo直接集成的库。
延伸解读
迁移决策的关键因素
文章指出,ngx-matomo 对最新 Angular 版本的兼容性延迟是作者考虑迁移的主要原因。如果你需要尽早使用新版 Angular,迁移到 ngx-matomo-client 可能更合适;反之,若项目不急于升级 Angular,ngx-matomo 仍能覆盖大多数用例。
配置差异与简化
ngx-matomo-client 的配置更简洁,利用 Angular 注入来启用路由跟踪。例如,通过单独导入 MatomoRouterModule 实现路由跟踪,若不需要则可跳过,并直接从 ngx-matomo-client/core 导入以避免依赖 @angular/router。用户同意配置也简化为 requireConsent: 'tracking' 或 'cookie'。
API 相似性与迁移成本
用户同意管理、自定义变量和维度的设置方法在两个库中几乎相同,都通过 MatomoTracker 类提供。迁移时主要工作是更新导入路径,例如将 MatomoTracker 的导入改为从 ngx-matomo-client 引入。这降低了迁移的代码改动量。
自定义事件触发器的局限
对于基于自定义事件的触发器,两个库都没有提供封装,需要直接与 _mtm 对象交互。这意味着在这部分功能上,迁移不会带来额外便利,开发者仍需手动处理。
Q&A
ngx-matomo和ngx-matomo-client有什么区别?
ngx-matomo是较早的库,易于设置,但与新版本Angular的兼容性较差;ngx-matomo-client是更受欢迎且维护良好的替代品,配置更简单。
如何在Angular项目中配置ngx-matomo-client?
在app.module.ts中导入MatomoModule和MatomoRouterModule,并使用forRoot方法传入环境配置即可。
用户同意管理在这两个库中是如何实现的?
两个库都使用MatomoTracker类管理用户同意,方法相似,只需更新导入即可。
自定义事件触发器在ngx-matomo和ngx-matomo-client中如何使用?
两个库都不提供自定义事件触发器的封装,需要直接与_mtm对象交互。
为什么要从ngx-matomo迁移到ngx-matomo-client?
由于ngx-matomo与新版本Angular的兼容性问题,ngx-matomo-client提供了更好的维护和更简单的配置,适合替代。
在选择Matomo集成库时应该考虑哪些因素?
应考虑库的维护情况、与Angular版本的兼容性、配置的简便性以及用户同意管理的实现方式。