Skip to content

Commit c65c296

Browse files
committed
Enrich Fastly EdgeZero auction bids with server-side EIDs
The EdgeZero publisher path dispatched the auction with registry: None, so the bid request carried no KV identity-graph EIDs (only client cookie EIDs). It already passes ec.kv_graph as the identity KV, so wire the matching PartnerRegistry::from_config(settings.ec.partners) into the AuctionDispatch to resolve server-side partner EIDs — matching the legacy auction path. Fastly-only: the sync EC identity graph (KvIdentityGraph/EcKvStore) works on Fastly's sync KV; the async-KV portability adapters are unaffected (they still pass registry: None until the EC graph supports async stores).
1 parent 36a6e7a commit c65c296

1 file changed

Lines changed: 29 additions & 23 deletions

File tree

  • crates/trusted-server-adapter-fastly/src

crates/trusted-server-adapter-fastly/src/app.rs

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -719,39 +719,45 @@ async fn dispatch_fallback(
719719
// opportunity slots and collect the dispatched bids in the
720720
// buffered finalize (`buffer_publisher_response_async`), matching
721721
// the legacy streaming path. `handle_publisher_request` matches the
722-
// slots against the request path. EID targeting stays off here
723-
// (`registry: None`) until per-platform KV enrichment is wired.
722+
// slots against the request path. The partner registry plus the
723+
// EC identity-graph KV (`ec.kv_graph`) enrich the bid request with
724+
// server-side EIDs, same as the legacy auction.
724725
let slots = state
725726
.settings
726727
.creative_opportunities
727728
.as_ref()
728729
.map(|creative_opportunities| creative_opportunities.slot.as_slice())
729730
.unwrap_or(&[]);
730-
let auction = trusted_server_core::publisher::AuctionDispatch {
731-
orchestrator: &state.orchestrator,
732-
slots,
733-
registry: None,
734-
};
735-
match handle_publisher_request(
736-
&state.settings,
737-
&publisher_services,
738-
ec.kv_graph.as_ref(),
739-
&mut ec.ec_context,
740-
auction,
741-
req,
742-
)
743-
.await
744-
{
745-
Ok(pub_response) => {
746-
buffer_publisher_response_async(
747-
pub_response,
748-
&method,
731+
match PartnerRegistry::from_config(&state.settings.ec.partners) {
732+
Ok(partner_registry) => {
733+
let auction = trusted_server_core::publisher::AuctionDispatch {
734+
orchestrator: &state.orchestrator,
735+
slots,
736+
registry: Some(&partner_registry),
737+
};
738+
match handle_publisher_request(
749739
&state.settings,
750-
&state.registry,
751-
&state.orchestrator,
752740
&publisher_services,
741+
ec.kv_graph.as_ref(),
742+
&mut ec.ec_context,
743+
auction,
744+
req,
753745
)
754746
.await
747+
{
748+
Ok(pub_response) => {
749+
buffer_publisher_response_async(
750+
pub_response,
751+
&method,
752+
&state.settings,
753+
&state.registry,
754+
&state.orchestrator,
755+
&publisher_services,
756+
)
757+
.await
758+
}
759+
Err(e) => Err(e),
760+
}
755761
}
756762
Err(e) => Err(e),
757763
}

0 commit comments

Comments
 (0)