{"id":10506,"date":"2026-08-18T13:30:00","date_gmt":"2026-08-18T11:30:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10506"},"modified":"2026-10-24T04:16:23","modified_gmt":"2026-10-24T02:16:23","slug":"ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/","title":{"rendered":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct"},"content":{"rendered":"<p>Google announced the GA4 \u201cAI Assistant\u201d channel on 13 May 2026. The documented automatic rule assigns medium <code>ai-assistant<\/code> and campaign <code>(ai-assistant)<\/code> when a referrer matches a recognized assistant. The default channel definition checks that medium. The announcement does not establish 7 June as a universal completion date for every property.<\/p>\n<p>The channel measures classified traffic, not all influence from AI answers. A recommendation without a website visit creates no corresponding visit in GA4. Visits also need functioning measurement. Missing attribution information, tagging choices and changes in channel definitions can affect the result.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/quality-10506-20261024.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Conceptual classification cases without invented traffic shares. A missing referrer is not synonymous with Direct; deep entry pages do not estimate AI traffic.\"><figcaption>Conceptual classification cases without invented traffic shares. A missing referrer is not synonymous with Direct; deep entry pages do not estimate AI traffic.<\/figcaption><\/figure>\n<h2>Referrer, source and channel are different fields<\/h2>\n<p>A referrer identifies the page or origin from which navigation occurred. GA4 derives traffic-source information from several signals, including referrers, campaign parameters and advertising integrations. A missing referrer alone does not prove that a session belongs to Direct: UTM parameters may remain in a pasted link, and session attribution can retain an earlier non-direct source.<\/p>\n<table style=\"width:100%;border-collapse:collapse\"><thead><tr><th>Situation<\/th><th>Interpretation<\/th><\/tr><\/thead><tbody><tr><td>Recognized assistant referrer<\/td><td>The documented automatic AI Assistant rule can apply.<\/td><\/tr><tr><td>Assistant source outside that rule<\/td><td>Source\/medium may remain visible under Referral or another channel.<\/td><\/tr><tr><td>No useful source information<\/td><td>Direct can contain this traffic, alongside many unrelated origins.<\/td><\/tr><tr><td>Google AI Overviews or AI Mode<\/td><td>Google explicitly includes these visits in Organic Search.<\/td><\/tr><\/tbody><\/table>\n<p>Google names examples such as ChatGPT, Gemini and Claude. The examples are not a guaranteed exhaustive list. An unfamiliar source needs examination in the source\/medium dimensions; a Referral label does not make the source hostname indistinguishable from a blog. Google maintains the default definitions and may change them.<\/p>\n<h2>Missing referrers do not reveal a universal missing percentage<\/h2>\n<p>Apps, browser policies, redirects and copied links can remove or omit referral information. A copied URL may nevertheless retain campaign parameters. Broken tagging or blocked collection can also reduce measured traffic. Some problems are correctable on the website; the absence of an original navigation signal cannot simply be reconstructed there.<\/p>\n<p>No general missing share follows from these mechanisms. Vendor samples with different sites, devices and identification methods cannot establish a percentage for another property. Without a verifiable method for identifying the assistant origin independently of the missing referrer, a precise \u201cinvisible share\u201d would be circular. A property-specific missing percentage therefore remains unknown without additional evidence.<\/p>\n<h2>Deep entry pages are a diagnostic segment, not an AI estimate<\/h2>\n<p>A bookmark, an email, a messenger or a PDF can open a deep article without useful referral information. An assistant can link to the home page. First visits and returning visits occur in both groups. URL depth and visit history therefore neither identify AI origin nor provide a general upper or lower bound for it.<\/p>\n<p>The following BigQuery example groups the first observed <code>page_view<\/code> for each valid stream\/user\/session key inside the selected daily-table window. It compares missing referrers with paths containing at least two nonempty segments. This is an investigation aid, not the GA4 Direct channel and not a count of AI visits.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"sql\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">SQL<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-sql\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-keyword\">WITH<\/span> pageviews <span class=\"cbb-keyword\">AS<\/span> (\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">SELECT<\/span>\n<\/span><span class=\"cbb-line\">    stream_id, user_pseudo_id,\n<\/span><span class=\"cbb-line\">    (<span class=\"cbb-keyword\">SELECT<\/span> value.int_value <span class=\"cbb-keyword\">FROM<\/span> <span class=\"cbb-keyword\">UNNEST<\/span>(event_params)\n<\/span><span class=\"cbb-line\">     <span class=\"cbb-keyword\">WHERE<\/span> <span class=\"cbb-keyword\">key<\/span> = <span class=\"cbb-string\">'ga_session_id'<\/span>) <span class=\"cbb-keyword\">AS<\/span> session_id,\n<\/span><span class=\"cbb-line\">    event_timestamp, batch_page_id, batch_ordering_id, batch_event_index,\n<\/span><span class=\"cbb-line\">    (<span class=\"cbb-keyword\">SELECT<\/span> value.string_value <span class=\"cbb-keyword\">FROM<\/span> <span class=\"cbb-keyword\">UNNEST<\/span>(event_params)\n<\/span><span class=\"cbb-line\">     <span class=\"cbb-keyword\">WHERE<\/span> <span class=\"cbb-keyword\">key<\/span> = <span class=\"cbb-string\">'page_location'<\/span>) <span class=\"cbb-keyword\">AS<\/span> page_url,\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-function\">NULLIF<\/span>(<span class=\"cbb-function\">TRIM<\/span>((<span class=\"cbb-keyword\">SELECT<\/span> value.string_value <span class=\"cbb-keyword\">FROM<\/span> <span class=\"cbb-keyword\">UNNEST<\/span>(event_params)\n<\/span><span class=\"cbb-line\">                 <span class=\"cbb-keyword\">WHERE<\/span> <span class=\"cbb-keyword\">key<\/span> = <span class=\"cbb-string\">'page_referrer'<\/span>)), <span class=\"cbb-string\">''<\/span>) <span class=\"cbb-keyword\">AS<\/span> referrer\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">FROM<\/span> <span class=\"cbb-variable\">`project.analytics_123456789.events_*`<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">WHERE<\/span> _TABLE_SUFFIX <span class=\"cbb-keyword\">BETWEEN<\/span> <span class=\"cbb-string\">'20260701'<\/span> <span class=\"cbb-keyword\">AND<\/span> <span class=\"cbb-string\">'20260731'<\/span>\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">AND<\/span> event_name = <span class=\"cbb-string\">'page_view'<\/span>\n<\/span><span class=\"cbb-line\">), first_observed <span class=\"cbb-keyword\">AS<\/span> (\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">SELECT<\/span> *\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">FROM<\/span> pageviews\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">WHERE<\/span> stream_id <span class=\"cbb-keyword\">IS<\/span> <span class=\"cbb-keyword\">NOT<\/span> <span class=\"cbb-constant\">NULL<\/span> <span class=\"cbb-keyword\">AND<\/span> user_pseudo_id <span class=\"cbb-keyword\">IS<\/span> <span class=\"cbb-keyword\">NOT<\/span> <span class=\"cbb-constant\">NULL<\/span>\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">AND<\/span> user_pseudo_id != <span class=\"cbb-string\">''<\/span> <span class=\"cbb-keyword\">AND<\/span> session_id &gt; <span class=\"cbb-number\">0<\/span>\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">QUALIFY<\/span> <span class=\"cbb-function\">ROW_NUMBER<\/span>() <span class=\"cbb-keyword\">OVER<\/span> (\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">PARTITION<\/span> <span class=\"cbb-keyword\">BY<\/span> stream_id, user_pseudo_id, session_id\n<\/span><span class=\"cbb-line\">    <span class=\"cbb-keyword\">ORDER<\/span> <span class=\"cbb-keyword\">BY<\/span> batch_page_id, batch_ordering_id, batch_event_index,\n<\/span><span class=\"cbb-line\">             event_timestamp\n<\/span><span class=\"cbb-line\">  ) = <span class=\"cbb-number\">1<\/span>\n<\/span><span class=\"cbb-line\">), paths <span class=\"cbb-keyword\">AS<\/span> (\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">SELECT<\/span> *, <span class=\"cbb-function\">REGEXP_EXTRACT<\/span>(page_url, r<span class=\"cbb-string\">'^https?:\/\/&#91;^\/?#&#93;+(&#91;^?#&#93;*)'<\/span>) <span class=\"cbb-keyword\">AS<\/span> path\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-keyword\">FROM<\/span> first_observed\n<\/span><span class=\"cbb-line\">)\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">SELECT<\/span>\n<\/span><span class=\"cbb-line\">  referrer <span class=\"cbb-keyword\">IS<\/span> <span class=\"cbb-constant\">NULL<\/span> <span class=\"cbb-keyword\">AS<\/span> no_referrer,\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">REGEXP_CONTAINS<\/span>(path, r<span class=\"cbb-string\">'^\/&#91;^\/&#93;+\/&#91;^\/&#93;+(?:\/|$)'<\/span>) <span class=\"cbb-keyword\">AS<\/span> two_path_segments,\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-function\">COUNT<\/span>(*) <span class=\"cbb-keyword\">AS<\/span> observed_session_keys\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">FROM<\/span> paths\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">GROUP<\/span> <span class=\"cbb-keyword\">BY<\/span> <span class=\"cbb-number\">1<\/span>, <span class=\"cbb-number\">2<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">ORDER<\/span> <span class=\"cbb-keyword\">BY<\/span> <span class=\"cbb-number\">1<\/span> <span class=\"cbb-keyword\">DESC<\/span>, <span class=\"cbb-number\">2<\/span> <span class=\"cbb-keyword\">DESC<\/span><\/span><\/code><\/pre><\/figure>\n<p>The project and dataset are placeholders. The query uses separate key fields instead of concatenation, excludes missing user\/session IDs, treats empty referrers as missing and takes URL and referrer from the same selected event. The path extraction removes the scheme, hostname, query and fragment before testing depth. An unparseable or absent URL produces an unknown depth, not a shallow page.<\/p>\n<p>The ordering follows the export\u2019s page\/batch sequence fields. Older schemas may lack these columns; missing or tied order information needs investigation. The first observed page inside the window may be a continuation of a session begun earlier. A true landing-page analysis requires a suitably wider read window and an explicit rule for session inclusion. Sessions without a page view and events without usable IDs are excluded and require separate counts. This example does not distinguish first-time visitors or reproduce GA4\u2019s attributed session totals.<\/p>\n<h2>Custom channel rules require deliberate ordering<\/h2>\n<p>In a custom channel group, the first matching channel wins. A narrowly defined assistant-source rule needs to precede broader rules that would otherwise match the same traffic, often Referral. The order concerns channels within one group, not the placement of separate channel groups.<\/p>\n<p>Exact observed source values or tightly bounded domain patterns reduce false matches. Broad fragments such as <code>ai<\/code> can also match unrelated names. A useful custom definition can combine the default AI Assistant channel with additional verified sources. Source classification still does not prove the contents of the originating answer.<\/p>\n<p>Google explicitly allows custom channel groups to apply retroactively in reports. A changed primary channel group records new criteria prospectively. The announcement alone does not establish a universal \u201cno AI channel data before 13 May\u201d rule; the relevant property, dimension and historical range need checking.<\/p>\n<h2>A trend needs stable measurement conditions<\/h2>\n<p>A rising channel count can reflect more visits, a changed recognized-source list, different referrer behavior or a tagging change. It is not sufficient proof of growth in total AI-origin traffic. Session-scoped channel\/source dimensions belong with session metrics; first-user acquisition answers a different question.<\/p>\n<p>A defensible report names the metric, channel definition and date range, shows the main sources and records material measurement changes. Unclassified origins remain unknown. Deep-page diagnostics can highlight changes worth investigating, but cannot convert that unknown share into an AI traffic estimate.<\/p>\n<div class=\"lw-faq\"><h2>Questions and answers<\/h2><h3>Can a Paid rule above the assistant rule capture the same traffic?<\/h3><p>Yes, if the conditions overlap. Default definitions use several fields, including source platform, ad network or campaign type and source\/medium; they are not uniformly just a check for <code>gclid<\/code>, <code>cpc<\/code> or <code>ppc<\/code>. For a custom group, the actual conditions and sample source\/medium combinations determine whether an earlier Paid, Referral or other rule wins. A descriptive channel name alone guarantees no separation.<\/p><\/div><div class=\"lw-quellen\"><h2>Sources<\/h2><ul><li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics 4<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9164320?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: Analytics release notes<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9756891?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: default channel group<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/13051316?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: custom channel groups<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/15258820?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: Direct traffic<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9191807?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: sessions and attribution<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/7029846?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google: BigQuery export schema<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/analytics\/bigquery\/basic-queries\" target=\"_blank\" rel=\"noopener noreferrer\">Google: page-view sequence<\/a><\/li><li><a href=\"https:\/\/docs.cloud.google.com\/bigquery\/docs\/reference\/standard-sql\/string_functions\" target=\"_blank\" rel=\"noopener noreferrer\">GoogleSQL: string functions<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>GA4 classifies recognized assistant traffic in AI Assistant; Google AI Overviews and AI Mode belong to Organic Search. Missing referrers, tagging and attribution limit interpretation. Deep entry pages do not establish how much unknown traffic came from AI.<\/p>\n","protected":false},"author":1,"featured_media":15197,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[91380,91383,91258],"class_list":["post-10506","post","type-post","status-publish","format-standard","hentry","category-digital-analytics","tag-artificial-intelligence","tag-attribution","tag-google-analytics-4"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"What the GA4 AI Assistant channel classifies, the three ways a visit misses it, and how to bound the part that lands in Direct without a referrer.\" \/>\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\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"What the GA4 AI Assistant channel classifies, the three ways a visit misses it, and how to bound the part that lands in Direct without a referrer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-18T11:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-24T02:16:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct\",\"datePublished\":\"2026-08-18T11:30:00+00:00\",\"dateModified\":\"2026-10-24T02:16:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/\"},\"wordCount\":1005,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png\",\"keywords\":[\"Artificial Intelligence\",\"Attribution\",\"Google Analytics 4\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/\",\"name\":\"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png\",\"datePublished\":\"2026-08-18T11:30:00+00:00\",\"dateModified\":\"2026-10-24T02:16:23+00:00\",\"description\":\"What the GA4 AI Assistant channel classifies, the three ways a visit misses it, and how to bound the part that lands in Direct without a referrer.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png\",\"width\":1200,\"height\":630,\"caption\":\"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct\"}]},{\"@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":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct | Lukas Wojcik","description":"What the GA4 AI Assistant channel classifies, the three ways a visit misses it, and how to bound the part that lands in Direct without a referrer.","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\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/","og_locale":"en_US","og_type":"article","og_title":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct | Lukas Wojcik","og_description":"What the GA4 AI Assistant channel classifies, the three ways a visit misses it, and how to bound the part that lands in Direct without a referrer.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-08-18T11:30:00+00:00","article_modified_time":"2026-10-24T02:16:23+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct","datePublished":"2026-08-18T11:30:00+00:00","dateModified":"2026-10-24T02:16:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/"},"wordCount":1005,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png","keywords":["Artificial Intelligence","Attribution","Google Analytics 4"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/","name":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png","datePublished":"2026-08-18T11:30:00+00:00","dateModified":"2026-10-24T02:16:23+00:00","description":"What the GA4 AI Assistant channel classifies, the three ways a visit misses it, and how to bound the part that lands in Direct without a referrer.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10506-the-ai-channel-counts-what-left-a-tr-n.png","width":1200,"height":630,"caption":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-ai-assistant-channel-which-visits-it-counts-and-which-land-in-direct\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GA4 AI Assistant Channel: Which Visits It Counts and Which Land in Direct"}]},{"@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\/10506","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=10506"}],"version-history":[{"count":8,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10506\/revisions"}],"predecessor-version":[{"id":23553,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10506\/revisions\/23553"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/15197"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}