{"id":478,"date":"2026-09-18T12:45:00","date_gmt":"2026-09-18T10:45:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/?p=478"},"modified":"2026-10-26T13:08:32","modified_gmt":"2026-10-26T12:08:32","slug":"werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/","title":{"rendered":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern"},"content":{"rendered":"<p>B2B bezeichnet Gesch\u00e4fte zwischen Unternehmen. Ein Lead ist ein Kontakt mit m\u00f6glichem Kaufinteresse. Dieser Kontakt kann \u00fcber eine Anzeige entstehen; das Formular wird m\u00f6glicherweise erst nach mehreren Besuchen abgesendet. Die Kampagnenparameter der Einstiegsseite stehen dann h\u00e4ufig nicht mehr in der aktuellen URL. Eine eigene Speicherung kann diese Werte an ein Formular und anschlie\u00dfend an das CRM \u00fcbergeben. Ein CRM verwaltet Kundenkontakte und Verkaufschancen. Das erg\u00e4nzt die Formularintegration; GA4 verliert eine bereits erfasste Kampagnenquelle nicht automatisch beim n\u00e4chsten internen Seitenwechsel.<\/p>\n<h2>1. Was First Touch und Last Touch hier bedeuten<\/h2>\n<p>Das folgende Beispiel speichert den fr\u00fchesten und den j\u00fcngsten beobachteten Besuch mit g\u00fcltigen UTM-Parametern oder unterst\u00fctzten Klick-IDs. Besuche ohne solche Parameter ver\u00e4ndern diese Eintr\u00e4ge nicht. First Touch bedeutet deshalb den fr\u00fchesten noch verf\u00fcgbaren Kampagnenkontakt dieses Browsers, Last Touch den j\u00fcngsten erfassten Kampagnenkontakt. Attribution ordnet Kontakte oder Verk\u00e4ufe Marketingkan\u00e4len zu. Eine vollst\u00e4ndige Kundenreise oder eine kanal\u00fcbergreifende Attribution entsteht aus diesen zwei Eintr\u00e4gen nicht.<\/p>\n<p>UTM-Parameter sind Kampagnenkennzeichnungen in einer URL, etwa utm_source=newsletter. Die f\u00fcnf UTM-Felder beschreiben Quelle, Medium, Kampagne, Suchbegriff und Anzeigeninhalt. Zus\u00e4tzlich werden gclid und li_fat_id getrennt mit einem Erfassungszeitpunkt gespeichert. So bleibt beispielsweise die Google-Klick-ID erhalten, wenn sp\u00e4ter eine E-Mail-Kampagne den Last Touch aktualisiert. Andere Kennungen wie wbraid und gbraid ben\u00f6tigen eine gesondert gepr\u00fcfte Integration.<\/p>\n<h2>2. Speicherung mit Einwilligung und Ablaufdatum<\/h2>\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" alt=\"Kampagnendaten gelangen nach Einwilligung \u00fcber den Speicher und eine ausdr\u00fcckliche Formularzuordnung ins CRM. Fehlende Daten bleiben unbekannt.\" height=\"650\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/quality-478-20261024.png\" width=\"1120\"\/><figcaption>Kampagnendaten gelangen nach Einwilligung \u00fcber den Speicher und eine ausdr\u00fcckliche Formularzuordnung ins CRM. Fehlende Daten bleiben unbekannt.<\/figcaption><\/figure>\n<p>localStorage ist ein Browserspeicher, den eine Website mit JavaScript lesen und beschreiben kann. Eine Consent Management Platform (CMP) verwaltet Einwilligungsentscheidungen. Marketingattribution im localStorage ben\u00f6tigt in Deutschland grunds\u00e4tzlich eine Einwilligung nach \u00a7 25 TDDDG. localStorage ist keine Ausnahme vom Schutz der Endeinrichtung. Der Zugriff bleibt bis zu einer best\u00e4tigten Freigabe gesperrt. Bei Widerruf muss die CMP-Integration die weitere Nutzung stoppen, den gespeicherten Datensatz l\u00f6schen und bereits bef\u00fcllte Attributionsfelder leeren.<\/p>\n<p>Das ES-Modul verwendet ausschlie\u00dflich localStorage. Die beispielhafte Frist von 30 Tagen gilt pro Kontakt beziehungsweise Klick-ID ab Erfassung und ist keine allgemeine Aufbewahrungsempfehlung. Abgelaufene Werte werden nicht mehr ausgegeben; physisch bereinigt wird der Datensatz beim n\u00e4chsten capture-Aufruf. Browserl\u00f6schung, Tracking-Schutz und Speicherfehler k\u00f6nnen die tats\u00e4chliche Verf\u00fcgbarkeit verk\u00fcrzen. Ein Origin besteht aus Protokoll, Hostname und Port einer Webadresse. Gleicher Origin ist erforderlich: Subdomains und andere Browser teilen diesen Speicher nicht.<\/p>\n<pre class=\"wp-block-code\"><code>export function attributionStore({ consent, storage, now = Date.now }) {\n  const key = 'b2b_attribution_v2';\n  const ttl = 30 * 86400000;\n  const utm = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];\n  const ids = ['gclid', 'li_fat_id'];\n  const valid = value =&gt; typeof value === 'string' &amp;&amp; value.trim().length &gt; 0\n    &amp;&amp; value.length &lt;= 500 &amp;&amp; !\/[\\u0000-\\u001f\\u007f]\/.test(value);\n  function permitted() { try { return consent() === true; } catch { return false; } }\n  function fresh(record, time) {\n    return record &amp;&amp; Number.isFinite(record.at) &amp;&amp; record.at &lt;= time\n      &amp;&amp; time - record.at &lt; ttl &amp;&amp; record.values &amp;&amp; typeof record.values === 'object';\n  }\n  function read(time) {\n    const data = JSON.parse(storage().getItem(key) || '{}');\n    const result = { first: null, last: null, ids: {} };\n    for (const name of ['first', 'last']) {\n      if (fresh(data?.[name], time)) {\n        const values = Object.fromEntries([...utm, ...ids]\n          .filter(k =&gt; valid(data[name].values[k]))\n          .map(k =&gt; [k, data[name].values[k]]));\n        if (Object.keys(values).length) result[name] = { at: data[name].at, values };\n      }\n    }\n    for (const name of ids) {\n      const item = data?.ids?.[name];\n      if (fresh(item, time) &amp;&amp; valid(item.values[name])) result.ids[name] = item;\n    }\n    return result;\n  }\n  return {\n    capture(search) {\n      if (!permitted()) return false;\n      try {\n        const time = now();\n        let data;\n        try { data = read(time); } catch { data = { first: null, last: null, ids: {} }; }\n        const params = new URLSearchParams(search);\n        const values = Object.fromEntries([...utm, ...ids]\n          .filter(k =&gt; params.getAll(k).length === 1 &amp;&amp; valid(params.get(k)))\n          .map(k =&gt; [k, params.get(k).trim()]));\n        if (Object.keys(values).length) {\n          const touch = { at: time, values };\n          data.first ||= touch;\n          data.last = touch;\n          for (const name of ids) if (values[name]) {\n            data.ids[name] = { at: time, values: { [name]: values[name] } };\n          }\n        }\n        storage().setItem(key, JSON.stringify(data));\n        return true;\n      } catch { return false; }\n    },\n    fields() {\n      if (!permitted()) return {};\n      try {\n        const data = read(now());\n        const fields = {};\n        for (const side of ['first', 'last']) {\n          for (const name of utm) fields[side + '_' + name] = data[side]?.values[name] || '';\n          fields[side + '_captured_at'] = data[side] ? new Date(data[side].at).toISOString() : '';\n        }\n        for (const name of ids) {\n          fields[name] = data.ids[name]?.values[name] || '';\n          fields[name + '_captured_at'] = data.ids[name] ? new Date(data.ids[name].at).toISOString() : '';\n        }\n        return fields;\n      } catch { return {}; }\n    },\n    clear() { try { storage().removeItem(key); } catch {} }\n  };\n}\n<\/code><\/pre>\n<p>Einbindung als ES-Modul, beispielsweise aus \/assets\/utm-store.mjs. Ein unver\u00e4ndertes Custom-HTML-Tag kann export\/import nicht als klassisches JavaScript ausf\u00fchren. Die CMP-Anbindung muss den tats\u00e4chlichen, aktuellen Einwilligungsstatus liefern; das folgende sichere Ausgangsbeispiel gibt bewusst keine Speicherung frei.<\/p>\n<pre class=\"wp-block-code\"><code>import { attributionStore } from '\/assets\/utm-store.mjs';\nconst attribution = attributionStore({\n  consent: () =&gt; false, \/\/ Replace with the verified CMP adapter.\n  storage: () =&gt; window.localStorage\n});\n\/\/ After consent is confirmed, and on relevant SPA navigation:\nattribution.capture(window.location.search);\n\/\/ In the CMP withdrawal handler:\n\/\/ attribution.clear();\n<\/code><\/pre>\n<p>capture muss nach der Freigabe erneut aufgerufen werden, solange die Kampagnenparameter noch verf\u00fcgbar sind. Ein Aufruf nur vor der Einwilligung erfasst den Besuch nicht nachtr\u00e4glich. Single-Page-Anwendungen \u00e4ndern den angezeigten Inhalt, ohne ein vollst\u00e4ndiges neues Dokument zu laden. Die Erfassung erfolgt bei den relevanten \u00c4nderungen der URL w\u00e4hrend der Navigation. F\u00fcr den Parameterzugriff ist kein DOMContentLoaded-Ereignis erforderlich. Doppelte, leere, \u00fcberlange oder Steuerzeichen enthaltende Werte werden verworfen. Ein erneuter Aufruf mit derselben markierten URL z\u00e4hlt als erneute Beobachtung; Erfassungszeitpunkte sind keine verifizierten Werbeklickzeitpunkte.<\/p>\n<h2>3. Formularfelder gezielt zuordnen<\/h2>\n<p>fields() liefert benannte Felder ohne verschachtelte Objekte, etwa first_utm_source, last_utm_campaign, gclid und gclid_captured_at. Fehlende Angaben bleiben leer. Ein leeres Feld beweist keinen direkten Besuch. Auch eine vorhandene gclid allein bef\u00fcllt die UTM-Felder nicht automatisch. Eine daraus abgeleitete Kanalkategorie ben\u00f6tigt eine ausdr\u00fccklich dokumentierte Regel und bleibt von den Rohwerten getrennt.<\/p>\n<p>Ein verstecktes Feld wird mit dem Formular \u00fcbertragen, erscheint aber nicht als Eingabefeld. F\u00fcr ein eigenes HTML-Formular kann jedes vorbereitete versteckte Feld ein data-attribution-key mit dem passenden Schl\u00fcssel erhalten. Die Funktion aktualisiert ausschlie\u00dflich so markierte Felder und leert alte Werte, falls keine Freigabe mehr vorliegt. Der Formular-Submit-Handler muss die Funktion vor dem Erstellen der Formulardaten aufrufen; asynchrone Bibliotheken ben\u00f6tigen den jeweiligen dokumentierten Hook.<\/p>\n<pre class=\"wp-block-code\"><code>function fillAttribution(form) {\n  const values = attribution.fields();\n  for (const field of form.querySelectorAll('input[type=hidden][data-attribution-key]')) {\n    field.value = values[field.dataset.attributionKey] || '';\n  }\n}\n\/\/ Example field in a custom form:\n\/\/ &lt;input type=\"hidden\" name=\"campaign_source\" data-attribution-key=\"first_utm_source\"&gt;\n<\/code><\/pre>\n<p>Gravity Forms bietet ab Version 2.9 das native Ereignis gform\/post_render. Das \u00e4ltere gform_post_render ist ein jQuery-Ereignis und funktioniert nicht durch denselben Namen in document.addEventListener. Ereignis und Feldzuordnung m\u00fcssen zur eingesetzten Version passen; ein CRM-Feldname ist nicht automatisch der HTML-Name eines Gravity-Forms-Feldes. Aktuelle HubSpot-Formulare bieten eigene Instanzen und setFieldValue. Ein iframe bettet eine andere Seite in die aktuelle Seite ein. Eine allgemeine Suche im HTML-Baum des Hauptdokuments erreicht ein iframe von einem anderen Origin nicht. Auch Contact Form 7 ben\u00f6tigt angelegte Felder und eine passende \u00dcbermittlung.<\/p>\n<h2>4. Vom Formular zum CRM und zur Offline-Conversion<\/h2>\n<p>Das Backend validiert die \u00fcbermittelten Werte erneut: Hidden Fields und URL-Parameter sind ver\u00e4nderbare Eingaben. E-Mail-Adressen, Namen und andere personenbezogene Inhalte geh\u00f6ren nicht in UTM-Parameter. CRM-Eigenschaften, Formularfelder und API-Felder ben\u00f6tigen eine ausdr\u00fcckliche Zuordnung; gleiche Anzeigenamen stellen keine Verbindung her.<\/p>\n<p>F\u00fcr bestehende Kontakte braucht der Import eine Regel f\u00fcr den fr\u00fchesten bekannten Kontakt, sp\u00e4tere Kampagnen und zusammengef\u00fchrte Datens\u00e4tze. Kontakt und Deal werden ausdr\u00fccklich verkn\u00fcpft. Eine Kanalgruppe wie Paid Social (bezahlte Werbung in sozialen Netzwerken) beschreibt die Herkunft. Lead, Opportunity und Closed-Won bezeichnen den Vertriebsstatus: einen m\u00f6glichen Kundenkontakt, eine konkrete Verkaufschance und einen abgeschlossenen Verkauf. Beide Dimensionen bleiben getrennt.<\/p>\n<p>Eine Offline-Conversion ist ein au\u00dferhalb der Website erfasstes Ergebnis, etwa ein im CRM best\u00e4tigter Verkauf. Die Dublettenbehandlung verhindert, dass dasselbe Ergebnis mehrfach gez\u00e4hlt wird. Offline-Conversions entstehen erst durch eine eigene Integration mit Conversion-Aktion, tats\u00e4chlichem Conversion-Zeitpunkt, passender Kennung, erforderlicher Einwilligung und Dublettenbehandlung. Eine im CRM gespeicherte ID l\u00f6st keinen Upload aus. Google nennt h\u00f6chstens 90 Tage seit dem zugeh\u00f6rigen Klick f\u00fcr klassische Offline-Uploads und 63 Tage f\u00fcr Enhanced Conversions for Leads; zus\u00e4tzlich gilt das konfigurierte Conversion-Fenster. Dieses Zeitfenster legt fest, wie lange nach einer Werbeinteraktion ein Ergebnis noch zugeordnet werden kann. Die Browserfrist ist davon unabh\u00e4ngig. Fr\u00fchere qualifizierte Vertriebsstufen k\u00f6nnen eigenst\u00e4ndige Conversion-Aktionen bilden, sofern Definition und Werte zum Optimierungsziel passen.<\/p>\n<p>Bei LinkedIn setzt li_fat_id in Landingpage-URLs die aktivierte erweiterte Conversion-Erfassung des Insight Tags im Campaign Manager voraus. Die Conversions API akzeptiert die Kennung als LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID. Die Verf\u00fcgbarkeit einer Zuordnungskennung beweist noch keine Conversion innerhalb des Attributionsfensters.<\/p>\n<h2>5. Pr\u00fcfung vor dem Einsatz<\/h2>\n<p>Ein Testpfad f\u00fchrt von einer Google-Kampagne \u00fcber eine unmarkierte Unterseite und eine sp\u00e4tere E-Mail-Kampagne zum Formular: First Touch bleibt Google, Last Touch wird E-Mail, die noch g\u00fcltige gclid bleibt separat erhalten. Weitere Pr\u00fcfungen umfassen abgelehnte oder widerrufene Einwilligung, abgelaufene und besch\u00e4digte Daten, gesperrten Speicher, AJAX-Formulare und die tats\u00e4chlichen CRM-Felder. Zehn isolierte JavaScript-Tests pr\u00fcfen die Speicherlogik; eine produktive CMP-, Formular- oder CRM-Anbindung ist damit noch nicht getestet.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Bleiben die Daten in Safari 30 Tage erhalten?<\/h3>\n<p>Das ist nicht garantiert. WebKit kann skriptbeschreibbaren Speicher nach sieben Tagen Browsernutzung ohne Interaktion mit der Website l\u00f6schen. Auch serverseitige Cookies sind kein pauschaler Ausweg: Unter anderem k\u00f6nnen CNAME- oder IP-basierte Tracking-Konstellationen begrenzt werden. Eine rechtm\u00e4\u00dfig \u00fcbermittelte CRM-Kopie h\u00e4ngt nicht mehr vom Browserspeicher ab, ben\u00f6tigt aber weiterhin eigene Aufbewahrungs- und L\u00f6schregeln.<\/p>\n<h3>Sind First Touch und Last Touch eine Multi-Touch-Analyse?<\/h3>\n<p>Zwei Kontaktpunkte bilden keine vollst\u00e4ndige Ereignisfolge. Das Beispiel speichert au\u00dferdem pro Plattform nur die zuletzt beobachtete unterst\u00fctzte Klick-ID. F\u00fcr mehrere Klicks, Ger\u00e4tewechsel oder Kontaktzusammenf\u00fchrungen ist ein weitergehendes, datenschutzkonformes Datenmodell erforderlich. Die Ausgabe beschreibt beobachtete Kampagnenhinweise und beweist keinen urs\u00e4chlichen Umsatzbeitrag.<\/p>\n<\/div>\n<h2>Quellen<\/h2>\n<p><a href=\"https:\/\/support.google.com\/tagmanager\" rel=\"noopener noreferrer\" target=\"_blank\">Tag Manager: Hilfe<\/a> \u00b7 <a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/reference\/events\" rel=\"noopener noreferrer\" target=\"_blank\">Google Analytics 4: Ereignisreferenz<\/a><\/p>\n<ul>\n<li><a href=\"https:\/\/support.google.com\/analytics\/answer\/11080067?hl=en\">GA4: Bezugsbereiche der Besucherquellen<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/localStorage\">localStorage<\/a><\/li>\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform-post_render\/\">Gravity Forms: gform\/post_render<\/a><\/li>\n<li><a href=\"https:\/\/developers.hubspot.com\/docs\/api-reference\/latest\/marketing\/forms\/global-form-events\">HubSpot: Formularereignisse und Felder<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/linkedin\/marketing\/conversions\/enabling-first-party-cookies\">LinkedIn: Klick-IDs<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/google-ads\/answer\/15081888?hl=en\">Grenzen f\u00fcr Offline-Conversion-Uploads<\/a><\/li>\n<li><a href=\"https:\/\/webkit.org\/tracking-prevention\/\">WebKit: Tracking-Schutz<\/a><\/li>\n<li><a href=\"https:\/\/www.gesetze-im-internet.de\/ttdsg\/__25.html\">\u00a7 25 TDDDG<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Erste und letzte Kampagnenkontakte sowie Klick-IDs f\u00fcr B2B-Formulare und CRM erfassen: mit Einwilligungspr\u00fcfung, Ablaufdatum und ausdr\u00fccklicher Feldzuordnung.<\/p>\n","protected":false},"author":1,"featured_media":30587,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129],"tags":[92355,92023,92026,92145,92032,92235],"class_list":["post-478","post","type-post","status-publish","format-standard","hentry","category-tutorials-de-digital-marketing-de","tag-attribution-de","tag-conversion-tracking-de","tag-marketing-cyfrowy-pl-de","tag-google-tag-manager-de","tag-tracking-de","tag-tutorial-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"UTM-Parameter im B2B-Funnel erhalten: JavaScript-Speicherung, Formularfelder und CRM-Zuordnung mit Grenzen bei Cookies und Einwilligung.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"UTM-Parameter im B2B-Funnel erhalten: JavaScript-Speicherung, Formularfelder und CRM-Zuordnung mit Grenzen bei Cookies und Einwilligung.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-18T10:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T12:08:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-478.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern\",\"datePublished\":\"2026-09-18T10:45:00+00:00\",\"dateModified\":\"2026-10-26T12:08:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/\"},\"wordCount\":1265,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-478.png\",\"keywords\":[\"Attribution\",\"Conversion Tracking\",\"Digital Marketing\",\"Google Tag Manager\",\"Tracking\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/\",\"name\":\"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-478.png\",\"datePublished\":\"2026-09-18T10:45:00+00:00\",\"dateModified\":\"2026-10-26T12:08:32+00:00\",\"description\":\"UTM-Parameter im B2B-Funnel erhalten: JavaScript-Speicherung, Formularfelder und CRM-Zuordnung mit Grenzen bei Cookies und Einwilligung.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-478.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-478.png\",\"width\":1200,\"height\":630,\"caption\":\"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern | Lukas Wojcik","description":"UTM-Parameter im B2B-Funnel erhalten: JavaScript-Speicherung, Formularfelder und CRM-Zuordnung mit Grenzen bei Cookies und Einwilligung.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/","og_locale":"en_US","og_type":"article","og_title":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern | Lukas Wojcik","og_description":"UTM-Parameter im B2B-Funnel erhalten: JavaScript-Speicherung, Formularfelder und CRM-Zuordnung mit Grenzen bei Cookies und Einwilligung.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-18T10:45:00+00:00","article_modified_time":"2026-10-26T12:08:32+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-478.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern","datePublished":"2026-09-18T10:45:00+00:00","dateModified":"2026-10-26T12:08:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/"},"wordCount":1265,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-478.png","keywords":["Attribution","Conversion Tracking","Digital Marketing","Google Tag Manager","Tracking","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/","name":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-478.png","datePublished":"2026-09-18T10:45:00+00:00","dateModified":"2026-10-26T12:08:32+00:00","description":"UTM-Parameter im B2B-Funnel erhalten: JavaScript-Speicherung, Formularfelder und CRM-Zuordnung mit Grenzen bei Cookies und Einwilligung.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-478.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-478.png","width":1200,"height":630,"caption":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/werbekampagnen-bis-zur-kundenanfrage-verfolgen-utm-daten-im-crm-speichern\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Werbekampagnen bis zur Kundenanfrage verfolgen: UTM-Daten im CRM speichern"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=478"}],"version-history":[{"count":9,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/478\/revisions"}],"predecessor-version":[{"id":27187,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/478\/revisions\/27187"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/30587"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}