Moin zusammen!
Wir tracken seit ein paar Wochen mehrere Subdomains, mit Webauftritten, die die strukturell beinahe identisch sind. Bedeutet: Die Seitennamen und Pfade sind zT identisch.
Wir senden die Daten aus allen Aufritten an eine MATOMO-Site. Unser Gedanke: wir sammeln dort die Daten kulminiert und klauben uns diese auseinander, falls wir mal Tracking-Daten benötigen.
Problem
Ich habe Grund zur Annahme, dass Daten im Seitenbericht kannibalisiert werden (gilt auch fĂŒr den Export). Ich nehme an, dass Besuchszahlen von Subdomains ĂŒberschrieben - also der Root-Domain zugewiesen werden. Der Bericht den ich habe ist deutlich zu flach und ich sehe kaum Daten aus den Subdomains. Exportiere ich verschiedene ZeitrĂ€ume, âverschwindenâ Subdomains zT komplett aus dem Bericht.
Es geht mir im Besonderen um diesen Bericht hier: Verhalten > Seiten
Seitentiel um Angabe des Hosts erweitert (Tag Manager)
Benutzer URL: Ich habe in die URL Host und Pfad eingefĂŒgt (Tag Manager)
Zu 2.: das EinfĂŒgen des Hostnamen in die URL, hat wohl keinen Effekt auf den Bericht Seiten (vgl. Screenshot).
Es wĂŒrde mich freuen wenn jemand ein paar Ideen hĂ€tte, wie ich den Bericht optimieren kann und mir ggf. sagen kann, ob mein Problem ĂŒberhaupt real ist
Wenn keine separate Page-Url und kein separater Page-Title angegeben wird, aber auf allen Websites die selbe Matomo-Page-ID verwendet wird, dann werden die Daten aller Websites zusammengelegt, also nicht nach Subdomains getrennt.
Dies fĂŒhrt aber nicht zur Anzeige und Separation der Seiten im Bericht. Mit dieser Lösung baut einen fixen String an den Anfang jeder Seite im Bericht.
var p = "My subdomain/.." +window.location.pathname + window.location.search;
_paq.push([âtrackPageViewâ, p]);
Habe ich das so richtig verstanden? Und wenn ja: sorgt dies nicht im Ergebnis wieder dafĂŒr, dass die Daten ĂŒberschrieben werden, wenn die Subdomain immer âMy-Subdomainâ heiĂt?
Ich setze das in einzelnen Projekten ein, wo es hilfreich ist. Das mit dem Anklicken geht ĂŒbrigens schon, weil der Browser bei einer URL mit â/../â im Pfad die Ebene oben drĂŒber ignoriert. Somit hat man dann doch wieder einen funktionierenden Link. https://mydomain.com/My subdomain/../url.html wĂŒrde also âMy subdomainâ ignorieren.
Es sieht im Report ein wenig âhĂ€sslichâ aus, aber das muss man dann âaushaltenâ.
Hier ein etwas anonymisierter Screenshot des Seitenreports aus einem Projekt (rot umrandet die verĂ€nderten DocumentURLâs der Subdomain - die anderen URLâs der www-Domain lasse ich unverĂ€ndert):
Eine Frage zur Umsetzung: Du âhard codestâ den Teil âdomain.xyzâ als String fest in die Custom URL. Korrekt?
Werden dann diese beiden Punkte gelöst?
Werden EintrĂ€ge, die von unterschiedlichen Subdomains kommen, die aber strukturell gleich sind (Pfade und Seitennamen) dann immer getrennt im Seitenbereich gefĂŒhrt? Also, bspw.:
zum âhardcodenâ:
Um die CustomDocumentURL zu setzen, muss ich JavaScript einsetzen, bevor es zum TrackPageView kommt. D.h. ich prĂŒfe dort anhand einer Hostname-Liste (Subdomains) ab, ob ich die CustomDocumentURL setzen muss.
An sich könnte ich auch sagen, wenn Hostname kein âwwwâ enthĂ€lt, dann muss ich CustomDocumentURL verĂ€ndern.
Im Matomo Tag Manager geht es evtl. auch ĂŒber Variablen ohne Coding, so dass man dort ein Mapping zwischen Hostname und neuer URL hinterlegen kann.
Letztlich braucht man also irgendeinen Weg, um vor TrackPageView zu entscheiden, ob man die zu trackende URL verÀndern muss.
Zu deinen Fragen:
1.) Ja, das ist dann getrennt. Es ist auch der Grund, dass ich diesen Ansatz nutze, um gleiche Pfade verschiedener Domains nicht âaufaddiertâ und nur einmal im Bericht zu haben.
2.) Ja, auch im Export werden die URLs wie in meinem Screenshot von oben ausgewiesen.
und 2. kannst du ĂŒbrigens nicht voneinander getrennt lösen. Das was du als URL im Export siehst, hast du auch im Seitenbericht im Browser.
GrĂŒĂe Udo
lass mal das mit dem Separieren von www hier erstmal auĂen vor. Eins nach dem anderen. Die Sache wĂŒrde also default so aussehen?
var p = window.location.hostname + "/.." + window.location.pathname + window.location.search;
_paq.push(['trackPageView', p]);
Ergibt (Linktext): forum.matomo.org/../t/mehrere-subdomains-in-einer-matomo-instanz-matomo-site/62656/3
Der Realpath (Link) wÀre dann: https://forum.matomo.org/t/mehrere-subdomains-in-einer-matomo-instanz-matomo-site/62656/3
weil forum.matomo.org/.. sich selbst in nichts auflöst.
Nur den Sub-Teil der Subdomain:
var p = window.location.hostname.split('.')[0] + "/.." + window.location.pathname + window.location.search;
_paq.push(['trackPageView', p]);
Ergibt (Linktext): forum/../t/mehrere-subdomains-in-einer-matomo-instanz-matomo-site/62656/3
Der Realpath (Link) wÀre dann: https://forum.matomo.org/t/mehrere-subdomains-in-einer-matomo-instanz-matomo-site/62656/3
weil forum/.. sich selbst in nichts auflöst.
leider ist das nicht korrekt, was aber auch an meinem alten Forumsbeitrag liegt, wie ich gerade bei genauer Betrachtung festgestellt habe.
Der dortige Code ist nicht richtig - ich korrigiere es dort noch.
var tracking_domainname=window.location.hostname;
tracking_domainname+= "/" + tracking_domainname.split('.')[0] +"/..";
var p = location.protocol + "//" + tracking_domainname + window.location.pathname + decodeURI(window.location.search);
_paq.push(['setCustomUrl', p]);
_paq.push(['trackPageView']);
@melbao@utrautma
Klasse, danke dass ihr euch so ins Zeug legt!
Eine Bitte nur: seht ihr eine Möglichkeit mir das so aufzubereiten, dass ich es auch im MTM nutzen kann, oder ist das aufgrund der von Udo genannten EinschrÀnkung nicht möglich?
muss ich JavaScript einsetzen, bevor es zum TrackPageView kommt.
Da ich mit Matomo Schulungen, Workshops und Umsetzungen auch mein Geld verdiene, fehlt mir die Zeit allerdings auch ein wenig der Anreiz die komplette Palette aller Lösungsmöglichkeiten darzulegen, wozu dann auch der Tag Manager gehört.
Letztlich lĂ€sst es der Tag Manager sehr einfach im Tag fĂŒr Seitenansichten zu, die CustomURL zu setzen. Das mĂŒsstest du eigentlich schon gesehen haben.
Wenn du dort eine Variable einfĂŒgst, die obiges JavaScript modifiziert enthĂ€lt (also als return-Wert die neue URL zurĂŒckgibt), hast du es schon!