-
Notifications
You must be signed in to change notification settings - Fork 240
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
Workflow for adservers #203
Comments
Thanks @jdelhommeau for surfacing this important topic. Your description of the workflow matches my understanding of the FLEDGE proposal. The question of pacing in TurtleDove/FLEDGE has been discussion previously, for example, Issue #25. @michaelkleber ‘s response was
Presumably forecasting can also be based on aggregate measurement API. The timeliness, precision and/or granularity of aggregated measurement API might be a concern for pacing purposes. Much study and prototype effort is needed to assess and to improve the effectiveness of the proposed solution. Dovekey Auction has an alternative proposal for timely budget enforcement and pacing based on Secure Mutli-Party Computation (MPC), which is in the general direction of Microsoft MaCAW proposal. As stated in the Mar 3, 2021 blog, Google Ad Manager (GAM) is fully committed to Chrome Sandbox APIs. We are committed to collaborating with partners and browser vendors to incorporate Sandbox API to Google’s ads products. It seems reasonable that GAM will run a contextual ad auction and submit the contextual ad auction winner to the FLEDGE auction. It also seems plausible that GAM can forecast on behalf of publishers and AdX buyers based on the Chrome reporting API, among other things. Pacing can be either a buy side functionality implemented by programmatic buyers, or sell side functionality for reservation ads on behalf of publishers. GAM is not directly involved in buy side pacing. Sell side pacing for reservation ads doesn’t seem to be impacted by 3p cookie deprecation much and such impact could be mitigated by the Chrome reporting API. |
Thank you @gangwang-google ! If I understand correctly, you are saying that gam would run a "normal" 3rd party cookiesless auction, including adserver demand as well as programmatic demand coming through ADX. Gam would then return the auction result (price and creative code?) To the page, then through a client side script run the fledge auction. The issue I see with pacing (as in sell side reservation pacing) is that gam wouldn't know how much of the inventory he sees would be taken by fledge demand. Couldn't that invalid gam forecasting and pacing? Thank you for your help, really appreciate and really helps me wrap my head around the workflow logic! |
Hi @jdelhommeau,
Let’s ask browser vendors what they have in mind. I don’t see obvious privacy issues with what you suggested. But there might be other options.
The percentage of publishers’ inventory sold to all remarketing demands combined has been quite predictable for the purpose of GAM forecasting and sell-side pacing. If the 3p cookie deprecation gives us any challenge for GAM forecasting and sell-side pacing, we are expecting the Chrome measurement API to mitigate, as I replied in my previous post. |
Chiming in with extra context, I think the description of the contextual response is not defined in FLEDGE but in the original turtledove proposal:
So my understanding is that strictly speaking, a contextual bid price might not necessarily be available in the Interest-Group/FLEDGE auction as it's primarily this "positive number bid" that is I believe compared at the end of the ranking exercise that takes place once all the I-G bids have been provided. That said, if this number is "up to the ad network", then I'm wondering too how we can enable competition across several ad networks/SSPs if this "number bid" only makes sense for only one of multiple parties that represents the buyer. |
Thank you @fbastello and @gangwang-google . I think this part of the github you posted helped me better understand and formulate the issue I am seeing:
You can replace "GAM" by any Adserver in above quote. So I am wondering about how Adserver (such as GAM, but not only) will adapt to that new workflow.
So my understanding is that Adserver would then move final decision layer into the web, in a js script. But I am still having a hard time fully understanding how that will be done. @gangwang-google do you, or anyone else in Google Ads team has started to think this through?
Where I am not sure is after that last step, when JS has access to the contextual auction result (creative + Price) and the FLEDGE auction result (obfuscated object with just a "ad" / "no ad" info), how is the final decision to render either one of those auction is done? It seems to me the JS is in no position to make the decision, since he can't tell how much is worth the FLEDGE auction. Can the JS pass the contextual auction result (at least price) to the FLEDGE auction, so that FLEDGE can return a "no ad" signal in case FLEDGE auction price is below the contextual auction price? Some other mechanism? This seems like a fundamental piece for the success of the FLEDGE proposal. If the FLEDGE auction works, but can't be inserted in the existing workflow, I don't see how it could be adopted. Or publishers will have to make a choice between getting only IG demand or only contextual demand. |
Yes, this is exactly what I had in mind. As in the FLEDGE explainer's section 2.3 Scoring Bids:
In the original TURTLEDOVE explainer's API example flow, the browser itself made this decision, based on actual bid values. But under FLEDGE, all the logic of evaluating bids is in the hands of the |
Thank you!
Is that correct @michaelkleber ? Thank you again, this is incredibly useful to understand how FLEDGE would integrate in auction workflows. |
@jdelhommeau - just a note that what you reference above as "adserver JS" could also be some other pub controlled script (a la Prebid.js). Unless the "adserver JS" adds all the necessary logic to call the participating SSP's IG code and passes in their contextual information, it's unclear to me how the "adserver JS" would allow multiple SSPs to compete like they do today. The diagram I put together here attempts to show one way of assembling logic/metadata that would allow this. If an "adserver JS" (GAM code or other) did this, then it would suffice. If an "adserver JS" does not, then it is likely not going to meet the needs of publishers. As you note above, GAM isn't the only adserver that might get used (though it is the leading one by a large large margin), which is an argument for having a solution other than the "adserver JS". In other words, I'd like to see a model where any ad server can plug their JS into a solution rather than being the solution. To make it painfully clear: I'd like GAM and other ad servers to provide modules in Prebid.js, rather than attempting to take over the role of Prebid.js. |
@jdelhommeau Your summary is correct! @JoelPM What you're talking about seems like the essential question from #59 or #202, about how to support the winner of one auction becoming a buyer in a second auction run by a different seller. Right? This still has some pretty hard questions that came up in previous discussions — especially around whether the carried-forward ad gets an opportunity to change its bid, obviously crucial if there is first-price-vs-second-price skew in the auction rules. |
I would just point out that in @jdelhommeau 's outline, the desirability score for the IG auction needn't be 0, though that may be a typical outcome. For example, a publisher may want to make sure an SSP gets a certain amount of delivery to keep the relationship healthy, and favor an ad with a lower bid. |
@appascoe Sure, so let's be very clear here. @jdelhommeau wrote:
Julien is pointing out that the score of 0 is how Andrew, you're pointing out that the decision about which ad is better (the contextual one vs. the IG-targeted one) can be based on lots of factors, not just bid price. That's also completely correct. The code in |
thank you all. |
Hi all, |
@jdelhommeau we are actively thinking through how to enable testing FLEDGE for publishers using Ad Manager, including integrations with other sellers, and we're hoping to share more details soon. |
Since some time has passed, and in the meantime Prebid.js has released the integration module for FLEDGE (fledgeForGpt), it's not yet clear how the top-level seller (in this case, GPT) compares contextual bids with those derived from IG signals. In cases of FLEDGE eligibility, adapters can return a tuple consisting of contextual bids and FLEDGE Auction Configs inside the Is this assumption correct? If so, how is the comparison performed? Does GPT compare the bid value of the contextual winner with that of the FLEDGE auction? It would be great to have some documentation references, let us know if it would be more appropriate to raise this request in a new issue, thank you |
You might consider posting to the Google Ads GitHub repo. |
Hi all,
If I understood correctly, with FLEDGE, there will be a "standard" cookieless auction happening first, including the classical workflow (Adserving, SSPs, header bidding, etc.). Then, post that auction, will happen an on device-auction for FLEDGE demand with on page logic to decide what ad to render between the classical auction and the FLEDGE auction.
In such workflow, I am unsure how some mechanisms will continue working, such as Adserver pacing, which today can work because adserver is the final decision maker. In FLEDGE world, the adserver loose this position to the profit of the browser. I am not sure how adserver will be able to adapt and be able to forecast and pace correctly, since part of the demand will be out of their scope. Maybe I am missing something, but that seems pretty strong issue.
@gangwang-google , I am curious if this is something that you already have given a thought about and if you have an idea how would FLEDGE incorporate in current GAM / ADX workflow. Would GAM runs before FLEDGE auction? How would you enable competition between GAM / ADX demand and FLEDGE demand? How will GAM be able to forecast and pace correctly if not the final decision maker anymore?
The text was updated successfully, but these errors were encountered: