{"id":9749,"date":"2026-08-16T15:00:54","date_gmt":"2026-08-16T13:00:54","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=9749"},"modified":"2026-08-13T14:30:56","modified_gmt":"2026-08-13T12:30:56","slug":"gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/","title":{"rendered":"gtag(&#8216;set&#8217;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben"},"content":{"rendered":"<p>Eine Webanwendung mit Anmeldung erf\u00e4hrt in der Regel einen Moment zu sp\u00e4t, wer die besuchende Person ist. Die Seite l\u00e4dt, das Google Tag initialisiert sich, der <code>config<\/code>-Befehl sendet seinen <code>page_view<\/code> \u2014 und erst danach liefert das Login-Formular eine Session zur\u00fcck oder die Single-Page-Application ermittelt das Konto \u00fcber einen API-Aufruf. Wenn die User ID existiert, hat der erste Hit den Browser bereits verlassen.<\/p>\n<p>Der Reflex in dieser Lage besteht darin, das Tag ein zweites Mal zu konfigurieren, diesmal mit angeh\u00e4ngter Kennung. Dieser Reflex ist teuer und unn\u00f6tig. Ein bereits geladenes Google Tag muss nicht neu geladen oder neu initialisiert werden, nur weil ein Wert versp\u00e4tet eintrifft: Ein einzelner <code>set<\/code>-Befehl \u00fcbergibt den Wert, und jedes danach auf dieser Seite gesendete Event tr\u00e4gt ihn.<\/p>\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/hand-gtagset-de.png\" width=\"1120\" height=\"620\" decoding=\"async\"\n     alt=\"Zwei Zeitspuren im Vergleich: Das erneute Ausl\u00f6sen des Google Tags erzeugt einen doppelten page_view, w\u00e4hrend ein einzelner set-Befehl die User ID an den laufenden Tag \u00fcbergibt\"><figcaption>Derselbe Zeitpunkt, zwei Wege: Ein erneutes Ausl\u00f6sen des Google Tags initialisiert ihn noch einmal und schreibt einen zweiten page_view in die Sitzung, w\u00e4hrend ein einziger set-Befehl die User ID an den laufenden Tag \u00fcbergibt und jedes folgende Ereignis sie tr\u00e4gt.<\/figcaption><\/figure>\n<h2>Die f\u00fcnf gtag-Befehle und wie ihre Geltungsbereiche zusammenwirken<\/h2>\n<p>Die gtag.js-API kennt genau f\u00fcnf Befehle, und ihre Arbeitsteilung ist es, die die sp\u00e4te \u00dcbergabe m\u00f6glich macht.<\/p>\n<table style=\"width:100%;border-collapse:collapse;table-layout:auto;\">\n<thead>\n<tr>\n<th style=\"white-space:nowrap;vertical-align:top;\">Befehl<\/th>\n<th>Signatur<\/th>\n<th>Zweck<\/th>\n<th>Reichweite<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\"><code>config<\/code><\/td>\n<td><code>gtag('config', '&lt;TARGET_ID&gt;', {\u2026})<\/code><\/td>\n<td>Erg\u00e4nzt Konfigurationsinformationen f\u00fcr ein Ziel; die TARGET_ID entscheidet, wohin gtag.js Ereignisdaten sendet, ein weiterer Aufruf erg\u00e4nzt ein weiteres Ziel.<\/td>\n<td>Alle Events an diese eine TARGET_ID.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\"><code>set<\/code><\/td>\n<td><code>gtag('set', {\u2026})<\/code><\/td>\n<td>Definiert Parameter, die jedem nachfolgenden Event auf der Seite zugeordnet werden. Es existiert auch eine benannte Gruppenform, etwa <code>gtag('set', 'campaign', {\u2026})<\/code>.<\/td>\n<td>Global, ab dem Aufruf, nur f\u00fcr die aktuelle Seite.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\"><code>event<\/code><\/td>\n<td><code>gtag('event', '&lt;event_name&gt;', {\u2026})<\/code><\/td>\n<td>Sendet Ereignisdaten, entweder ein empfohlenes Event oder ein eigenes.<\/td>\n<td>Dieses eine Event.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\"><code>get<\/code><\/td>\n<td><code>gtag('get', '&lt;target&gt;', '&lt;field&gt;', callback)<\/code><\/td>\n<td>Liest Werte aus gtag.js zur\u00fcck, darunter mit <code>set<\/code> zugewiesene Werte: <code>client_id<\/code>, <code>session_id<\/code>, <code>session_number<\/code>, <code>gclid<\/code>.<\/td>\n<td>Lesezugriff; der Callback erh\u00e4lt das Feld oder <code>undefined<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\"><code>consent<\/code><\/td>\n<td><code>gtag('consent', 'default'|'update', {\u2026})<\/code><\/td>\n<td>Setzt den initialen Consent-Zustand oder aktualisiert ihn, sobald eine Entscheidung vorliegt.<\/td>\n<td>Consent-Signale f\u00fcr die Seite.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Es existieren damit drei Geltungsbereiche: einzelne Events, alle Events an eine bestimmte TARGET_ID und global alle Events. Wird derselbe Parameter in mehreren davon zugewiesen, kommt bei der Verarbeitung eines Events nur ein einziger Wert zum Tragen, und die Reihenfolge lautet <strong>Event vor config vor set<\/strong>. Das entscheidende Detail steht eine Zeile weiter unten in der Referenz: Vorrang ist kein \u00dcberschreiben.<\/p>\n<blockquote>\n<p>Parameter values set in one scope don&#8217;t modify the values set for the same parameter in a different scope.<\/p>\n<\/blockquote>\n<p>Im dokumentierten Beispiel wird <code>campaign_id<\/code> global als <code>'1234'<\/code> und anschlie\u00dfend in einem <code>config<\/code>-Aufruf als <code>'ABCD'<\/code> zugewiesen; danach lautet der globale Wert weiterhin <code>'1234'<\/code>. Die Geltungsbereiche halten ihre Werte nebeneinander, und die Rangfolge entscheidet erst zum Verarbeitungszeitpunkt, welcher gilt. Aus der Kombination beider Regeln folgt eine Konsequenz, die die Dokumentation nicht ausformuliert: Ein nach <code>config<\/code> abgesetzter <code>set<\/code>-Aufruf verdr\u00e4ngt keinen Wert, den <code>config<\/code> f\u00fcr dieses Ziel bereits belegt, und wirkt f\u00fcr die Parameter, die <code>config<\/code> unber\u00fchrt gelassen hat.<\/p>\n<p>Zur Wiederholung \u00e4u\u00dfert sich die Dokumentation eindeutig: <code>config<\/code> ist einmal pro Google Tag aufzurufen, jeder weitere Aufruf sollte <code>set<\/code> verwenden. Die Dokumentation empfiehlt au\u00dferdem, wo m\u00f6glich <code>config<\/code> oder <code>event<\/code> gegen\u00fcber <code>set<\/code> vorzuziehen, was insbesondere eigene Event-Parameter betrifft, weil <code>set<\/code> sie m\u00f6glicherweise nicht zuverl\u00e4ssig an alle Google-Analytics-Datenstr\u00f6me weitergibt. F\u00fcr dokumentierte globale Parameter wie <code>user_id<\/code>, <code>page_title<\/code> oder <code>currency<\/code> ist <code>set<\/code> das vorgesehene Instrument.<\/p>\n<h2>Der Fall im Detail: die User ID versp\u00e4tet \u00fcbergeben<\/h2>\n<p>User IDs sind selbst vergebene Kennungen f\u00fcr einzelne Nutzer; sie konsistent zu vergeben, ist Sache des Betreibers, \u00fcblicherweise beim Login. Ist die Kennung schon zum Rendering-Zeitpunkt bekannt, kann sie im <code>config<\/code>-Aufruf mitreisen. Wird sie erst nach dem Laden der Seite bekannt, ist <code>gtag('set')<\/code> der dokumentierte Weg. Das Snippet auf der Seite bleibt genau so, wie es installiert wurde.<\/p>\n<pre class=\"wp-block-code\"><code>&lt;script async src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=G-XXXXXXXXXX\"&gt;&lt;\/script&gt;\n&lt;script&gt;\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n  gtag('config', 'G-XXXXXXXXXX');\n&lt;\/script&gt;<\/code><\/pre>\n<p>Sobald die Login-Antwort eintrifft, gen\u00fcgt ein Befehl. Kein zweites <code>config<\/code>, kein zweites Snippet, kein Reload.<\/p>\n<pre class=\"wp-block-code\"><code>fetch('\/api\/session')\n  .then(function (response) { return response.json(); })\n  .then(function (session) {\n    if (session.analyticsId) {\n      gtag('set', { 'user_id': session.analyticsId });\n    }\n    gtag('event', 'login', { 'method': 'password' });\n  });<\/code><\/pre>\n<p>Was danach geschieht, teilt sich zwischen Browser und Verarbeitungsseite auf. Im Browser setzt die Wirkung im Moment des Aufrufs ein und reicht bis zum Ende der Seite. Jedes nach dem <code>set<\/code>-Befehl abgesetzte Event tr\u00e4gt <code>user_id<\/code>, jedes davor abgesetzte nicht. Die Formulierung in der Referenz \u2014 Parameter, die jedem nachfolgenden Event auf der Seite zugeordnet werden \u2014 begrenzt die Wirkung zeitlich nach vorn und auf das aktuelle Dokument. Eine klassische Multi-Page-Website setzt den Befehl deshalb bei jedem Seitenaufruf erneut ab, eine Single-Page-Application einmal f\u00fcr die Lebensdauer des Dokuments.<\/p>\n<p>Auf der Verarbeitungsseite gehen die fr\u00fcheren Events nicht verloren. Analytics ordnet Events, die vor dem Setzen der User ID ausgel\u00f6st wurden, dieser User ID zu. Das dokumentierte Beispiel f\u00fchrt durch eine Sitzung, die abgemeldet beginnt: Event 1 und Event 2 tragen keine Kennung, der Nutzer meldet sich an, Event 3 folgt \u2014 und anschlie\u00dfend sind Event 1, 2 und 3 s\u00e4mtlich der ID dieses Nutzers zugeordnet. Zwei Grenzen gelten. Die Zuordnung wird innerhalb einer Sitzung beschrieben, und sie reicht nicht in Daten zur\u00fcck, die vor dem Bestehen der Implementierung erhoben wurden; solche Daten werden nicht erneut verarbeitet. Ob sie fr\u00fchere, bereits abgeschlossene Sitzungen auf demselben Ger\u00e4t umfasst, geht aus den Prim\u00e4rquellen nicht hervor.<\/p>\n<p>Die Abmeldung ist das Spiegelbild. Der Wert wird auf <code>null<\/code> gesetzt \u2014 nicht auf einen leeren String, nicht auf ein Leerzeichen, nicht auf die Zeichenkette <code>\"null\"<\/code>.<\/p>\n<pre class=\"wp-block-code\"><code>gtag('set', { 'user_id': null });<\/code><\/pre>\n<p>Analytics ordnet nachfolgende Events dieser User ID daraufhin nicht mehr zu: Im dokumentierten Beispiel bleiben die Events 1 bis 3 zugeordnet, Event 4 nicht. Eine erneute Anmeldung mit derselben Kennung innerhalb derselben Sitzung nimmt die Zuordnung wieder auf.<\/p>\n<h2>Der update-Parameter: zusammenf\u00fchren statt neu initialisieren<\/h2>\n<p>Der <code>set<\/code>-Befehl beantwortet eine Frage: welcher Wert soll ab<br \/>\njetzt mit allem mitreisen, was die Seite sendet. Ein zweites, enger gefasstes<br \/>\nMittel beantwortet eine andere: wie sich eine bestehende Konfiguration \u00e4ndern<br \/>\nl\u00e4sst, ohne die Nebenwirkungen eines frischen <code>config<\/code>-Aufrufs. Dieses<br \/>\nMittel ist der <code>update<\/code>-Parameter, \u00fcbergeben innerhalb von<br \/>\n<code>config<\/code> selbst.<\/p>\n<blockquote>\n<p>Auf <code>true<\/code> gesetzt, f\u00fchrt der <code>update<\/code>-Parameter neue oder ge\u00e4nderte Parameter in die bestehende Google-Tag-Konfiguration zusammen, sendet f\u00fcr diese Aktualisierung aber kein <code>page_view<\/code>-Ereignis. \u00dcblich ist das in Single-Page-Anwendungen, um Parameter zu aktualisieren, ohne den Tag neu zu initialisieren.<\/p>\n<\/blockquote>\n<p>Das Feld ist ein Wahrheitswert und steht standardm\u00e4\u00dfig auf<br \/>\n<code>false<\/code>. Genau diese Vorbelegung erkl\u00e4rt den doppelten Treffer aus<br \/>\ndem vorigen Abschnitt: ohne <code>update<\/code> gilt der Aufruf als frische<br \/>\nKonfiguration, und eine frische Konfiguration sendet einen<br \/>\n<code>page_view<\/code>.<\/p>\n<pre class=\"wp-block-code\"><code>gtag('config', 'G-XXXXXXXXXX', {\n  'update': true,\n  'page_location': 'https:\/\/example.com\/new-page'\n});<\/code><\/pre>\n<p>Zwei Unterschiede trennen das von <code>set<\/code>. Der erste ist die<br \/>\nReichweite: <code>update<\/code> f\u00fchrt in die Konfiguration des einen genannten<br \/>\nZiels zusammen, w\u00e4hrend <code>set<\/code> global f\u00fcr jedes folgende Ereignis und<br \/>\njedes Ziel zuweist. Der zweite ist die Absicht: <code>update<\/code> \u00fcberarbeitet,<br \/>\nwas der Tag bereits h\u00e4lt, w\u00e4hrend <code>set<\/code> einen Wert obendrauf legt,<br \/>\nohne anzutasten, was <code>config<\/code> besetzt.<\/p>\n<p>Damit ist die Wahl einigerma\u00dfen klar. Eine nach der Anmeldung eintreffende<br \/>\nUser ID geh\u00f6rt in <code>set<\/code> \u2014 sie ist eine globale Eigenschaft von allem,<br \/>\nwas folgt. Ein Seitenwechsel in einer Single-Page-Anwendung geh\u00f6rt in<br \/>\n<code>config<\/code> mit <code>update<\/code> auf <code>true<\/code>, denn<br \/>\n<code>page_location<\/code> und <code>page_title<\/code> sind Konfiguration dieses<br \/>\neinen Streams, und der zugeh\u00f6rige <code>page_view<\/code> wird besser bewusst<br \/>\ngesendet als beil\u00e4ufig erzeugt.<\/p>\n<h2>Der Weg \u00fcber den Google Tag Manager<\/h2>\n<p>Tag Manager und gtag.js teilen sich ein einziges globales <code>window.dataLayer<\/code>; pro Seite wird nur ein solches Objekt unterst\u00fctzt, und <code>gtag()<\/code> ist ein Wrapper, der seine Argumente hineinschiebt. Ein \u00fcber GTM ausgespieltes Google Tag verarbeitet zus\u00e4tzlich zu den in der Oberfl\u00e4che konfigurierten Einstellungen auch <code>gtag()<\/code>-Befehle auf der Seite. F\u00fcr gemeinsamen Kontext \u00fcber mehrere Google Tags hinweg nennt die GTM-Hilfeseite gtag.js auf der Website selbst \u2014 mit dem Hinweis, dass globale Parameter von allen Google Tags der Website gelesen werden und nur unkritische Daten enthalten sollten.<\/p>\n<p>Was die GTM-Oberfl\u00e4che nicht bietet, ist ein fertiger Tag-Typ f\u00fcr ein sp\u00e4tes <code>set<\/code>. Die Variable <em>Konfigurationseinstellungen<\/em> setzt Parameter, die beim Laden des Google Tags geladen werden \u2014 ein Mechanismus zur Ladezeit; die Variable <em>Ereigniseinstellungen<\/em> erg\u00e4nzt Parameter pro Event. Keine der beiden aktualisiert ein bereits laufendes Google Tag. Das containerseitige \u00c4quivalent liegt eine Ebene unter der Oberfl\u00e4che, in der Custom-Templates-API: <code>gtagSet(object)<\/code> schiebt einen gtag-set-Befehl in den Data Layer, der verarbeitet wird, sobald das aktuelle Event und die davon ausgel\u00f6sten Tags abgeschlossen sind, und die Referenz garantiert, dass diese Aktualisierung im Container vor allen bereits im Data Layer wartenden Eintr\u00e4gen behandelt wird. Der Weg ist damit dokumentiert; es fehlt lediglich ein vorkonfigurierter Tag-Typ daf\u00fcr, sodass die Aktualisierung \u00fcber ein eigenes Template l\u00e4uft. Ein fertiges Tag mit diesem Verhalten wird in der hier gesichteten Dokumentation nicht beschrieben, was ein negativer Befund ist und kein ausdr\u00fccklicher Ausschluss durch Google.<\/p>\n<p>Die Warteschlange trennt die beiden Wege. Tag Manager verarbeitet Nachrichten nach dem First-in-first-out-Prinzip, eine nach der anderen in der Reihenfolge des Eingangs. Ein <code>gtag()<\/code>&#8211; oder <code>dataLayer.push()<\/code>-Aufruf aus dem Seitencode oder aus einem Custom-HTML-Tag reiht sich hinter allen ausstehenden Nachrichten ein, und die aktualisierten Werte stehen f\u00fcr das n\u00e4chste Event nicht garantiert zur Verf\u00fcgung; dasselbe gilt f\u00fcr einen generischen Data-Layer-Push aus Template-Code. Die beiden dedizierten Template-APIs sind die dokumentierte Ausnahme: <code>gtagSet<\/code> und das verwandte <code>updateConsentState<\/code> werden garantiert im Container vor allem verarbeitet, was in der Data-Layer-Warteschlange wartet. Die Einschr\u00e4nkung liegt also nicht am Container als solchem, sondern am darin gew\u00e4hlten Weg \u2014 ein roher Push gibt keine Reihenfolgegarantie, die Template-API schon.<\/p>\n<p>Das Google Tag erneut auszul\u00f6sen, um die Kennung einzuschleusen, ist aus einem zweiten Grund der falsche Hebel. Der <code>config<\/code>-Befehl st\u00f6\u00dft in manchen Produkten ein Pageview-Event an, in Google Analytics sendet er beim Laden des Tags <code>page_view<\/code>, und dasselbe Google Tag zweimal auf einer Seite zu konfigurieren, kann doppelte Daten oder vermischte Einstellungen verursachen. Dass ein zweites Ausl\u00f6sen des GTM-Google-Tags einen zweiten <code>page_view<\/code> erzeugt, ist eine naheliegende Schlussfolgerung aus diesen Bausteinen und keine Aussage, die Google f\u00fcr diesen Tag-Typ trifft. Eine Unterdr\u00fcckung ist mit <code>send_page_view: false<\/code> m\u00f6glich \u2014 im Snippet, global \u00fcber <code>set<\/code> oder in der Variablen Konfigurationseinstellungen \u2014, diese Einstellung tr\u00e4gt jedoch nicht \u00fcber Seiten hinweg.<\/p>\n<p>Eine Ank\u00fcndigung vom 20. Mai 2026 geh\u00f6rt ins Bild: Neue Bereitstellungs-Snippets werden einheitlich sein und den <code>gtag<\/code>-config-Befehl entfallen lassen, wobei die Initialisierung \u00fcber einen <em>gtm init<\/em>-Trigger konfiguriert wird, der auch auf den config-Befehl warten kann, um ein bestehendes Altsetup zu erhalten. Automatisch \u00e4ndert sich nichts, das Verhalten auf der Seite wird als unver\u00e4ndert beschrieben, und das Installationsbeispiel in der Entwicklerdokumentation zeigt weiterhin <code>gtag('config', 'TAG_ID');<\/code>.<\/p>\n<h2>Der verwandte Fall: Consent Mode<\/h2>\n<p>Consent Mode folgt derselben Form \u2014 ein Wert, der beim Laden des Tags unbekannt ist und sp\u00e4ter ohne Neuladen \u00fcbergeben wird \u2014 mit anderem Ziel und strengerer Reihenfolge. Standardm\u00e4\u00dfig sind keine Consent-Mode-Werte gesetzt. Der <code>default<\/code>-Befehl muss auf jeder Seite vor jedem Befehl laufen, der Messdaten sendet; in falscher Reihenfolge aufgerufen, wirken die Voreinstellungen nicht.<\/p>\n<pre class=\"wp-block-code\"><code>gtag('consent', 'default', {\n  'ad_storage': 'denied',\n  'ad_user_data': 'denied',\n  'ad_personalization': 'denied',\n  'analytics_storage': 'denied',\n  'wait_for_update': 500\n});<\/code><\/pre>\n<p>Der Wert <code>wait_for_update<\/code> in Millisekunden steuert, wie lange das Tag wartet, bevor es Daten sendet, was f\u00fcr asynchron ladende Consent-L\u00f6sungen von Bedeutung ist; sind Netzwerkanfragen im Spiel, werden mindestens 500 Millisekunden nahegelegt. Voreinstellungen lassen sich nach Region gem\u00e4\u00df ISO 3166-2 differenzieren, wobei die spezifischere Region den Vorrang hat.<\/p>\n<p>Das Update geschieht auf der Seite, auf der die Entscheidung f\u00e4llt, vor jedem Seitenwechsel, denn Consent Mode speichert die Auswahl nicht selbst.<\/p>\n<pre class=\"wp-block-code\"><code>gtag('consent', 'update', {\n  'ad_storage': 'granted',\n  'ad_user_data': 'granted',\n  'ad_personalization': 'granted',\n  'analytics_storage': 'granted'\n});<\/code><\/pre>\n<p>Ein Reload ist nicht erforderlich, und der Zustandswechsel erzeugt selbst ein Signal: Consent-State-Pings werden von jeder Seite gesendet, auf der Consent Mode aktiviert ist, und werden f\u00fcr einige Tags zus\u00e4tzlich ausgel\u00f6st, wenn der Zustand von denied auf granted wechselt. In der erweiterten Implementierung laden die Tags sofort und senden, solange die Einwilligung verweigert ist, Messungen ohne Cookies. Innerhalb von Tag-Manager-Templates ist der gtag-consent-Befehl ausdr\u00fccklich nicht zu verwenden \u2014 die API <code>updateConsentState<\/code> existiert, damit Consent-Updates vor wartenden Data-Layer-Eintr\u00e4gen verarbeitet werden, dieselbe Reihenfolgegarantie, die <code>gtagSet<\/code> f\u00fcr Parameter mitbringt.<\/p>\n<h2>Fallstricke und Pr\u00fcfungen<\/h2>\n<ul>\n<li><strong>Geltungsbereich, kein \u00dcberschreiben.<\/strong> Ein sp\u00e4tes <code>set<\/code> schreibt nicht um, was <code>config<\/code> oder ein Parameter auf Event-Ebene bereits h\u00e4lt. Wo ein Wert sich durchsetzen muss, geh\u00f6rt er in den h\u00f6herrangigen Geltungsbereich.<\/li>\n<li><strong>Seitengrenzen und Reihenfolge.<\/strong> <code>set<\/code> reicht nur nach vorn und nur innerhalb des aktuellen Dokuments; serverseitig gerenderte Navigationen brauchen den Befehl erneut. Das Snippet muss oberhalb der Event-Befehle stehen, und <code>set<\/code> geh\u00f6rt \u00fcber <code>config<\/code>, wenn mehrere Tag-IDs die Werte erben sollen.<\/li>\n<li><strong>Weg durch den Container.<\/strong> Innerhalb von GTM liegt die Reihenfolgegarantie bei den Template-APIs. Ein sp\u00e4ter Wert, der aus einem Custom-HTML-Tag gepusht wird, konkurriert mit der Warteschlange; derselbe Wert, \u00fcber <code>gtagSet<\/code> in einem eigenen Template \u00fcbergeben, nicht.<\/li>\n<li><strong>Hygiene der Kennung.<\/strong> Ein User-ID-Wert ist auf 256 Zeichen begrenzt, laut Measurement-Protocol-Referenz ausschlie\u00dflich UTF-8, und darf keine Informationen enthalten, mit denen ein Dritter die Identit\u00e4t eines Nutzers bestimmen k\u00f6nnte; E-Mail-Adressen und private Mobilfunknummern werden als unzul\u00e4ssig genannt. Ob eine gehashte Ableitung zul\u00e4ssig ist, l\u00e4sst sich aus den Prim\u00e4rquellen nicht kl\u00e4ren.<\/li>\n<li><strong>Keine benutzerdefinierte Dimension auf der ID.<\/strong> Von der Registrierung von <code>user_id<\/code> als benutzerdefinierte Dimension wird wegen der sehr hohen Zahl unterschiedlicher Werte abgeraten.<\/li>\n<li><strong>Berichtsidentit\u00e4t.<\/strong> Die ger\u00e4tebasierte Berichterstattung zeigt keine User-ID-Analyse; erforderlich ist Blended oder Observed. Die Wahl beeinflusst weder Erhebung noch Verarbeitung.<\/li>\n<li><strong>Verifikation.<\/strong> <code>gtag('get', \u2026)<\/code> liest <code>client_id<\/code>, <code>session_id<\/code>, <code>session_number<\/code> und <code>gclid<\/code> zur\u00fcck, und ein per <code>set<\/code> einem dieser Felder zugewiesener Wert hat Vorrang vor dem intern abgeleiteten. Tag Assistant weist Consent in den getrennten Spalten <em>On-page Default<\/em> und <em>On-page Update<\/em> aus.<\/li>\n<\/ul>\n<h2>Fazit<\/h2>\n<p>Die Abw\u00e4gung ist einseitig. Ein geladenes Google Tag neu zu konfigurieren, um einen Wert anzuh\u00e4ngen, kostet eine doppelte Initialisierung, riskiert vermischte Einstellungen und einen zweiten <code>page_view<\/code> und bringt nichts ein, was ein einzelner <code>set<\/code>-Befehl nicht liefert. F\u00fcr die User ID f\u00e4llt die Rechnung noch klarer aus, weil die Verarbeitungsseite die L\u00fccke schlie\u00dft, die der Browser offen l\u00e4sst: Bereits innerhalb der Sitzung gesendete Events werden der Kennung nachtr\u00e4glich zugeordnet, die Hits vor dem Login sind also nicht verloren.<\/p>\n<p>Was der Ansatz nicht leistet, ist das \u00dcberschreiten von Grenzen, die ihm nie gegeben wurden. Er \u00fcberdauert keinen Seitenwechsel, er sticht keinen Wert aus, den ein h\u00f6herer Geltungsbereich bereits h\u00e4lt, und er reicht nicht in Daten zur\u00fcck, die vor dem Bestehen der Implementierung erhoben wurden. Consent Mode zeigt dasselbe Muster aus anderem Blickwinkel: eine dokumentierte Voreinstellung, ein sp\u00e4teres Update auf derselben Seite, ein Zustandswechsel, der die Tags ohne Reload erreicht. Wo ein Container das Tag verwaltet, ist die Warteschlange die Randbedingung, um die herum zu entwerfen ist, und <code>gtagSet<\/code> zusammen mit <code>updateConsentState<\/code> ist die dokumentierte Ausnahme davon \u2014 zum Preis eines eigenen Templates. Die angek\u00fcndigte Vereinheitlichung von Google Tag und Tag Manager, im August 2026 noch im Futur, ist eher zu beobachten als vorwegzunehmen.<\/p>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/gtagjs\/reference\" target=\"_blank\" rel=\"noopener noreferrer\">gtag.js reference<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/gtagjs\/configure\" target=\"_blank\" rel=\"noopener noreferrer\">Google tag: gtag.js configuration<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag(&#8216;set&#8217;)-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.<\/p>\n","protected":false},"author":1,"featured_media":9752,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[92091,92145,92268,92032,92110],"class_list":["post-9749","post","type-post","status-publish","format-standard","hentry","category-digital-analytics-de","tag-google-analytics-4-de","tag-google-tag-manager-de","tag-javascript-de","tag-tracking-de","tag-web-analytics-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>gtag(&#039;set&#039;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben - Lukas Wojcik - Blog<\/title>\n<meta name=\"description\" content=\"Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag(&#039;set&#039;)-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.\" \/>\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-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"gtag(&#039;set&#039;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag(&#039;set&#039;)-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-16T13:00:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 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-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"gtag(&#8216;set&#8217;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben\",\"datePublished\":\"2026-08-16T13:00:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/\"},\"wordCount\":2329,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg\",\"keywords\":[\"Google Analytics 4\",\"Google Tag Manager\",\"JavaScript\",\"Tracking\",\"Web Analytics\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/\",\"name\":\"gtag('set') in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg\",\"datePublished\":\"2026-08-16T13:00:54+00:00\",\"description\":\"Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag('set')-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg\",\"width\":1200,\"height\":630,\"caption\":\"gtag('set') in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"gtag(&#8216;set&#8217;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben\"}]},{\"@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\":\"luky\",\"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\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"gtag('set') in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben - Lukas Wojcik - Blog","description":"Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag('set')-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.","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-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/","og_locale":"en_US","og_type":"article","og_title":"gtag('set') in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben - Lukas Wojcik - Blog","og_description":"Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag('set')-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-08-16T13:00:54+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg","type":"image\/jpeg"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"gtag(&#8216;set&#8217;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben","datePublished":"2026-08-16T13:00:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/"},"wordCount":2329,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg","keywords":["Google Analytics 4","Google Tag Manager","JavaScript","Tracking","Web Analytics"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/","name":"gtag('set') in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg","datePublished":"2026-08-16T13:00:54+00:00","description":"Wenn die User ID erst nach dem Laden der Seite bekannt wird, gen\u00fcgt ein einzelner gtag('set')-Befehl statt einer zweiten Konfiguration des Google Tags. Der Artikel ordnet Geltungsbereiche, Verarbeitungsseite, den Weg \u00fcber den Google Tag Manager und den verwandten Fall Consent Mode ein.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9749-gtag-set-in-der-praxis-eine-user-id-an-ein-bereits-g.jpg","width":1200,"height":630,"caption":"gtag('set') in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/gtagset-in-der-praxis-eine-user-id-an-ein-bereits-geladenes-google-tag-ubergeben\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"gtag(&#8216;set&#8217;) in der Praxis: eine User ID an ein bereits geladenes Google Tag \u00fcbergeben"}]},{"@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":"luky","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":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9749","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=9749"}],"version-history":[{"count":2,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9749\/revisions"}],"predecessor-version":[{"id":10070,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9749\/revisions\/10070"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/9752"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=9749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=9749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=9749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}