So people who know me know I'm pretty excited about the progress of UCP. I think it's one of the most concrete efforts out there, and it could eventually become the future of agentic commerce.
This week, Google's VP announced the latest updates to UCP. I read through them, and here are a few thoughts that matter for Shopify brands and Aimerce.

Attribution support is the most interesting one
Before. A customer clicks your Facebook ad. The link carries a tag: ?fbclid=abc123. Your pixel reads that tag off the URL. They buy, and Meta knows which ad did it. The URL is a note pinned to the customer, and every ad platform knows how to read it.
What broke. A customer asks Gemini for running shoes. Gemini talks to the store over an API and buys. No browser, no URL, no ID, no note. An order appears from nowhere.
What attribution is. UCP added a field so the agent can hand the merchant the same note in an envelope instead of on a URL. Campaign, source, click ID. The spec describes it as the same parameters that travel through query strings in browser flows.
Where it lives. On the way in it rides on cart, checkout and catalog requests, filled by the platform. On the order it appears as a snapshot the merchant re-emits from the checkout it came from.
Permalink is the second interesting one
What it is. A link that rebuilds shopping state on the merchant's own site. Instead of describing a cart, the agent hands over one URL. Open it and that cart exists on your store.
What the URL actually looks like. The merchant advertises an endpoint like https://merchant.example/buy. Items go in the path as id:quantity pairs:
/buy/sku_123:2,sku_456:1Shopify-style IDs with slashes get base64url-encoded behind a ~, and the spec uses a real gid://shopify/ProductVariant/... as its example.
How it resolves. Always a 303 redirect to a buyer-facing page, never a permanent one. It also has to send a referrer policy that stops the permalink URL from leaking onward.
The part that connects them
This is the finding. There is a spec-blessed path from UCP-structured attribution back into a browser-readable URL parameter.
Two rules do it:
Rule one. Non-UCP query parameters get preserved onto the redirect destination by default, specifically so client-side analytics keeps working. The spec's own example of non-UCP params is utm_source=social&ref=creator_42&gclid=....
Rule two. UCP field-path params are consumed and stripped by default, with one named exception. When a business does expose a UCP field path on the destination URL, it should rewrite it, and for attribution fields the usual rewrite is to drop the attribution/ prefix.
So this request:
/buy/sku_123:1?continue_to=/collections/spring&attribution/utm_source=email&utm_medium=smsresolves to a destination like:
Location: /collections/spring?utm_source=email&utm_medium=smsattribution/utm_source became utm_source. A first-party pixel like Aimerce's can read it on that page with no new integration.
That means the attribution loop can close.
Structured attribution goes into the UCP object server-side, and the same value lands as a plain query param client-side. Both halves from one link.
This is exciting, because it means we can finally measure whether agentic commerce is actually working.
I know all of this can sound technical.
But all I'm trying to say is that the future of commerce is closer than we thought. It's evolving really fast, and being able to close the loop on attribution is an important step forward.
The moment attribution is available in Shopify's UCP implementation, Aimerce will support it. You won't have to worry about being left behind, and you'll have the most accurate data in the agentic commerce era.
✌️Here to help you win,
Yiqi

