Prebid's auction flip does not put gclid on your Google Ads conversion upload.
Check your payload in the playground →
On October 14, 2026, AdExchanger reported that Prebid previewed a proposal at the Prebid Summit in New York City to let ad servers bid into Prebid rather than Prebid bidding into Google Ad Manager. The working group targets formalization by the end of Q1 2027. Publishers read that headline as yield and latency. Marketing engineers read it as another reason to move measurement server-side. Those are different wires. OpenRTB identity on the auction path is not a Google Ads click identifier on the conversion upload.
The day before, IAB Tech Lab published a post arguing that Apple WebKit blocklists mean advertising infrastructure must move to publisher-controlled edge runtimes. Trusted Server and server-side tag paths reduce third-party script execution in Safari. They do not automatically copy gclid from the landing query into a Data Manager or googleads.googleapis.com JSON body. When both stories land in the same sprint, teams merge them into one ticket: fix header bidding and fix conversions. The failure mode is copying Prebid userIds into adIdentifiers.gclid because both fields look like identity.
Google documents gclid as a query parameter from auto-tagging that you capture on the landing page and persist before the thank-you event. Prebid documents userId modules that expose bidRequest.userId and bidRequest.userIdAsEids in OpenRTB EIDS format to bidders. A solutions engineer can see the sandbox event and the vendor sample payload, and they do not own the production checkout dataset. That gap is where upload jobs go green in staging and stay empty on gclid in production.
What Prebid actually adds to the bid request
User ID modules exist so SSPs and DSPs can share pseudonymous tokens under consent and sync rules. Prebid.js makes userIdAsEids available to adapters; Prebid Server can forward the same structures on the outbound OpenRTB request. Those entries live under user.eids with source and uid shapes defined in the ads ecosystem, not in Google Ads offline conversion schemas.
Encrypted Signals for Publishers is a parallel path: publishers register signal sources and encrypted payloads can flow toward Google demand in ad server parameters. That program is still about bidding and Google Ads demand matching, not about replacing the gclid capture your landing page must perform for UploadClickConversions.
When the October auction proposal collapses two calls into one, the identity arrays on the single Prebid Server request may get richer because more bidders see one object. Richer user.eids is not a substitute for reading getParam('gclid') on first paint. Finance will still ask why Google Ads click-through conversions flatlined while Prebid debug shows ids on every auction.
What Google Ads expects on the collector
Google Ads offline and click conversion uploads require conversionAction, conversionDateTime with timezone, and at least one click or user identifier. For click-through credit, adIdentifiers.gclid, gbraid, or wbraid must be the values Google issued on the ad click, not a UID2 token, not a RampID envelope, and not the _gcl_aw cookie blob.
Google support documentation for importing offline conversions walks through hidden form fields and local storage scripts that store the gclid query value. Auto-tagging must be enabled. The support page is explicit that you update each web page to capture and store the GCLID. Prebid does not inject that script on the advertiser landing page unless the publisher separately installed it.
Enhanced conversions add hashed user data beside the tag hit. Hashing does not replace gclid when the conversion action is upload-clicks shaped. Teams that respond to Safari blocking by stuffing hashed email into every vendor worker often skip verifying whether adIdentifiers.gclid is still populated on the Google worker. The Norwegian Xandr fine story on pixellint.org is about a different law, but the engineering mistake rhymes: copying an advertising identifier from one pipe into another without checking purpose and shape.
Sandbox versus production on the Prebid path
Prebid identity is for the auction. gclid is for the ads click Google already logged.
Prebid auction (publisher origin):
user.eids[] = { source: "pubcid.org", uids: [{ id: "…" }] }
userId.criteoId = "…" // adapter-specific keys in debug
Google UploadClickConversions (advertiser origin):
adIdentifiers: { gclid: "EAIa…" } // from landing URL, not from eids
Common production bug:
gclid copied from pbjs.getUserIds() or a bidder pixel field → upload rejects or weak match
The block above is the checklist spine for a solutions engineer at a company running Prebid. In sandbox you control the page, the ad unit, and the sample order POST. You can paste vendor fixtures where eids are populated and believe measurement is fixed. Production checkout runs on a subdomain, a hosted shop, or a delayed CRM webhook where nobody ran the gclid persistence script.
A user-id module or a bidder pixel is not a conversion API, and Prebid will not invent the click id the collector needed. Bidder pixels fire on the publisher property for attribution products the bidder owns. They do not write Google's gclid into your merchant thank-you page. Server-side GTM on the publisher domain is still not the advertiser conversion domain unless you deliberately unified hosts.
When AdExchanger quotes Olly Burns on collapsing Prebid and GAM into one call, ad ops gains speed. The advertiser's gclid script still runs on the landing URL of the paid click, which may be the retail site, not the news site where Prebid ran. Cross-domain retail campaigns break when teams assume the header auction and the conversion action share one JavaScript context.
Why server-side edge stacks repeat the mistake
IAB Tech Lab's October 13 post argues server-side execution is more privacy-protective because the publisher chooses what leaves the edge toward partners. That is true for limiting sync pixels blocked in WebKit. It is not automatic permission to map every edge-resolved identifier into every downstream collector.
Moving Prebid or tag logic to Trusted Server changes where user.eids are assembled. It does not create a gclid unless the edge also saw the paid landing request with auto-tagging parameters intact. Edge workers that only see article page views never observe the Google Ads click that started the session if the click landed on a product page elsewhere.
Digiday's early Safari revenue reporting this month shows impressions persisting while sync paths break. The compensating behavior in marketing stacks is louder server payloads. Pixellint sees workers where Meta madid appears because the app SDK copied it, while gclid is absent because nobody copied the web query. Prebid-heavy publishers are not immune: their auctions were never the Google Ads landing surface.
Consent and pixels on the collector versus ids on the bid
Consent Mode and GPP strings on the Prebid ortb2 merge affect regs on the bid request. Google Ads uploads also need lawful tagging on the advertiser site. A CMP default on the publisher does not write ad_user_data into the advertiser's conversion tag. Joint campaigns that only validated regs.gpp on the PBS log will still fail Google uploads when ad_storage never granted on checkout.
Floodlight on doubleclick.net and AW- send_to conversions are already two Google products with different paths, as older pixellint posts document. Adding Prebid userIds as a third confused identity makes dashboards worse: Campaign Manager activities count, Google Ads actions count, and Prebid debug shows eids, yet none of the three numbers share a join key with UploadClickConversions.
The October Prebid proposal is unrelated to Google's conversion API dialect. It will not add a gclid module. Expecting Prebid.org to ship one misunderstands the boundary between sell-side auction software and buy-side conversion ingestion.
Sandbox versus production checklist
- In Prebid debug, list userId and userIdAsEids on the auction event; save the JSON.
- On a labeled Google Ads click landing, confirm gclid in the address bar before redirects strip it.
- Compare production UploadClickConversions bodies: is adIdentifiers.gclid present and literal query value?
- If staging fills gclid from a test URL but production uses a webhook, trace whether the webhook reads the same storage key.
- Do not map uid from user.eids into gclid without Google documentation explicitly allowing it.
- Keep bidder pixel fires out of the Google upload template unless the pixel host documents that field as gclid.
- When edge server-side moves, log whether the edge request included the paid landing query string.
- Lint Google upload JSON with the click conversion pack; lint Prebid ortb2 separately.
In addition to bidRequest.userId, bidRequest.userIdAsEids is made available to Prebid.js adapters and Prebid Server S2S adapters. bidRequest.userIdAsEids has userIds in ORTB EIDS format.
Prebid.js User ID module documentation
What to do before the auction proposal ships
Treat the Prebid Summit story as rtblint.org auction topology, documented in the sibling post on ad servers bidding into Prebid. Treat Google click conversions as a landing-page and advertiser-domain problem. When publishers ask whether the new integration fixes measurement, answer with two URLs: the page where Prebid runs and the page where auto-tagging must fire.
Run one paid click test where you control both sides: a publisher property with Prebid and a linked advertiser landing with gclid visible. Capture PBS outbound eids and the merchant upload JSON in the same session clock. If eids exist and gclid is empty, the fix is not a Prebid adapter change.
Pixellint is not affiliated with Prebid.org or Google. Validating UploadClickConversions checks field shapes documented for googleads.googleapis.com. It does not validate OpenRTB.user.eids. Use both packs when both pipes belong to one campaign narrative.
Public comment on the auction overhaul runs until the framework hardens in 2027. Conversion regressions from confused identity land this quarter whenever server-side projects merge auction wins with collector uploads in one sprint. Name the pipe before you merge the ticket.
Sources
Contract pages
The dated argument is above. These pages are the field lists.