prebid / prebid-server

Open-source solution for running real-time advertising auctions in the cloud.
https://prebid.org/product-suite/prebid-server/
Apache License 2.0
431 stars 739 forks source link

Prebid Server auction clarification #813

Closed smithaammassamveettil closed 5 years ago

smithaammassamveettil commented 5 years ago

Hi @hhhjort, @josephveach

I would like to have a few clarifications on Prebid server bidding/auction process.

When DSP returns a bid response, where is the auction happening? If it is in Prebid Server(I believe it is so,pls confirm), who is actually replacing the "Auction price" macro in the impression call? And who is making the impression call? Is it publisher who is doing all these or does it happen inside Prebid server?

Thanks Smitha

hhhjort commented 5 years ago

The auction is actually happening on the publisher's adserver. PBS is just a proxy for the bids, that also distributes the bid request across the relevant bidders. This information gets funneled back into the publisher's adserver (just how depends on the adserver in question) and the adserver makes the final determination on what ad wins the slot.

smithaammassamveettil commented 5 years ago

Thanks for the quick reply @hhhjort So Prebid server just redirect the bid response directly to publisher's side and all the remaining communications/processes(impression call or win notifications, auction price calculations, auction price/winprice update to winning DSP) are happening between publisher and DSP directly. Prebid Server dont have any other involvement after delivering the bidresponse for a given bid request back to publisher. Please confirm this understanding is 100% correct. If not, let me know whatelse prebid server do.

hhhjort commented 5 years ago

That is correct. There is some talk of inserting prebid server into the win notification chain in order to collect some analytics via PBS, but that does not exist today. And when done would just be a simple redirect so that PBS is also informed of the win.

smithaammassamveettil commented 5 years ago

Thanks for confirming that. How about cookie sync process? How publisher will get involved in that or from Publisher side, how are they going to do cookie sync with different bidders?

hhhjort commented 5 years ago

Prebid.js will call the /cookie-sync endpoint to find what syncs are needed. The endpoint responds with cookie sync pixels for all the missing syncs. Prebid.js will then fire off those pixels. I am not sure how it is done for non-prebid.js setups. I believe mobile apps just rely on the bidder recognizing the device ID in the request.

smithaammassamveettil commented 5 years ago

What you meant by non prebid.js setup? Is this the same happening for publisher who are using Prebid S2S for bidding? Publisher's need to use Prebid.js and call the /cookie-sync end point? Prebid will return cookie sync pixels to publisher in a Prebid S2S case?Not sure about the cookie sync pixels in that case. We havn't configured any pixel at Prebid Server. But under Prebid server, we have configured our cookie sync url. Would like to know how that works? How publisher flow will be in that case?

hhhjort commented 5 years ago

Yes, I would consider a S2S setup as non-prebid.js. Having a setup that is not client-side (prebid.js calling PBS) and non mobile app (that can use the device id instead of a user id for bidders to identify the viewer) is more of a challenge. In an S2S setup, PBS will not have access to any cookies, as your server is calling PBS rather than the viewer's client. At this point, it would be up to the publisher to handle the usersyncs, and include the user id mappings in the request. In the request, user.ext.prebid.buyeruids is a map of the bidders to the user's id on that bidder. See endpoints/openrtb2/sample-requests/valid-whole/exemplary/all-ext.json for an example of a request using it.

We are in the process of putting together a solution for this problem as part of an effort to support enhanced video support, specifically publisher who want to put together video pods for long form videos. As part of this, we are planning on adding a second cookie-sync endpoint which will read the cookie information on the user, and return the buyeruids object that can then be inserted into the request to provide the cookie sync info. The publisher would still have to run the cookie sync part of prebid.js on their pages so that the syncs can happen and the mappings be built on PBS.

smithaammassamveettil commented 5 years ago

I thought features like inserting buyeruids in the bid request based on user sync between DSP and PBS is already available as per your documentation https://github.com/prebid/prebid-server/blob/master/docs/developers/cookie-syncs.md. Also Publishers can get user-sync url of DSP from PBS and they can make cookie sync calls to DSP accordingly. Is this not happening now? We already added the required changes to configure usersync url for our adaptor as per your documentation as well. Is that not enough for cookie sync process?

hhhjort commented 5 years ago

That works for when the user's client makes all the calls, as PBS stores the usersync data in a cookie. In a server to server setup, PBS does not have access to the client's cookies. The remote server cannot forward the cookies, as it would be in a different domain and thus not be able to see the PBS cookie.