Reading visitor geo & device data with Data Enrichment
Country, city, device type, browser — tags often need this context, but getting it usually means calling a third-party geo-IP API or hand-rolling User-Agent parsing inside GTM. Data Enrichment adds it as plain request headers on every hit, ready to read with a variable you already have.
What it adds
Once turned on, Data Enrichment adds these headers to every event reaching your server container:
Geo (from visitor IP)
X-GEO-Country X-GEO-City X-GEO-Region X-GEO-PostalCode
Device (from User-Agent)
X-Device-Os X-Device-Browser X-Device-Browser-Version X-Device-Engine X-Device-Engine-Version X-Device-Bot X-Device-Mobile
Reading headers in GTM
No custom client-side logic needed — GTM's server container has a built-in Request Header variable type. Point one at, say, X-GEO-Country, and it's available to any tag or trigger like any other variable.
Turning off what you don't need
Every header is on by default. If a particular signal doesn't apply to your setup, uncheck it on the domain's Advanced Tracking tab and save — fewer headers on the wire, same reliability for the ones you keep.
Bot detection here vs. the full picture
X-Device-Bot flags a single request as bot-like the moment it arrives — useful for filtering a bot out of a trigger condition inline. For the fuller picture — which bot specifically, and how much of your traffic it represents over time — see bot & crawler traffic detection, Measurebase's dedicated reporting for that.