Key takeaways
Tag agentic checkout by where the buyer actually pays.
If checkout stays inside the agent, send a server-side purchase with identifiers the browser never created, knowing Google may still report (not set).
If the buyer is handed to your store checkout, use the normal tag, then classify the referrer with a merchant-named channel.
You have to decide this week whether an order that completed through ChatGPT, Google AI Mode or another agent gets a usable source in GA4, or lands as Direct and (not set). The cost of getting it wrong is a blended conversion number that mixes two different commercial objects: a purchase the ad platform can see, and a purchase the business can attribute to a channel. The tagging choice follows from where the buyer actually paid, not from a single agentic label.
There is no protocol field you can copy into source and medium. OpenAI's Agentic Checkout Spec documents order webhooks. It does not document a traffic source, campaign or agent-identity field. Shopify's carts and checkout documentation for agents names attribution metadata when a cart becomes a checkout, and it does not enumerate the fields. Any value you send to GA4 is a merchant-side naming convention. Write it down, own it, and stop treating it as a platform gift.
Missing source, mixed economics
An unattributed purchase has revenue but no channel assignment. Once agent-assisted orders sit in Direct, Unassigned or (not set), you cannot tell AI-assisted conversion paths from standard ecommerce checkout. Paid media, lifecycle and finance then argue about volume that never had a shared definition.
Shopify already records a version of this at order level. Agentic storefronts let customers discover and purchase in AI channels such as ChatGPT, Google AI Mode and Gemini, Microsoft Copilot, and Meta. Orders from those channels display in the Shopify admin with channel or referrer attribution so the merchant knows where the order originated. From the week of 24 March 2026, Shopify said millions of merchants could sell to ChatGPT users via Agentic Storefronts, with orders flowing into the admin with ChatGPT referral attribution; the merchant remains merchant of record.
Nothing in the primary documentation states that Shopify's admin channel or referrer is exposed to GA4 as session source, session medium or a default channel. Treat the admin figure and the GA4 figure as two systems until you have proved they match on your own property. If you read them as one number, you will scale a story the warehouse cannot defend. Eddie Cheng at Penang Media has not published a house Shopify-admin-versus-GA4 agentic gap figure. In practice he pulls both for the same window and expects a gap when the agent or referral path does not pass a usable source. Reconcile by order id and event timing. If you cannot match, say so and fix tagging before you trust channel economics.
GA4 itself holds traffic source at three scopes, and they are not interchangeable. In the BigQuery export, user-scoped attribution uses traffic_source on the first_visit event, session-scoped attribution uses traffic_source on session_start, and event-scoped attribution is available for conversion events using cross-channel last-click. Custom channel groups can be created in the Analytics interface and used as a primary dimension in reports that already support the default channel group. They are not available in the BigQuery export schema. The AI channel a marketer reads in the UI and the one an analyst computes in the warehouse are different objects unless the team agrees where the tag lives.
That is the same split this desk keeps returning to: what the platform can see is not what the business can afford to decide on. MER (marketing efficiency ratio) is total revenue over total marketing spend. A board MER still needs a written spend policy. An agentic order still needs a written source policy. The ratio and the channel are only comparable if those policies are fixed. See what actually counts as total marketing spend in a board-level MER report and how to read blended media efficiency without losing the plot.
Why common tagging shortcuts still land on Direct
A common mistake is to treat agentic checkout as one surface. Stripe and OpenAI announced the Agentic Commerce Protocol as an open standard on 29 September 2025, alongside Instant Checkout in ChatGPT. OpenAI's key concepts are explicit: ChatGPT renders checkout in its own UI, collects buyer, fulfilment and payment details, and the merchant validates the cart, calculates tax, runs payment and risk on its existing processor, and accepts or declines the order. OpenAI is not the merchant of record. Building with ACP is open; Instant Checkout in ChatGPT is limited to approved partners. In that path the merchant's browser tag never runs, because there is no merchant page in the session that completed the order.
The Shopify ChatGPT path uses the merchant's own online store. For ChatGPT, checkout happens on the merchant's own online store via an in-app browser. There is no separate direct checkout toggle. Products become discoverable through Agentic Storefronts and Shopify Catalog. The buyer can still complete on your checkout, which means your normal GA4 tag can fire. The measurement job is referral classification and channel definition, not a new purchase transport.
The Universal Commerce Protocol announcement establishes the standard and its participating companies. It does not document a GA4 attribution field.
Another mistake is to fire a Measurement Protocol purchase and assume a 2xx means the source survived. Google's own Measurement Protocol help says that when session-based Measurement Protocol events are reported as "(not set) / (not set)", you should send the session_id parameter with a valid value from the client-side event, so the server event can connect to previous session attribution collected by gtag, GTM or the Firebase SDK. Independent lab work published by metricfixer on 1 August 2026 isolated the same failure: a server-side purchase can arrive in GA4 and still lose the browser session's source, medium, campaign or the session itself. A successful HTTP response confirms transport. It does not confirm user matching, session stitching, traffic-source inheritance, Realtime appearance, or inclusion in advertising workflows. Server-side GTM is a routing and governance layer. It cannot reconstruct identifiers the browser never supplied.
Another mistake is to build a custom channel group in the GA4 UI and treat that as the warehouse source of truth. Custom channel groups are a reporting overlay. They are absent from BigQuery. Google's help contents list includes an "Example: AI assistants" section. The retrieved documentation does not publish the example rule body, a default AI channel, or a regex you can copy. Do not ship a rule set as if Google had added agentic commerce to the default grouping.
A final mistake is to wait for the protocol to hand you UTMs. ACP checkout sessions, as documented, carry cart contents, buyer context and authoritative cart state. Neither source lists a field map an operator can send to GA4. If you need chatgpt / agentic_checkout, you are naming it.
The checkout location decides the GA4 job
Diagnose the path before you tag the order. OpenAI's docs and Shopify's ChatGPT docs describe different completion surfaces, and they may describe different points in the product timeline. The live completion path for your store decides this week's measurement. Open the actual buyer journey and record where payment is confirmed.
If the purchase is accepted inside the agent's interface, there was no merchant pageview, no gtag session_id, and no client-side purchase to inherit. The only origin for a GA4 purchase is your backend: ACP's order.created webhook, your own order service, or the checkout-session lifecycle you already implement on POST /checkout_sessions. Authenticate webhooks per the platform docs the merchant actually uses. Attribution still has to be named by the merchant.
If the purchase is completed on your online store in an in-app browser, the ordinary tag can fire. How GA4 is reclassifying AI traffic is the companion read for what the interface will call Organic Search, referral or Direct. Is AI referral traffic big enough yet to justify dedicated tracking? is the companion read for how much instrumentation the volume can justify.
Use the cart's continue_url and you are in a redirect or permalink world, where a page tag is possible. Complete checkout in the agent when eligible and you are back in a server-origin world. Escalation back to a prefilled merchant checkout is a third, hybrid case: the session that matters for GA4 starts when the buyer lands on your checkout, not when the agent built the cart.
Do not adjudicate which model is the industry default. OpenAI's spec still describes end-to-end checkout inside ChatGPT. Shopify's ChatGPT implementation describes merchant-store checkout in an in-app browser. Your store's live path is an empirical fact. Write it on the measurement brief as a date-stamped observation, and re-check it when the agent or the sales channel changes.
How should you tag an order so it shows a source?
Start with a written convention, then pick the transport that the path allows.
- Record where payment is confirmed: agent UI, merchant checkout in an in-app browser, or UCP redirect and escalation.
- If a browser session exists, persist client_id and session_id with the order before the buyer leaves your page.
- If no browser session exists, send a server-side purchase and accept that session inheritance may have nothing to attach to.
- Apply a merchant-named source and medium. Do not pretend the protocol supplied them.
- Build any AI channel group in the GA4 UI only after the event carries a value the rule can see.
- Compute the warehouse version from event or session traffic_source in BigQuery, not from the custom channel group.
On the in-app-browser path, keep the client-side purchase. Do not add a second Measurement Protocol purchase for the same transaction_id until you have a documented deduplication rule. No source states whether GA4 will collapse two purchases on transaction_id for agentic orders, or how that interacts with advertising workflows. Dual firing is an untested risk, not a belt-and-braces pattern. Eddie Cheng has seen duplicate purchase events when client-side and Measurement Protocol both fire for the same order. The fix he uses is one purchase path per order, with a shared transaction id, and turning the double-fire off. Conflicting revenue in GA4 is usually that, not GA4 being wrong.
On the in-agent path, hook the merchant order-creation moment. ACP requires merchants to implement checkout-session create and update endpoints and to publish order lifecycle webhooks so ChatGPT stays in sync. That webhook is the honest place to emit a purchase. Send the real event time. Include client_id if you ever collected one for that buyer on your own site. Include session_id only when you have a valid browser-side value. Google's help is a stitching instruction, not a licence to invent identifiers. If the buyer never hit your domain, the remedy has nothing to attach to. The event can still land. The source can still be (not set).
Name the convention in one place finance, paid media and analytics will all use. A defensible pattern is a fixed source for the agent surface and a medium that says the completion method, for example a ChatGPT Instant Checkout completion versus a ChatGPT referral into your checkout. Those strings are a merchant convention. The ACP payload does not include them. Put the same strings in the Shopify order note or a cart attribute if your stack allows it, so admin and GA4 can be compared by hand. Shopify documents admin attribution. It does not document a GA4 mapping. Cheng's rule when the platform does not tag natively is to land a boring merchant-side source and medium the whole team can read, and lock it in writing. Finance and paid media push back when the name looks like a vanity channel. Keep it literal so reporting and media do not invent two truths.
Then decide the reporting overlay. Create a custom channel group only if the Acquisition reports you actually use support it as a primary dimension. Keep the rule count small. Google warns that a custom channel group with a large number of fields may negatively impact reports. You can set your own default (primary) channel group. Per-property limits apply. Do not expect that group to appear in BigQuery. If the board pack is built from the export, the definition has to be SQL against traffic_source, not a screenshot of the UI channel.
Consent is unresolved for orders placed on a surface you do not own. No retrieved ruling states the correct consent state for an agent-completed order. Do not invent a lawful-basis story in the tag manager. Record the gap, and let legal and the analytics owner write the policy.
Ads-side upload is also undocumented. Nothing supports feeding agentic orders back as conversions for Meta or Google Ads bidding. Leave that out of the tagging brief. Treat the GA4 source as a reporting label until you have a documented conversion upload path.
What the public evidence actually shows
Shopify is the only vendor in this pack that published order-level AI attribution and a growth multiple you can put in a sentence. In Q1 2026, according to Shopify's own blog on how agentic commerce works, AI-driven traffic to Shopify stores grew eight times year on year, orders from AI-powered searches increased nearly 13 times, and new buyers placed orders through AI channels at nearly twice the rate of other channels. Those figures are vendor-reported and relative. They are not an independent share of orders, not a conversion-rate benchmark, and not a return-rate comparison. Treat these vendor-reported figures as limited proof of Shopify's admin separation of AI-channel orders; keep them out of market-level claims.
The protocol dates are public and they bound the measurement problem. Stripe's newsroom dated the ACP release and Instant Checkout announcement to 29 September 2025, with US buyers able to purchase from US Etsy businesses at that point. Google's developers blog dated UCP to 11 January 2026 and named Shopify, Etsy, Wayfair, Target and Walmart among the developers, with endorsement from over 20 partners. Shopify's newsroom dated general ChatGPT selling via Agentic Storefronts to the week of 24 March 2026. The evidence leaves ACP attribution metadata, a default GA4 channel, custom-channel rule order, purchase deduplication, and an independent order-share baseline open. None of those launches shipped a GA4 source field.
For the server path, Google's Measurement Protocol help requires a valid client-side session_id to connect the event; otherwise the report may show (not set). metricfixer's August 2026 lab is a QA reminder that a receipt alone does not establish attribution. Custom channel groups provide the reporting overlay, with the warehouse caveat attached.
Fees are not a tagging input. Shopify states that Agentic Storefronts carry no transaction fees beyond standard processing rates. No primary source retrieved here states a percentage. Do not put a fee into the GA4 event. Do not use fee language to choose a source name.
The evidence stops at the merchant's own measurement: it does not establish ACP attribution metadata, a default GA4 channel, custom-channel precedence, purchase deduplication, or an independent order-share baseline. Shopify lists ChatGPT, Google AI Mode and Gemini, Microsoft Copilot, and Meta as AI channels; the identifiers passed at the order moment remain undocumented beyond admin channel or referrer attribution. Measure your own property for those answers.
Freeze the path, the names and the owner
This week, complete one purchase on each live agent surface and write down where payment was confirmed. If it confirmed on your checkout, keep the client-side tag, capture the referrer, and apply the merchant-named source and medium in a custom channel group that only the UI will use. If it confirmed inside the agent, emit one server-side purchase from the order webhook, send only real identifiers, and expect (not set) until a prior browser session exists to inherit.
Name the owner of the convention: the person who can change the source string, the person who can stop a dual-fired purchase, and the date you will re-open the path. The open ads, consent and Shopify-to-GA4 mapping questions stay on that list. They do not block the tag. They block pretending the tag is a bidding signal.
Sources
- Agentic Checkout Spec developers.openai.com Merchants implement checkout-session create and update plus order lifecycle webhooks so ChatGPT can run checkout while orders, payments and compliance stay on the merchant stack.
- Key concepts – Agentic Commerce developers.openai.com Checkout is rendered in the OpenAI UI while checkout state and payment processing occur on merchant systems.
- Stripe and OpenAI Instant Checkout announcement stripe.com Dated 29 September 2025. Stripe released ACP as an open standard co-developed with OpenAI, announced with Instant Checkout in ChatGPT.
- Shopify Help: Agentic storefronts help.shopify.com Customers can discover and purchase in AI channels including ChatGPT, Google AI Mode and Gemini, Microsoft Copilot, and Meta.
- Shopify news: agentic commerce momentum shopify.com From the week of 24 March 2026, millions of merchants could sell to ChatGPT users via Agentic Storefronts with ChatGPT referral attribution in the admin.
- How agentic commerce works shopify.com For ChatGPT, checkout happens on the merchant's own online store via an in-app browser; there is no separate direct checkout toggle.
- Carts and checkout for agents shopify.dev When converting a cart to checkout, the merchant uses line items, context, buyer and associated attribution metadata; those metadata fields are named, not enumerated.
- Under the hood: Universal Commerce Protocol (UCP) developers.googleblog.com Dated 11 January 2026. UCP is an open-source agentic commerce standard developed by Google with Shopify, Etsy, Wayfair, Target and Walmart, endorsed by over 20 partners.
- [GA4] Measurement Protocol support.google.com When session-based Measurement Protocol events are reported as (not set) / (not set), send session_id with a valid value from the client-side event to connect with attribution collected by gtag, GTM or Firebase SDK.
- GA4 Measurement Protocol session traffic source attribution lab metricfixer.com Independent lab, 1 August 2026: a server-side purchase can land in GA4 and still lose source, medium, campaign or the session. Store browser client_id and session_id with the order when they exist.
- Custom channel groups support.google.com Custom channel groups can be used as a primary dimension in reports that support the default channel group; you can set your own default group. Per-property limits apply. A large number of fields may negatively impact reports.
- BigQuery traffic attribution data developers.google.com Traffic attribution in BigQuery exists at user, session and event scope: traffic_source on first_visit, on session_start, and on events including conversion last-click.



