Bug?
The highest bid is not always the bid assigned by pbjs.setTargetingForGPTAsync when enableSendAllBids=false.
Compare pbjs.getBidResponses() to pbjs.getAdserverTargeting(). In our testing with the IX module, we saw ixBidAdapter return two bids for a slot, and the lower dollar amount was assigned.
The higher bid is passed to GPT.
The lower bid was passed to GPT.
Prebid 1.30.0, Chrome.
Our use of the ixBidAdapter requests bids on every size an ad position can serve. (So one bidder object is added to the unit per size.)
I can't 100% confirm, but from our observation that's something we've noticed as well.
This should be fixed!
@whatisjasongoldstein is this only an issue for the IX bid adapter or are you seeing it as a general Prebid issue? Also, when checking pbjs.getAdserverTargeting() did you also compare those values to the request query string params (scp query) in the call to GPT to confirm KV targeting there? Looking to confirm if this is a targeting issue or just an issue of what's contained in getAdserverTargeting
It's not IX specific. After I opened the issue we determined that pbjs.getAdserverTargeting() was returning the wrong value but the correct ones were being sent to the network request. This appears to be a red herring. I'll defer to your judgement on whether it's still a valid bug with pbjs.getAdserverTargeting().
After some investigations, we also observed something new (and weird) with the behavior of the pbjs.getAdserverTargeting function.
At the end of the auction process, pbjs.getAdserverTargeting() is sending back the right values. The highest CPM bid is sent to the adserver. As you said @whatisjasongoldstein "the correct ones were being sent to the network request".
Then after the bidWon event and the renderAd(), the pbjs.getAdserverTargeting() function seems to return a new value.
I think it's a new behavior related to the bid pool logic and bid caching system. The bid has to be deleted after the rendering so the 2nd winning bid is returned by pbjs.getAdserverTargeting().
In my opinion, it's not a bug but a new dynamic behavior.
That makes sense and is consistent with our testing. Closing.
Most helpful comment
After some investigations, we also observed something new (and weird) with the behavior of the
pbjs.getAdserverTargetingfunction.At the end of the auction process, pbjs.getAdserverTargeting() is sending back the right values. The highest CPM bid is sent to the adserver. As you said @whatisjasongoldstein "the correct ones were being sent to the network request".
Then after the bidWon event and the
renderAd(), thepbjs.getAdserverTargeting()function seems to return a new value.I think it's a new behavior related to the bid pool logic and bid caching system. The bid has to be deleted after the rendering so the 2nd winning bid is returned by
pbjs.getAdserverTargeting().In my opinion, it's not a bug but a new dynamic behavior.