-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
PBJS not respecting bidLimit for video #7457
Comments
I took out the "test" bidder and its still doing it, so I think there is some weird bug, maybe around the "recommended modules" installed |
Is the issue that the bidder name is being passed twice, in hb_bidder and hb_bidder_name ? We agree that that's a redundant kv pair and will triage separately -- but just want to make sure that's the actual problem you're seeing? What are the "two different bidders" in your screenshot? How many bidders are running in the auction? I think what we'd really need to troubleshoot would be an indicator of what precise behavior in the screenshot you're seeing that looks strange. |
hi There are 20+ bidders. Its not the same bidder being passed twice, its 2 different bidders and its random on which ones. Screenshot above is aniview & rhythmone. If @bretg is involved with this one, I can show on my test pages again ( like have shown on previous items) |
We don't understand how you've posed the problem @spormeon. Yes, a test page is needed. |
here is another example, this one is sending 3 bidders. Sometimes it sends 1, sometimes 2, sometimes 3, its completely random. The problem it creates for us, is we build a vmap off of the back of the winning bids and if targeting is sending 3 lots aof bids in effect, it crashed out the vmap string as its to long to send and build the vmap off of. Its only started happening in P5.14.0 i'll try and get you on slack @bretg and show you the test page etc |
I got a bit more info, I switched setup to: but targeting still randomly sets sometimes 1, sometimes 2,3 etc. Example with above bidlimit:1 set:
|
So would it be fair to describe the problem as "bidLimit doesn't work"? FWIW - alwaysIncludeDeals would of course break the Maybe there's an issue with bidLimit when Prebid Server is involved. Did you upgrade from 5.12 to 5.13 or from another version? |
i went 5.11 to 5.14. I've since also tried this and it still sends multiple:
still sets target as: i'm on slack now, if you want to look at the test page? |
Stepped through the test page and as a result, was reminded that dfpAdServerVideo module simply doesn't support any targeting controls:
It never has. Here's the code. Notice that someone (sounds like Patrick :-) added comments recognizing that there's an issue here. Prebid.js/modules/dfpAdServerVideo.js Line 261 in 0d56358
So, @spormeon - I can't explain why you don't see the issue in other PBJS versions because nothing's changed in video since at least 5.0. But here's a potential workaround: don't use the dfpAdServerVideo if you want to control how many adserver targeting variables are added, instead, use https://docs.prebid.org/dev-docs/publisher-api-reference/getAdserverTargetingForAdUnitCode.html, which does support the controls. The main targeting.js file had changes:
Also, please note that your config for allowTargetingKeys and alwaysIncludeDeals isn't quite right -- they are attributes of the
For the record, I'm not seeing the odd mixing of targeting as noted in the examples above, where the winning bid is listed as 'hb_bidder=ix' for instance yet no hb_pb_ix exists. Not saying you didn't see it, but I'm not familiar with the bidfilter chrome extension -- perhaps it's only showing some of the values? (could be wishful thinking) @gglas - please consider adding this as a topic to the next PBJS prioritization meeting. Another potential bug I noticed is that I think we need to have a team enhance the test cases for targeting. |
ok, so maybe this has just become more prevalent recently due to more bids and more bidders having been added etc, so its trying to send more KY's (its currently not a problem in production , just testing) so basically dfpAdServerVideo module needs to take account of the targetingControls ? and then everything can be done from/ with the following? I did try all this but obviously it didn't have an effect @bretg Thanks for looking at the test page, hopefully its found something useful |
Stepped through this again with @r-schweitzer . We found the logic in
In words:
Odd things:
|
why does dfp video module call get all targeting instead of getAdserverTargetingForAdUnitCode(adunitCode); |
@mmoschovas pointed out some interesting things in slack: 1. bidLimit only applies to sendAllBids which is disabled in this case - meaning this is currently set to send highest (which is not working because of the next point) 2. adServerTargeting for a few bidders has both standard and bidder specific keys. There is a targeting concat that runs through a few steps : winning, customkeys, landscape (sendAllBids enabled)/deal (sendAllBids disabled), and any adUnitTargeting. On this test page, highest/winning is returned for the first, the bidders that have bidder specific keys for the second, and nothing for the third and fourth. So right now the reason there are extra bids is due to the custom key piece. From what I can tell, it's only PBS bidders that are causing this behavior as they seem to be the only bidders with the extra targeting due to adServer targeting being applied based on the bidder seatBid ext.prebid.targeting. I think a fix here would be to either updated the s2s adapter to exclude bidder specific versions of the standard keys, or another option may be to update the getCustomKeys function within targeting.js to filter the bidder specific versions of the standard keys This points to a possible workaround @spormeon : in your s2sConfig.extPrebid, try adding the following values:
PBJS doesn't need PBS to supply the targeting. So if @mmoschovas is right, this will stop PBS targeting from interfering. And since PBS isn't doing the targeting, s2sConfig.extPrebid.targeting.pricegranularity can be removed. There are default values in the pbsBidAdapter for these, but the code currently
Perhaps this ought to be changed to deepMerge? |
includewinners: true, seems to work. Its only sending the 1 bid now at least by the looks of it |
We've opened PBS enhancement to make targeting optional -- prebid/prebid-server#2030 To drive this issue home, I'd like to suggest two other followups:
|
@bretg yep makes sense to me |
Followup items opened. |
I seem to have found some weirdness after adding a new bidder to "test", the new bidder is only using "test" params which are in the adapters git file. It seems to be pushing 2 different bidders in targeting. P5.14.0 with all the "recommended" modules included. Any idea whats gone haywire?
The text was updated successfully, but these errors were encountered: