Wie ist das, wenn eine URL utm und mtm enthält

Wir verwenden durchgängig die mtm Parameter, um mit Matomo zu tracken. Ein anderes Programm fügt automatisch utm Parameter zu den URLs hinzu.
Mein Eindruck ist, dass die URL geparst wird und wenn ein mtm Parameter gefunden wird, werden alle utm Parameter ignoriert. Ist das korrekt?
Daniel

URL Parameter bestehen jeweils aus einem Satz/Paar:
Key (Schlüssel) = Value (Wert)

Wenn ein Key mehrmals genutzt wird, dann werden die Werte des Keys “gesammelt” in ein Array gespeichert.

Beispiel: 1 Wert pro Key:
https://www.example.com/?mtm_whatever=wert_m1&utm_whatever=wert_u1

In der Software sieht dass dann in etwa so aus:

// PHP Array
$my_array = [
["mtm_whatever"] => "wert_m1",
["utm_whatever"] => "wert_u1"
];
// Wert abrufen:
$my_array["mtm_whatever"]; // wert_m1
$my_array["utm_whatever"]; // wert_u1
// JavaScript Object
var my_object = {
"mtm_whatever":"wert_m1",
"utm_whatever":"wert_u1"
}
// Wert abrufen:
my_array["mtm_whatever"]; // wer_tm1
my_array["utm_whatever"]; // wert_u1
// oder
my_array.mtm_whatever; // wert_m1
my_array.utm_whatever; // wert_u1

Beispiel: 2 Werte pro Key
https://www.example.com/?mtm_whatever=wert_m1&mtm_whatever=wert_m2&utm_whatever=wert_u1&utm_whatever=wert_u2

In der Software sieht dass dann in etwa so aus:

// PHP Array
$my_array = [
["mtm_whatever"] => ["wert1","wert2"],
["utm_whatever"] => ["wert1","wert2"]
];
// Wert abrufen:
$my_array["mtm_whatever"][0]; // wert_m1
$my_array["mtm_whatever"][1]; // wert_m2
$my_array["utm_whatever"][0]; // wert_u1
$my_array["utm_whatever"][1]; // wert_u2
// JavaScript Object
var my_object = {
"mtm_whatever":["wert1","wert2"],
"utm_whatever":["wert1","wert2"]
};
// Wert abrufen:
my_array["mtm_whatever"][0]; // wert_m1
my_array["mtm_whatever"][1]; // wert_m2
my_array["utm_whatever"][0]; // wert_u1
my_array["utm_whatever"][1]; // wert_u1
// oder
my_array.mtm_whatever[0]; // wert_m1
my_array.mtm_whatever[1]; // wert_m2
my_array.utm_whatever[0]; // wert_u1
my_array.utm_whatever[1]; // wert_u2

Matomo verwendet “mtm” anstatt “utm”, damit es keine mehrfachen Werte pro Key gibt.

Zusatzinfo: Matomo verwertet sowohl mtm als auch utm.

Im Sourcecode vom Matomo konnte ich nichts finden, dass URL Parameter ignoriert werden. Es werden also sehr wahrscheinlich alle in den Rohdaten gespeichert.

Die nächste Frage ist, welche der Parameter für das Archivieren, also das Erstellen der Reports verwendet werden. Da konnte ich nichts dazu finden. Es hat den Anschein, als wenn die ersten Daten von den folgenden Daten überschrieben werden.

Die Parameterdaten werden per Schleife einer Variablen zugewiesen. Der erste Wert in der Schleife wird von den folgenden überschrieben.

Beispiel:
https://www.example.com/?mtm_whatever=wert_m1&utm_whatever=wert_u1

$whatever_value = my_array["mtm_whatever"]; // wert_m1
$whatever_value = my_array["utm_whatever"]; // wert_u1
echo whatever_value; // wert_u1

Mal angenommen es geht um den Campaign-Namen. Wenn zwei verschiedene vorhanden sind (mtm_*, utm_* ) dann wird nur einer angezeigt und nicht alle, bzw. der letzte vom Schleifendurchlauf. Da mtm_* vor utm_* in der Schleife dran ist, wird der Wert von utm_* genommen.

Genaueres wirst du wohl nur erfahren, wenn du die Frage als Issue bei Github stellst.

Danke @melbao,
Ich habe das inzwischen getestet (nicht alle möglichen Variationen), und habe den Eindruck, dass das Vorhandensein eines MTM Parameters bedeutet, dass keine UTM parameter in den Reports verwendet werden. Ich muss aber noch eingehender testen.
Daniel

Soll ich für dich mal auf Github fragen? Aber besser ist wenn du fragst (auf englisch), weil du den Einblick hast. Die beißen nicht. Frage nach dem Handling von mtm und utm im Bezug zum Speichern in der Datenbank als Raw data und beim Speichern/Erstellen der Reports (Archiving) sowie bei der Verwendung bei der Anzeige der Reports.

@melbao I entered it as a documentation request, which is basically what it is. Let’s what comes out of it.

2 Likes