Key Takeaways
- UTM-Parameter in einer URL (utm_source, utm_medium, utm_campaign) können mit JavaScripts URLSearchParams ausgelesen und in versteckten Formularfeldern gespeichert werden.
- So erfährst du, welche Anzeige, E-Mail oder Kampagne eine Kontaktformular-Anfrage generiert hat.
- Versteckte Felder werden mit dem Formular abgeschickt und tauchen in den übermittelten Daten neben der Nachricht des Kunden auf.
- Beschreibe Fudge diese Anforderung – es kann die komplette Implementierung inklusive der versteckten Felder und dem JavaScript für dich aufbauen.
Wenn jemand dein Kontaktformular ausfüllt, nachdem er auf eine Facebook-Ad geklickt hat, möchtest du das wissen. Wenn eine Großhandelsanfrage nach einer bestimmten E-Mail-Kampagne reinkommt, möchtest du diese richtig zuordnen. Die Erfassung von UTM-Parametern in Formularen schließt die Attributionslücke zwischen “Diese Person hat uns kontaktiert” und “Diese Kampagne hat zu dem Kontakt geführt.”
So nutzen Sie UTM auf Shopify
UTM-Parameter werden an die URLs in Ihren Marketing-Links angehängt:
https://yourstore.com/pages/contact?utm_source=facebook&utm_medium=paid&utm_campaign=summer_sale
Wenn jemand auf diese URL gelangt, befinden sich die UTM-Werte in der Adressleiste des Browsers. JavaScript kann diese auslesen und speichern, sodass sie mit dem Absenden des Formulars übertragen werden.
Passend dazu: Custom JavaScript in Shopify hinzufügen.
So erhalten Sie UTM-Parameter aus einer URL mit JavaScript
Der moderne, saubere Weg, um URL-Parameter auszulesen, ist URLSearchParams:
var params = new URLSearchParams(window.location.search);
var utmSource = params.get('utm_source'); // "facebook"
var utmMedium = params.get('utm_medium'); // "paid"
var utmCampaign = params.get('utm_campaign'); // "summer_sale"
var utmContent = params.get('utm_content'); // optional
var utmTerm = params.get('utm_term'); // optional (für Paid Search)
Wenn kein UTM-Parameter in der URL vorhanden ist, gibt params.get() den Wert null zurück. Behandeln Sie dies elegant durch Fallbacks auf leere Strings.
Versteckte UTM-Felder zu einem Shopify-Formular hinzufügen
Schritt 1 – Versteckte Felder zum Formular-HTML hinzufügen.
Fügen Sie im Kontaktformular Ihres Themes (normalerweise in sections/contact-form.liquid oder dem Kontaktseiten-Template) versteckte Input-Felder innerhalb des Formulars hinzu:
<input type="hidden" id="utm-source" name="contact[utm_source]" value="" />
<input type="hidden" id="utm-medium" name="contact[utm_medium]" value="" />
<input type="hidden" id="utm-campaign" name="contact[utm_campaign]" value="" />
<input type="hidden" id="utm-content" name="contact[utm_content]" value="" />
Für eigene Formulare oder Apps: Verwenden Sie das Format name="properties[UTM Source]" für Line Item Properties oder die Namenskonvention, die Ihr Formular-System erwartet.
Schritt 2 – UTM-Werte auslesen und Felder mit JavaScript befüllen.
Fügen Sie dieses Skript nach Ihrem Formular (oder in Ihrer theme.liquid vor </body>) ein:
<script>
(function() {
var params = new URLSearchParams(window.location.search);
var utmFields = {
'utm_source': 'utm-source',
'utm_medium': 'utm-medium',
'utm_campaign': 'utm-campaign',
'utm_content': 'utm-content'
};
Object.keys(utmFields).forEach(function(param) {
var value = params.get(param);
var field = document.getElementById(utmFields[param]);
if (value && field) {
field.value = value;
}
});
})();
</script>
Schritt 3 – Testen. Öffnen Sie Ihre Kontaktseite mit UTM-Parametern in der URL:
https://yourstore.com/pages/contact?utm_source=test&utm_campaign=test_campaign
Schicken Sie das Formular ab und prüfen Sie die E-Mail-Benachrichtigung — die UTM-Werte sollten in der Übermittlung erscheinen.
Passend dazu: Eigenes Kontaktformular in Shopify hinzufügen.
UTMs über mehrere Seiten hinweg beibehalten
Ein häufiges Problem: Ein Besucher klickt auf Ihre Anzeige (UTMs sind in der URL der Landingpage), durchstöbert ein paar Produktseiten und besucht dann direkt die Kontaktseite — die keine UTMs in der URL hat. Bis er das Formular erreicht, sind die UTM-Werte verloren.
Lösung: UTMs beim ersten Besuch im sessionStorage (oder localStorage) speichern.
(function() {
var params = new URLSearchParams(window.location.search);
var utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
// UTMs beim ersten Seitenladen speichern, falls vorhanden
utmParams.forEach(function(param) {
var value = params.get(param);
if (value) {
sessionStorage.setItem(param, value);
}
});
// Formularfelder aus dem Speicher befüllen (Fallback von URL)
function populateField(paramName, fieldId) {
var value = params.get(paramName) || sessionStorage.getItem(paramName) || '';
var field = document.getElementById(fieldId);
if (field) field.value = value;
}
populateField('utm_source', 'utm-source');
populateField('utm_medium', 'utm-medium');
populateField('utm_campaign', 'utm-campaign');
populateField('utm_content', 'utm-content');
})();
sessionStorage behält Werte innerhalb einer Browser-Sitzung bei (bis der Tab geschlossen wird). localStorage bleibt über Sitzungen hinweg bestehen — leistungsstärker, erfasst aber auch UTMs von Wochen alten Besuchen, was vielleicht nicht gewollt ist.
Zum Messen der Ergebnisse siehe Add Tracking Scripts to Shopify.
UTM-Erfassung mit Formular-Apps
Die meisten spezialisierten Formular-Tools (Typeform, JotForm, Hulk Form Builder) haben integriertes UTM-Tracking:
Typeform: Gehen Sie in den Formular-Einstellungen zu Hidden Fields → UTM-Parameter hinzufügen. Typeform liest diese automatisch aus der URL und hängt sie an die Submissions an.
Jotform: Felder über URL-Parameter vorbefüllen — fügen Sie ein Feld hinzu, gehen Sie zu Properties → Prefill → From URL Parameter.
Diese integrierten Optionen sind einfacher als eigenes JavaScript und lohnen sich, wenn Sie diese Tools bereits nutzen.
Um Ergebnisse zu messen, siehe Tracking-Skripte zu Shopify hinzufügen.
Was man mit UTM-Daten in Formulareinsendungen macht
E-Mail-Routing. Sende Paid-Media-Leads an dein Sales-Team und organische Leads an dein Content-Team.
CRM-Attribution. Wenn das ausgefüllte Formular in deinem CRM landet (via Zapier, HubSpot-Integration, etc.), werden die UTM-Werte direkt mitgeliefert. Du kannst Deals nach Quelle filtern und sehen, welche Kampagnen die wertvollsten Kunden generieren.
ROI-Reporting. Wenn du weißt, dass ein Großhandelskunde über eine bestimmte LinkedIn-Kampagne kam, kannst du seinen Lifetime Value (Customer Lifetime Value) genau dieser Kampagne zuordnen – das ist viel genauer als Last-Click-Analytics.
FAQ
Die integrierte Attribution von Shopify zeigt grob, woher Bestellungen kommen (Onlineshop, Direct, Search). UTM-Tracking liefert dir spezifische Details auf Kampagnenebene (welche Facebook-Ad, welche E-Mail-Kampagne, welcher Influencer) und funktioniert auch für Aktionen abseits von Bestellungen, wie Formularübermittlungen. Nutze beides – sie ergänzen sich gegenseitig.
Nein. Suchmaschinen behandeln URLs mit UTM-Parametern als dieselbe Seite wie die Canonical-URL (Shopifys Canonical-Tags erledigen das automatisch). UTMs sind Query-String-Parameter, die das Ranking nicht beeinflussen oder Duplicate Content erzeugen, solange Canonicals gesetzt sind.
Ja – sofern deine E-Mail-Plattform das unterstützt (Klaviyo, Mailchimp und Omnisend tun das alle). Konfiguriere die Plattform so, dass sie UTM-Parameter automatisch an alle ausgehenden E-Mail-Links anhängt. Die UTM-Werte fließen dann genau so durch deine Formularerfassung wie aus jeder anderen Quelle.
Für die Attribution von Formulareinsendungen ist sessionStorage (bis der Tab geschlossen wird) meistens die richtige Wahl. Für eine längerfristige Attribution, bei der jemand vielleicht erst Wochen später zurückkehrt, um zu konvertieren, empfiehlt sich localStorage mit einer Ablaufzeit von 30-90 Tagen. Nach mehr als 90 Tagen ist das UTM-Signal meist eher Rauschen anstatt einer verwertbaren Attribution.
Ja, wenn es für das Sales-Follow-up nützlich ist. Bau das gleiche Muster zur UTM-Erfassung in dein Kontoerstellungs-Formular ein und speichere die Werte als Kunden-Metafelder oder Notizfelder. Beschreibe Fudge einfach dein Setup ("Erfasse bei jedem Formular UTM Source/Medium/Campaign aus der URL und speichere sie als Line Item oder Customer Properties") und es fügt die versteckten Felder und das JavaScript in all deinen Formularen ein.
Passend dazu: Conversions in Shopify tracken.