{"id":13137,"date":"2026-09-22T12:45:00","date_gmt":"2026-09-22T10:45:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=13137"},"modified":"2026-10-26T13:26:41","modified_gmt":"2026-10-26T12:26:41","slug":"tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/","title":{"rendered":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen"},"content":{"rendered":"<p>Eine Datenschichtvariable in Google Tag Manager (GTM) kann eine Zahl, eine Zeichenkette, ein Objekt oder eine ganze Liste zur\u00fcckgeben. Die Punktnotation w\u00e4hlt einen Wert aus verschachtelten Daten. Entscheidend ist der Unterschied zwischen Feldname und Listenposition: <code>items.0<\/code> bezeichnet den ersten Eintrag, kein bestimmtes Produkt.<\/p>\n<p>Haltbare Variablen brauchen eine dokumentierte Datenstruktur, vollst\u00e4ndige Ereignisdaten und Pr\u00fcfungen auf fehlende Werte. Ein Index eignet sich f\u00fcr eine ausdr\u00fccklich gemeinte Position; die Produktidentit\u00e4t braucht eine Kennung.<\/p>\n<figure class=\"lw-diagram\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/quality-13137-20261024.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\" alt=\"Benannte Pfade w\u00e4hlen Felder; numerische Indizes w\u00e4hlen Positionen. Die ganze Artikelliste vermeidet eine feste Produktanzahl.\"><figcaption>Benannte Pfade w\u00e4hlen Felder; numerische Indizes w\u00e4hlen Positionen. Die ganze Artikelliste vermeidet eine feste Produktanzahl.<\/figcaption><\/figure>\n<h2>Ein vollst\u00e4ndiges add_to_cart-Ereignis<\/h2>\n<p>Das Beispiel f\u00fcgt in einer Aktion zwei St\u00fchle und einen Tisch hinzu. Das Ereignis enth\u00e4lt diese neu hinzugef\u00fcgten Artikel, nicht den gesamten bestehenden Warenkorb. Der Wert betr\u00e4gt <code>64.95 \u00d7 2 + 219.00 \u00d7 1 = 348.90<\/code>, ohne Versand und Steuern. Bei Angabe eines Wertes ist die W\u00e4hrung erforderlich.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"javascript\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">JavaScript<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-javascript\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">window.dataLayer = window.dataLayer || &#91;&#93;;\n<\/span><span class=\"cbb-line\">dataLayer.<span class=\"cbb-function\">push<\/span>({ ecommerce: <span class=\"cbb-constant\">null<\/span> });\n<\/span><span class=\"cbb-line\">dataLayer.<span class=\"cbb-function\">push<\/span>({\n<\/span><span class=\"cbb-line\">  event: <span class=\"cbb-string\">\"add_to_cart\"<\/span>,\n<\/span><span class=\"cbb-line\">  ecommerce: {\n<\/span><span class=\"cbb-line\">    currency: <span class=\"cbb-string\">\"EUR\"<\/span>,\n<\/span><span class=\"cbb-line\">    value: <span class=\"cbb-number\">348.90<\/span>,\n<\/span><span class=\"cbb-line\">    items: &#91;\n<\/span><span class=\"cbb-line\">      { item_id: <span class=\"cbb-string\">\"SKU-42\"<\/span>, item_name: <span class=\"cbb-string\">\"Stuhl\"<\/span>, price: <span class=\"cbb-number\">64.95<\/span>, quantity: <span class=\"cbb-number\">2<\/span>,\n<\/span><span class=\"cbb-line\">        item_category: <span class=\"cbb-string\">\"Moebel\"<\/span>, index: <span class=\"cbb-number\">0<\/span> },\n<\/span><span class=\"cbb-line\">      { item_id: <span class=\"cbb-string\">\"SKU-77\"<\/span>, item_name: <span class=\"cbb-string\">\"Tisch\"<\/span>, price: <span class=\"cbb-number\">219.00<\/span>, quantity: <span class=\"cbb-number\">1<\/span>,\n<\/span><span class=\"cbb-line\">        item_category: <span class=\"cbb-string\">\"Moebel\"<\/span>, index: <span class=\"cbb-number\">1<\/span> }\n<\/span><span class=\"cbb-line\">    &#93;\n<\/span><span class=\"cbb-line\">  },\n<\/span><span class=\"cbb-line\">  user: { logged_in: <span class=\"cbb-constant\">true<\/span>, segment: <span class=\"cbb-string\">\"b2b\"<\/span> }\n<\/span><span class=\"cbb-line\">});<\/span><\/code><\/pre><\/figure>\n<p>Die Initialisierung erh\u00e4lt eine vorhandene Warteschlange. Das Leeren von <code>ecommerce<\/code> verhindert alte Felder in diesem vollst\u00e4ndigen Datensatz. Ereignisname und zugeh\u00f6rige Daten geh\u00f6ren in denselben Push. <code>user.segment<\/code> zeigt zus\u00e4tzlichen Anwendungszustand; ein Push allein richtet noch keine GA4-Nutzereigenschaft ein.<\/p>\n<h2>Verschachtelte Felder mit Version 2 lesen<\/h2>\n<p>Eine Datenschichtvariable mit Anzeigename <code>DLV - ecommerce.currency<\/code>, Datenschichtvariablenname <code>ecommerce.currency<\/code> und Version 2 liefert <code>EUR<\/code>. Der Anzeigename ist frei w\u00e4hlbar; den Wert bestimmt der konfigurierte Pfad. Weitere Variablen k\u00f6nnen <code>ecommerce.value<\/code>, <code>ecommerce.items<\/code> und <code>ecommerce<\/code> lesen. Die letzten beiden liefern eine Liste beziehungsweise ein Objekt.<\/p>\n<p>Version 1 behandelt Punkte als w\u00f6rtliche Bestandteile eines Schl\u00fcssels. Version 2 interpretiert Punkte als Verschachtelung und kann auch gepunktete Schl\u00fcssel wie <code>{\"page.type\":\"pdp\"}<\/code> in eine verschachtelte Struktur aufl\u00f6sen. Ein gepunkteter Schl\u00fcssel verlangt daher nicht automatisch Version 1. Einheitliche verschachtelte Objekte vermeiden mehrdeutige Mischungen aus gepunkteten Schl\u00fcsseln und Objekteigenschaften.<\/p>\n<p>Gro\u00df- und Kleinschreibung z\u00e4hlt. Ein fehlender Pfad ohne eingerichteten Standardwert liefert <code>undefined<\/code>. Die weitere Verarbeitung h\u00e4ngt vom Tag und davon ab, wie Werte in die ausgehende Anfrage umgewandelt werden: Ein Parameter kann entfallen oder umgewandelt werden; eigener Code kann auch fehlschlagen. Daraus folgt weder automatisch ein leerer Parameter noch eine bestimmte Berichtsdifferenz.<\/p>\n<h2>Position und Identit\u00e4t unterscheiden<\/h2>\n<table><thead><tr><th>Pfad<\/th><th>Bedeutung<\/th><\/tr><\/thead><tbody><tr><td><code>ecommerce.currency<\/code><\/td><td>W\u00e4hrung des Ereignisses<\/td><\/tr><tr><td><code>ecommerce.value<\/code><\/td><td>Wert des Ereignisses<\/td><\/tr><tr><td><code>user.segment<\/code><\/td><td>Anwendungssegment<\/td><\/tr><tr><td><code>ecommerce.items<\/code><\/td><td>Ganze Artikelliste<\/td><\/tr><tr><td><code>ecommerce.items.0.item_id<\/code><\/td><td>ID des ersten Artikels<\/td><\/tr><tr><td><code>ecommerce.items.1.price<\/code><\/td><td>Preis des zweiten Artikels; fehlt bei nur einem Artikel<\/td><\/tr><\/tbody><\/table>\n<p>Ein benannter Pfad bleibt nur bei passendem Schema und vorhandenen Ereignisdaten brauchbar. Ein Indexpfad bleibt richtig, wenn tats\u00e4chlich \u201eder erste Artikel\u201c gemeint ist; nach einer Umsortierung steht an dieser Position ein anderes Produkt. Eine produktspezifische Suche verwendet <code>item_id<\/code>. F\u00fcr GA4-E-Commerce eignet sich normalerweise die ganze Liste <code>ecommerce.items<\/code>. Bei bereits passendem Quellformat ist keine eigene Umwandlung n\u00f6tig.<\/p>\n<h2>Nachrichtenliste und zusammengef\u00fchrtes Modell<\/h2>\n<p><code>window.dataLayer<\/code> ist eine Liste wartender Nachrichten. GTM verarbeitet die Nachrichten und f\u00fchrt ein internes Datenmodell. Version 2 kann Objekte und Listen auch auf tiefer verschachtelten Ebenen zusammenf\u00fchren: Ausgelassene Felder oder hintere Listeneintr\u00e4ge k\u00f6nnen aus \u00e4lteren Nachrichten erhalten bleiben. Eine k\u00fcrzere Liste entfernt fr\u00fchere Eintr\u00e4ge deshalb nicht zuverl\u00e4ssig.<\/p>\n<p>Googles GTM-Beispiele f\u00fcr E-Commerce leeren das bisherige Objekt mit <code>dataLayer.push({ecommerce:null})<\/code>, bevor ein vollst\u00e4ndiges Ereignis folgt. Dieses Muster passt zum obigen Beispiel. Absichtlich \u00fcber mehrere Nachrichten aufgebaute Zust\u00e4nde brauchen dagegen abgestimmte R\u00fccksetzungen und vollst\u00e4ndige Nutzdaten; blindes Leeren vor einem unvollst\u00e4ndigen Datensatz kann ben\u00f6tigte Werte entfernen.<\/p>\n<h2>Optionale Pr\u00fcfung ohne erfundene Standardwerte<\/h2>\n<p>Die folgende benutzerdefinierte JavaScript-Variable mit Namen <code>JS - ecommerce valid<\/code> liest eine Datenschichtvariable der Version 2 namens <code>DLV - ecommerce<\/code>. Die Funktion liefert einen Wahrheitswert und ver\u00e4ndert die Quelle nicht.<\/p>\n<p>Die Regeln dieses Beispiels sind bewusst streng: EUR, numerische nichtnegative Preise und Werte, positive ganzzahlige Mengen sowie mindestens eine nichtleere Zeichenkette in <code>item_id<\/code> oder <code>item_name<\/code>. Jede \u00fcbergebene Kennung und jeder \u00fcbergebene Name muss eine nichtleere Zeichenkette sein. GA4 akzeptiert auch einen Artikel nur mit Namen; eine ID ist nicht grunds\u00e4tzlich Pflicht. Bei fehlender Menge verwendet GA4 den Wert 1. Dieses Beispiel verlangt trotzdem eine ausdr\u00fcckliche Menge, damit fehlende Shopdaten auffallen.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"javascript\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">JavaScript<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-javascript\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-keyword\">function<\/span> () {\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">var<\/span> e = {{DLV - ecommerce}};\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">function<\/span> <span class=\"cbb-function\">number<\/span>(x) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-keyword\">typeof<\/span> x === <span class=\"cbb-string\">\"number\"<\/span> &amp;&amp; <span class=\"cbb-function\">isFinite<\/span>(x); }\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">function<\/span> <span class=\"cbb-function\">text<\/span>(x) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-keyword\">typeof<\/span> x === <span class=\"cbb-string\">\"string\"<\/span> &amp;&amp; x.<span class=\"cbb-function\">trim<\/span>() !== <span class=\"cbb-string\">\"\"<\/span>; }\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">if<\/span> (!e || e.currency !== <span class=\"cbb-string\">\"EUR\"<\/span> || !<span class=\"cbb-function\">number<\/span>(e.value) || e.value &lt; <span class=\"cbb-number\">0<\/span> ||\n<\/span><span class=\"cbb-line\">      !<span class=\"cbb-type\">Array<\/span>.<span class=\"cbb-function\">isArray<\/span>(e.items) || !e.items.length) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-constant\">false<\/span>; }\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">var<\/span> sum = <span class=\"cbb-number\">0<\/span>;\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">for<\/span> (<span class=\"cbb-keyword\">var<\/span> i = <span class=\"cbb-number\">0<\/span>; i &lt; e.items.length; i++) {\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">var<\/span> a = e.items&#91;i&#93;;\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> (!a || <span class=\"cbb-keyword\">typeof<\/span> a !== <span class=\"cbb-string\">\"object\"<\/span> || <span class=\"cbb-type\">Array<\/span>.<span class=\"cbb-function\">isArray<\/span>(a)) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-constant\">false<\/span>; }\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> (!<span class=\"cbb-function\">text<\/span>(a.item_id) &amp;&amp; !<span class=\"cbb-function\">text<\/span>(a.item_name)) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-constant\">false<\/span>; }\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> (a.item_id !== <span class=\"cbb-constant\">undefined<\/span> &amp;&amp; !<span class=\"cbb-function\">text<\/span>(a.item_id)) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-constant\">false<\/span>; }\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> (a.item_name !== <span class=\"cbb-constant\">undefined<\/span> &amp;&amp; !<span class=\"cbb-function\">text<\/span>(a.item_name)) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-constant\">false<\/span>; }\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">if<\/span> (!<span class=\"cbb-function\">number<\/span>(a.price) || a.price &lt; <span class=\"cbb-number\">0<\/span> ||\n<\/span><span class=\"cbb-line\">        !<span class=\"cbb-function\">number<\/span>(a.quantity) || a.quantity &lt;= <span class=\"cbb-number\">0<\/span> ||\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-type\">Math<\/span>.<span class=\"cbb-function\">floor<\/span>(a.quantity) !== a.quantity) { <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-constant\">false<\/span>; }\n<\/span><span class=\"cbb-line\">    sum += a.price * a.quantity;\n<\/span><span class=\"cbb-line\">  }\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">return<\/span> <span class=\"cbb-function\">isFinite<\/span>(sum) &amp;&amp; <span class=\"cbb-type\">Math<\/span>.<span class=\"cbb-function\">abs<\/span>(sum - e.value) &lt; <span class=\"cbb-number\">0.005<\/span>;\n<\/span><span class=\"cbb-line\">}<\/span><\/code><\/pre><\/figure>\n<p>Der Vergleich erlaubt eine Gleitkommaabweichung von weniger als einem halben Eurocent. Das ist eine Beispielpr\u00fcfung f\u00fcr EUR, kein allgemeines W\u00e4hrungs-, Rabatt- oder Steuermodell. Kostenlose Artikel mit echtem numerischem Preis 0 bleiben g\u00fcltig. Zeichenketten wie <code>\"64.95\"<\/code>, fehlerhafte Preise und Nullmengen fallen durch, statt unbemerkt zu 0 oder 1 zu werden. Optionale Artikelfelder bleiben erhalten, weil die Liste nicht neu aufgebaut wird.<\/p>\n<p>F\u00fcr das GA4-Tag <code>add_to_cart<\/code> verwendet ein Trigger vom Typ \u201eBenutzerdefiniertes Ereignis\u201c den Ereignisnamen <code>add_to_cart<\/code> und zus\u00e4tzlich die Bedingung <code>{{JS - ecommerce valid}}<\/code> gleich <code>true<\/code>. Die Ereignisparameter <code>currency<\/code>, <code>value<\/code> und <code>items<\/code> erhalten die entsprechenden Variablen der Version 2. Die Pr\u00fcfung muss am tats\u00e4chlich sendenden Tag h\u00e4ngen; ein R\u00fcckgabewert <code>undefined<\/code> aus einer anderen Variablen stoppt kein Tag. Andere Trigger d\u00fcrfen die Pr\u00fcfung nicht umgehen.<\/p>\n<h2>Das gew\u00e4hlte Ereignis pr\u00fcfen<\/h2>\n<p>In der GTM-Vorschau liefern drei Ansichten desselben gew\u00e4hlten Ereignisses erg\u00e4nzende Informationen: urspr\u00fcngliche Nachricht, resultierender Datenschichtzustand und aufgel\u00f6ste Variablen. Zus\u00e4tzliche Modellfelder k\u00f6nnen beabsichtigter dauerhafter Zustand sein und sind nicht automatisch ein Fehler. Fehlende Ergebnisse k\u00f6nnen durch Zeitpunkt, R\u00fccksetzung, falsche Version, Schreibweise oder eigene Validierung entstehen.<\/p>\n<p>Eine sinnvolle Testfolge umfasst zwei Artikel, einen Artikel, ge\u00e4nderte Reihenfolge, einen kostenlosen Artikel, einen Artikel nur mit Namen und fehlerhafte Eingaben. Nach einem zweiten k\u00fcrzeren Ereignis d\u00fcrfen keine alten Produkte \u00fcbrig bleiben. Das Tag muss bei g\u00fcltigen Daten einmal ausl\u00f6sen und bei ung\u00fcltigen Daten blockiert bleiben. Tag Assistant und die ausgehende GA4-Anfrage pr\u00fcfen anschlie\u00dfend die konfigurierte Zuordnung; ein Funktionstest allein pr\u00fcft keinen Container.<\/p>\n<div class=\"lw-faq\"><h2>Fragen und Antworten<\/h2><h3>Was passiert mit einem Preis mit Dezimalkomma?<\/h3><p>Die Pr\u00fcfung lehnt Text einschlie\u00dflich <code>\"64,95\"<\/code> ab. Numerische Preise an der Quelle sind vorzuziehen. Die Umwandlung lokalisierter Zeichenketten braucht ein bekanntes Zahlenformat und ausdr\u00fcckliche Validierung; pauschales Entfernen von Punkten w\u00fcrde einen englischen Dezimalpreis in einen anderen Betrag verwandeln. Der Ausdruck <code>Number(value) || 0<\/code> verdeckt ung\u00fcltige Eingaben und eignet sich nicht als finanzieller Standardwert.<\/p><h3>Darf die eigene Variable eine weitere Nachricht senden?<\/h3><p>Nein. Die Auswertung einer Variablen kann mehrfach erfolgen. Eine reine Funktion liest Eingaben und liefert ein Ergebnis, ohne die Warteschlange oder Listeneintr\u00e4ge zu ver\u00e4ndern. Ein Push innerhalb der Variablen kann unerwartete Ereignisse oder Schleifen erzeugen.<\/p><\/div>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/datalayer\" target=\"_blank\" rel=\"noopener noreferrer\">Die Datenschicht<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\" target=\"_blank\" rel=\"noopener noreferrer\">Google Tag Manager: Dokumentation<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/tagmanager\/answer\/7683362?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">GTM: Variablentypen<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/ecommerce?client_type=gtm\" target=\"_blank\" rel=\"noopener noreferrer\">GA4-E-Commerce mit GTM<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/reference\/events?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">GA4: Ereignisreferenz<\/a><\/li><li><a href=\"https:\/\/github.com\/google\/data-layer-helper\" target=\"_blank\" rel=\"noopener noreferrer\">Google Data Layer Helper: Datenmodell und Zusammenf\u00fchrung<\/a><\/li><\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Verschachtelte dataLayer-Werte lassen sich mit Variablen der Version 2 direkt lesen. Ein vollst\u00e4ndiges E-Commerce-Beispiel erkl\u00e4rt Listenpositionen, zusammengef\u00fchrte Zust\u00e4nde und optionale Pr\u00fcfungen ohne erfundene Preise oder Mengen.<\/p>\n","protected":false},"author":1,"featured_media":28505,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115],"tags":[92145,92268,92032,92235],"class_list":["post-13137","post","type-post","status-publish","format-standard","hentry","category-tutorials-de","tag-google-tag-manager-de","tag-javascript-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>Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Verschachtelte Pushes mit Punktnotation lesen, stabile von indexabh\u00e4ngigen Pfaden trennen und die Zusammenf\u00fchrung verstehen, die alte Werte zur\u00fcckbringt.\" \/>\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\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Verschachtelte Pushes mit Punktnotation lesen, stabile von indexabh\u00e4ngigen Pfaden trennen und die Zusammenf\u00fchrung verstehen, die alte Werte zur\u00fcckbringt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-22T10:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T12:26:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-13137-20261024.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=\"6 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\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen\",\"datePublished\":\"2026-09-22T10:45:00+00:00\",\"dateModified\":\"2026-10-26T12:26:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/\"},\"wordCount\":1012,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13137.png\",\"keywords\":[\"Google Tag Manager\",\"JavaScript\",\"Tracking\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/\",\"name\":\"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13137.png\",\"datePublished\":\"2026-09-22T10:45:00+00:00\",\"dateModified\":\"2026-10-26T12:26:41+00:00\",\"description\":\"Verschachtelte Pushes mit Punktnotation lesen, stabile von indexabh\u00e4ngigen Pfaden trennen und die Zusammenf\u00fchrung verstehen, die alte Werte zur\u00fcckbringt.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13137.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/lw-flux3-20261031\\\/hero-13137.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen\"}]},{\"@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":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen | Lukas Wojcik","description":"Verschachtelte Pushes mit Punktnotation lesen, stabile von indexabh\u00e4ngigen Pfaden trennen und die Zusammenf\u00fchrung verstehen, die alte Werte zur\u00fcckbringt.","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\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen | Lukas Wojcik","og_description":"Verschachtelte Pushes mit Punktnotation lesen, stabile von indexabh\u00e4ngigen Pfaden trennen und die Zusammenf\u00fchrung verstehen, die alte Werte zur\u00fcckbringt.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-22T10:45:00+00:00","article_modified_time":"2026-10-26T12:26:41+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-13137-20261024.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen","datePublished":"2026-09-22T10:45:00+00:00","dateModified":"2026-10-26T12:26:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/"},"wordCount":1012,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13137.png","keywords":["Google Tag Manager","JavaScript","Tracking","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/","name":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13137.png","datePublished":"2026-09-22T10:45:00+00:00","dateModified":"2026-10-26T12:26:41+00:00","description":"Verschachtelte Pushes mit Punktnotation lesen, stabile von indexabh\u00e4ngigen Pfaden trennen und die Zusammenf\u00fchrung verstehen, die alte Werte zur\u00fcckbringt.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13137.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/lw-flux3-20261031\/hero-13137.png","width":1200,"height":630,"caption":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-aus-einem-verschachtelten-datalayer-haltbare-gtm-variablen-bauen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Aus einem verschachtelten dataLayer haltbare GTM-Variablen bauen"}]},{"@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\/13137","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=13137"}],"version-history":[{"count":5,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13137\/revisions"}],"predecessor-version":[{"id":27380,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13137\/revisions\/27380"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/28505"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=13137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=13137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=13137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}