Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

prebid server timing out is firing prebid timeout ( which is the client side timeout) #12287

Open
spormeon opened this issue Oct 3, 2024 · 9 comments
Assignees

Comments

@spormeon
Copy link

spormeon commented Oct 3, 2024

Type of issue

bug/ potential enhancement

Description

I'm testing a hybrid system of client and s2s, I have a timeout set for the client side of e.g 2800, this is then sent as the timeout for s2s with "timeout * 0.50", so s2s timeout is 1400. When ever a timeout is reached and fired by s2s its getting reported back as "prebid timeout after 2800", which is actually the client side timeout not the s2s timeout. I'm not sure if this is expected behaviour or not, seems to me it should be reporting backthe s2s timeout of 1400 as thats the tmaxrequest: 1400.

Enhancement would be to fire back the tmaxrequest: 1400 and maybe even the bidder name etc, if its a bug and should already be firing back the s2s timeout, i got no clue whats happening

Steps to reproduce

DevTools_-headphones-pohs_com_akg-k240-mkii-superior-comfort-and-sound-for-studio-professionals

DevTools_-headphones-pohs_com_akg-k240-mkii-superior-comfort-and-sound-for-studio-professionals

Assertive_Yield_🔊

Expected results

the s2s timing out to be firing the s2s timeout

Actual results

s2s timing out is firing the client side timeout

Platform details

P9.15.0, chrome, firefox, mac

@patmmccann
Copy link
Collaborator

smile wanted timed out, why wouldnt you expect their timeout event to fire?

@spormeon
Copy link
Author

spormeon commented Oct 3, 2024

I would but i'd expect the prebid server timeout to fire, not the "overall"/ prebid client side timeout to fire. You can see the prebid server timeout is 1400 in the screenshot but 2800 is fired by the event

@patmmccann
Copy link
Collaborator

patmmccann commented Oct 7, 2024

noting the place in the code

logError(`Request timeout after ${timeout}ms`, resource);

not sure exactly what the contents of the timeout event are in this scenario. It seems we should consider more verbose messages.

I don't see any handling in the https://github.com/prebid/Prebid.js/blob/22aa7ce4566aa53ef4976fbe462aadf1abe425dc/modules/prebidServerBidAdapter/index.js file to fire timeout events for the timed out server side bidders. Are you sure it was only smilewanted that times out in your example?

It seems we should have some sort of event for s2s timeouts but I'm not sure we have one. Perhaps the PBS_ANALYTICS event could include the timeout info?

@patmmccann patmmccann moved this from Triage to Needs Req in Prebid.js Tactical Issues table Oct 7, 2024
@bretg bretg self-assigned this Oct 7, 2024
@patmmccann
Copy link
Collaborator

patmmccann commented Oct 7, 2024

Assuming we need an event for this, there are three possibilities to debate:

a new event
modify existing timeout event
modify existing pbs_analytics event (#12044)

@spormeon
Copy link
Author

spormeon commented Oct 8, 2024

Ye, was only smilewanted that timed out, I tested it so other S2S bidders timeout and that's what always fires the current event "Request timeout after Xms"

@bretg
Copy link
Collaborator

bretg commented Oct 9, 2024

@spormeon - we discussed in the Prebid Server committee meeting.

  1. Client-side analytics adapters can get server-side bidder timeout details by supplying ext.prebid.returnallbidstatus:true. e.g.:
s2sConfig: {
   ...
   extPrebid: {
     returnallbidstatus: true
   }
}

This will cause PBS to return extra details about what happened for each bidder as described in https://docs.prebid.org/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#seat-non-bid

This info is passed into the PBS_ANALYTICS event. That's missing documentation -- will add it.

@patmmccann
Copy link
Collaborator

patmmccann commented Oct 9, 2024

Ye, was only smilewanted that timed out, I tested it so other S2S bidders timeout and that's what always fires the current event "Request timeout after Xms"

@spormeon We're not able to reproduce, but we do plan some additional server side timeout information. Did pbs also respond late?

If you can reproduce, can you show all the output on the pbjs.onEvent using pbjs.onEvent('bidderTimeout', function () { console.log....

@spormeon
Copy link
Author

spormeon commented Oct 9, 2024

@bretg I have that set already, @patmmccann there isnt a "bidderTimeout" event, prebid is telling me it dont exist, so which do you need?

@bretg
Copy link
Collaborator

bretg commented Oct 9, 2024

@spormeon - added the pbsAnalytics event to https://docs.prebid.org/dev-docs/publisher-api-reference/getEvents.html

So here's how I think it should work:

  1. Listen for the bidTimeout event to find out when Prebid Server as a whole timed out.
  2. Listen for the pbsAnalytics event and pull out seatnonbid code 101 to learn which bidders didn't bid because of timeout.

If it's not working this way, please show us a trace as @patmmccann suggests?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Needs Req
Development

No branches or pull requests

3 participants