Skip to content

Conversation

@ChristianPavilonis
Copy link
Collaborator

@ChristianPavilonis ChristianPavilonis commented Dec 16, 2025

Closes #139

aram356

This comment was marked as outdated.

@ChristianPavilonis ChristianPavilonis force-pushed the feature/auction-integrations branch from 92c19a7 to 39cb7dc Compare January 9, 2026 00:33
@ChristianPavilonis ChristianPavilonis marked this pull request as ready for review January 12, 2026 19:24
@ChristianPavilonis ChristianPavilonis force-pushed the feature/auction-integrations branch from 39cb7dc to c82ffd3 Compare January 13, 2026 16:29
Copy link
Collaborator

@aram356 aram356 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Good start

  1. Please address tests and formatting
  2. I would like to re-review

let mut responses = Vec::new();

for (provider_name, pending, start_time, provider) in pending_requests {
match pending.wait() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 We have to wait for each response sequentially but i think we should use select to wait for the first ready response so that we can do work while others still execute

see: https://docs.rs/fastly/latest/fastly/http/request/fn.select.html

// Phase 1: Launch all requests concurrently
let mut pending_requests = Vec::new();

for provider_name in provider_names {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 We should have timeout for each provider

price: None, // Encoded price in metadata, decoded by mediation
currency: "USD".to_string(),
creative: None,
adomain: Some(vec!["amazon.com".to_string()]),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❓ Why is amazon.com hard coded

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I set it to None for now. Looking into it I think my aps request structure isn't accurate to what I see in the browser.

);

// Create a modified request with all bids attached
let mut mediation_request = request.clone();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Reconsider cloning with Cow<'_, AuctionRequest>

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cow wouldn't help because we need to mutate.

What do you think of these changes? 0b7811

@@ -0,0 +1,906 @@
//! Amazon Publisher Services (APS/TAM) integration.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❓ We decide not mock here. Is there reason why it is still here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This module for now is sending "aps" bid requests to the configured mock server, to test orchestrator and simulate how aps bids flow to an ad server, but perhaps it shouldn't be called aps.

@ChristianPavilonis ChristianPavilonis force-pushed the feature/auction-integrations branch from 8e518c7 to c6dee36 Compare January 22, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

As publisher I want to use Amazon APS integration As developer I want to register header bidding integrations to perform auctions

4 participants