-
Notifications
You must be signed in to change notification settings - Fork 245
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
FLEDGE triggers reporting worklets prematurely #318
Comments
This does seem like an area of difference between the explainer and the implementation. It’s a little tricky however for a couple reasons:
I think there’s a few possible solutions:
Concerns with these solutions: Solutions that abort auctions prior to reports being sent may make it harder to solve issues like #299 where sellers want more information about slow auctions, as slow auctions may never result in reports being sent if they timeout or are canceled. This could be worked around with a declarative reporting API mechanism (e.g. an API indicating “fetch https://example.com/took-too-long-${bidder} when a particular bidder takes too long”). Solutions that don’t abort auctions may waste resources by not terminating an auction whose results won’t end up being used. I think my preference is for solution number 3. |
Thanks @JensenPaul. From SSP's POV, option 4 (cancellable API) is preferred as it offers the most flexibility. Imagine a site canceling an auction once a BTF slot comes close enough to viewport which can help minimizing the blank rectangle time. Or the site might want to abort an auction once a slot moves aways from the viewport to save computational resources. |
See also #293 |
To clarify, it is sufficient to deal with the conflict ping issue mentioned in this post with (only) option 4. It doesn’t mean option 5 is not important. For impression counting purposes, we (seller) still want to be able to learn whether an IG ad is actually handed over to a Fenced Frame for rendering. With option 4, the ping is sent after an auction concludes. We don’t know if the winning ad would appear on the page. This is quite different from the semantic today in the non-FLEDGE world where we count the impressions only when the browser starts rendering the frame that contains the ad. In short, we would like to have both option 4 (a cancellable API) and option 5 (delay reporting until rendering). |
Solutions 4 and 5 were both implemented. |
According to the spec and this comment, event level reporting on an auction outcome for both seller and buyer should only be done once the winning ad is handed to a Fenced Frame to render. However, we noticed that the reporting is prematurely triggered in runAdAuction() even though the winning ad is not rendered (BUG). This is problematic, especially since there is no way to stop an auction or prevent it from reporting a winner (if any) once it starts.
For example, imagine the scenario that an auction takes too long to finish, the seller might choose to abandon the auction and render a contextually-targeted ad. The abandoned auction will run to to completion, and report the outcome if there is a winning bid, even though the winning interest group ad will not be rendered. This raises challenges: the backend systems might receive conflicting information about whether there is an interest group auction winner or a contextual winner resulting in an inconsistent auction state; knowing which of the two actually rendered and resulted in a billable event becomes ambiguous.
Can Chrome fix this bug so that the event level reporting is only triggered when the winning ad is rendered in a Fenced Frame?
The text was updated successfully, but these errors were encountered: