Javascript Variablen ein/ersetzen - Matomo - Domain?
Moinsen,
ich bin dabei, mir ein Script für Multidomain Tracking zu bauen.
Also Cookies auf mehreren Domains setzen usw.
Das meiste funktioniert soweit wie erwartet.
Das Script soll dynamisch über Cloudflare Zaraz geladen werden.
Jetzt fehlt mir bis jetzt soweit nur noch das einsetzen der Session ID, die ich generiere und die Domain, die aktuell aufgerufen wurde.
In dem Code möchte ich gerne die Variable sessionID sowie die Variable Domain einsetzten lassen.
Wie kann ich das bewerkstelligen?
Ich bin leider nicht ganz so erfahren in Javascript.
Ich habe schon einiges getestet aber es will einfach nicht.
Die Sache ist die, dass es mit Vanilla JS laufen müsste. Also ohne extras usw.
Es soll halt nur JS per Cloudflare Zaraz eingebunden werden.
Der/Die beiden Code Bestandteile sind folgende:
Einmal der Matomo Tag Manager
<!-- Matomo Tag Manager -->
<script>
var _mtm = window._mtm = window._mtm || [];
_mtm.push({'uid':+sessionID });
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
(function() {
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='https://xyz.de/js/container_12345.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Tag Manager -->
Sowie der JS Tracker Code
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
_paq.push(["setCookieDomain" +DomainX]);
_paq.push(["setDomains", ["*xyz.de"]]);
_paq.push(["enableCrossDomainLinking"]);
_paq.push(['setUserId', sessionID]);
_paq.push(['enableHeartBeatTimer', 20]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
_paq.push(['trackVisibleContentImpressions', true, 750]);
(function() {
var u="https://xyz.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', 'X']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img referrerpolicy="no-referrer-when-downgrade" src="https://xyz.de/matomo.php?idsite=3&rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
1 Antwort
naja wenn ich dich richtig verstehe, dann könnte es so aussehen
<!-- Matomo Tag Manager -->
<script>
var sessionID = 'DEINE_SESSION_ID_HIER'; // die holst du dir ja von irgendwo
var Domain = window.location.hostname; // Die aktuelle Domain wird ausgelesen
var _mtm = window._mtm = window._mtm || [];
_mtm.push({'uid': sessionID }); // Verwende die sessionID
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
(function() {
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src='https://xyz.de/js/container_12345.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Tag Manager -->
<!-- Matomo JS Tracker -->
<script>
var sessionID = 'DEINE_SESSION_ID_HIER'; // Definiere hier deine sessionID
var Domain = window.location.hostname; // Die aktuelle Domain wird ausgelesen
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
_paq.push(["setCookieDomain", Domain]); // Verwende die aktuelle Domain
_paq.push(["setDomains", ["*xyz.de"]]);
_paq.push(["enableCrossDomainLinking"]);
_paq.push(['setUserId', sessionID]); // Verwende die sessionID
_paq.push(['enableHeartBeatTimer', 20]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
_paq.push(['trackVisibleContentImpressions', true, 750]);
(function() {
var u="https://xyz.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', 'X']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img referrerpolicy="no-referrer-when-downgrade" src="https://xyz.de/matomo.php?idsite=3&rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
Ja, genau so hatte ich das eigentlich gedacht aber irgendwie hat er die Domain nicht übernommen oder eingetragen..
Oder übernimmt der Tracker die Domain intern dann automatisch und die muss bzw. kann nicht direkt im Script eingetragen werden?
Kenne mich dafür zu wenig damit aus.
Dachte halt, dass die Domain direkt da drin stehen muss und da die Variable so nicht funktioniert.