Tracking Code mit externer JS Datei laden?


#1

Hallo Piwiker,
Ich habe Probleme mit dem Laden des Tracking Codes über eine externen JS Datei. In der externen JS habe ich folgenden Code eingesetzt, direkt unter dem Google Analytics Code. Bisher hat die anderen JS Functionen alle miteinander problemlos funktioniert:

// Piwik Tracking Code
var pkBaseURL = ((“https:” == document.location.protocol) ? “https://DOMAIN.DE/piwik/” : “http://DOMAIN.DE/piwik/”);
document.write(unescape("%3Cscript src=’" + pkBaseURL + “piwik.js’ type=‘text/javascript’%3E%3C/script%3E”));

try {
var piwikTracker = Piwik.getTracker(pkBaseURL + “piwik.php”, 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}

// weiterer Code für andere Funktionen

Das tun sie auch weiterhin, nur die Erfassung der Tracking Daten durch Piwik funktioniert nicht richtig. In der Übersicht erhalte ich die Information “Es stehen keine Daten für diesen Bericht zur Verfügung”. Nur bei den Besuchern in Echtzeit werden Besuche angezeigt. Kurioserweise aber fast nur direkte Zugriffe über MAC OS, iphone, ipad oder Android. Die machen aber nur 3% meiner Besucher aus. FAQ und Forum habe ich bereits durchsucht, finde aber keinen Hinweis.

Liebe Grüße, Zabuse


#2

Fast gleiches Problem hatte ich schonmal gepostet.

Link: externe js mit head.js laden + Muss den die Domain vollstädnig im Code stehen, wenn man sich schon auf der Domain befindet?

Aber schön zu wissen, dass ich nicht der einzigste bin, der versucht den Code per script zu laden.
Ich vermute, wenn das Script nicht auf der Seite ist (sondern geladen wird), die zu trackende
Seite nicht erkannt wird und somit keine Daten übermittelt werden. Du bekommst die Daten vielleicht
über den noscript-Tracking-Code, den Du noch einsetzt?

Gruß, Michael


(Peterbo) #3

Der -Teil muss dann natürlich im Header der HTML-Datei VOR der anderen JS-Datei eingebunden werden, die den Tracker-Aufruf durchführt.

~Peter


#4

Versuche es doch mal damit…

Diesen Script habe ich vor Wochen irgendwo entdeckt (weiß leider nicht mehr von wem der war) aber er funtktioniert einwandfrei. Ich rufe ihn GANZ AM ENDE des Dokuments, also vor dem schließenden - Tag mit

eingefügt.


// JavaScript Document

var pkBaseURL = ((“https:” == document.location.protocol) ? “https://www.deine-domain.de/piwik/” : “Hosting-Agency ist Teil der dogado Familie”);
var pkSiteId = 1; //hier die Webseiten ID eintragen

function PiwikLoadScript(url, async, callback) {
var script = document.createElement(“script”);
script.type = “text/javascript”;
script.async = “async”;

if (script.readyState) { // IE
script.onreadystatechange = function() {
if (script.readyState == “loaded” || script.readyState == “complete”) {
script.onreadystatechange = null;
callback();
}
};
}
else { // Gecko
script.onload = callback;
}

script.src = url;
document.getElementsByTagName(“body”)[0].appendChild(script);
}

function PiwikTrack() {
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + “piwik.php”, pkSiteId);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
}
catch( err ) {}
}

PiwikLoadScript(pkBaseURL + ‘piwik.js’, ‘async’, PiwikTrack);

// Ende des Scripts



#5

Danke, werde ich mal ausprobieren.

Das ganze ohne Smileys: Piwik js-datei