{"id":10093,"date":"2026-11-08T12:56:00","date_gmt":"2026-11-08T11:56:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10093"},"modified":"2026-10-26T13:02:50","modified_gmt":"2026-10-26T12:02:50","slug":"meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/","title":{"rendered":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen"},"content":{"rendered":"<p>Event Match Quality beschreibt, wie gut die mit Serverereignissen \u00fcbermittelten Kundeninformationen f\u00fcr die Zuordnung zu Meta-Konten geeignet sind. Korrekte Normalisierung und tats\u00e4chlich verf\u00fcgbare Kennungen k\u00f6nnen die Qualit\u00e4t verbessern. Ein Wert \u00fcber 6,0 ist jedoch kein garantierter Ausgang einer bestimmten Feldkombination. Deduplizierung bedeutet, Browser- und Servermeldungen zum selben Kauf zu erkennen, damit der Kauf nicht doppelt gez\u00e4hlt wird. Diese Pr\u00fcfung, die vollst\u00e4ndige Bestellmessung und EMQ sind getrennte Aufgaben.<\/p>\n<p>Server-side Google Tag Manager (sGTM) verarbeitet eingehende Messanfragen auf einem Server. Ein Client ist darin die Komponente, die eine Anfrage liest und daraus ein Ereignisobjekt f\u00fcr die Tags erzeugt. Die Anleitung beschreibt eine kontrollierte sGTM-Verarbeitung mit dem Meta-Template von facebookincubator. Voraussetzung sind ein eingerichteter Servercontainer, ein passender Client f\u00fcr das eingehende Protokoll und eine funktionierende \u00dcbertragung des Einwilligungszustands. Der konkrete Transport vom Shop zum Client bleibt projektspezifisch; ein Data-Layer-Push allein sendet noch keinen HTTP-Request.<\/p>\n<figure class=\"lw-diagram\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-10093-review-20261024.png\" width=\"1120\" height=\"580\" alt=\"Consent und gepr\u00fcfte Eingaben vor der Verarbeitung; Normalisierung und Hashing getrennt von Ereignis-Deduplizierung. EMQ bleibt ein gemessener Wert ohne Ergebnisgarantie.\"><figcaption>Consent und gepr\u00fcfte Eingaben vor der Verarbeitung; Normalisierung und Hashing getrennt von Ereignis-Deduplizierung. EMQ bleibt ein gemessener Wert ohne Ergebnisgarantie.<\/figcaption><\/figure>\n<h2>1. Ereignis und Einwilligung vor der \u00dcbertragung festlegen<\/h2>\n<p>Ein Kaufereignis entsteht nach best\u00e4tigter Bestellung. Eine stabile Ereignis-ID geh\u00f6rt zu diesem Gesch\u00e4ftsvorgang und wird f\u00fcr Browser-Pixel, Serverereignis und Wiederholungen wiederverwendet. Eine neue Zufalls-ID bei jedem Seitenaufruf verhindert diesen Zusammenhang. Ein Pr\u00e4fix aus Ereignistyp und Shop verhindert Kollisionen zwischen unterschiedlichen Quellen.<\/p>\n<p>Das folgende JSON zeigt das erwartete Ereignisobjekt nach Verarbeitung durch den sGTM-Client, keine direkt einsetzbare Browser-Transportkonfiguration. Werte und Zeitstempel sind ausschlie\u00dflich Beispieldaten. Die tats\u00e4chliche Ereigniszeit muss beim Kauf erfasst werden; ein Retry darf daraus kein neues Ereignis mit neuer ID machen.<\/p>\n<pre class=\"wp-block-code-beautifier-block-code\"><code>{\n  &quot;event_name&quot;: &quot;purchase&quot;,\n  &quot;event_id&quot;: &quot;purchase:shop-example:ORD-10432&quot;,\n  &quot;event_time&quot;: 1792843200,\n  &quot;action_source&quot;: &quot;website&quot;,\n  &quot;page_location&quot;: &quot;https:\/\/shop.example\/confirmation&quot;,\n  &quot;transaction_id&quot;: &quot;ORD-10432&quot;,\n  &quot;value&quot;: 149,\n  &quot;currency&quot;: &quot;PLN&quot;,\n  &quot;user_data&quot;: {\n    &quot;email_address&quot;: &quot;customer@example.com&quot;,\n    &quot;phone_number&quot;: &quot;+48601234567&quot;\n  }\n}\n<\/code><\/pre>\n<p>Im hier beschriebenen Aufbau sind Erfassung f\u00fcr Meta und Weiterleitung nur bei g\u00fcltigem Werbe-Consent erlaubt. Fehlende oder verweigerte Zustimmung blockiert den Meta-Pfad im Webcontainer und auf dem Server. Ein Servercontainer \u00fcbernimmt diese Entscheidung nicht automatisch f\u00fcr jedes Community-Template. Zweck, Widerruf und tats\u00e4chliche Tag-Ausl\u00f6sung m\u00fcssen zusammenpassen.<\/p>\n<p>Rohe Kontaktdaten im globalen Data Layer sind auch f\u00fcr andere Seitenskripte erreichbar. Eine kontrollierte \u00dcbergabe und getrennte Empf\u00e4ngerfreigaben sind deshalb n\u00f6tig. E-Mail-Adressen geh\u00f6ren nicht als beliebige GA4-Eventparameter in Analytics. Bei einem Google-Transport gelten dessen dokumentierte User-Provided-Data-Felder und Richtlinien; der GA4-Client im Servercontainer ist vom ausgehenden GA4-Tag zu unterscheiden.<\/p>\n<h2>2. Die tats\u00e4chlich ankommenden Felder pr\u00fcfen<\/h2>\n<p>Serverseitige Event-Data-Variablen lesen das vom Client erzeugte Ereignisobjekt. Browserseitige Data-Layer-Variablen existieren dort nicht als direkter Zugriff auf die Seite. Googles gemeinsames Schema verwendet unter anderem <code>user_data.email_address<\/code> und <code>user_data.phone_number<\/code>. Das Meta-Template liest au\u00dferdem die spezifischen Felder <code>x-fb-ud-em<\/code> und <code>x-fb-ud-ph<\/code> f\u00fcr vorbereitete Werte.<\/p>\n<p>Ein Test mit erfundenen Kontaktdaten muss zeigen, welcher Client die Anfrage \u00fcbernimmt und welche Felder anschlie\u00dfend vorhanden sind. Ein beliebiger HTTP-Request wird nicht ohne passende Clientlogik automatisch zum gew\u00fcnschten Event. Unbekannte oder falsch typisierte Felder d\u00fcrfen nicht still als erfolgreich \u00fcbertragen gelten.<\/p>\n<h2>3. Normalisierung ohne geratenen L\u00e4ndercode<\/h2>\n<p>F\u00fcr Telefonnummern muss die Eingabe bereits als internationale Nummer mit bekannter L\u00e4nderzuordnung validiert sein, beispielsweise durch eine gepflegte Telefonnummernbibliothek im Shop-Backend. Das nachfolgende Template akzeptiert nur die einheitliche internationale Schreibweise mit Pluszeichen und Ziffern. Nationale Nummern, 00-Pr\u00e4fixe, Leerzeichen und Durchwahlen werden bewusst nicht umgeschrieben. Damit entstehen aus 0171\u2026 oder einer polnischen Ortsvorwahl 48 keine still falsch erg\u00e4nzten Nummern.<\/p>\n<p>Das Formatmuster pr\u00fcft nur die Form, nicht die Existenz, Erreichbarkeit oder landesspezifische G\u00fcltigkeit der Nummer. Ebenso ist die E-Mail-Pr\u00fcfung ein einfacher Plausibilit\u00e4tsfilter, keine vollst\u00e4ndige Adressvalidierung. Rand-Leerzeichen und Gro\u00dfschreibung werden normalisiert; innere Leerzeichen und ausgew\u00e4hlte unsichtbare Zeichen f\u00fchren zum Weglassen des Feldes statt zur stillen Reparatur.<\/p>\n<p>Im Custom-Variable-Template sind zwei Textfelder <code>inputEmail<\/code>, <code>inputPhone<\/code> sowie ein Auswahlfeld <code>outputField<\/code> mit <code>em<\/code> und <code>ph<\/code> n\u00f6tig. Zwei Variableninstanzen verwenden dieselben Event-Data-Eingaben und w\u00e4hlen jeweils einen Ausgang. <code>sha256Sync<\/code> erzeugt ausdr\u00fccklich Hex-Ausgabe. Die verwendete Regex-API ben\u00f6tigt eine unterst\u00fctzte Serverruntime; bei fehlender Unterst\u00fctzung liefert das Beispiel keinen Wert.<\/p>\n<pre class=\"wp-block-code-beautifier-block-code\"><code>\/\/ Custom Variable Template: text fields inputEmail, inputPhone; select field outputField (em\/ph).\n\/\/ Phone input must already be a validated canonical international number.\nconst getType = require(&#x27;getType&#x27;);\nconst createRegex = require(&#x27;createRegex&#x27;);\nconst sha256Sync = require(&#x27;sha256Sync&#x27;);\nconst emailPattern = createRegex(&#x27;^[^@\\\\s]+@[^@\\\\s]+\\\\.[^@\\\\s]+$&#x27;);\nconst hiddenPattern = createRegex(&#x27;[\\u0000-\\u001F\\u007F\\u00AD\\u200B-\\u200D\\u2060\\uFEFF]&#x27;);\nconst phonePattern = createRegex(&#x27;^\\\\+[1-9][0-9]{1,14}$&#x27;);\nif (!emailPattern || !hiddenPattern || !phonePattern) return undefined;\n\nfunction normalizeEmail(raw) {\n  if (getType(raw) !== &#x27;string&#x27;) return undefined;\n  const value = raw.trim().toLowerCase();\n  if (!value.match(emailPattern)) return undefined;\n  if (value.match(hiddenPattern)) return undefined;\n  return value;\n}\n\nfunction normalizePhone(raw) {\n  if (getType(raw) !== &#x27;string&#x27;) return undefined;\n  const value = raw.trim();\n  if (!value.match(phonePattern)) return undefined;\n  return value.substring(1);\n}\n\nconst email = normalizeEmail(data.inputEmail);\nconst phone = normalizePhone(data.inputPhone);\nif (data.outputField === &#x27;em&#x27;) {\n  return email ? sha256Sync(email, {outputEncoding: &#x27;hex&#x27;}) : undefined;\n}\nif (data.outputField === &#x27;ph&#x27;) {\n  return phone ? sha256Sync(phone, {outputEncoding: &#x27;hex&#x27;}) : undefined;\n}\nreturn undefined;\n<\/code><\/pre>\n<p>Normalisierung bringt eine Eingabe in eine einheitliche Form. Hashing berechnet daraus einen Wert fester L\u00e4nge; dieselbe Eingabe ergibt denselben Hash. Ein bereits korrekt normalisierter Hash kann auch vor dem Servercontainer entstehen. Ein generelles Verbot clientseitigen Hashings w\u00e4re falsch. Bereits gehashte Eingaben geh\u00f6ren in einen getrennt validierten Pfad und d\u00fcrfen nicht erneut gehasht werden; dieses Beispiel verarbeitet Rohwerte. Eine 64-stellige Hexfolge allein beweist keine richtige Normalisierung.<\/p>\n<p><!-- lw-flux-illu 10092-a3 --><\/p>\n<figure class=\"lw-illu\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/flux-10092-a3.webp\" width=\"1120\" height=\"630\" loading=\"lazy\" decoding=\"async\" alt=\"Im Korb liegen nur sicher bestimmte Pfifferlinge, ein unbekannter Pilz bleibt im Moos stehen. Genauso werden Telefonnummern nur aufbereitet, wenn die L\u00e4ndervorwahl feststeht, statt sie zu raten.\"><figcaption>Im Korb liegen nur sicher bestimmte Pfifferlinge, ein unbekannter Pilz bleibt im Moos stehen. Genauso werden Telefonnummern nur aufbereitet, wenn die L\u00e4ndervorwahl feststeht, statt sie zu raten.<\/figcaption><\/figure>\n<h2>4. Empf\u00e4ngerbezogen mappen und doppelte K\u00e4ufe vermeiden<\/h2>\n<p>Eine Augment-Transformation kann die beiden Variablen nur f\u00fcr das Meta-Tag als <code>x-fb-ud-em<\/code> und <code>x-fb-ud-ph<\/code> erg\u00e4nzen. Das gepr\u00fcfte facebookincubator-Template \u00fcbernimmt diese Werte vorrangig. Vor Ver\u00f6ffentlichung m\u00fcssen die tats\u00e4chlich installierte Templateversion, deren Berechtigungen und das resultierende Ausgangsobjekt gepr\u00fcft werden. Access Token und Pixel-ID werden im Server-Tag konfiguriert; das Token geh\u00f6rt nicht in den Browser oder die URL einer Beispielseite.<\/p>\n<p>Die Reihenfolge der Transformationen ist entscheidend: Zuerst berechnet Augment die beiden Hashes aus den Rohwerten; danach entfernt eine Exclude-\/Redact-Regel das gesamte Objekt <code>user_data<\/code> f\u00fcr das Meta-Tag. Andernfalls kann das Template auf eine abgelehnte rohe Telefonnummer zur\u00fcckfallen und den Wert dennoch hashen. F\u00fcr diese beiden Felder d\u00fcrfen anschlie\u00dfend nur die vorbereiteten Werte <code>x-fb-ud-em<\/code>\/<code>x-fb-ud-ph<\/code> verf\u00fcgbar sein. Event Enhancement und automatische Cookieverl\u00e4ngerung bleiben in diesem Beispiel deaktiviert, damit zwischengespeicherte Nutzerdaten ausgelassene Eingaben nicht still ersetzen. Die Tag-Vorschau muss g\u00fcltige und abgelehnte F\u00e4lle best\u00e4tigen.<\/p>\n<p>Das gepr\u00fcfte Template \u00fcbersetzt <code>purchase<\/code> zu <code>Purchase<\/code> und \u00fcbernimmt <code>event_id<\/code>. Beim Browser-Pixel muss derselbe Meta-Ereignisname mit derselben Kennung als <code>eventID<\/code> ankommen. Eine gemeinsame Bestell-ID kann Bestandteil dieser Kennung sein, sofern Ereignistyp und Shop eindeutig bleiben. Eine erfolgreiche HTTP-Antwort allein best\u00e4tigt weder korrekte Deduplizierung noch vollst\u00e4ndige Bestellmessung.<\/p>\n<p>Felder f\u00fcr andere Tags ben\u00f6tigen eigene Freigaben oder Redaction-Transformationen. Hashing im Meta-Tag entfernt die urspr\u00fcnglichen Rohdaten nicht automatisch aus dem eingegangenen Request, dem Ereignisobjekt oder anderen Tags. Preview, Proxy- und Anwendungslogs m\u00fcssen deshalb ausdr\u00fccklich gepr\u00fcft werden. Hashing ist keine Verschl\u00fcsselung und kein Nachweis von Anonymit\u00e4t.<\/p>\n<h2>5. fbp, fbc und external_id korrekt einordnen<\/h2>\n<p><code>fbp<\/code> und <code>fbc<\/code> werden in der von Meta erwarteten Form ungehasht \u00fcbertragen. Das bedeutet nicht, dass diese Kennungen unkritisch oder anonym sind. Der Server kann nur Cookies lesen, die tats\u00e4chlich im Request ankommen; Domain- und Pfadregeln k\u00f6nnen die Sichtbarkeit begrenzen. Das gepr\u00fcfte Template unterst\u00fctzt zus\u00e4tzlich explizit \u00fcbergebene <code>x-fb-ck-fbp<\/code>\/<code>x-fb-ck-fbc<\/code>-Felder.<\/p>\n<p><code>fbc<\/code> kann aus einer echten <code>fbclid<\/code> oder einem vorhandenen Cookie stammen. Ein sp\u00e4terer organischer Besuch kann daher noch eine Kennung eines fr\u00fcheren Klicks enthalten. Ohne solche Grundlage darf keine Klickkennung erfunden werden. Auch <code>fbp<\/code> ist wegen Einwilligung, Blockierung und Cookiebedingungen nicht bei jedem Besuch vorhanden. Eine stabile <code>external_id<\/code> kann zus\u00e4tzliche Zuordnung erm\u00f6glichen, garantiert jedoch keine Wiederherstellung jedes verlorenen Kontakts.<\/p>\n<h2>6. Qualit\u00e4t mit getrennten Nachweisen bewerten<\/h2>\n<p>Die Abnahme umfasst Testereignisse mit erfundenen Kontaktdaten im Events Manager, tats\u00e4chliche Parameterabdeckung, Deduplizierung des Browser-\/Serverpaars, unver\u00e4nderte IDs bei Retries sowie blockierte \u00dcbertragung bei fehlendem Consent. EMQ und die dazugeh\u00f6rigen Empfehlungen werden beim betreffenden Ereignis betrachtet. Ein fehlender Wert ist kein gemessener Nullwert; eine steigende Punktzahl beweist keine zus\u00e4tzlichen echten K\u00e4ufe.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Was passiert mit einer nationalen Telefonnummer?<\/h3>\n<p>Das Hash-Template l\u00e4sst das Feld weg. Eine vorgelagerte, landesspezifische Validierung muss zuerst eine einheitlich geschriebene internationale Nummer erzeugen. Ein beliebiger L\u00e4ndercode wird nicht angeh\u00e4ngt.<\/p>\n<h3>Garantiert eine E-Mail zusammen mit fbp einen EMQ-Wert \u00fcber 6?<\/h3>\n<p>Nein. Verf\u00fcgbarkeit, Qualit\u00e4t und tats\u00e4chliche Zuordnung der Daten h\u00e4ngen vom Ereignisbestand ab. Die Implementierung liefert pr\u00fcfbare Eingaben, keine feste Punktzahl.<\/p>\n<\/div>\n<p>Weiterf\u00fchrend: <a href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/meta-conversions-api-maximierung-der-event-match-quality-emq-und-deduplizierung\/\">Meta Conversions API: Maximierung der Event Match Quality (EMQ) und Deduplizierung<\/a>.<\/p>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/facebookincubator\/ConversionsAPI-Tag-for-GoogleTagManager\" target=\"_blank\" rel=\"noopener noreferrer\">Von Meta gepflegtes Vorlagenverzeichnis<\/a><\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/facebookincubator\/ConversionsAPI-Tag-for-GoogleTagManager\/main\/template.tpl\" target=\"_blank\" rel=\"noopener noreferrer\">Meta-Vorlage: tats\u00e4chliche Feldzuordnung und Hashing<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/common-event-data\" target=\"_blank\" rel=\"noopener noreferrer\">sGTM: gemeinsames Ereignisformat<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/api\" target=\"_blank\" rel=\"noopener noreferrer\">sGTM: APIs f\u00fcr Vorlagen<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/transformations\" target=\"_blank\" rel=\"noopener noreferrer\">Daten je Empf\u00e4nger anpassen<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/ads-user-data\" target=\"_blank\" rel=\"noopener noreferrer\">Google-Transport: vorgesehene Felder f\u00fcr bereitgestellte Nutzerdaten<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\" target=\"_blank\" rel=\"noopener noreferrer\">Serverseitige Tag-Verarbeitung<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\" target=\"_blank\" rel=\"noopener noreferrer\">Dokumentation zu Google Tag Manager<\/a><\/li>\n<li><a href=\"https:\/\/developers.facebook.com\/documentation\/ads-commerce\/conversions-api\" target=\"_blank\" rel=\"noopener noreferrer\">Meta Conversions API<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Meta Conversions API \u00fcber serverseitigen GTM: Gepr\u00fcfte E-Mail-Adressen und Telefonnummern werden vereinheitlicht und gehasht; fbp und fbc bleiben ungehasht. Einwilligung, doppelte Kaufmeldungen und Event Match Quality ben\u00f6tigen getrennte Pr\u00fcfungen.<\/p>\n","protected":false},"author":1,"featured_media":23337,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129],"tags":[92023,92265,92244,92148,92235],"class_list":["post-10093","post","type-post","status-publish","format-standard","hentry","category-tutorials-de-digital-marketing-de","tag-conversion-tracking-de","tag-prywatnosc-danych-pl-de","tag-meta-conversions-api-de","tag-server-side-gtm-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>Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Meta Conversions API \u00fcber Server-Side GTM: E-Mail und Telefonnummer normalisieren, per SHA-256 hashen und die Event Match Quality \u00fcber 6,0 bringen.\" \/>\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\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Meta Conversions API \u00fcber Server-Side GTM: E-Mail und Telefonnummer normalisieren, per SHA-256 hashen und die Event Match Quality \u00fcber 6,0 bringen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-08T11:56:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-10093-review-20261024-dark.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=\"8 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\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen\",\"datePublished\":\"2026-11-08T11:56:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/\"},\"wordCount\":1297,\"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\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-10093-review-20261024-dark.png\",\"keywords\":[\"Conversion Tracking\",\"Data Privacy\",\"Meta Conversions API\",\"Server-Side GTM\",\"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\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/\",\"name\":\"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen | 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\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-10093-review-20261024-dark.png\",\"datePublished\":\"2026-11-08T11:56:00+00:00\",\"description\":\"Meta Conversions API \u00fcber Server-Side GTM: E-Mail und Telefonnummer normalisieren, per SHA-256 hashen und die Event Match Quality \u00fcber 6,0 bringen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-10093-review-20261024-dark.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-10093-review-20261024-dark.png\",\"width\":1200,\"height\":630,\"caption\":\"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-marketing-de\\\/tutorials-de-digital-marketing-de\\\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen\"}]},{\"@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":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen | Lukas Wojcik","description":"Meta Conversions API \u00fcber Server-Side GTM: E-Mail und Telefonnummer normalisieren, per SHA-256 hashen und die Event Match Quality \u00fcber 6,0 bringen.","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\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/","og_locale":"en_US","og_type":"article","og_title":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen | Lukas Wojcik","og_description":"Meta Conversions API \u00fcber Server-Side GTM: E-Mail und Telefonnummer normalisieren, per SHA-256 hashen und die Event Match Quality \u00fcber 6,0 bringen.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-11-08T11:56:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-10093-review-20261024-dark.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen","datePublished":"2026-11-08T11:56:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/"},"wordCount":1297,"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\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-10093-review-20261024-dark.png","keywords":["Conversion Tracking","Data Privacy","Meta Conversions API","Server-Side GTM","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\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/","name":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen | 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\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-10093-review-20261024-dark.png","datePublished":"2026-11-08T11:56:00+00:00","description":"Meta Conversions API \u00fcber Server-Side GTM: E-Mail und Telefonnummer normalisieren, per SHA-256 hashen und die Event Match Quality \u00fcber 6,0 bringen.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-10093-review-20261024-dark.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-10093-review-20261024-dark.png","width":1200,"height":630,"caption":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-marketing-de\/tutorials-de-digital-marketing-de\/meta-conversions-api-uber-server-side-gtm-normalisierung-deduplizierung-und-emq-prufen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Meta Conversions API \u00fcber Server-Side GTM: Normalisierung, Deduplizierung und EMQ pr\u00fcfen"}]},{"@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\/10093","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=10093"}],"version-history":[{"count":13,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10093\/revisions"}],"predecessor-version":[{"id":30358,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10093\/revisions\/30358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/23337"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}