Wie baut man einen UTM-Link richtig auf? Generator im Browser
Diese Funktion hängt an eine bestehende Internetadresse die UTM-Parameter für Quelle, Medium, Kampagne und optional Inhalt und Suchbegriff an, damit ein Klick in der Webanalyse eindeutig dem richtigen Kanal zugeordnet wird, ohne die Parameter von Hand fehleranfällig zusammenzusetzen.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Was UTM-Parameter bewirken
UTM-Parameter sind zusätzliche Angaben am Ende einer Internetadresse, die eine Webanalyse wie Google Analytics ausliest, um einen Besuch dem richtigen Kanal zuzuordnen: utm_source für die Quelle, etwa Newsletter oder LinkedIn, utm_medium für den Kanaltyp, etwa E-Mail oder Social, und utm_campaign für den Namen der jeweiligen Kampagne. Ohne diese Parameter erscheint ein Besuch oft nur als anonymer Direktzugriff.
Typische Fehler von Hand vermeiden
Von Hand zusammengesetzte UTM-Links enthalten häufig Tippfehler, uneinheitliche Groß- und Kleinschreibung oder abweichende Schreibweisen derselben Quelle, etwa einmal klein und einmal groß geschrieben, was in der Auswertung zwei getrennte Zeilen erzeugt, obwohl es sich um denselben Kanal handelt. Die Funktion setzt die Parameter konsistent zusammen und kodiert Sonderzeichen automatisch korrekt.
Für mehrere Links auf einmal
Bei einer Kampagne mit mehreren Anzeigen oder mehreren Newsletter-Ausgaben lassen sich gleich mehrere UTM-Links nacheinander erzeugen, mit gleichbleibender Quelle und Kampagne, aber unterschiedlichem Inhalt-Parameter zur Unterscheidung der einzelnen Varianten in der Auswertung.
Kostenlos im Browser
Die Erstellung läuft direkt in Ihrem Browser, kostenlos, ohne Anmeldung und ohne Limit. Für eine automatisierte Erstellung vieler UTM-Links aus einer Liste, etwa direkt aus einer Kampagnenplanung, steht zusätzlich ein programmierbarer Aufruf über die API zur Verfügung, für $0.002 pro Anfrage.
Anwendungsfälle
Newsletter-Kampagne auswerten
Eine Marketingagentur versieht jeden Link im monatlichen Newsletter mit einheitlichen UTM-Parametern, um in der Webanalyse genau zu sehen, welcher Newsletter-Abschnitt die meisten Klicks bringt.
Mehrere Anzeigenvarianten unterscheiden
Anna Hoffmann erstellt für drei unterschiedliche Anzeigentexte derselben Kampagne jeweils einen eigenen UTM-Link mit unterschiedlichem Inhalt-Parameter, um zu sehen, welcher Text besser funktioniert.
Social-Media-Link mit sauberer Zuordnung
Die Bäckerei Hoffmann e. K. versieht den Link in ihrem Instagram-Profil mit UTM-Parametern, um Besuche aus Social Media von anderen Zugriffsquellen zu unterscheiden.
Häufige Fragen
Welche Parameter werden unterstützt?
utm_source, utm_medium, utm_campaign sowie optional utm_content und utm_term, entsprechend dem verbreiteten Google-Analytics-Standard.
Was passiert, wenn die Original-Adresse bereits Parameter enthält?
Die UTM-Parameter werden korrekt angehängt, ohne bestehende Parameter zu überschreiben.
Ist die Nutzung kostenlos?
Ja, solange Sie die Seite direkt nutzen: ohne Limit, ohne Anmeldung. Die API-Variante für automatisierte Listen kostet $0.002 pro Anfrage.
Werden Sonderzeichen automatisch korrekt kodiert?
Ja, Leerzeichen und Sonderzeichen in Kampagnennamen werden automatisch URL-kodiert, damit der Link in jedem System funktioniert.
Lässt sich der fertige Link direkt kürzen?
Ja, der fertige UTM-Link lässt sich anschließend mit dem Kurzlink-Werkzeug zusätzlich verkürzen.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/utm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/utm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/utm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/utm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/utm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": [
"valor-1",
"valor-2"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.utm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |