Vom JavaScript API:
Für asynchronen Tracking, Konfiguration und Tracking-Anrufe werden auf dem global _paq Array geschoben abarbeiten zu lassen, unabhängig von dem asynchronen Laden von piwik.js. Das Format ist:
_paq.push([ 'API_method_name', parameter_list ]);
Also diese auf Ihrer Seite in Ordnung zu sein scheint.
Wenn Sie über unzuverlässiges Verhalten sprechen, ist es möglich, wenn Sie die Seite aktualisieren (einfach bash F5) Sie umgehen das Laden der Skriptdatei, da es bereits durch eine vorherige Anfrage zwischengespeichert wurde. Und dann könnte dieser Anruf an _paq
undefined
sein. Versuchen Sie, Strg + F5 zu verwenden, um zu sehen, ob sich das Verhalten ändert.
Beachten Sie auch den Initialisierungsteil: var _paq = _paq || [];
, der das zuvor aufgefüllte Array oder ein leeres Array definiert. Es tut nicht weh, das von Ihrem Code vor zu setzen, aber man muss die Aufmerksamkeit auf Schließung zahlen:
(function(){
var _paq = _paq || [];
_paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);
}());
Nun, was Sie normalerweise tun würden, ist zunächst die aktuellen Tracker erhalten:
var piwikTracker = Piwik.getTracker(12, 'http://example.com/piwik/');
//piwikTracker.setSiteId(12);
//piwikTracker.setTrackerUrl('http://example.com/piwik/');
piwikTracker.trackEvent('vendor', 'VND001' ,'value');
Aber ich bin mir nicht ganz sicher, ob das nur bezogen auf Piwik 2.16.1 oder früher ist. Fühlen Sie sich frei, sie auszuprobieren und lassen Sie mich wissen ^^