{"id":227771,"date":"2026-10-06T16:11:59","date_gmt":"2026-10-06T16:11:59","guid":{"rendered":"https:\/\/datatrue.com\/?page_id=227771"},"modified":"2026-10-06T16:19:06","modified_gmt":"2026-10-06T16:19:06","slug":"data-layers","status":"publish","type":"page","link":"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/","title":{"rendered":"What Is a Data Layer?"},"content":{"rendered":"\n<style id=\"dt-divi-integration\">body h1.entry-title.main_title{display:none !important}#main-content .container{width:100% !important;max-width:100% !important;padding-left:0 !important;padding-right:0 !important;padding-top:0 !important}#left-area{width:100% !important;float:none !important;padding:0 !important}#sidebar{display:none !important}#main-content .container:before{display:none !important}.yarpp-related,.yarpp.yarpp-related{display:none !important}#left-area article.et_pb_post{margin-bottom:0 !important}#dt-page p{padding-bottom:0}#dt-page :is(h1,h2,h3,h4,h5,h6){padding-bottom:0}#dt-page :is(ul,ol){padding:0;margin:0;list-style:none;line-height:inherit}#dt-page img{max-width:100%;height:auto}<\/style><style id=\"dt-page-css\">@import url('https:\/\/fonts.googleapis.com\/css2?family=Lato:wght@400;#dt-page 700;900&family=Work+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@500;600&display=swap');:root{--ink:#242923;--ink-soft:#55605A;--ink-faint:#8B958E;--mint:#0EA173;--mint-fill:#10B981;--mint-tint:#F3FAF7;--teal:#4C7E93;--teal-tint:#EAF2F4;--surface:#FFFFFF;--border:#DCE7E2;--draft:#B5791A;--draft-tint:#FBF1DF;--warn:#C0453B;--warn-tint:#FDF0EE;--shadow:0 24px 48px -28px rgba(36,41,35,0.28);}#dt-page,#dt-page *{box-sizing:border-box;}#dt-page{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}#dt-page{margin:0;background:var(--surface);color:var(--ink);font-family:'Work Sans','Helvetica Neue',Arial,sans-serif;line-height:1.55;}#dt-page h1,#dt-page h2,#dt-page h3,#dt-page h4{font-family:'Lato','Helvetica Neue',Arial,sans-serif;color:var(--ink);margin:0;text-wrap:balance;}#dt-page p{margin:0;}#dt-page a{color:inherit;}#dt-page code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.86em;background:var(--mint-tint);border:1px solid #DCEDE5;border-radius:5px;padding:1px 6px;color:var(--ink);white-space:nowrap;}#dt-page .wrap{max-width:1120px;margin:0 auto;padding:0 32px;}#dt-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}#dt-page .breadcrumb{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.04em;color:var(--ink-faint);text-transform:uppercase;}#dt-page .breadcrumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;}#dt-page .breadcrumb li{display:inline-flex;gap:6px;align-items:center;}#dt-page .breadcrumb li + li::before{content:\"\\203A\";color:#B9C4BE;}#dt-page .breadcrumb a{color:var(--teal);text-decoration:none;}#dt-page .breadcrumb a:hover{text-decoration:underline;}#dt-page .eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--mint);background:var(--mint-tint);border:1px solid #CFE9DF;padding:6px 12px 6px 10px;border-radius:999px;}#dt-page .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--mint-fill);}#dt-page .eyebrow .sep{color:#9CCFBA;}#dt-page .eyebrow.on-dark{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.18);color:#8FE3C3;}#dt-page .eyebrow.on-dark .dot{background:#6FE3B6;}#dt-page .section-head{max-width:64ch;}#dt-page .section-head h2{font-size:28px;font-weight:900;letter-spacing:-0.01em;line-height:1.2;}#dt-page .section-head p{margin-top:10px;color:var(--ink-soft);font-size:15px;line-height:1.6;}#dt-page .pc-head{padding:40px 0 0;}#dt-page .pc-head .eyebrow{margin-top:22px;}#dt-page .pc-head h1{margin-top:16px;font-size:40px;font-weight:900;letter-spacing:-0.015em;line-height:1.14;max-width:900px;}#dt-page .definition{position:relative;margin-top:28px;max-width:900px;background:var(--mint-tint);border:1px solid #CFE9DF;border-left:5px solid var(--mint-fill);border-radius:14px;padding:26px 34px 28px 32px;overflow:hidden;}#dt-page .definition::after{content:\"\\201C\";position:absolute;right:22px;top:-18px;font-family:'Lato',Georgia,serif;font-weight:900;font-size:132px;line-height:1;color:var(--mint-fill);opacity:.13;pointer-events:none;}#dt-page .def-kicker{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--mint);margin-bottom:10px;}#dt-page .def-kicker::before{content:\"\";width:16px;height:2px;background:var(--mint-fill);border-radius:2px;}#dt-page .def-text{position:relative;font-family:'Lato','Helvetica Neue',Arial,sans-serif;font-weight:700;font-size:19.5px;line-height:1.58;color:var(--ink);letter-spacing:-0.002em;}#dt-page .art-grid{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:72px;padding:44px 0 8px;align-items:start;}#dt-page .prose{max-width:700px;min-width:0;}#dt-page .prose>* + *{margin-top:16px;}#dt-page .prose .lede{font-size:17.5px;line-height:1.68;color:var(--ink);}#dt-page .prose h2{font-size:26px;font-weight:900;letter-spacing:-0.01em;line-height:1.22;margin-top:52px;scroll-margin-top:24px;}#dt-page .prose h2 + *{margin-top:14px;}#dt-page .prose h3{font-size:19px;font-weight:900;line-height:1.3;margin-top:30px;scroll-margin-top:24px;}#dt-page .prose h3 + *{margin-top:8px;}#dt-page .prose p{font-size:16px;line-height:1.72;color:var(--ink-soft);}#dt-page .prose strong{color:var(--ink);font-weight:600;}#dt-page .prose a,#dt-page .inline-link{color:var(--teal);font-weight:500;text-decoration:underline;text-decoration-color:#B8CFD8;text-underline-offset:3px;text-decoration-thickness:1px;}#dt-page .prose a:hover,#dt-page .inline-link:hover{text-decoration-color:var(--teal);}#dt-page .prose ul{list-style:none;margin-left:0;padding:0;}#dt-page .prose ul li{position:relative;padding-left:24px;font-size:16px;line-height:1.68;color:var(--ink-soft);}#dt-page .prose ul li + li{margin-top:8px;}#dt-page .prose ul li::before{content:\"\";position:absolute;left:4px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--mint-fill);}#dt-page .prose ol.steps{list-style:none;padding:0;counter-reset:step;}#dt-page .prose ol.steps li{position:relative;counter-increment:step;padding:2px 0 0 50px;font-size:16px;line-height:1.68;color:var(--ink-soft);min-height:32px;}#dt-page .prose ol.steps li + li{margin-top:16px;}#dt-page .prose ol.steps li::before{content:counter(step);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--mint-tint);border:1px solid #CFE9DF;color:var(--mint);font-family:'Lato',sans-serif;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;}#dt-page .prose ol.steps li:not(:last-child)::after{content:\"\";position:absolute;left:15.5px;top:36px;bottom:-14px;width:1px;background:#D5E8DF;}#dt-page .prose ul.check-list li{padding:14px 18px 14px 50px;background:var(--surface);border:1px solid var(--border);border-radius:12px;}#dt-page .prose ul.check-list li + li{margin-top:10px;}#dt-page .prose ul.check-list li::before{content:\"\\2713\";left:16px;top:15px;width:22px;height:22px;background:var(--mint-tint);border:1px solid #CFE9DF;color:var(--mint);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}#dt-page .prose ul.check-list li strong{font-family:'Lato',sans-serif;font-weight:900;}#dt-page .lead-stack{display:flex;flex-direction:column;gap:10px;}#dt-page .prose .lead-stack{margin-top:18px;}#dt-page .lead-card{border:1px solid var(--border);border-left:3px solid var(--mint-fill);border-radius:10px;padding:16px 20px;background:var(--surface);}#dt-page .lead-card p{font-size:15.5px;line-height:1.66;}#dt-page .lead-card .lead{display:block;font-family:'Lato',sans-serif;font-weight:900;font-size:16.5px;color:var(--ink);margin-bottom:4px;}#dt-page .next-read{display:flex;flex-wrap:wrap;gap:10px;}#dt-page .prose .next-read{margin-top:22px;}#dt-page .next-link{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--teal);text-decoration:none;background:var(--teal-tint);border:1px solid #D3E3E9;border-radius:999px;padding:9px 16px;}#dt-page .next-link:hover{border-color:var(--teal);}#dt-page .next-link svg{width:14px;height:14px;}#dt-page .visual-slot{border:1px dashed #C4D3CC;border-radius:14px;background:linear-gradient(180deg,#FBFDFC,#F4F8F6);padding:26px 24px;text-align:center;color:var(--ink-faint);display:flex;flex-direction:column;align-items:center;}#dt-page .prose .visual-slot{margin-top:26px;}#dt-page .visual-slot .vs-badge{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mint);background:var(--mint-tint);border:1px solid #CFE9DF;padding:3px 9px;border-radius:5px;margin-bottom:10px;}#dt-page .visual-slot .vs-title{font-family:'Lato',sans-serif;font-weight:700;font-size:14.5px;color:var(--ink-soft);}#dt-page .visual-slot .vs-desc{font-size:12.5px;margin-top:6px;max-width:52ch;line-height:1.5;}#dt-page .visual-slot.tall{min-height:220px;justify-content:center;}#dt-page .checklist{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;counter-reset:ck;}#dt-page .checklist>li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;border:1px solid var(--border);border-radius:14px;padding:22px 24px 22px 20px;background:var(--surface);}#dt-page .checklist .ck-num{width:40px;height:40px;border-radius:50%;background:var(--mint-fill);color:#fff;font-family:'Lato',sans-serif;font-weight:900;font-size:17px;display:flex;align-items:center;justify-content:center;}#dt-page .checklist .ck-body>* + *{margin-top:12px;}#dt-page .prose .checklist h3{margin-top:6px;font-size:18.5px;}#dt-page .checklist .ck-body p,#dt-page .checklist .ck-body li{font-size:15.5px;}#dt-page .checklist-wrap{margin-top:22px;}#dt-page .checklist-head{display:flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .checklist-head .bar{flex:1;height:1px;background:var(--border);}#dt-page .toc{position:sticky;top:24px;border-left:1px solid var(--border);padding:4px 0 4px 20px;}#dt-page .toc-label{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px;}#dt-page .toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}#dt-page .toc a{display:block;font-size:13.5px;line-height:1.4;color:var(--ink-soft);text-decoration:none;}#dt-page .toc a:hover{color:var(--mint);}#dt-page .faq-block{padding:12px 0 8px;}#dt-page .faq-block h2{font-size:26px;font-weight:900;margin-bottom:18px;scroll-margin-top:24px;}#dt-page .faq-list{max-width:80ch;display:flex;flex-direction:column;gap:10px;}#dt-page .faq-item{border:1px solid var(--border);border-radius:10px;padding:2px 18px;background:var(--surface);}#dt-page .faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;font-size:15.5px;font-weight:700;color:var(--ink);cursor:pointer;list-style:none;font-family:'Lato',sans-serif;}#dt-page .faq-item summary::-webkit-details-marker{display:none;}#dt-page .faq-item summary::after{content:\"+\";font-size:20px;font-weight:400;color:var(--mint);flex-shrink:0;}#dt-page .faq-item[open] summary::after{content:\"\\2013\";}#dt-page .faq-item p{padding-bottom:16px;font-size:15px;color:var(--ink-soft);line-height:1.65;}#dt-page .band{padding:52px 0;}#dt-page .band.alt{background:var(--mint-tint);border-top:1px solid #E4F1EB;border-bottom:1px solid #E4F1EB;}#dt-page .band.rule{border-top:1px solid var(--border);}#dt-page .tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px;}#dt-page .tile-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}#dt-page .tile{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 44px 18px 20px;text-decoration:none;color:var(--ink);transition:border-color .15s,background .15s;}#dt-page .tile:hover{border-color:var(--mint-fill);}#dt-page .tile::after{content:\"\\2192\";position:absolute;right:18px;top:17px;color:var(--ink-faint);font-size:15px;transition:color .15s,transform .15s;}#dt-page .tile:hover::after{color:var(--mint);transform:translateX(2px);}#dt-page .tile .t-label{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;}#dt-page .tile h3{font-size:16px;font-weight:900;line-height:1.3;}#dt-page .tile p{margin-top:6px;font-size:13.5px;color:var(--ink-soft);line-height:1.55;}#dt-page .tile.feature{grid-column:span 2;background:var(--surface);border-color:#BFDFD1;box-shadow:var(--shadow);padding:24px 52px 24px 26px;}#dt-page .tile.feature h3{font-size:21px;}#dt-page .tile.feature p{font-size:14.5px;}#dt-page .tile.feature .t-label{color:var(--mint);}#dt-page .tile .t-lane{align-self:flex-start;margin-top:10px;}#dt-page .market{margin-top:22px;max-width:900px;display:grid;grid-template-columns:minmax(0,1fr);border:1px solid #CFE0E6;border-radius:14px;overflow:hidden;}#dt-page .market-main{background:var(--teal-tint);padding:24px 28px 26px;position:relative;}#dt-page .market-code{position:absolute;right:22px;top:18px;font-family:'Lato',sans-serif;font-weight:900;font-size:44px;letter-spacing:-0.02em;color:var(--teal);opacity:.18;line-height:1;}#dt-page .market-main .market-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--teal);}#dt-page .market-main h2{margin-top:10px;font-size:22px;font-weight:900;}#dt-page .market-main p.m-line{margin-top:8px;max-width:60ch;font-size:17px;color:var(--ink);line-height:1.6;}#dt-page .market-main .m-src{margin-top:12px;font-size:12px;color:var(--ink-faint);}#dt-page .market-main .m-src a{color:var(--teal);}#dt-page .market-laws{background:var(--surface);padding:20px 22px;}#dt-page .market-laws .ml-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;}#dt-page .mini-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;}#dt-page .mini-tile{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:9px;padding:10px 14px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:600;line-height:1.3;}#dt-page .mini-tile:hover{border-color:var(--mint-fill);background:var(--mint-tint);}#dt-page .mini-tile::after{content:\"\\2192\";color:var(--ink-faint);font-weight:400;}#dt-page .mini-tile .mt-type{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:2px;}#dt-page .market-laws .ml-empty{font-size:13px;color:var(--ink-faint);line-height:1.5;}#dt-page .jump{margin-top:22px;max-width:900px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--border);border-radius:14px;background:var(--surface);}#dt-page .jump-col{padding:20px 24px 22px;}#dt-page .jump-col + .jump-col{border-left:1px solid var(--border);}#dt-page .jump-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .jump-col h2{margin-top:6px;font-size:16.5px;font-weight:900;}#dt-page .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}#dt-page .chip{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 13px;text-decoration:none;}#dt-page .chip:hover{border-color:var(--mint-fill);background:var(--mint-tint);color:var(--mint);}#dt-page .chip::after{content:\"\\2192\";color:var(--ink-faint);font-weight:400;font-size:12px;}#dt-page .pillar-body{padding-top:40px;padding-bottom:8px;}#dt-page .pillar-body .prose{max-width:720px;}#dt-page .module{margin-top:22px;}#dt-page .card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}#dt-page .card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));}#dt-page .r-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:14px;padding:22px 22px 20px;background:var(--surface);}#dt-page .r-card .rc-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mint);margin-bottom:8px;}#dt-page .r-card h3{font-size:17px;font-weight:900;line-height:1.3;}#dt-page .r-card p{margin-top:8px;font-size:14.5px;color:var(--ink-soft);line-height:1.62;flex:1;}#dt-page .r-card .rc-go{margin-top:14px;font-size:13.5px;font-weight:600;color:var(--teal);text-decoration:none;display:inline-flex;gap:6px;align-items:center;}#dt-page .r-card .rc-go:hover{text-decoration:underline;}#dt-page .r-card.numbered{position:relative;padding-top:58px;}#dt-page .r-card.numbered .rc-n{position:absolute;left:22px;top:18px;width:30px;height:30px;border-radius:50%;background:var(--mint-fill);color:#fff;font-family:'Lato',sans-serif;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;}#dt-page .r-card.region{text-decoration:none;color:var(--ink);position:relative;}#dt-page .r-card.region:hover,#dt-page a.r-card:hover{border-color:var(--mint-fill);}#dt-page .r-card.region .rc-code{font-family:'Lato',sans-serif;font-weight:900;font-size:26px;color:var(--teal);opacity:.35;line-height:1;margin-bottom:10px;}#dt-page .feat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}#dt-page .feat{border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--surface);}#dt-page .feat .f-check{width:26px;height:26px;border-radius:50%;background:var(--mint-tint);color:var(--mint);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-bottom:12px;border:1px solid #CFE9DF;}#dt-page .feat h3{font-size:15.5px;font-weight:900;margin-bottom:6px;line-height:1.3;}#dt-page .feat p{font-size:14px;color:var(--ink-soft);line-height:1.62;}#dt-page .feat p a{color:var(--teal);}#dt-page .feat.wide{grid-column:1 \/ -1;}#dt-page .cat-nav{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px;}#dt-page .cat-nav a{display:inline-flex;align-items:center;gap:9px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);background:var(--surface);border:1px solid var(--border);padding:8px 14px;border-radius:999px;text-decoration:none;transition:border-color .15s,color .15s,background .15s;}#dt-page .cat-nav a:hover{border-color:var(--mint-fill);color:var(--mint);background:var(--mint-tint);}#dt-page .cat-nav a .count{font-size:11px;color:var(--ink-faint);font-weight:500;letter-spacing:.02em;}#dt-page .hub-intro{margin-top:26px;max-width:76ch;font-size:16px;color:var(--ink-soft);line-height:1.65;}#dt-page .cat{padding:48px 0 8px;border-top:1px solid var(--border);scroll-margin-top:24px;}#dt-page .cat:first-of-type{border-top:none;}#dt-page .cat .eyebrow{margin-bottom:14px;}#dt-page .cat-note{margin-top:16px;font-size:14px;color:var(--ink-soft);max-width:76ch;}#dt-page .hub-callout{margin-top:4px;background:var(--teal-tint);border:1px solid #CFE0E6;border-left:4px solid var(--teal);border-radius:12px;padding:22px 26px;max-width:82ch;}#dt-page .hub-callout .hc-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:6px;}#dt-page .hub-callout h2{font-size:20px;font-weight:900;line-height:1.3;}#dt-page .hub-callout p{margin-top:8px;font-size:15px;line-height:1.62;color:var(--ink);}#dt-page .hub-callout a{color:var(--teal);font-weight:600;}#dt-page .closing-section{padding:56px 0 72px;}#dt-page .closing{background:var(--ink);padding:56px 32px;text-align:center;border-radius:14px;}#dt-page .closing h2{color:#fff;font-size:28px;font-weight:900;margin-top:16px;}#dt-page .closing .single-cta{margin-top:24px;display:flex;flex-direction:column;align-items:center;}#dt-page .region-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--mint-fill);color:#fff;font-family:'Lato',sans-serif;font-weight:700;font-size:15px;border:none;border-radius:8px;padding:14px 24px;min-width:260px;text-decoration:none;letter-spacing:.005em;line-height:1.3;cursor:pointer;}#dt-page .region-btn:hover{background:#0C9A6E;}#dt-page .region-btn svg{width:15px;height:15px;flex-shrink:0;}#dt-page .trial-fine{margin-top:14px;font-size:13px;color:#9DB3A8;line-height:1.5;}@media (max-width:980px){#dt-page .art-grid{grid-template-columns:minmax(0,1fr);gap:0;}#dt-page .toc{display:none;}#dt-page .prose{max-width:none;}#dt-page .tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));}#dt-page .card-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));}}@media (max-width:820px){#dt-page .market,#dt-page .jump{grid-template-columns:minmax(0,1fr);}#dt-page .jump-col + .jump-col{border-left:none;border-top:1px solid var(--border);}#dt-page .card-grid,#dt-page .feat-grid{grid-template-columns:minmax(0,1fr);}#dt-page .card-grid.three{grid-template-columns:minmax(0,1fr);}}@media (max-width:680px){#dt-page .wrap,#dt-page .notice .wrap{padding-left:20px;padding-right:20px;}#dt-page .pc-head{padding-top:28px;}#dt-page .pc-head h1{font-size:30px;}#dt-page .definition{padding:22px 20px 22px 20px;}#dt-page .def-text{font-size:16.5px;}#dt-page .prose h2{font-size:23px;margin-top:42px;}#dt-page .tile-grid,#dt-page .tile-grid.two{grid-template-columns:minmax(0,1fr);}#dt-page .tile.feature{grid-column:auto;}#dt-page .checklist>li{grid-template-columns:minmax(0,1fr);gap:10px;padding:18px;}#dt-page .closing{padding:44px 20px;}#dt-page .closing h2{font-size:24px;}#dt-page .region-btn{width:100%;min-width:0;}#dt-page code{white-space:normal;word-break:break-word;}}#dt-page .prose a.next-link,#dt-page .prose a.rc-go,#dt-page .prose a.tile,#dt-page .prose a.chip,#dt-page .prose a.mini-tile,#dt-page .prose a.r-card{text-decoration:none;}#dt-page .prose a.next-link:hover{text-decoration:none;}#dt-page .rc-go svg,#dt-page .next-link svg,#dt-page .chip svg{width:14px;height:14px;flex-shrink:0;}#dt-page .cat.faq-cat{padding-top:36px;}#dt-page .def-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;}#dt-page .def-top .def-kicker{margin-bottom:0;}#dt-page .verdict{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;background:var(--surface);border:1px solid #CFE9DF;border-radius:999px;padding:6px 16px 6px 12px;margin-right:64px;}#dt-page .verdict .v-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .verdict .v-v{font-family:'Lato',sans-serif;font-weight:900;font-size:17px;color:var(--ink);}#dt-page .glance{margin-top:14px;max-width:900px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 24px 20px;}#dt-page .glance .g-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--teal);margin-bottom:10px;}#dt-page .glance dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}#dt-page .glance .g-row{border-left:3px solid var(--teal-tint);padding-left:14px;}#dt-page .glance dt{font-family:'Lato',sans-serif;font-weight:900;font-size:14px;color:var(--ink);margin-bottom:4px;}#dt-page .glance dd{margin:0;font-size:15px;line-height:1.6;color:var(--ink-soft);}@media (max-width:680px){#dt-page .glance dl{grid-template-columns:minmax(0,1fr);}#dt-page .verdict{margin-right:0;}}#dt-page .shot-img{margin:28px 0 0;}#dt-page .shot-img img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:14px;background:#F4F8F6;box-shadow:var(--shadow);}#dt-page .shot-img figcaption{margin-top:10px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .diagram{margin:28px 0 0;border:1px solid var(--border);border-radius:14px;padding:20px 20px 16px;background:var(--surface);}#dt-page .diagram svg{display:block;width:100%;height:auto;}#dt-page .diagram .dg-narrow{display:none;}#dt-page .diagram figcaption{margin-top:14px;font-size:13.5px;line-height:1.55;color:var(--ink-soft);}#dt-page .diagram .dg-tag{display:block;margin-top:8px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}@media (max-width:680px){#dt-page .diagram .dg-wide{display:none;}#dt-page .diagram .dg-narrow{display:block;max-width:360px;margin:0 auto;}#dt-page .diagram{padding:16px 12px 14px;}}#dt-page .compare-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px;}#dt-page table.compare-table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px;}#dt-page .compare-table th,#dt-page .compare-table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;}#dt-page .compare-table thead th{font-family:'Lato',sans-serif;font-weight:900;font-size:13px;color:var(--ink);background:var(--mint-tint);white-space:nowrap;}#dt-page .compare-table tbody tr:last-child td{border-bottom:none;}#dt-page .compare-table td.cap{font-weight:600;color:var(--ink);max-width:220px;}#dt-page .compare-table td.note{color:var(--ink-soft);font-size:12.5px;max-width:320px;}#dt-page .sources-intro{font-size:13.5px;color:var(--ink-soft);line-height:1.6;max-width:80ch;}#dt-page .byline{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:13.5px;color:var(--ink-faint);}#dt-page .byline .by-who{color:var(--ink-soft);font-weight:600;}#dt-page .byline .by-sep{width:4px;height:4px;border-radius:50%;background:#C4D3CC;}#dt-page .nod{margin-top:16px;max-width:900px;display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);border-radius:12px;padding:13px 18px;background:var(--surface);}#dt-page .nod-mark{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--teal-tint);border:1px solid #CFE0E6;color:var(--teal);display:flex;align-items:center;justify-content:center;margin-top:1px;}#dt-page .nod-mark svg{width:14px;height:14px;}#dt-page .nod p{font-size:14px;line-height:1.6;color:var(--ink-soft);}#dt-page .nod .nod-k{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:2px;}#dt-page .inline-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;border:1px solid #CFE0E6;background:var(--teal-tint);border-radius:14px;padding:20px 22px 20px 24px;}#dt-page .prose .inline-cta{margin-top:26px;}#dt-page .inline-cta .ic-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);}#dt-page .inline-cta .ic-t{margin-top:4px;font-family:'Lato',sans-serif;font-weight:900;font-size:17px;line-height:1.35;color:var(--ink);}#dt-page .prose a.ic-go,#dt-page a.ic-go{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:var(--surface);border:1px solid #BCD3DC;color:var(--teal);font-weight:600;font-size:14px;padding:10px 16px;border-radius:9px;text-decoration:none;}#dt-page a.ic-go:hover{border-color:var(--teal);}#dt-page a.ic-go svg{width:14px;height:14px;}#dt-page .code-block{border-radius:12px;overflow:hidden;border:1px solid #2F3630;background:var(--ink);}#dt-page .prose .code-block{margin-top:20px;}#dt-page .code-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px 8px 16px;background:#2E352F;}#dt-page .code-lang{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8FE3C3;}#dt-page .code-copy{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#C9D3CD;background:transparent;border:1px solid #4A544D;border-radius:6px;padding:4px 9px;cursor:pointer;}#dt-page .code-copy:hover{color:#fff;border-color:#8FE3C3;}#dt-page .code-block pre{margin:0;padding:16px 18px 18px;overflow-x:auto;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;line-height:1.7;color:#E7EEEA;}#dt-page .code-block pre code{background:none;border:none;padding:0;color:inherit;font-size:inherit;white-space:pre;}#dt-page .code-block .tk-tag{color:#8FE3C3;}#dt-page .code-block .tk-attr{color:#A9CBD8;}#dt-page .code-block .tk-str{color:#F0D9A8;}#dt-page .code-block .tk-com{color:#8B958E;}#dt-page .code-note{margin-top:8px;font-size:13px;color:var(--ink-faint);}#dt-page figure.shot{margin:0;}#dt-page .prose figure.shot{margin-top:24px;}#dt-page .shot-frame{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);}#dt-page .shot-bar{display:flex;gap:6px;padding:9px 12px;background:#F4F7F5;border-bottom:1px solid var(--border);}#dt-page .shot-bar i{width:9px;height:9px;border-radius:50%;background:#D5DFDA;}#dt-page .shot-frame img{display:block;width:100%;height:auto;}#dt-page .shot-frame .visual-slot{border:none;border-radius:0;margin:0;min-height:220px;justify-content:center;}#dt-page .prose .shot-frame .visual-slot{margin-top:0;}#dt-page figure.shot figcaption{margin-top:10px;font-size:13px;color:var(--ink-faint);line-height:1.5;display:flex;gap:8px;}#dt-page figure.shot figcaption b{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;padding-top:1px;}#dt-page .dt-wrap{border:1px solid var(--border);border-radius:14px;overflow-x:auto;background:var(--surface);}#dt-page .prose .dt-wrap,#dt-page .prose .compare-table-wrap{margin-top:20px;}#dt-page table.data-table{width:100%;border-collapse:collapse;font-size:14px;}#dt-page .data-table caption{caption-side:bottom;text-align:left;padding:10px 16px 12px;font-size:12.5px;color:var(--ink-faint);border-top:1px solid var(--border);}#dt-page .data-table th,#dt-page .data-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.55;}#dt-page .data-table thead th{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);background:#F7FAF8;white-space:nowrap;}#dt-page .data-table tbody tr:last-child td{border-bottom:none;}#dt-page .data-table tbody th{font-family:'Lato',sans-serif;font-weight:900;font-size:14.5px;color:var(--ink);}#dt-page .data-table td{color:var(--ink-soft);}#dt-page .compare-table td{color:var(--ink-soft);line-height:1.55;}#dt-page .compare-table tbody td:first-child{font-weight:600;color:var(--ink);white-space:nowrap;}#dt-page .compare-table code,#dt-page .data-table code{white-space:normal;}#dt-page .rail{position:sticky;top:24px;display:flex;flex-direction:column;gap:26px;}#dt-page .rail .toc{position:static;}#dt-page .rail-links{border-left:1px solid var(--border);padding:4px 0 4px 20px;}#dt-page .rail-links ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}#dt-page .rail-links a{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.4;color:var(--teal);font-weight:500;text-decoration:none;}#dt-page .rail-links a::before{content:\"\\2192\";color:var(--ink-faint);font-size:12px;margin-top:1px;}#dt-page .rail-links a:hover{text-decoration:underline;}#dt-page .toc a.active{color:var(--mint);font-weight:600;}#dt-page .src-list{margin:18px 0 0;padding:0;list-style:none;counter-reset:src;columns:2;column-gap:40px;}#dt-page .src-list li{counter-increment:src;break-inside:avoid;position:relative;padding-left:30px;font-size:13px;color:var(--ink-faint);line-height:1.55;margin-bottom:10px;}#dt-page .src-list li::before{content:counter(src);position:absolute;left:0;top:1px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;color:var(--mint);background:var(--mint-tint);border:1px solid #CFE9DF;border-radius:4px;min-width:20px;text-align:center;padding:0 3px;}#dt-page .src-list a{color:var(--teal);text-decoration:none;font-weight:500;word-break:break-word;}#dt-page .src-list a:hover{text-decoration:underline;}#dt-page .cat-pill{display:inline-flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:5px;white-space:nowrap;border:1px solid;}#dt-page .cat-pill::before{content:\"\";width:6px;height:6px;border-radius:50%;background:currentColor;}#dt-page .cat-pill.ad{color:var(--ink);background:#F1F3F2;border-color:#DDE3E0;}#dt-page .cat-pill.an{color:var(--teal);background:var(--teal-tint);border-color:#CFE0E6;}#dt-page .cat-pill.sr{color:#3E6A7C;background:var(--surface);border-color:#BCD3DC;border-style:dashed;}#dt-page .cat-pill.ct{color:var(--mint);background:var(--mint-tint);border-color:#CFE9DF;}#dt-page .consent{display:inline-flex;align-items:flex-start;gap:7px;font-size:13px;line-height:1.4;color:var(--ink);font-weight:600;}#dt-page .consent .c-dot{flex-shrink:0;margin-top:4px;width:9px;height:9px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px var(--warn-tint);}#dt-page .consent.early .c-dot{background:var(--teal);box-shadow:0 0 0 3px var(--teal-tint);}#dt-page .risk{display:inline-flex;align-items:center;gap:10px;}#dt-page .risk-meter{display:inline-grid;grid-template-columns:repeat(3,14px);gap:3px;}#dt-page .risk-meter i{height:8px;border-radius:2px;background:#E3EAE6;}#dt-page .risk-label{font-family:'Lato',sans-serif;font-weight:900;font-size:15px;letter-spacing:.01em;}#dt-page .risk.low .risk-meter i:nth-child(1){background:var(--mint-fill);}#dt-page .risk.low .risk-label{color:var(--mint);}#dt-page .risk.medium .risk-meter i:nth-child(-n+2){background:var(--teal);}#dt-page .risk.medium .risk-label{color:var(--teal);}#dt-page .risk.high .risk-meter i{background:var(--warn);}#dt-page .risk.high .risk-label{color:var(--warn);}#dt-page .risk.lg .risk-meter{grid-template-columns:repeat(3,26px);gap:4px;}#dt-page .risk.lg .risk-meter i{height:10px;}#dt-page .risk.lg .risk-label{font-size:20px;}#dt-page .risk-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid;border-radius:999px;padding:5px 12px 5px 10px;background:var(--surface);}#dt-page .risk-chip.high{border-color:#EFC9C4;background:var(--warn-tint);}#dt-page .risk-chip.medium{border-color:#CFE0E6;background:var(--teal-tint);}#dt-page .risk-chip.low{border-color:#CFE9DF;background:var(--mint-tint);}#dt-page .risk-chip .rk{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .risk-chip .risk-label{font-size:13px;}#dt-page .risk-chip .risk-meter{grid-template-columns:repeat(3,9px);gap:2px;}#dt-page .risk-chip .risk-meter i{height:6px;}#dt-page .ref-band{padding:44px 0 12px;}#dt-page .ref-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}#dt-page .ref-head .section-head{max-width:70ch;}#dt-page .ref-note{margin-top:10px;font-size:14px;color:var(--ink-soft);line-height:1.6;max-width:80ch;}#dt-page .ref-note b{color:var(--ink);font-weight:600;}#dt-page .ref-tools{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#F7FAF8;position:sticky;top:0;z-index:5;}#dt-page .ref-search{position:relative;flex:1 1 220px;max-width:300px;}#dt-page .ref-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--ink-faint);}#dt-page .ref-search input{width:100%;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 12px 9px 34px;}#dt-page .ref-search input:focus{outline:none;border-color:var(--mint-fill);box-shadow:0 0 0 3px rgba(16,185,129,.15);}#dt-page .ref-filters{display:flex;flex-wrap:wrap;gap:6px;}#dt-page .fchip{font:inherit;font-size:13px;font-weight:600;color:var(--ink-soft);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;}#dt-page .fchip .n{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;color:var(--ink-faint);font-weight:500;}#dt-page .fchip:hover{border-color:var(--mint-fill);}#dt-page .fchip[aria-pressed=\"true\"]{background:var(--ink);border-color:var(--ink);color:#fff;}#dt-page .fchip[aria-pressed=\"true\"] .n{color:#9DB3A8;}#dt-page .fchip.toggle{border-style:dashed;}#dt-page .fchip.toggle[aria-pressed=\"true\"]{background:var(--mint-tint);color:var(--mint);border-color:var(--mint-fill);border-style:solid;}#dt-page .ref-view{margin-left:auto;display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:3px;}#dt-page .ref-view button{font:inherit;font-size:13px;font-weight:600;color:var(--ink-soft);background:none;border:none;border-radius:6px;padding:6px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;}#dt-page .ref-view button svg{width:14px;height:14px;}#dt-page .ref-view button[aria-pressed=\"true\"]{background:var(--mint-tint);color:var(--mint);}#dt-page .ref-count{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:var(--ink-faint);letter-spacing:.04em;margin-top:12px;}#dt-page table.tagref{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;}#dt-page .tagref-wrap{margin-top:10px;border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden;}#dt-page .tagref thead th{position:relative;text-align:left;vertical-align:bottom;padding:12px 14px;background:#F7FAF8;border-bottom:1px solid var(--border);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);line-height:1.35;}#dt-page .tagref thead th button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}#dt-page .tagref thead th button:focus-visible{outline:2px solid var(--mint-fill);outline-offset:3px;border-radius:3px;}#dt-page .tagref thead th .sort-ic{display:inline-flex;flex-direction:column;gap:2px;opacity:.45;}#dt-page .tagref thead th .sort-ic::before,#dt-page .tagref thead th .sort-ic::after{content:\"\";border-left:4px solid transparent;border-right:4px solid transparent;}#dt-page .tagref thead th .sort-ic::before{border-bottom:4px solid currentColor;}#dt-page .tagref thead th .sort-ic::after{border-top:4px solid currentColor;}#dt-page .tagref thead th[aria-sort=\"ascending\"] .sort-ic,#dt-page .tagref thead th[aria-sort=\"descending\"] .sort-ic{opacity:1;color:var(--mint);}#dt-page .tagref thead th[aria-sort=\"ascending\"] .sort-ic::after{opacity:.25;}#dt-page .tagref thead th[aria-sort=\"descending\"] .sort-ic::before{opacity:.25;}#dt-page .tagref tbody td,#dt-page .tagref tbody th{padding:15px 14px;border-bottom:1px solid var(--border);vertical-align:top;text-align:left;line-height:1.55;color:var(--ink-soft);}#dt-page .tagref tbody tr:last-child>*{border-bottom:none;}#dt-page .tagref tbody tr:hover>*{background:#FBFDFC;}#dt-page .tagref tbody th{font-weight:400;min-width:150px;}#dt-page .tagref .t-name{display:block;font-family:'Lato',sans-serif;font-weight:900;font-size:15px;color:var(--ink);text-decoration:none;line-height:1.3;}#dt-page a.t-name:hover{color:var(--mint);}#dt-page .tagref .t-name + .cat-pill{margin-top:7px;}#dt-page .tagref .t-prof{display:inline-flex;margin-top:8px;font-size:12px;font-weight:600;color:var(--teal);text-decoration:none;gap:4px;}#dt-page .tagref .t-prof:hover{text-decoration:underline;}#dt-page .tagref td.collects{min-width:260px;max-width:360px;}#dt-page .tagref td.goes{min-width:120px;color:var(--ink);}#dt-page .tagref td.detect{min-width:130px;}#dt-page .tagref td.detect code{white-space:normal;font-size:11.5px;line-height:1.9;}#dt-page .tagref col.c-collect{width:36%;}#dt-page mark.hl{background:#DDF3EA;color:inherit;border-radius:3px;padding:0 1px;}#dt-page .hashed{display:inline;background:linear-gradient(transparent 62%,#FDE3DF 62%);color:var(--ink);}#dt-page .ref-empty{display:none;padding:28px;text-align:center;color:var(--ink-faint);font-size:14px;}#dt-page .ref-empty.show{display:block;}#dt-page .ref-legend{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:12.5px;color:var(--ink-faint);}#dt-page .ref-legend span{display:inline-flex;align-items:center;gap:8px;}#dt-page .gated-note{margin-top:18px;max-width:900px;background:var(--mint-tint);border:1px solid #CFE9DF;border-left:4px solid var(--mint-fill);border-radius:12px;padding:16px 22px;font-size:14.5px;line-height:1.65;color:var(--ink-soft);}#dt-page .gated-note strong{color:var(--ink);}#dt-page .gated-note a{color:var(--teal);font-weight:600;}#dt-page .consent-band{padding:52px 0;background:var(--mint-tint);border-top:1px solid #E4F1EB;border-bottom:1px solid #E4F1EB;margin-top:40px;}#dt-page .consent-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:start;margin-top:4px;}#dt-page .consent-grid .lead-p{font-family:'Lato',sans-serif;font-weight:700;font-size:20px;line-height:1.5;color:var(--ink);}#dt-page .consent-grid .lead-p + p{margin-top:14px;font-size:15.5px;line-height:1.7;color:var(--ink-soft);}#dt-page .consent-grid p a{color:var(--teal);font-weight:600;}#dt-page .setting-stack{display:flex;flex-direction:column;gap:12px;}#dt-page .setting{background:var(--surface);border:1px solid #CFE9DF;border-radius:14px;padding:20px 22px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;}#dt-page .setting .s-n{width:36px;height:36px;border-radius:50%;background:var(--mint-fill);color:#fff;font-family:'Lato',sans-serif;font-weight:900;font-size:15px;display:flex;align-items:center;justify-content:center;}#dt-page .setting .s-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mint);margin-bottom:5px;}#dt-page .setting p{font-size:15px;line-height:1.66;color:var(--ink-soft);}#dt-page .setting-intro{font-size:15.5px;line-height:1.7;color:var(--ink-soft);}#dt-page .deck-band{padding:56px 0 20px;overflow:hidden;}#dt-page .deck-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}#dt-page .deck-nav{display:flex;align-items:center;gap:10px;}#dt-page .deck-pos{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;color:var(--ink-soft);letter-spacing:.04em;min-width:62px;text-align:center;}#dt-page .deck-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,background .15s;}#dt-page .deck-btn:hover:not(:disabled){border-color:var(--mint-fill);background:var(--mint-tint);color:var(--mint);}#dt-page .deck-btn:disabled{opacity:.35;cursor:default;}#dt-page .deck-btn svg{width:16px;height:16px;}#dt-page .deck{margin-top:22px;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:max(32px,calc((100vw - 1120px)\/2 + 32px));padding:6px max(32px,calc((100vw - 1120px)\/2 + 32px)) 26px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}#dt-page .deck::-webkit-scrollbar{display:none;}#dt-page .deck:focus-visible{outline:2px solid var(--mint-fill);outline-offset:-2px;}#dt-page .tag-card{flex:0 0 360px;scroll-snap-align:start;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 0 rgba(36,41,35,.03);transition:border-color .2s,box-shadow .2s,transform .2s;scroll-margin-top:80px;}#dt-page .tag-card.is-hidden{display:none;}#dt-page .tag-card:target,#dt-page .tag-card.flash{border-color:var(--mint-fill);box-shadow:var(--shadow);}#dt-page .tc-head{padding:20px 22px 16px;border-bottom:1px solid var(--border);position:relative;}#dt-page .tc-num{position:absolute;right:20px;top:18px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:var(--ink-faint);letter-spacing:.04em;}#dt-page .tc-head h3{font-size:21px;font-weight:900;line-height:1.2;margin-top:10px;padding-right:40px;}#dt-page .tc-goes{margin-top:6px;font-size:13.5px;color:var(--ink-soft);}#dt-page .tc-goes b{color:var(--ink);font-weight:600;}#dt-page .tc-body{padding:16px 22px 4px;display:flex;flex-direction:column;gap:14px;flex:1;}#dt-page .tc-row .tc-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px;}#dt-page .tc-row p{font-size:14px;line-height:1.6;color:var(--ink-soft);}#dt-page .tc-row code{white-space:normal;font-size:11.5px;}#dt-page .tc-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:12px;border-top:1px dashed var(--border);}#dt-page .tc-more{border-top:1px solid var(--border);margin-top:auto;}#dt-page .tc-more summary{list-style:none;cursor:pointer;padding:13px 22px;font-size:13.5px;font-weight:600;color:var(--teal);display:flex;align-items:center;justify-content:space-between;}#dt-page .tc-more summary::-webkit-details-marker{display:none;}#dt-page .tc-more summary::after{content:\"+\";font-size:18px;font-weight:400;color:var(--mint);}#dt-page .tc-more[open] summary::after{content:\"\\2013\";}#dt-page .tc-more .tc-full{padding:0 22px 16px;font-size:14px;line-height:1.65;color:var(--ink-soft);}#dt-page .tc-src{margin-top:10px;font-size:12px;line-height:1.5;color:var(--ink-faint);font-style:italic;}#dt-page .tc-foot{padding:14px 22px 18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#FBFDFC;border-radius:0 0 16px 16px;}#dt-page .tc-foot a{font-size:13.5px;font-weight:600;color:var(--teal);text-decoration:none;display:inline-flex;gap:6px;align-items:center;}#dt-page .tc-foot a:hover{text-decoration:underline;}#dt-page .tc-foot .tc-noprof{font-size:12.5px;color:var(--ink-faint);}#dt-page .deck-dots{display:flex;justify-content:center;gap:6px;margin-top:4px;flex-wrap:wrap;}#dt-page .deck-dots button{width:8px;height:8px;padding:0;border-radius:99px;border:none;background:#D5DFDA;cursor:pointer;transition:width .2s,background .2s;}#dt-page .deck-dots button[aria-current=\"true\"]{width:22px;background:var(--mint-fill);}#dt-page .deck-hint{display:none;}#dt-page .deck.as-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;scroll-snap-type:none;padding-left:0;padding-right:0;}#dt-page .deck-band.grid-mode .deck{max-width:1120px;margin-left:auto;margin-right:auto;padding:6px 32px 26px;}#dt-page .deck-band.grid-mode .deck-nav,#dt-page .deck-band.grid-mode .deck-dots{display:none;}#dt-page .prof-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;padding:40px 0 8px;align-items:start;}#dt-page .prof-glance{position:sticky;top:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden;}#dt-page .pg-head{padding:18px 20px 16px;background:var(--ink);color:#fff;}#dt-page .pg-head .pg-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8FE3C3;}#dt-page .pg-head .pg-name{margin-top:6px;font-family:'Lato',sans-serif;font-weight:900;font-size:20px;line-height:1.2;}#dt-page .pg-risk{padding:18px 20px;border-bottom:1px solid var(--border);}#dt-page .pg-risk.high{background:var(--warn-tint);}#dt-page .pg-risk.medium{background:var(--teal-tint);}#dt-page .pg-risk.low{background:var(--mint-tint);}#dt-page .pg-risk .pg-rk{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;display:flex;justify-content:space-between;}#dt-page .pg-risk .pg-rk a{color:var(--teal);text-decoration:none;letter-spacing:.04em;}#dt-page .pg-risk .pg-rk a:hover{text-decoration:underline;}#dt-page .prof-glance dl{margin:0;}#dt-page .prof-glance .pg-row{padding:12px 20px;border-bottom:1px solid var(--border);}#dt-page .prof-glance .pg-row:last-child{border-bottom:none;}#dt-page .prof-glance dt{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px;}#dt-page .prof-glance dd{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink);font-weight:500;}#dt-page .prof-glance dd code{white-space:normal;font-size:12px;}#dt-page .yn-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;margin-right:6px;vertical-align:-3px;}#dt-page .yn-mark.y{background:var(--warn-tint);color:var(--warn);border:1px solid #EFC9C4;}#dt-page .yn-mark.n{background:var(--mint-tint);color:var(--mint);border:1px solid #CFE9DF;}#dt-page .yn-mark.live{background:var(--mint-tint);color:var(--mint);border:1px solid #CFE9DF;}#dt-page .risk-h2{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}#dt-page .risk-note{margin-top:14px;font-size:13px;color:var(--ink-faint);line-height:1.55;border-top:1px dashed var(--border);padding-top:12px;}#dt-page .rubric{margin-top:18px;border:1px solid var(--border);border-radius:12px;overflow:hidden;}#dt-page .rubric-k{padding:10px 16px;background:#F7FAF8;border-bottom:1px solid var(--border);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);}#dt-page .detect-card{margin-top:18px;border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}#dt-page .detect-card .dc-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-right:4px;}#dt-page .tagtype{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:500;color:var(--ink);background:var(--mint-tint);border:1px solid #CFE9DF;border-radius:6px;padding:4px 9px;}#dt-page .hub-lede{margin-top:22px;max-width:76ch;font-size:16px;color:var(--ink-soft);line-height:1.7;}#dt-page .profile-strip{margin-top:14px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}#dt-page .pchip{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border);border-radius:12px;padding:14px 14px 12px;text-decoration:none;color:var(--ink);background:var(--surface);transition:border-color .15s;}#dt-page .pchip:hover{border-color:var(--mint-fill);}#dt-page .pchip .pc-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .pchip .pc-n{font-family:'Lato',sans-serif;font-weight:900;font-size:15px;line-height:1.25;}#dt-page .strip-label{margin-top:22px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);display:flex;align-items:center;gap:10px;}#dt-page .strip-label .bar{flex:1;height:1px;background:var(--border);}#dt-page .soon{margin-top:18px;display:flex;align-items:center;gap:12px;border:1px dashed #C4D3CC;border-radius:12px;padding:14px 18px;font-size:14px;color:var(--ink-faint);max-width:82ch;}#dt-page .soon .soon-k{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:#F1F3F2;border-radius:5px;padding:3px 8px;white-space:nowrap;}#dt-page .rel-list{margin-top:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}#dt-page .rel-item{border:1px solid var(--border);border-radius:12px;padding:18px 20px;background:var(--surface);}#dt-page .rel-item .ri-k{font-family:'Lato',sans-serif;font-weight:900;font-size:15.5px;color:var(--ink);}#dt-page .rel-item p{margin-top:6px;font-size:14px;line-height:1.6;color:var(--ink-soft);}#dt-page .rel-item a{color:var(--teal);font-weight:600;}#dt-page .rel-item .plain{color:var(--ink);font-weight:600;}@media (max-width:980px){#dt-page .prof-grid{grid-template-columns:minmax(0,1fr);gap:28px;}#dt-page .prof-glance{position:static;order:-1;}#dt-page .rail{display:none;}#dt-page .consent-grid{grid-template-columns:minmax(0,1fr);gap:24px;}#dt-page .deck.as-grid{grid-template-columns:repeat(2,minmax(0,1fr));}#dt-page .profile-strip{grid-template-columns:repeat(3,minmax(0,1fr));}#dt-page .rel-list{grid-template-columns:minmax(0,1fr);}}@media (max-width:820px){#dt-page .tagref-wrap{border:none;background:none;overflow:visible;}#dt-page table.tagref,#dt-page .tagref tbody,#dt-page .tagref tr,#dt-page .tagref td,#dt-page .tagref tbody th{display:block;width:auto;}#dt-page .tagref thead{display:none;}#dt-page .tagref tbody tr{border:1px solid var(--border);border-radius:14px;background:var(--surface);margin-bottom:10px;padding:16px 18px 6px;}#dt-page .tagref tbody tr.is-hidden{display:none;}#dt-page .tagref tbody td,#dt-page .tagref tbody th{border:none;padding:0 0 12px;min-width:0;max-width:none;}#dt-page .tagref tbody tr:hover>*{background:none;}#dt-page .tagref tbody td::before{content:attr(data-label);display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px;}#dt-page .ref-tools{position:static;}#dt-page .ref-view{margin-left:0;}#dt-page .src-list{columns:1;}#dt-page .inline-cta{grid-template-columns:minmax(0,1fr);}}@media (max-width:680px){#dt-page .tag-card{flex-basis:86vw;}#dt-page .deck{gap:12px;scroll-padding-left:20px;padding-left:20px;padding-right:20px;}#dt-page .deck-hint{display:flex;align-items:center;gap:8px;margin-top:10px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}#dt-page .deck-top .deck-nav .deck-btn{width:38px;height:38px;}#dt-page .deck.as-grid{grid-template-columns:minmax(0,1fr);}#dt-page .deck-band.grid-mode .deck{padding:6px 20px 26px;}#dt-page .ref-search{max-width:none;flex-basis:100%;}#dt-page .ref-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -12px;padding:0 12px 2px;scrollbar-width:none;}#dt-page .ref-filters::-webkit-scrollbar{display:none;}#dt-page .fchip{white-space:nowrap;}#dt-page .profile-strip{grid-template-columns:repeat(2,minmax(0,1fr));}#dt-page .tc-duo{grid-template-columns:minmax(0,1fr);}#dt-page .consent-grid .lead-p{font-size:18px;}}@media (prefers-reduced-motion:reduce){#dt-page .deck{scroll-behavior:auto;}#dt-page .tag-card{transition:none;}}#dt-page .tagref .t-prof{display:flex;width:max-content;align-items:center;}#dt-page .tagref .t-prof svg,#dt-page .tc-foot a svg{width:13px;height:13px;flex-shrink:0;}#dt-page .tc-foot a{white-space:nowrap;}#dt-page .tagref th[scope=\"row\"]{width:190px;}#dt-page .tagref td.consent-cell{min-width:150px;}#dt-page .tagref td.detect code,#dt-page .tc-row code{display:inline-block;white-space:nowrap;margin:0 4px 5px 0;line-height:1.5;}#dt-page .consent .c-dot{background:var(--teal);box-shadow:0 0 0 3px var(--teal-tint);}#dt-page .consent.early .c-dot{background:var(--ink);box-shadow:0 0 0 3px #E6EBE8;}#dt-page .deck-hint svg{width:12px;height:12px;}@media (max-width:820px){#dt-page .tagref td.collects,#dt-page .tagref td.detect{display:none;}#dt-page .tagref tbody tr{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;padding:14px 16px 4px;}#dt-page .tagref tbody th{grid-column:1 \/ -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;}#dt-page .tagref .t-name{width:100%;}#dt-page .tagref .t-name::after{content:\" \\2192\";color:var(--mint);font-weight:700;}#dt-page .tagref .t-name + .cat-pill{margin-top:0;}#dt-page .tagref .t-prof{margin-top:0;}#dt-page .tagref tbody td{font-size:13px;}#dt-page .tagref-mobile-note{display:block !important;}}#dt-page .tagref-mobile-note{display:none;margin-top:8px;font-size:13px;color:var(--ink-faint);}#dt-page .risk-h2 .risk.lg .risk-label{font-size:26px;}#dt-page .risk-h2 .risk.lg .risk-meter{margin-top:3px;}#dt-page .code-block pre code{white-space:pre-wrap;overflow-wrap:anywhere;}#dt-page .data-table tbody th{min-width:150px;}#dt-page .pchip .pc-risk{padding-top:8px;border-top:1px dashed var(--border);}#dt-page .pchip .risk-label{font-size:13px;}#dt-page .rel-item a{text-decoration:underline;text-decoration-color:#B8CFD8;text-underline-offset:3px;}#dt-page .closing .closing-body{margin:12px auto 0;max-width:60ch;font-size:15.5px;line-height:1.65;color:#C9D3CD;}#dt-page .closing .trial-fine a{color:#8FE3C3;text-decoration:underline;text-underline-offset:3px;}#dt-page .tile.is-soon{border-style:dashed;border-color:#C4D3CC;background:#FBFCFB;cursor:default;}#dt-page .tile.is-soon::after{content:none;}#dt-page .tile.is-soon:hover{border-color:#C4D3CC;}#dt-page .tile.is-soon h3{color:var(--ink-soft);}#dt-page .tile.is-soon p{color:var(--ink-faint);}#dt-page .soon-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);background:#F1F3F2;border:1px solid #DDE3E0;border-radius:999px;padding:4px 10px;}#dt-page .soon-pill::before{content:\"\";width:6px;height:6px;border-radius:50%;border:1.5px solid var(--ink-faint);}#dt-page .tile .t-label.hub{color:var(--mint);}#dt-page .cat.cat-row{padding:36px 0 32px;}#dt-page .cr-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;align-items:start;}#dt-page .cr-head .eyebrow{margin-bottom:12px;}#dt-page .cr-head .section-head h2{font-size:24px;}#dt-page .cr-tiles{display:flex;flex-direction:column;gap:12px;padding-top:4px;}#dt-page .cr-tiles .tile h3{font-size:18px;}@media (max-width:900px){#dt-page .cr-grid{grid-template-columns:minmax(0,1fr);gap:18px;}}#dt-page .tile:not([href])::after{content:none;}#dt-page div.tile:hover{border-color:var(--border);}#dt-page .tile.is-gated::after{content:none;}#dt-page .tile.is-gated:hover{border-color:var(--border);}#dt-page .r1-fig{margin:22px 0 6px;}#dt-page .r1-fig img{display:block;max-width:100%;height:auto;}#dt-page .r1-diagram img{width:100%;max-width:960px;border:1px solid var(--border,#E3EAE6);border-radius:12px;background:#fff;}#dt-page .r1-hero img,#dt-page .r1-card img{width:100%;max-width:640px;aspect-ratio:640\/440;border-radius:14px;}#dt-page .r1-crop>img{display:block;width:100%;height:auto;}#dt-page .r1-crop{border:1px solid var(--border,#E3EAE6);border-radius:12px;overflow:hidden;background:#fff;}#dt-page .r1-shots .r1-crop + .r1-crop{margin-top:14px;}#dt-page .r1-fig figcaption{margin-top:10px;font-size:13.5px;color:var(--ink-soft,#51605A);line-height:1.55;max-width:80ch;}#dt-page .r1-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}#dt-page .r1-cards img{width:100%;aspect-ratio:640\/440;border-radius:12px;}#dt-page .head-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:40px;align-items:start;}#dt-page .head-grid .r1-fig{margin-top:6px;}#dt-page .r1-hero-wide{margin-top:28px;}#dt-page .ty-hero-grid.r1-onecol{grid-template-columns:1fr;}@media (max-width:900px){#dt-page .head-grid{grid-template-columns:1fr;}#dt-page .r1-cards{grid-template-columns:1fr;}}#dt-page .head-grid.hv2{grid-template-columns:minmax(0,1fr) minmax(0,440px);grid-template-areas:\"title media\" \"rest media\";grid-template-rows:auto 1fr;column-gap:48px;row-gap:0;align-items:start;}#dt-page .head-grid.hv2>.head-title{grid-area:title;}#dt-page .head-grid.hv2>.head-media{grid-area:media;}#dt-page .head-grid.hv2>.head-rest{grid-area:rest;}#dt-page .head-media{display:flex;flex-direction:column;gap:18px;}#dt-page .head-media .r1-fig{margin:6px 0 0;}#dt-page .head-media .definition{margin-top:0;max-width:none;}#dt-page .head-media .def-text{font-size:16px;line-height:1.55;}#dt-page .head-lead{margin-top:24px;}#dt-page .head-rest>.head-lead{margin-top:0;}#dt-page .head-rest{padding-top:24px;}#dt-page .head-rest>.hero-copy>p:first-child{margin-top:0;}#dt-page .head-rest>.hero-copy{margin-top:0;}#dt-page .head-lead h2{font-size:22px;line-height:1.3;margin:0 0 10px;}#dt-page .head-lead p{margin:0 0 14px;}#dt-page .head-lead .section-head{margin:0;max-width:none;}#dt-page .ew-head{padding-bottom:56px;}#dt-page .def-kicker::before{content:none;}#dt-page .definition::after{content:none;}#dt-page .definition .def-text{font-weight:400;letter-spacing:0;}#dt-page .definition .def-text strong{font-weight:700;}#dt-page .hero-link{margin-top:24px;}#dt-page .prof-grid.no-aside{grid-template-columns:minmax(0,780px);}#dt-page .case-hero .head-media .prof-glance{position:static;width:100%;}#dt-page .art-grid>article.prose>h2:first-child,#dt-page .pillar-body>.prose:first-child>h2:first-child{margin-top:0;}#dt-page .head-lead p.lede,#dt-page .head-rest p.lede{font-size:inherit;}#dt-page .case-layout.no-aside{grid-template-columns:minmax(0,780px);grid-template-areas:\"main\";}#dt-page .case-hero .head-lead .definition{margin-top:22px;}#dt-page .case-hero .head-lead .def-text{font-size:16px;line-height:1.55;}#dt-page .case-hero .head-media .case-aside{position:static;}#dt-page .case-hero .head-media .factbox{margin:0;width:100%;max-width:none;}#dt-page .case-hero .head-media .case-aside{width:100%;}@media (max-width:900px){#dt-page .head-grid.hv2{display:flex;flex-direction:column;gap:0;}#dt-page .head-grid.hv2 .head-media{display:contents;}#dt-page .head-grid.hv2>.head-title{order:1;}#dt-page .head-grid.hv2 .head-media .definition{order:2;margin-top:22px;}#dt-page .head-grid.hv2 .head-media .r1-fig{order:3;margin-top:22px;}#dt-page .head-grid.hv2>.head-rest{order:4;}#dt-page .head-grid.case-hero>.head-rest{order:2;}#dt-page .head-grid.case-hero .head-media>*{order:3;margin-top:22px;}}#dt-page .tcta-band{padding:48px 0;}#dt-page .tcta{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center;border-radius:16px;padding:40px 0 40px 40px;background:var(--ink);color:#fff;text-align:left;}#dt-page .tcta::after{content:\"\";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,129,.28),rgba(16,185,129,0) 70%);pointer-events:none;}#dt-page .tcta .eyebrow.on-dark{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.18);color:#8FE3C3;border-radius:999px;padding:6px 12px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;}#dt-page .tcta .eyebrow.on-dark .dot{width:6px;height:6px;border-radius:50%;background:#6FE3B6;}#dt-page .tcta h2{font-size:28px;font-weight:900;letter-spacing:-0.01em;line-height:1.2;color:#fff;margin:0;}#dt-page .tcta .tcta-sub{margin:12px 0 0;font-size:15px;line-height:1.6;color:#CFE0D8;}#dt-page .tcta-k{margin-top:22px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8FA69A;}#dt-page .tcta-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;font-size:14px;}#dt-page .tcta-list li{display:flex;gap:8px;align-items:flex-start;line-height:1.45;color:#fff;font-weight:600;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08);}#dt-page .tcta-more{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;font-size:13.5px;color:#E4EEE9;}#dt-page .tcta-more li{display:flex;gap:7px;align-items:flex-start;line-height:1.45;}#dt-page .tcta svg{width:14px;height:14px;flex-shrink:0;margin-top:3px;color:#6FE3B6;}#dt-page .tcta-act{margin-top:26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}#dt-page .tcta-btn{display:inline-flex;align-items:center;gap:8px;background:var(--mint-fill);color:#fff;font-family:'Lato',sans-serif;font-weight:700;font-size:16px;border-radius:8px;padding:14px 22px;text-decoration:none;}#dt-page .tcta-btn:hover{background:#0C9A6E;}#dt-page .tcta-btn svg{width:16px;height:16px;margin:0;color:#fff;}#dt-page .tcta-g2{font-size:12.5px;color:#CFE0D8;}#dt-page .tcta-g2 strong{color:#fff;}#dt-page .tcta-g2 .stars{color:#E0A32E;letter-spacing:1px;font-size:11px;}#dt-page .tcta-fine{margin:12px 0 0;font-size:12.5px;line-height:1.55;max-width:52ch;color:#8FA69A;}#dt-page .tcta-shot{align-self:stretch;display:flex;align-items:center;}#dt-page .tcta-frame{width:calc(100% + 140px);border-radius:10px 0 0 10px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.14);border-right:none;background:#fff;}#dt-page .tcta-frame .bar{height:26px;display:flex;align-items:center;gap:6px;padding:0 12px;background:#EEF2F0;border-bottom:1px solid var(--border);}#dt-page .tcta-frame .bar i{width:8px;height:8px;border-radius:50%;background:#C9D3CE;}#dt-page .tcta-frame img{display:block;width:100%;height:auto;}#dt-page .tcta-cap{margin-top:10px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#8FA69A;}@media (max-width:900px){#dt-page .tcta{grid-template-columns:1fr;padding:32px 24px 0;gap:28px;}#dt-page .tcta-shot{margin:0 -24px 0 0;}#dt-page .tcta-frame{width:100%;}}@media (max-width:600px){#dt-page .tcta h2{font-size:23px;}#dt-page .tcta-more{grid-template-columns:1fr;}#dt-page .tcta-btn{width:100%;justify-content:center;}}#dt-page .definition .def-text{font-size:16px;line-height:1.6;}<\/style><div id=\"dt-page\" class=\"dt-page\"><section class=\"pc-head\"><div class=\"wrap\"> <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\"><ol><li><a href=\"\/en\/\">Home<\/a><\/li><li><a href=\"https:\/\/datatrue.com\/en\/resources\/\">Resources<\/a><\/li><li><a href=\"https:\/\/datatrue.com\/en\/resources\/analytics\/\">Analytics &amp; Data Quality<\/a><\/li><li aria-current=\"page\">What is a data layer?<\/li><\/ol><\/nav><div class=\"head-grid hv2\"><div class=\"head-title\"> <span class=\"eyebrow\"><span class=\"dot\"><\/span>Analytics &amp; Data Quality <span class=\"sep\">\/<\/span> How-to guide<\/span> <h1>What Is a Data Layer?<\/h1> <p class=\"byline\"><span class=\"by-who\">DataTrue Team<\/span><span class=\"by-sep\"><\/span><span>Updated September 2026<\/span><\/p> <\/div><div class=\"head-media\"><figure class=\"r1-fig r1-hero\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/H-DATALAYER.png\" alt=\"\" width=\"640\" height=\"440\"><\/figure><div class=\"definition\" id=\"definition\"><p class=\"def-kicker\">Summary<\/p><p class=\"def-text\">A <strong>data layer<\/strong> is a JavaScript object on a web page that collects, stores, and passes data in a standardised way, so all your tags and analytics tools read from one consistent source instead of scraping the page. A well-structured data layer is what makes your tag data accurate and easier to maintain as your tools change.<\/p><\/div><\/div><div class=\"head-rest\"><div class=\"head-lead\"><p>Data layers can be one of the more confounding parts of analytics tracking, with plenty of background to understand before you can make proper use of them. This guide gives you what you need to understand data layers and the role they play in your tracking. It is a good starting point for using data layers in your tag management system and analytics tools.<\/p><p>The later sections show what a data layer looks like, how it works with tag management and Google Tag Manager, and how to check the data layer on your own site.<\/p><\/div><\/div><\/div><\/div><\/section> <div class=\"wrap\"><div class=\"art-grid\"><article class=\"prose\"> <h2 id=\"what-is-a-data-layer\">What is a data layer?<\/h2> <p>A data layer is a JavaScript universal data object used to collect, store, and pass data on a website in a standardised way. It acts as a master resource for the data on your site. Rather than connecting every tool to various data sources, you connect them all to your data layer, so they draw from the same source and use the same information. As your analytics tech stack grows, the correct setup of your data layer becomes essential to getting real value from your analytics.<\/p><figure class=\"r1-fig r1-diagram\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/D12.png\" alt=\"An add-to-cart event pushes the event, price and currency to the data layer, and the tag manager passes them to tags.\" width=\"960\" height=\"400\" loading=\"lazy\"><\/figure> <h2 id=\"website-layers-explained\">Website layers explained<\/h2> <p>It helps to place the data layer alongside the other layers of a website. Virtually every site has two:<\/p> <ul class=\"check-list\"><li><strong>Front-end:<\/strong> also called the presentation layer or client side, this is everything users see and interact with, such as forms, buttons, animations, and menus, usually built with HTML and CSS.<\/li><li><strong>Back-end:<\/strong> also called the application layer or server side, this focuses on how the site functions on the server.<\/li><\/ul> <p>A third layer, found on many sites but not all, is the data layer. It takes the job of collecting data off the other layers and dedicates itself to that task. You can make one of the other layers double as the data layer, but that causes problems. For instance, using the front end as the data layer means a design change can break your data if it is tied to a feature that changed. A dedicated data layer avoids that, keeping your data structure uniform and simple.<\/p> <h2 id=\"what-are-the-benefits-of-a-data-layer\">What are the benefits of a data layer?<\/h2> <p>Adding a data layer can cause some headaches, but there are good reasons to do it:<\/p> <ul class=\"check-list\"><li><strong>Single source of data.<\/strong> For any site handling large, complex data, working from one source is essential, because it allows greater accuracy and flexibility.<\/li><li><strong>Integration between applications.<\/strong> Data layers make it simpler to connect any application that needs data from your site, by acting as the single source of primary data. Without one, you may spend hours making sure each application uses the same correct data.<\/li><li><strong>Easier quality assurance.<\/strong> A single source of data makes it much easier to check your data for errors or gaps, so you can move forward with confidence.<\/li><\/ul> <h2 id=\"what-does-a-data-layer-look-like\">What does a data layer look like?<\/h2> <p>Here is an illustrative example of a data layer, with placeholder values:<\/p> <div class=\"code-block\"><div class=\"code-bar\"><span class=\"code-lang\">javascript<\/span><button class=\"code-copy\" type=\"button\">Copy<\/button><\/div><pre><code>[ { \"gtm.start\": 1700000000000, \"event\": \"gtm.js\", \"gtm.uniqueEventId\": 1 }, { \"pageType\": \"product\", \"productName\": \"Camo Hoodie\" }, { \"event\": \"consent_updated\", \"consentAnalytics\": \"granted\", \"gtm.uniqueEventId\": 2 }, { \"event\": \"gtm.dom\", \"gtm.uniqueEventId\": 3 }, { \"event\": \"gtm.load\", \"gtm.uniqueEventId\": 4 } ]<\/code><\/pre><\/div> <p>Data layer code is fairly simple. A major part of it is key\/value pairs. Keys represent categories of data, and the value is the input. A streaming site might have keys for a film&#8217;s title, genre, and director, with values like &#8220;Citizen Kane,&#8221; &#8220;Drama,&#8221; and &#8220;Orson Welles.&#8221; With that in place, all relevant applications have the same data to draw from.<\/p> <p>Another common feature is events. Including events in your data layer makes it easier to set up triggers on your tags, because an event indicates when a specific action, such as a button press, should fire a tag. For example, you might name events <code>add_to_cart<\/code> or <code>purchase<\/code>, which match GA4&#8217;s recommended event names, or use your own names such as <code>formSubmit<\/code> and <code>buttonClick<\/code>.<\/p> <h2 id=\"data-layers-for-tag-management\">Data layers for tag management<\/h2> <p>How does a data layer affect tag management? First, google&#8217;s instructions say to set up the data layer above the Tag Manager snippet. The snippet itself starts an empty dataLayer if none exists, but only your site can push custom values into it. To use custom data, you add information to the data layer, primarily through the <code>dataLayer.push()<\/code> command:<\/p> <div class=\"code-block\"><div class=\"code-bar\"><span class=\"code-lang\">javascript<\/span><button class=\"code-copy\" type=\"button\">Copy<\/button><\/div><pre><code>dataLayer.push({ \"event\": \"event_name\" });<\/code><\/pre><\/div> <p>Once keys and values are in the data layer, they can be stored in variables, which your tag management system can then use easily. This command also adds event information, telling your tags when to fire.<\/p> <h2 id=\"how-to-use-a-data-layer-in-google-tag-manager\">How to use a data layer in Google Tag Manager<\/h2> <p>With the basics covered, here are the steps to implement and use a data layer in GTM.<\/p> <p><strong>1. Add data layer code to your web page.<\/strong> For reliability and uniformity, implement the data layer on every page, for example by adding the code to header files or shared templates. For GTM, the base code can be as simple as:<\/p> <div class=\"code-block\"><div class=\"code-bar\"><span class=\"code-lang\">html<\/span><button class=\"code-copy\" type=\"button\">Copy<\/button><\/div><pre><code>&lt;<span class=\"tk-tag\">script<\/span>&gt; window.dataLayer = window.dataLayer || []; &lt;\/<span class=\"tk-tag\">script<\/span>&gt;<\/code><\/pre><\/div> <p><strong>2. Add information to the data layer.<\/strong> The common way is <code>dataLayer.push()<\/code>. First decide your keys, or data categories, for example page information (<code>pageType<\/code>, <code>pageTitle<\/code>, <code>pageCategory<\/code>), user information (<code>userId<\/code>, <code>userType<\/code>, <code>userStatus<\/code>), ecommerce transactions (<code>transactionId<\/code>, <code>transactionTotal<\/code>, <code>transactionProducts<\/code>), or geographic data (<code>userCountry<\/code>, <code>userRegion<\/code>, <code>userCity<\/code>). Then include the value of each key:<\/p> <div class=\"code-block\"><div class=\"code-bar\"><span class=\"code-lang\">javascript<\/span><button class=\"code-copy\" type=\"button\">Copy<\/button><\/div><pre><code>dataLayer.push({ pageType: \"homepage\" });<\/code><\/pre><\/div> <p>You can add custom event data in the same push to make triggering smoother later:<\/p> <div class=\"code-block\"><div class=\"code-bar\"><span class=\"code-lang\">javascript<\/span><button class=\"code-copy\" type=\"button\">Copy<\/button><\/div><pre><code>dataLayer.push({ pageType: \"homepage\", custom: \"abcdef\" });<\/code><\/pre><\/div> <p><strong>3. Set up your data layer variable.<\/strong> Normal GTM variables cannot store custom data from the data layer, so you create data layer variables: click Variables, under User-Defined Variables click New, click Variable Configuration and select Data Layer Variable, enter the key exactly as written in the code in the Data Layer Variable Name field, set the Data Layer Version (Version 2 reads dots in a key name as nested values), save, and repeat for each key. Publish the container.<\/p> <p><strong>4. Configure tags with data layer variables.<\/strong> Set tags for your applications in GTM. Google Analytics has a built-in tag type in GTM. For the Meta Pixel, use a Community Template Gallery template (maintained by third parties) or a Custom HTML tag. In Tag Configuration, add your data layer variable in the relevant field by selecting it from the Variable menu.<\/p> <p><strong>5. Set up trigger events.<\/strong> Click Triggers, click New, select Custom Event as the trigger type, enter the event name exactly as it appears in the <code>dataLayer.push()<\/code> command, define any additional conditions, save with a meaningful name, then go to the tag, click Triggering, and select the trigger.<\/p> <p><strong>6. Preview and debug.<\/strong> Click Preview to activate preview and debug mode, open your website in another tab, perform actions to trigger your custom events, and identify any tags misfiring or not firing and any variables showing the wrong values. For troubleshooting tips, see our <a href=\"https:\/\/datatrue.com\/en\/resources\/tags\/what-is-a-tag-audit\/\">guide to tag auditing<\/a>. Test across pages and interaction types, then exit preview and publish.<\/p> <p>With that, you have a single source of data for your applications, and the tags and triggers to distribute it.<\/p> <h2 id=\"use-datatrue-to-secure-your-data-layer\">Use DataTrue to secure your data layer<\/h2> <p>Using a data layer is best practice for controlling the data your tags use. But relying on one object means trouble if the data is unreliable or the layer breaks. DataTrue&#8217;s automated <a href=\"\/en\/resources\/analytics\/data-layer-testing\/\">data layer testing<\/a> sets up validation tests that quickly surface issues, confirming the correct data is in your data layer and being passed to your tags. For verifying the right tags fire on a data layer event, including edge cases, see <a href=\"\/en\/resources\/analytics\/data-layer-unit-testing\/\">data layer unit testing<\/a>. Because a data layer underpins your reporting, it is also the foundation of <a href=\"https:\/\/datatrue.com\/en\/resources\/analytics\/data-accuracy\/\">data accuracy<\/a> and <a href=\"\/en\/resources\/analytics\/data-integrity\/\">data integrity<\/a>, and it feeds your <a href=\"\/en\/resources\/analytics\/ga4-event-tracking\/\">GA4 event tracking<\/a> and <a href=\"https:\/\/datatrue.com\/en\/resources\/analytics\/ga4-ecommerce-setup\/\">GA4 ecommerce setup<\/a>.<\/p><figure class=\"r1-fig r1-shot\"><div class=\"r1-crop\" style=\"max-width:912px\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/data-layer-validation-crop.png\" alt=\"DataTrue validating a cart-addition data layer event: the event method, action, page and phase each match their expected values.\" width=\"912\" height=\"715\" loading=\"lazy\"><\/div><\/figure> <h2 id=\"check-your-data-layer-on-your-own-site\">Check your data layer on your own site<\/h2><p>DataTrue tests the values feeding your tags on your live site and apps, so you can confirm the data layer holds the right data in each consent state. See how it works on the <a href=\"\/en\/platform\/web-analytics-testing\/\">web analytics testing<\/a> page.<\/p><section class=\"faq-block\" aria-labelledby=\"questions\"><h2 id=\"questions\">Questions<\/h2><div class=\"faq-list\"><details class=\"faq-item\" open><summary>What is a data layer?<\/summary><p>A data layer is a JavaScript object on a web page that collects, stores, and passes data in a standardised way, so your tags and analytics tools all read from one consistent source instead of scraping the page.<\/p><\/details><details class=\"faq-item\"><summary>What does a data layer do?<\/summary><p>It gives every tool on your site a single, structured source of data to draw from. That improves accuracy and flexibility, makes quality assurance easier, and stops a design change from silently breaking your tracking.<\/p><\/details><details class=\"faq-item\"><summary>Do you need a data layer for Google Tag Manager?<\/summary><p>Google&#8217;s instructions say to set up the data layer above the Tag Manager snippet. The snippet itself starts an empty dataLayer if none exists, but only your site can push custom values into it. Add your own data with <code>dataLayer.push()<\/code> and read it with data layer variables.<\/p><\/details><details class=\"faq-item\"><summary>What is dataLayer.push()?<\/summary><p><code>dataLayer.push()<\/code> is the command that adds information to the data layer, both key\/value data (such as <code>pageType: \"homepage\"<\/code>) and custom events that tell your tags when to fire.<\/p><\/details><details class=\"faq-item\"><summary>How do you test a data layer?<\/summary><p>Preview and debug in GTM to check values and triggers, then use automated data layer testing to validate that the correct values sit in the data layer and reach your tags on an ongoing basis. See our <a href=\"\/en\/resources\/analytics\/data-layer-testing\/\">data layer testing guide<\/a> for the detail.<\/p><\/details><\/div><\/section> <\/article> <aside class=\"rail\" aria-label=\"On this page\"><div class=\"toc\"><p class=\"toc-label\">On this page<\/p><ol><li><a href=\"#what-is-a-data-layer\">What is a data layer?<\/a><\/li><li><a href=\"#website-layers-explained\">Website layers explained<\/a><\/li><li><a href=\"#what-are-the-benefits-of-a-data-layer\">What are the benefits of a data layer?<\/a><\/li><li><a href=\"#what-does-a-data-layer-look-like\">What does a data layer look like?<\/a><\/li><li><a href=\"#data-layers-for-tag-management\">Data layers for tag management<\/a><\/li><li><a href=\"#how-to-use-a-data-layer-in-google-tag-manager\">How to use a data layer in Google Tag Manager<\/a><\/li><li><a href=\"#use-datatrue-to-secure-your-data-layer\">Use DataTrue to secure your data layer<\/a><\/li><li><a href=\"#check-your-data-layer-on-your-own-site\">Check your data layer on your own site<\/a><\/li><li><a href=\"#questions\">Questions<\/a><\/li><li><a href=\"#related\">Related guides<\/a><\/li><\/ol><\/div><div class=\"rail-links\"><p class=\"toc-label\">Related<\/p><ul><li><a href=\"\/en\/resources\/analytics\/data-layer-testing\/\">Data layer testing<\/a><\/li><li><a href=\"\/en\/resources\/analytics\/data-layer-unit-testing\/\">Data layer unit testing<\/a><\/li><li><a href=\"\/en\/resources\/analytics\/ga4-event-tracking\/\">GA4 event tracking<\/a><\/li><li><a href=\"https:\/\/datatrue.com\/en\/resources\/tags\/what-is-a-tag-audit\/\">What is a tag audit?<\/a><\/li><\/ul><\/div><\/aside> <\/div><\/div> <section class=\"band alt\" aria-labelledby=\"related\"><div class=\"wrap\"><div class=\"section-head\"><h2 id=\"related\">Related guides<\/h2><\/div><div class=\"tile-grid\"><a class=\"tile\" href=\"\/en\/resources\/analytics\/data-layer-testing\/\"><span class=\"t-label\">Guide<\/span><h3>Data layer testing<\/h3><\/a><a class=\"tile\" href=\"\/en\/resources\/analytics\/data-layer-unit-testing\/\"><span class=\"t-label\">Guide<\/span><h3>Data layer unit testing<\/h3><\/a><a class=\"tile\" href=\"\/en\/resources\/analytics\/ga4-event-tracking\/\"><span class=\"t-label\">Guide<\/span><h3>GA4 event tracking<\/h3><\/a><a class=\"tile\" href=\"https:\/\/datatrue.com\/en\/resources\/tags\/what-is-a-tag-audit\/\"><span class=\"t-label\">Guide<\/span><h3>What is a tag audit?<\/h3><\/a><\/div><\/div><\/section> <section class=\"tcta-band\"><div class=\"wrap\"><div class=\"tcta\"> <div class=\"tcta-copy\"><span class=\"eyebrow on-dark\"><span class=\"dot\"><\/span>30-day free trial<\/span><h2>Know what your tags send, page by page<\/h2><p class=\"tcta-sub\">DataTrue runs real journeys on your site and checks each tag&#8217;s data against what you expect, field by field. A missing event or a wrong value shows up in a test before it reaches a report.<\/p> <div class=\"tcta-k\">What DataTrue checks<\/div><ul class=\"tcta-list\"><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Every page, with coverage scans<\/li><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Scheduled runs, with alerts when a result changes<\/li><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Full journeys, like checkout and signup, in each consent state<\/li><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>What each tag sent, field by field<\/li><\/ul> <div class=\"tcta-k\">Also in the full platform<\/div><ul class=\"tcta-more\"><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>PII detection with test personas<\/li><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>iOS and Android app testing<\/li><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Pre-publish testing for GTM and Adobe Tags<\/li><li><svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5l3 3 6-7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>REST API, plus Slack and Jira alerts<\/li><\/ul> <div class=\"tcta-act\"><a class=\"tcta-btn\" href=\"https:\/\/datatrue.com\/en\/start-free-trial\/\">Start a free 30-day trial <svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><span class=\"tcta-g2\"><span class=\"stars\">\u2605\u2605\u2605\u2605\u2605<\/span> <strong>4.6\/5<\/strong> on G2<\/span><\/div> <p class=\"tcta-fine\">The full platform, every feature, free for 30 days.<\/p><\/div> <div class=\"tcta-shot\"><div style=\"width:100%\"><div class=\"tcta-frame\"><div class=\"bar\"><i><\/i><i><\/i><i><\/i><\/div><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/journey-simulation-payload.png\" alt=\"A DataTrue journey step reading what a GA4 page view sent, with each property checked\" width=\"1402\" height=\"876\" loading=\"lazy\"><\/div><div class=\"tcta-cap\">A journey step checking what a GA4 tag sent<\/div><\/div><\/div> <\/div><\/div><\/section> <script> (function(){var links=[].slice.call(document.querySelectorAll('.toc a'));if(!links.length||!('IntersectionObserver' in window))return; var map={};links.forEach(function(a){map[a.getAttribute('href').slice(1)]=a;}); var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){links.forEach(function(l){l.classList.remove('active')});var a=map[e.target.id];if(a)a.classList.add('active');}})},{rootMargin:'-10% 0px -75% 0px'}); Object.keys(map).forEach(function(id){var el=document.getElementById(id);if(el)io.observe(el);});})(); <\/script><script> document.querySelectorAll('.code-copy').forEach(function(b){b.addEventListener('click',function(){var t=b.closest('.code-block').querySelector('code').innerText;try{navigator.clipboard.writeText(t);b.textContent='Copied';setTimeout(function(){b.textContent='Copy'},1400);}catch(e){}});}); <\/script><\/div><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"HowTo\",\"name\":\"How to use a data layer in Google Tag Manager\",\"description\":\"How to implement and use a data layer in Google Tag Manager, from adding the code to previewing and publishing.\",\"step\":[{\"@type\":\"HowToStep\",\"name\":\"Add data layer code to your web page\",\"text\":\"Implement the data layer on every page by adding the base code to header files or shared templates: window.dataLayer = window.dataLayer || [];.\"},{\"@type\":\"HowToStep\",\"name\":\"Add information to the data layer\",\"text\":\"Use dataLayer.push() to add your keys and values, and custom event data, to the data layer.\"},{\"@type\":\"HowToStep\",\"name\":\"Set up your data layer variable\",\"text\":\"Create data layer variables in GTM under User-Defined Variables, entering each key exactly as written in the code, then publish the container.\"},{\"@type\":\"HowToStep\",\"name\":\"Configure tags with data layer variables\",\"text\":\"Set tags for your applications in GTM and add your data layer variables in Tag Configuration by selecting them from the Variable menu.\"},{\"@type\":\"HowToStep\",\"name\":\"Set up trigger events\",\"text\":\"Create a Custom Event trigger with the event name exactly as it appears in the dataLayer.push() command, then attach it to your tag.\"},{\"@type\":\"HowToStep\",\"name\":\"Preview and debug\",\"text\":\"Use GTM preview and debug mode to trigger events, check tags fire with the right values across pages, then exit preview and publish.\"}]}<\/script><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is a data layer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A data layer is a JavaScript object on a web page that collects, stores, and passes data in a standardised way, so your tags and analytics tools all read from one consistent source instead of scraping the page.\"}},{\"@type\":\"Question\",\"name\":\"What does a data layer do?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It gives every tool on your site a single, structured source of data to draw from. That improves accuracy and flexibility, makes quality assurance easier, and stops a design change from silently breaking your tracking.\"}},{\"@type\":\"Question\",\"name\":\"Do you need a data layer for Google Tag Manager?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Google's instructions say to set up the data layer above the Tag Manager snippet. The snippet itself starts an empty dataLayer if none exists, but only your site can push custom values into it. Add your own data with dataLayer.push() and read it with data layer variables.\"}},{\"@type\":\"Question\",\"name\":\"What is dataLayer.push()?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"dataLayer.push() is the command that adds information to the data layer, both key\/value data (such as pageType: \\\"homepage\\\") and custom events that tell your tags when to fire.\"}},{\"@type\":\"Question\",\"name\":\"How do you test a data layer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Preview and debug in GTM to check values and triggers, then use automated data layer testing to validate that the correct values sit in the data layer and reach your tags on an ongoing basis. See our data layer testing guide for the detail.\"}}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Home Resources Analytics &amp; Data Quality What is a data layer? Analytics &amp; Data Quality \/ How-to guide What Is a Data Layer? DataTrue TeamUpdated September 2026 Summary A data layer is a JavaScript object on a web page that collects, stores, and passes data in a standardised way, so all your tags and analytics [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"parent":227747,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-227771","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What Is a Data Layer? GA4 &amp; GTM Data Layer Guide | DataTrue<\/title>\n<meta name=\"description\" content=\"A data layer is a JavaScript object that gives your tags one consistent source of data. Here is what a data layer does and how to set one up in Google Tag Manager.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is a Data Layer? GA4 &amp; GTM Data Layer Guide | DataTrue\" \/>\n<meta property=\"og:description\" content=\"A data layer is a JavaScript object that gives your tags one consistent source of data. Here is what a data layer does and how to set one up in Google Tag Manager.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/\" \/>\n<meta property=\"og:site_name\" content=\"DataTrue\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/datatruedigital\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-06T16:19:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/datatrue.com\/wp-content\/uploads\/2022\/04\/New-DT-Logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1328\" \/>\n\t<meta property=\"og:image:height\" content=\"208\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@data_true\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/analytics\\\/data-layers\\\/\",\"url\":\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/analytics\\\/data-layers\\\/\",\"name\":\"What Is a Data Layer? GA4 & GTM Data Layer Guide | DataTrue\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/#website\"},\"datePublished\":\"2026-10-06T16:11:59+00:00\",\"dateModified\":\"2026-10-06T16:19:06+00:00\",\"description\":\"A data layer is a JavaScript object that gives your tags one consistent source of data. Here is what a data layer does and how to set one up in Google Tag Manager.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/analytics\\\/data-layers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/analytics\\\/data-layers\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/analytics\\\/data-layers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/datatrue.com\\\/en\\\/datatrue-home-2026\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resources\",\"item\":\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Analytics &amp; Data Quality\",\"item\":\"https:\\\/\\\/datatrue.com\\\/en\\\/resources\\\/analytics\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"What Is a Data Layer?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/datatrue.com\\\/en\\\/\",\"name\":\"DataTrue\",\"description\":\"Web Analytics Quality Assurance\",\"publisher\":{\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/datatrue.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/#organization\",\"name\":\"DataTrue\",\"url\":\"https:\\\/\\\/datatrue.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/datatrue.com\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/New-DT-Logo.png\",\"contentUrl\":\"https:\\\/\\\/datatrue.com\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/New-DT-Logo.png\",\"width\":1328,\"height\":208,\"caption\":\"DataTrue\"},\"image\":{\"@id\":\"https:\\\/\\\/datatrue.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/datatruedigital\\\/\",\"https:\\\/\\\/x.com\\\/data_true\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/Datatrue\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What Is a Data Layer? GA4 & GTM Data Layer Guide | DataTrue","description":"A data layer is a JavaScript object that gives your tags one consistent source of data. Here is what a data layer does and how to set one up in Google Tag Manager.","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:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/","og_locale":"en_US","og_type":"article","og_title":"What Is a Data Layer? GA4 & GTM Data Layer Guide | DataTrue","og_description":"A data layer is a JavaScript object that gives your tags one consistent source of data. Here is what a data layer does and how to set one up in Google Tag Manager.","og_url":"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/","og_site_name":"DataTrue","article_publisher":"https:\/\/www.facebook.com\/datatruedigital\/","article_modified_time":"2026-10-06T16:19:06+00:00","og_image":[{"width":1328,"height":208,"url":"https:\/\/datatrue.com\/wp-content\/uploads\/2022\/04\/New-DT-Logo.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@data_true","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/","url":"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/","name":"What Is a Data Layer? GA4 & GTM Data Layer Guide | DataTrue","isPartOf":{"@id":"https:\/\/datatrue.com\/en\/#website"},"datePublished":"2026-10-06T16:11:59+00:00","dateModified":"2026-10-06T16:19:06+00:00","description":"A data layer is a JavaScript object that gives your tags one consistent source of data. Here is what a data layer does and how to set one up in Google Tag Manager.","breadcrumb":{"@id":"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/datatrue.com\/en\/resources\/analytics\/data-layers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/datatrue.com\/en\/datatrue-home-2026\/"},{"@type":"ListItem","position":2,"name":"Resources","item":"https:\/\/datatrue.com\/en\/resources\/"},{"@type":"ListItem","position":3,"name":"Analytics &amp; Data Quality","item":"https:\/\/datatrue.com\/en\/resources\/analytics\/"},{"@type":"ListItem","position":4,"name":"What Is a Data Layer?"}]},{"@type":"WebSite","@id":"https:\/\/datatrue.com\/en\/#website","url":"https:\/\/datatrue.com\/en\/","name":"DataTrue","description":"Web Analytics Quality Assurance","publisher":{"@id":"https:\/\/datatrue.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/datatrue.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/datatrue.com\/en\/#organization","name":"DataTrue","url":"https:\/\/datatrue.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/datatrue.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/datatrue.com\/wp-content\/uploads\/2022\/04\/New-DT-Logo.png","contentUrl":"https:\/\/datatrue.com\/wp-content\/uploads\/2022\/04\/New-DT-Logo.png","width":1328,"height":208,"caption":"DataTrue"},"image":{"@id":"https:\/\/datatrue.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/datatruedigital\/","https:\/\/x.com\/data_true","https:\/\/www.youtube.com\/c\/Datatrue"]}]}},"_links":{"self":[{"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/pages\/227771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/comments?post=227771"}],"version-history":[{"count":4,"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/pages\/227771\/revisions"}],"predecessor-version":[{"id":227889,"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/pages\/227771\/revisions\/227889"}],"up":[{"embeddable":true,"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/pages\/227747"}],"wp:attachment":[{"href":"https:\/\/datatrue.com\/en\/wp-json\/wp\/v2\/media?parent=227771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}