{"id":22649,"date":"2026-10-12T13:52:00","date_gmt":"2026-10-12T11:52:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=22649"},"modified":"2026-10-10T22:59:08","modified_gmt":"2026-10-10T20:59:08","slug":"ki-agenten-webanalytics-ga4-erkennen","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/","title":{"rendered":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst"},"content":{"rendered":"<p><strong>KI-Agenten sind 2026 vom Experiment zum messbaren Traffic-Faktor geworden \u2013 und die meisten Analytics-Setups z\u00e4hlen sie schlicht als Menschen.<\/strong> Agenten rufen Seiten auf, scrollen, f\u00fcllen Formulare aus und legen Produkte in den Warenkorb. Im GA4-Bericht erscheint das als ganz normale Sitzung mit Chrome-Browser, h\u00e4ufig als \u201eDirect\u201c, manchmal sogar als organischer Traffic.<\/p>\n<p>Die Gr\u00f6\u00dfenordnung ist nicht mehr vernachl\u00e4ssigbar. Laut <a href=\"https:\/\/www.humansecurity.com\/2026-state-of-ai-traffic-cyberthreat-benchmark-report\/\" target=\"_blank\" rel=\"noopener noreferrer\">HUMAN Security<\/a> wuchs der Traffic von KI-Agenten und agentischen Browsern 2025 um 7.851 % gegen\u00fcber dem Vorjahr. Im <a href=\"https:\/\/www.humansecurity.com\/learn\/blog\/state-of-agentic-traffic-august-2026-agentic-traffic-grows-27-reaches-new-high-as-codex-debuts-strongly\/\" target=\"_blank\" rel=\"noopener noreferrer\">August-2026-Benchmark<\/a> legte agentischer Traffic erneut um 27 % zu und erreichte einen neuen H\u00f6chststand.<\/p>\n<p>Gleichzeitig hat Google im Mai 2026 einen eigenen Kanal \u201eAI Assistant\u201c in GA4 eingef\u00fchrt. Das klingt nach L\u00f6sung, misst aber nur einen Ausschnitt. Dieser Beitrag zeigt, welche Arten von KI-Besuchen es gibt, welche davon GA4 tats\u00e4chlich erkennt und wie sich agentischer Traffic serverseitig klassifizieren und sauber in die Auswertung \u00fcbernehmen l\u00e4sst \u2013 mit konkreten Code-Beispielen.<\/p>\n<h2>Drei Klassen von KI-Besuchen<\/h2>\n<p><strong>\u201eKI-Traffic\u201c ist kein einheitliches Ph\u00e4nomen, sondern zerf\u00e4llt technisch in drei Klassen mit v\u00f6llig unterschiedlichem Messverhalten.<\/strong> Wer sie in einen Topf wirft, bekommt weder saubere Nutzerzahlen noch eine belastbare Aussage zum Wert von KI als Kanal.<\/p>\n<table>\n<tr>\n<th>Klasse<\/th>\n<th>Beispiele<\/th>\n<th>F\u00fchrt JavaScript aus<\/th>\n<th>Erscheint in GA4<\/th>\n<th>Erkennbar \u00fcber<\/th>\n<\/tr>\n<tr>\n<td>KI-vermittelte Menschen<\/td>\n<td>Klick auf eine Quelle in ChatGPT, Gemini, Claude, Perplexity<\/td>\n<td>ja<\/td>\n<td>ja, oft im Kanal \u201eAI Assistant\u201c<\/td>\n<td>Referrer, UTM-Parameter<\/td>\n<\/tr>\n<tr>\n<td>Serverseitige Abrufe im Nutzerauftrag<\/td>\n<td>ChatGPT-User, Claude-User, Perplexity-User<\/td>\n<td>meist nein<\/td>\n<td>nein<\/td>\n<td>User-Agent, IP-Listen, Server-Logs<\/td>\n<\/tr>\n<tr>\n<td>Agentische Browser<\/td>\n<td>Perplexity Comet, ChatGPT Agent, Chrome Auto Browse, Google-Agent<\/td>\n<td>ja<\/td>\n<td>ja, als normale Sitzung<\/td>\n<td>schwierig: teils User-Agent-Token, teils Signaturen, teils gar nicht<\/td>\n<\/tr>\n<\/table>\n<p>Dazu kommen klassische Trainings- und Such-Crawler wie GPTBot oder OAI-SearchBot. Diese Crawler f\u00fchren in der Regel kein JavaScript aus und tauchen daher nur in Logs auf, nicht im Tag-basierten Tracking.<\/p>\n<p>Das eigentliche Problem ist die dritte Klasse. Agentische Browser f\u00fchren das Tracking-Skript aus, setzen Cookies, l\u00f6sen Events aus \u2013 und verhalten sich dabei nicht wie ein Mensch. Genau diese Sitzungen ver\u00e4ndern Conversion-Raten, Absprungverhalten und Funnel-Analysen, ohne als Agent markiert zu sein.<\/p>\n<h2>Der neue AI-Assistant-Kanal in GA4: was er misst und was nicht<\/h2>\n<p><strong>Der Kanal \u201eAI Assistant\u201c erfasst ausschlie\u00dflich Klicks von Menschen mit erkennbarem Referrer \u2013 also nur die erste der drei Klassen.<\/strong> Laut <a href=\"https:\/\/support.google.com\/analytics\/answer\/9164320?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Googles Release Notes vom 13. Mai 2026<\/a> setzt GA4 das Medium auf \u201eai-assistant\u201c, sobald der Referrer zu einem bekannten KI-Assistenten passt. Diese Besuche landen in der Default Channel Group als \u201eAI Assistant\u201c, die Kampagne hei\u00dft \u201e(ai-assistant)\u201c.<\/p>\n<p>Erg\u00e4nzend gibt es seit dem 11. Juni 2026 die Dimension <strong>Source Group<\/strong>. Die Dimension fasst Quellwerte zusammen und enth\u00e4lt laut Google bereits Gruppierungen f\u00fcr ChatGPT (OpenAI) und Perplexity \u2013 r\u00fcckwirkend bef\u00fcllt, also auch f\u00fcr historische Zeitr\u00e4ume nutzbar.<\/p>\n<p>Drei L\u00fccken bleiben trotzdem:<\/p>\n<ul>\n<li><strong>Fehlender Referrer.<\/strong> \u00dcberg\u00e4nge aus nativen Apps in den Browser liefern h\u00e4ufig keinen Referrer. <a href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ga4-kanal-ai-assistant-welche-besuche-er-erfasst-und-welche-in-direct\/\">Solche Besuche fallen in \u201eDirect\u201c<\/a>, obwohl ein KI-Assistent der Ausl\u00f6ser war. Ein Teil wird durch UTM-Parameter gerettet, etwa <code>utm_source=chatgpt.com<\/code>, den ChatGPT an viele Links anh\u00e4ngt.<\/li>\n<li><strong>KI-Funktionen innerhalb von Google.<\/strong> Klicks aus AI Overviews oder dem AI Mode kommen vom Google-Referrer und bleiben damit Teil von \u201eOrganic Search\u201c. Der neue Kanal trennt sie nicht ab.<\/li>\n<li><strong>Agenten statt Menschen.<\/strong> Ein agentischer Browser, der im Auftrag eines Nutzers eine Produktseite \u00f6ffnet, hat oft gar keinen Referrer oder einen beliebigen. Der Kanal sagt \u00fcber diese Sitzungen nichts aus \u2013 sie stecken unerkannt in allen Kan\u00e4len.<\/li>\n<\/ul>\n<p>F\u00fcr eine erste Einordnung ist der Kanal trotzdem wertvoll: Der Bericht zeigt, welche Inhalte in KI-Antworten als Quelle verlinkt werden und wie gut dieser Traffic im Vergleich zu Organic konvertiert.<\/p>\n<h2>Die blinde Stelle: agentische Browser im Datensatz<\/h2>\n<p><strong>Agentische Browser basieren auf Chromium, f\u00fchren das Tracking normal aus und geben sich standardm\u00e4\u00dfig als gew\u00f6hnliches Chrome aus.<\/strong> Die IAB-Bot-Liste, auf die sich GA4 bei der Bot-Filterung st\u00fctzt, greift hier nicht, wie <a href=\"https:\/\/snowplow.io\/blog\/agentic-browsing-is-here\" target=\"_blank\" rel=\"noopener noreferrer\">Snowplow<\/a> analysiert hat. Seer Interactive beobachtete in einem Test sogar, dass OpenAIs Agent in GA4 als <a href=\"https:\/\/www.seerinteractive.com\/insights\/how-will-you-know-when-open-ais-operator-agent-hits-your-website\" target=\"_blank\" rel=\"noopener noreferrer\">Bing\/organic<\/a> auftauchte.<\/p>\n<p>Der Markt hat sich 2026 sp\u00fcrbar sortiert:<\/p>\n<ul>\n<li><strong>Perplexity Comet<\/strong> war im August 2026 laut <a href=\"https:\/\/www.humansecurity.com\/learn\/blog\/state-of-agentic-traffic-august-2026-agentic-traffic-grows-27-reaches-new-high-as-codex-debuts-strongly\/\" target=\"_blank\" rel=\"noopener noreferrer\">HUMAN<\/a> mit 40,7 % die gr\u00f6\u00dfte Einzelquelle agentischen Traffics.<\/li>\n<li><strong>OpenAI<\/strong> hat den eigenst\u00e4ndigen Browser <a href=\"https:\/\/en.wikipedia.org\/wiki\/ChatGPT_Atlas\" target=\"_blank\" rel=\"noopener noreferrer\">ChatGPT Atlas am 9. August 2026 eingestellt<\/a>. ChatGPT Agent, Codex und Atlas zusammen kamen im August auf rund 31 % des agentischen Traffics; Atlas kann darin nur bis zur Einstellung am 9. August beigetragen haben.<\/li>\n<li><strong>Chrome Auto Browse<\/strong> l\u00e4uft seit dem 28. Januar 2026 direkt im meistgenutzten Browser. Laut <a href=\"https:\/\/nohacks.co\/blog\/agentic-browser-landscape-2026\" target=\"_blank\" rel=\"noopener noreferrer\">\u00dcbersicht von nohacks<\/a> ist die Funktion weiterhin auf die USA und auf zahlende Google-AI-Pro- und -Ultra-Abos beschr\u00e4nkt. F\u00fcr DACH-Seiten ist der Effekt daher noch gering, die Reichweite ist aber angelegt.<\/li>\n<\/ul>\n<p>Zus\u00e4tzlich blockiert Comet laut <a href=\"https:\/\/taggrs.io\/ai-browsers-tracking-attribution\/\" target=\"_blank\" rel=\"noopener noreferrer\">TAGGRS<\/a> standardm\u00e4\u00dfig Werbung und Tracker. Ein Teil der agentischen Sitzungen fehlt dann komplett, ein anderer Teil wird voll gez\u00e4hlt \u2013 eine doppelte Verzerrung, die sich ohne serverseitige Daten nicht aufl\u00f6sen l\u00e4sst.<\/p>\n<p>Typische Symptome im Datensatz:<\/p>\n<ul>\n<li>steigende Sitzungen bei stagnierenden K\u00e4ufen oder Leads<\/li>\n<li>mehr \u201eDirect\u201c-Traffic auf tiefen Produkt- und Suchseiten ohne erkennbare Kampagne<\/li>\n<li>Formularstarts und Warenkorb-Events ohne Abschluss, geh\u00e4uft auf Desktop-Chrome<\/li>\n<li>auff\u00e4llig gleichm\u00e4\u00dfige Abst\u00e4nde zwischen Events innerhalb einer Sitzung<\/li>\n<\/ul>\n<p>Wie gering der direkte Umsatzanteil noch ist, zeigt eine weitere HUMAN-Zahl: <a href=\"https:\/\/www.humansecurity.com\/learn\/blog\/ai-traffic-growth-2025-key-findings\/\" target=\"_blank\" rel=\"noopener noreferrer\">2,3 % der agentischen Aktivit\u00e4t<\/a> fanden 2025 auf Checkout-Seiten statt. Der Gro\u00dfteil der Agenten recherchiert, vergleicht und bricht ab \u2013 und dr\u00fcckt damit genau die Kennzahlen, auf denen Optimierungsentscheidungen basieren.<\/p>\n<h2>Agenten-Identit\u00e4t: vom User-Agent zur kryptografischen Signatur<\/h2>\n<p><strong>Verl\u00e4sslich erkennbar ist ein Agent nur, wenn er sich selbst ausweist \u2013 und 2026 entsteht daf\u00fcr erstmals ein belastbarer Standard.<\/strong> Die Erkennung l\u00e4uft heute auf drei Ebenen, die sich in ihrer Vertrauensw\u00fcrdigkeit deutlich unterscheiden.<\/p>\n<p><strong>1. User-Agent-Token.<\/strong> Am einfachsten, aber f\u00e4lschbar. Google hat am 20. M\u00e4rz 2026 den Fetcher <strong>Google-Agent<\/strong> dokumentiert. Laut <a href=\"https:\/\/developers.google.com\/crawling\/docs\/crawlers-fetchers\/google-agent\" target=\"_blank\" rel=\"noopener noreferrer\">Google-Dokumentation<\/a> enth\u00e4lt sein User-Agent das Token <code>compatible; Google-Agent<\/code> innerhalb eines ansonsten normalen Chrome-Strings. Als nutzerausgel\u00f6ster Abruf ignoriert Google-Agent die robots.txt.<\/p>\n<p><strong>2. IP-Bereiche und Reverse DNS.<\/strong> Deutlich robuster. Google ver\u00f6ffentlicht die Adressen von Google-Agent in einer eigenen Datei <code>user-triggered-agents.json<\/code>. Laut <a href=\"https:\/\/ppc.land\/google-agent-joins-the-crawler-list-as-ai-browsing-gets-an-official-identity\/\" target=\"_blank\" rel=\"noopener noreferrer\">PPC Land<\/a> l\u00f6sen von Google betriebene Abrufe per Reverse DNS auf <code>google-proxy-***-***-***-***.google.com<\/code> auf. Die Pr\u00fcfung erfolgt zweistufig: Reverse-Lookup der IP, dann Forward-Lookup des Hostnamens zur\u00fcck auf dieselbe IP.<\/p>\n<p><strong>3. Web Bot Auth.<\/strong> Der neue Ansatz <a href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/cloud-ai-de\/web-bot-auth-wie-agenten-anfragen-signiert-werden-und-was-die-signatur\/\">signiert jede Anfrage kryptografisch<\/a> auf Basis von RFC 9421 (HTTP Message Signatures). Die IETF-Arbeitsgruppe <code>webbotauth<\/code> ist gechartert, das Protokolldokument ist aber noch ein Internet-Draft. Eine signierte Anfrage tr\u00e4gt drei zus\u00e4tzliche Header, laut <a href=\"https:\/\/contextbolt.com\/blog\/web-bot-auth\/\" target=\"_blank\" rel=\"noopener noreferrer\">Contextbolt<\/a> etwa so:<\/p>\n<pre><code class=\"language-http\">Signature-Agent: \"https:\/\/chatgpt.com\"\nSignature-Input: sig1=(\"@authority\" \"signature-agent\");\n  created=1786951400; expires=1786951700;\n  keyid=\"poqkLGiymh_W0uP6PZFw-dvez3QJT5SolqXBCW38r0U\";\n  alg=\"ed25519\"; tag=\"web-bot-auth\"\nSignature: sig1=:jP4kZG2h9xQvT1mN...:<\/code><\/pre>\n<p>Der Server holt den \u00f6ffentlichen Schl\u00fcssel vom Ursprung aus <code>Signature-Agent<\/code> unter <code>\/.well-known\/http-message-signatures-directory<\/code>, sucht den passenden <code>keyid<\/code> und pr\u00fcft die Signatur sowie das Zeitfenster aus <code>created<\/code> und <code>expires<\/code>. Ein gef\u00e4lschter User-Agent besteht diese Pr\u00fcfung nicht.<\/p>\n<table>\n<tr>\n<th>Betreiber<\/th>\n<th>Signature-Agent<\/th>\n<th>Stand<\/th>\n<\/tr>\n<tr>\n<td>ChatGPT (Cloud-Browser)<\/td>\n<td>https:\/\/chatgpt.com<\/td>\n<td>signiert, Schl\u00fcssel am Standardpfad ver\u00f6ffentlicht<\/td>\n<\/tr>\n<tr>\n<td>Google-Agent<\/td>\n<td>https:\/\/agent.bot.goog<\/td>\n<td>experimentell, nur ein Teil der Anfragen<\/td>\n<\/tr>\n<tr>\n<td>Cloudflare Verified Bots<\/td>\n<td>je Betreiber<\/td>\n<td>Web Bot Auth als eine von zwei akzeptierten Nachweisformen<\/td>\n<\/tr>\n<tr>\n<td>AWS WAF Bot Control<\/td>\n<td>je Betreiber<\/td>\n<td>unterst\u00fctzt seit 21. November 2025<\/td>\n<\/tr>\n<\/table>\n<p>Stand laut <a href=\"https:\/\/contextbolt.com\/blog\/web-bot-auth\/\" target=\"_blank\" rel=\"noopener noreferrer\">Contextbolt<\/a>, Protokoll-Draft in Revision 02 vom 18. August 2026.<\/p>\n<p>F\u00fcr die meisten Websites lohnt sich keine Eigenimplementierung der Signaturpr\u00fcfung. Sinnvoller ist es, die Klassifikation eines CDN oder einer WAF zu \u00fcbernehmen und deren Ergebnis als Header an die Anwendung weiterzureichen. Genau darauf baut die folgende Architektur auf.<\/p>\n<h2>Architektur: Klassifikation vor dem Tracking<\/h2>\n<p><strong>Die Trennung gelingt nur, wenn die Klasse eines Besuchs feststeht, bevor das Tracking-Skript ausl\u00f6st.<\/strong> Nachtr\u00e4gliche Filter in GA4 kommen zu sp\u00e4t, weil ihnen die serverseitigen Signale fehlen: Signaturen, IP-Herkunft, Reverse DNS.<\/p>\n<p>Drei Prinzipien tragen die Architektur:<\/p>\n<ul>\n<li><strong>Verifizieren am Rand.<\/strong> CDN oder WAF pr\u00fcfen Web Bot Auth, IP-Listen und Reverse DNS und reichen das Ergebnis als Header weiter.<\/li>\n<li><strong>Einmal klassifizieren.<\/strong> Der Webserver vergibt pro Anfrage genau eine Klasse. Verifizierte Identit\u00e4t hat Vorrang vor der Selbstauskunft per User-Agent.<\/li>\n<li><strong>Markieren statt l\u00f6schen.<\/strong> Agenten-Sitzungen bleiben in den Daten, tragen aber eine eigene Dimension. So bleibt der Agenten-Kanal selbst analysierbar.<\/li>\n<\/ul>\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/ki-agenten-klassifikation-de.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\"\n     alt=\"Ablauf von oben nach unten: Eine eingehende Anfrage durchl\u00e4uft CDN\/WAF und den hervorgehobenen Nginx-Webserver, der agent_class setzt. Danach f\u00fchrt ein Weg \u00fcber das Server-Log in eine separate Property, der andere \u00fcber HTML und dataLayer samt WebMCP-Werkzeugen in die GA4-Haupt-Property; beide enden in BigQuery.\"><figcaption>Die Klasse eines Besuchs steht am Server fest, bevor das Tracking startet; Server-Log und GA4 tragen sie getrennt bis nach BigQuery.<\/figcaption><\/figure>\n<p>Der Server-Log erfasst alle Abrufe, auch solche ohne JavaScript. GA4 erh\u00e4lt nur Seitenaufrufe \u2013 dann aber mit Klasse und optional mit WebMCP-Events als eindeutigem Agenten-Signal.<\/p>\n<h2>Implementierung: von der Anfrage bis zur BigQuery-Auswertung<\/h2>\n<p><strong>Die Umsetzung besteht aus vier Bausteinen: Klassifikation am Webserver, Logging, \u00dcbergabe an das Tracking und Auswertung.<\/strong> Die Beispiele nutzen Nginx, PHP, GA4 und BigQuery, das Prinzip l\u00e4sst sich auf jeden Stack \u00fcbertragen.<\/p>\n<h3>1. Klassifikation in Nginx<\/h3>\n<p>Zwei Quellen flie\u00dfen zusammen: ein vom CDN gesetzter Header mit verifiziertem Ergebnis (hier <code>X-Verified-Agent<\/code>, etwa per Transform Rule) und eine einfache User-Agent-Erkennung als Fallback. Das verifizierte Ergebnis hat Vorrang.<\/p>\n<pre><code class=\"language-nginx\"># Fallback: Selbstauskunft per User-Agent (f\u00e4lschbar, daher nur zweite Wahl)\nmap $http_user_agent $ua_agent_class {\n    default                                          \"\";\n    ~*Google-Agent                                   \"agent:google\";\n    ~*ChatGPT-User                                   \"fetcher:openai\";\n    ~*Claude-User                                    \"fetcher:anthropic\";\n    ~*Perplexity-User                                \"fetcher:perplexity\";\n    ~*(GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot) \"crawler\";\n}\n\n# Verifiziertes CDN-Ergebnis hat Vorrang vor dem User-Agent, sonst \"human\"\nmap \"$http_x_verified_agent|$ua_agent_class\" $agent_class {\n    default                \"human\";\n    \"~^(?&lt;v&gt;[^|]+)\\|\"       \"$v\";\n    \"~^\\|(?&lt;u&gt;.+)$\"         \"unverified:$u\";\n}\n\nlog_format analytics '$remote_addr [$time_local] \"$request\" $status '\n                     '\"$http_referer\" \"$http_user_agent\" agent=$agent_class';\n\nserver {\n    access_log \/var\/log\/nginx\/access.log analytics;\n\n    location ~ \\.php$ {\n        fastcgi_param AGENT_CLASS $agent_class;\n        # ... restliche FastCGI-Konfiguration\n    }\n}<\/code><\/pre>\n<p>Wichtig: Der Header <code>X-Verified-Agent<\/code> muss am Ursprung von Anfragen, die nicht \u00fcber das CDN kommen, entfernt oder ignoriert werden. Sonst kann jeder Client sich selbst als verifiziert ausgeben.<\/p>\n<h3>2. Server-Logs als zweite Wahrheit<\/h3>\n<p>Fetcher und Crawler f\u00fchren kein JavaScript aus und fehlen daher in GA4 vollst\u00e4ndig. Das Log-Format oben macht sie sichtbar:<\/p>\n<pre><code class=\"language-bash\">grep -o 'agent=[^ ]*' \/var\/log\/nginx\/access.log | sort | uniq -c | sort -rn<\/code><\/pre>\n<p>Das Ergebnis zeigt, wie oft KI-Systeme Inhalte im Auftrag von Nutzern abrufen, ohne dass je eine Sitzung entsteht. F\u00fcr Content-Seiten ist das oft die aufschlussreichste Zahl \u00fcberhaupt.<\/p>\n<h3>3. \u00dcbergabe an den dataLayer<\/h3>\n<p>Die Klasse wird serverseitig in die Seite geschrieben und vor dem Laden des Tag Managers in den dataLayer \u00fcbergeben:<\/p>\n<pre><code class=\"language-php\">&lt;?php $trafficClass = $_SERVER['AGENT_CLASS'] ?? 'human'; ?&gt;\n&lt;script&gt;\n  window.dataLayer = window.dataLayer || [];\n  window.dataLayer.push({\n    traffic_class: &lt;?= json_encode($trafficClass) ?&gt;\n  });\n&lt;\/script&gt;<\/code><\/pre>\n<p>Bei Full-Page-Caching w\u00fcrde die Klasse des ersten Besuchers f\u00fcr alle ausgeliefert. Saubere Alternativen: die Klasse per Edge-Logik in den HTML-Stream einsetzen, den Cache nach <code>$agent_class<\/code> variieren oder die Klasse erst im serverseitigen Tag Manager aus dem Request-Header lesen.<\/p>\n<h3>4. GA4-Konfiguration<\/h3>\n<ul>\n<li><code>traffic_class<\/code> im Google-Tag als Event-Parameter mitsenden (in GTM als dataLayer-Variable).<\/li>\n<li>In GA4 unter Verwaltung \u2192 Benutzerdefinierte Definitionen eine Dimension mit Bereich \u201eEreignis\u201c und Parameter <code>traffic_class<\/code> anlegen.<\/li>\n<li>Benutzerdefinierte Dimensionen wirken nicht r\u00fcckwirkend. Je fr\u00fcher die Einrichtung, desto l\u00e4nger die Vergleichsbasis.<\/li>\n<\/ul>\n<h3>5. Auswertung in BigQuery<\/h3>\n<p>Die Abfrage berechnet Sitzungen und Conversion-Rate je Traffic-Klasse und Kanal. Projekt- und Dataset-Namen sind anzupassen.<\/p>\n<pre><code class=\"language-sql\">WITH events AS (\n  SELECT\n    CONCAT(user_pseudo_id, '-', CAST(\n      (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS STRING\n    )) AS session_key,\n    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'traffic_class') AS traffic_class,\n    session_traffic_source_last_click.cross_channel_campaign.default_channel_group AS channel,\n    event_name\n  FROM `mein-projekt.analytics_123456789.events_*`\n  WHERE _TABLE_SUFFIX BETWEEN '20260901' AND '20260930'\n),\nsessions AS (\n  SELECT\n    session_key,\n    COALESCE(MAX(traffic_class), 'nicht gesetzt') AS traffic_class,\n    MAX(channel) AS channel,\n    COUNTIF(event_name = 'purchase') &gt; 0 AS converted\n  FROM events\n  GROUP BY session_key\n)\nSELECT\n  traffic_class,\n  channel,\n  COUNT(*) AS sessions,\n  ROUND(100 * COUNTIF(converted) \/ COUNT(*), 2) AS conversion_rate_pct\nFROM sessions\nGROUP BY traffic_class, channel\nORDER BY sessions DESC;<\/code><\/pre>\n<p>Aufschlussreich ist vor allem der Vergleich \u201ehuman\u201c gegen \u201enicht gesetzt\u201c: Ein gro\u00dfer Anteil ohne Klasse deutet auf Caching-Probleme oder blockierte Skripte hin, eine deutlich abweichende Conversion-Rate bei \u201eagent:*\u201c best\u00e4tigt den Verzerrungseffekt.<\/p>\n<h2>WebMCP: Agenten-Interaktionen als saubere Events messen<\/h2>\n<p><strong>WebMCP dreht das Messproblem um: Statt Agenten nachtr\u00e4glich zu erraten, bietet die Website ihnen definierte Funktionen an \u2013 und jeder Aufruf ist per Definition ein Agenten-Event.<\/strong> Die Website registriert dazu Werkzeuge mit Name, Beschreibung und JSON-Schema, die ein Agent im Browser direkt aufrufen kann.<\/p>\n<p>Der Stand im Oktober 2026 laut <a href=\"https:\/\/mcpplaygroundonline.com\/blog\/what-is-webmcp\" target=\"_blank\" rel=\"noopener noreferrer\">mcpplaygroundonline<\/a> und <a href=\"https:\/\/chudi.dev\/blog\/what-is-webmcp\" target=\"_blank\" rel=\"noopener noreferrer\">chudi.dev<\/a>:<\/p>\n<ul>\n<li>W3C-Community-Group-Entwurf, noch nicht auf dem Standardisierungspfad<\/li>\n<li>\u00f6ffentlicher Origin Trial in Chrome von Version 149 bis 156<\/li>\n<li>Die API ist von <code>navigator.modelContext<\/code> nach <code>document.modelContext<\/code> umgezogen. Chrome 150 hat die alte Schreibweise als veraltet markiert, viele Tutorials zeigen noch die alte.<\/li>\n<li>lokales Testen \u00fcber <code>chrome:\/\/flags\/#enable-webmcp-testing<\/code><\/li>\n<\/ul>\n<p>F\u00fcr Analytics ist WebMCP deshalb interessant, weil sich die Messung direkt im Handler verankern l\u00e4sst:<\/p>\n<pre><code class=\"language-javascript\">const mc = document.modelContext ?? navigator.modelContext;\n\nif (mc) {\n  await mc.registerTool({\n    name: 'search_products',\n    description: 'Durchsucht den Produktkatalog nach Stichwort und optionaler Preisobergrenze.',\n    inputSchema: {\n      type: 'object',\n      properties: {\n        query: { type: 'string' },\n        max_price: { type: 'number' }\n      },\n      required: ['query']\n    },\n    async execute({ query, max_price }) {\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push({\n        event: 'agent_tool_call',\n        tool_name: 'search_products',\n        traffic_class: 'agent:webmcp'\n      });\n\n      const params = new URLSearchParams({ q: query });\n      if (max_price) params.set('max', String(max_price));\n      const data = await (await fetch('\/api\/search?' + params)).json();\n\n      return { content: [{ type: 'text', text: JSON.stringify(data.items) }] };\n    }\n  });\n}<\/code><\/pre>\n<p>Das Event <code>agent_tool_call<\/code> liefert ein Signal ohne Heuristik: welche Funktionen Agenten nutzen, wie oft und mit welchem Ergebnis im weiteren Verlauf der Sitzung. Eingabewerte geh\u00f6ren dabei nicht ungepr\u00fcft ins Tracking, da Agenten Suchbegriffe oder Formulardaten ihrer Nutzer weiterreichen k\u00f6nnen.<\/p>\n<p>Solange WebMCP nur im Origin Trial l\u00e4uft, ist es ein Zusatzsignal f\u00fcr fr\u00fche Erkenntnisse, kein Ersatz f\u00fcr die serverseitige Klassifikation. Da sich die API bereits einmal ge\u00e4ndert hat, empfiehlt sich eine Kapselung in einer eigenen Hilfsfunktion.<\/p>\n<h2>Datenhygiene: Hostname-Allowlist und serverseitige Events<\/h2>\n<p><strong>Zwei GA4-Neuerungen aus 2026 geh\u00f6ren in jedes Setup, das agentischen Traffic ernst nimmt: der Include-Filter f\u00fcr Hostnamen und die Data Manager API.<\/strong> Beide sind laut <a href=\"https:\/\/support.google.com\/analytics\/answer\/9164320?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Release Notes<\/a> bereits verf\u00fcgbar.<\/p>\n<p><strong>Hostname-Include-Filter (seit 21. September 2026).<\/strong> Bisher lie\u00dfen sich Hostnamen nur ausschlie\u00dfen, was bei jeder neuen Spam-Quelle Pflege erforderte. Jetzt l\u00e4sst sich eine Allowlist der eigenen Domains definieren. Zwei Details sind entscheidend:<\/p>\n<ul>\n<li>Events ohne Hostnamen werden automatisch verworfen. Serverseitige Setups, die keinen Seitenkontext mitsenden, verlieren so unbemerkt Daten. Der Filter sollte daher zuerst im Status \u201eTest\u201c laufen und erst nach Abgleich aktiviert werden.<\/li>\n<li>Events \u00fcber das Measurement Protocol werden vom Filter nicht erfasst. Das <code>api_secret<\/code> bleibt damit der einzige Schutz dieser Schnittstelle und geh\u00f6rt ausschlie\u00dflich auf den Server.<\/li>\n<\/ul>\n<p><strong>Data Manager API (seit 7. Mai 2026).<\/strong> Die API ist eine <a href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ga4-measurement-protocol-im-wartungsmodus-was-sich-andert-und-wann\/\">Alternative zum Measurement Protocol<\/a> f\u00fcr empfohlene und benutzerdefinierte Events direkt an Web- und App-Datenstreams. F\u00fcr das Thema dieses Beitrags bietet sie einen sauberen Weg, Abrufe von Fetchern aus den Server-Logs als eigene Events zu \u00fcbertragen \u2013 idealerweise in eine separate Property, damit menschliche Kennzahlen unber\u00fchrt bleiben.<\/p>\n<p>Das Ergebnis ist eine klare Trennung: Die Haupt-Property misst Menschen und markierte Agenten-Sitzungen, eine zweite Property oder ein BigQuery-Dataset b\u00fcndelt reine Maschinenabrufe.<\/p>\n<h2>Checkliste f\u00fcr die n\u00e4chsten 30 Tage<\/h2>\n<p><strong>Die folgenden Schritte bauen aufeinander auf und lassen sich in einem Monat umsetzen.<\/strong><\/p>\n<ul>\n<li>Kanal \u201eAI Assistant\u201c und Dimension \u201eSource Group\u201c in GA4 pr\u00fcfen und als Vergleichssegment speichern<\/li>\n<li>Server-Logs um eine Agenten-Klasse erweitern und eine Woche Basisdaten sammeln<\/li>\n<li>Pr\u00fcfen, ob CDN oder WAF verifizierte Bots und Web-Bot-Auth-Signaturen auswerten, und das Ergebnis als Header weiterreichen<\/li>\n<li><code>traffic_class<\/code> in dataLayer und Google-Tag aufnehmen, Caching-Verhalten testen<\/li>\n<li>Benutzerdefinierte Dimension <code>traffic_class<\/code> in GA4 registrieren<\/li>\n<li>Hostname-Include-Filter im Status \u201eTest\u201c anlegen, nach Abgleich aktivieren<\/li>\n<li>BigQuery-Abfrage einrichten und Conversion-Raten je Klasse vergleichen<\/li>\n<li>F\u00fcr eine zentrale Funktion (Suche, Verf\u00fcgbarkeit, Kontaktanfrage) ein WebMCP-Werkzeug im Origin Trial testen<\/li>\n<\/ul>\n<h2>Fazit<\/h2>\n<p><strong>Die zentrale Kennzahl 2026 ist nicht mehr \u201eWie viel KI-Traffic gibt es?\u201c, sondern \u201eWelcher Anteil der Sitzungen stammt \u00fcberhaupt von Menschen?\u201c.<\/strong> Der neue AI-Assistant-Kanal beantwortet nur die erste Frage, und auch die nur f\u00fcr Klicks mit Referrer.<\/p>\n<p>Agentische Browser f\u00fchren Tracking aus, ohne sich als Agent zu erkennen zu geben. Belastbar wird die Trennung erst \u00fcber serverseitige Klassifikation, idealerweise auf Basis verifizierter Identit\u00e4ten aus Web Bot Auth, IP-Listen und CDN-Auswertung. Diese Klasse geh\u00f6rt als eigene Dimension ins Tracking, nicht als nachtr\u00e4glicher Filter.<\/p>\n<p>WebMCP zeigt, wohin die Entwicklung geht: Websites, die Agenten bewusst Funktionen anbieten, bekommen im Gegenzug saubere Messpunkte. Bis das Standard ist, entscheidet die eigene Infrastruktur dar\u00fcber, ob Analytics-Daten noch menschliches Verhalten abbilden.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Warum lassen sich agentische Sitzungen nicht nachtr\u00e4glich in GA4 herausfiltern?<\/h3>\n<p>Weil GA4 nur sieht, was das Tag sendet. Ein agentischer Browser liefert dieselben Daten wie ein gew\u00f6hnliches Chrome: denselben Browser, oft keinen oder einen beliebigen Referrer und normal ausgel\u00f6ste Events. Die IAB-Bot-Liste, auf die sich die Bot-Filterung von GA4 st\u00fctzt, erkennt solche Browser nicht.<\/p>\n<p>Die Merkmale, die einen Agenten tats\u00e4chlich verraten, h\u00e4ngen an der einzelnen HTTP-Anfrage: die Signatur aus Web Bot Auth, die Herkunft aus einer ver\u00f6ffentlichten IP-Liste und der zweistufige Abgleich per Reverse DNS. Diese Pr\u00fcfungen laufen am CDN oder am Webserver. Erst wenn das Pr\u00fcfergebnis als <code>traffic_class<\/code> mit der Seite ausgeliefert wird, hat GA4 ein Merkmal, nach dem sich trennen l\u00e4sst. Da benutzerdefinierte Dimensionen nicht r\u00fcckwirkend wirken, gilt die Trennung zudem erst ab dem Tag der Einrichtung.<\/p>\n<h3>Warum tr\u00e4gt eine Klasse aus dem User-Agent in Nginx das Pr\u00e4fix \u201eunverified:\u201c?<\/h3>\n<p>Weil der User-Agent eine Selbstauskunft ist und sich beliebig f\u00e4lschen l\u00e4sst. Das Pr\u00e4fix h\u00e4lt in Logs und Berichten auseinander, welche Klassen ein CDN gepr\u00fcft hat und welche nur behauptet sind. Auch ein echter Google-Agent kann unter <code>unverified:agent:google<\/code> erscheinen, wenn CDN oder WAF seine Anfrage nicht verifiziert haben, zumal Google-Agent bisher nur einen Teil seiner Anfragen signiert.<\/p>\n<h3>Was geschieht mit der Klasse, wenn ein Seitencache oder ein CDN die Seite ausliefert?<\/h3>\n<p>Ohne Vorkehrung erhalten alle Besucher die Klasse dessen, der die Seite zuerst abgerufen hat. Der PHP-Teil schreibt <code>traffic_class<\/code> fest ins HTML. Liegt diese Fassung im Cache, bekommt jeder sp\u00e4tere Aufruf denselben Wert, ob Mensch oder Agent.<\/p>\n<p>Drei Wege halten die Klasse richtig:<\/p>\n<ul>\n<li><strong>Cache nach Klasse variieren.<\/strong> <code>$agent_class<\/code> wird Teil des Cache-Schl\u00fcssels. Da die Klasse nur wenige Werte annimmt, entstehen je Seite nur wenige Fassungen.<\/li>\n<li><strong>Klasse am Rand einsetzen.<\/strong> Edge-Logik schreibt den Wert erst beim Ausliefern in das gecachte HTML, der Cache selbst bleibt einheitlich.<\/li>\n<li><strong>Klasse im serverseitigen Tag Manager lesen.<\/strong> Das HTML tr\u00e4gt dann keine Klasse, der Server-Container liest sie aus dem Header der eingehenden Messanfrage. Das setzt voraus, dass auch diese Anfrage \u00fcber das klassifizierende CDN l\u00e4uft.<\/li>\n<\/ul>\n<p>Unabh\u00e4ngig davon ist das Server-Log nur vollst\u00e4ndig, wenn die Anfragen den Webserver erreichen. Liefert ein vorgelagertes CDN eine Seite aus dem eigenen Cache aus, sieht Nginx diesen Abruf nicht. Dann geh\u00f6ren die Logs des CDN mit in die Auswertung.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9164320?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: What&#8217;s new (Release Notes 2026)<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/crawling\/docs\/crawlers-fetchers\/google-agent\" target=\"_blank\" rel=\"noopener noreferrer\">Google: Liste der nutzerausgel\u00f6sten Fetcher (Google-Agent)<\/a><\/li>\n<li><a href=\"https:\/\/www.humansecurity.com\/2026-state-of-ai-traffic-cyberthreat-benchmark-report\/\" target=\"_blank\" rel=\"noopener noreferrer\">HUMAN: 2026 State of AI Traffic &amp; Cyberthreat Benchmark Report<\/a><\/li>\n<li><a href=\"https:\/\/www.humansecurity.com\/learn\/blog\/state-of-agentic-traffic-august-2026-agentic-traffic-grows-27-reaches-new-high-as-codex-debuts-strongly\/\" target=\"_blank\" rel=\"noopener noreferrer\">HUMAN: State of Agentic Traffic, August 2026<\/a><\/li>\n<li><a href=\"https:\/\/www.humansecurity.com\/learn\/blog\/ai-traffic-growth-2025-key-findings\/\" target=\"_blank\" rel=\"noopener noreferrer\">HUMAN: Key Findings 2025<\/a><\/li>\n<li><a href=\"https:\/\/snowplow.io\/blog\/agentic-browsing-is-here\" target=\"_blank\" rel=\"noopener noreferrer\">Snowplow: Agentic Browsing Is Here<\/a><\/li>\n<li><a href=\"https:\/\/www.seerinteractive.com\/insights\/how-will-you-know-when-open-ais-operator-agent-hits-your-website\" target=\"_blank\" rel=\"noopener noreferrer\">Seer Interactive: The New Analytics Blind Spot<\/a><\/li>\n<li><a href=\"https:\/\/taggrs.io\/ai-browsers-tracking-attribution\/\" target=\"_blank\" rel=\"noopener noreferrer\">TAGGRS: The impact of AI Browsers on user tracking<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/ChatGPT_Atlas\" target=\"_blank\" rel=\"noopener noreferrer\">Wikipedia: ChatGPT Atlas<\/a><\/li>\n<li><a href=\"https:\/\/nohacks.co\/blog\/agentic-browser-landscape-2026\" target=\"_blank\" rel=\"noopener noreferrer\">nohacks: The Agentic Browser Landscape in 2026<\/a><\/li>\n<li><a href=\"https:\/\/ppc.land\/google-agent-joins-the-crawler-list-as-ai-browsing-gets-an-official-identity\/\" target=\"_blank\" rel=\"noopener noreferrer\">PPC Land: Google-Agent joins the crawler list<\/a><\/li>\n<li><a href=\"https:\/\/contextbolt.com\/blog\/web-bot-auth\/\" target=\"_blank\" rel=\"noopener noreferrer\">Contextbolt: Web Bot Auth<\/a><\/li>\n<li><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/draft-meunier-webbotauth-httpsig-protocol-02\" target=\"_blank\" rel=\"noopener noreferrer\">IETF Draft: HTTP Message Signatures for automated traffic<\/a><\/li>\n<li><a href=\"https:\/\/mcpplaygroundonline.com\/blog\/what-is-webmcp\" target=\"_blank\" rel=\"noopener noreferrer\">mcpplaygroundonline: WebMCP in 2026<\/a><\/li>\n<li><a href=\"https:\/\/chudi.dev\/blog\/what-is-webmcp\" target=\"_blank\" rel=\"noopener noreferrer\">chudi.dev: What Is WebMCP?<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>GA4 z\u00e4hlt agentische Browser als normale Sitzungen, der neue Kanal \u201eAI Assistant\u201c erfasst nur Klicks mit Referrer. Der Beitrag ordnet KI-Besuche in drei Klassen ein und zeigt eine serverseitige Klassifikation mit Nginx, dataLayer, GA4-Dimension, BigQuery und WebMCP.<\/p>\n","protected":false},"author":1,"featured_media":22675,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[92406,92081,92088,92091],"class_list":["post-22649","post","type-post","status-publish","format-standard","hentry","category-digital-analytics-de","tag-artificial-intelligence-de","tag-bigquery-de","tag-data-quality-de","tag-google-analytics-4-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"GA4 z\u00e4hlt KI-Agenten als Menschen. Wie agentischer Traffic 2026 per Web Bot Auth, Server-Klassifikation und BigQuery sauber getrennt wird \u2013 mit Code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"GA4 z\u00e4hlt KI-Agenten als Menschen. Wie agentischer Traffic 2026 per Web Bot Auth, Server-Klassifikation und BigQuery sauber getrennt wird \u2013 mit Code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-12T11:52:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst\",\"datePublished\":\"2026-10-12T11:52:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/\"},\"wordCount\":2751,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png\",\"keywords\":[\"Artificial Intelligence\",\"BigQuery\",\"Data Quality\",\"Google Analytics 4\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/\",\"name\":\"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png\",\"datePublished\":\"2026-10-12T11:52:00+00:00\",\"description\":\"GA4 z\u00e4hlt KI-Agenten als Menschen. Wie agentischer Traffic 2026 per Web Bot Auth, Server-Klassifikation und BigQuery sauber getrennt wird \u2013 mit Code.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png\",\"width\":1200,\"height\":630,\"caption\":\"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/ki-agenten-webanalytics-ga4-erkennen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst | Lukas Wojcik","description":"GA4 z\u00e4hlt KI-Agenten als Menschen. Wie agentischer Traffic 2026 per Web Bot Auth, Server-Klassifikation und BigQuery sauber getrennt wird \u2013 mit Code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/","og_locale":"en_US","og_type":"article","og_title":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst | Lukas Wojcik","og_description":"GA4 z\u00e4hlt KI-Agenten als Menschen. Wie agentischer Traffic 2026 per Web Bot Auth, Server-Klassifikation und BigQuery sauber getrennt wird \u2013 mit Code.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-12T11:52:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst","datePublished":"2026-10-12T11:52:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/"},"wordCount":2751,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png","keywords":["Artificial Intelligence","BigQuery","Data Quality","Google Analytics 4"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/","name":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png","datePublished":"2026-10-12T11:52:00+00:00","description":"GA4 z\u00e4hlt KI-Agenten als Menschen. Wie agentischer Traffic 2026 per Web Bot Auth, Server-Klassifikation und BigQuery sauber getrennt wird \u2013 mit Code.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/fi-22649-ki-agenten-webanalytics-ga4-erkennen-b.png","width":1200,"height":630,"caption":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/ki-agenten-webanalytics-ga4-erkennen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"KI-Agenten in der Webanalyse: Wie agentischer Traffic GA4 verzerrt und sich serverseitig trennen l\u00e4sst"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/22649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=22649"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/22649\/revisions"}],"predecessor-version":[{"id":22695,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/22649\/revisions\/22695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/22675"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=22649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=22649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=22649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}