| 123456789101112131415161718192021222324252627282930313233 |
- 'use client';
- import { useEffect } from 'react';
- interface MatomoTrackerProps {
- containerUrl?: string;
- }
- export default function MatomoTracker({ containerUrl }: MatomoTrackerProps) {
- useEffect(() => {
- if (!containerUrl) {
- console.warn('Matomo 容器 URL 未配置');
- return;
- }
- // 初始化 Matomo Tag Manager
- const _mtm = (window._mtm = window._mtm || []);
- _mtm.push({ 'mtm.startTime': new Date().getTime(), event: 'mtm.Start' });
-
- const d = document;
- const g = d.createElement('script');
- const s = d.getElementsByTagName('script')[0];
-
- g.async = true;
- g.src = containerUrl;
- if (s.parentNode) {
- s.parentNode.insertBefore(g, s);
- }
- }, [containerUrl]);
- return null;
- }
|