-
Notifications
You must be signed in to change notification settings - Fork 263
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
Improve robustness of reporting scripts #1361
Comments
While it is true that in theory the reporting scripts compete with bidding scripts, in practice, given Chrome's queuing and dispatch and timeout logic, we don't anticipate this significantly affecting report reliability. Similarly, while it is true that reports will not be sent if the parent frame is navigated away while reporting worklets are running, the window for this happening is very short as the default reporting timeout is 50ms and reporting worklets are started immediately after the auction completes, before the winning ad has started being navigated to. Even if the parent frame were closed before the reporting worklet finished, the ad rendering frame is unlikely to have made much progress towards displaying the ad in that brief window of time. The navigation to the ad may not have even begun, in which case the reports aren't supposed to be sent. It's unclear if buyers and sellers would consider such a marginal impression as an actual impression and want to receive reports about it. |
We conducted an AB test using Criteo DSP as a buyer and Criteo SSP as a component seller from 09/02/2025 to 13/02/2025 and playing with bidding script caching and reportingTimeout parameters on different CMA labels. AB test setup
We performed a full outer join on the seller and buyer events, event level wise using an auction related join key, to detect:
Results
To conclude, it seems to confirm that there might be issues with reacquiring the JavaScript execution context for buyer reporting. For each bid the buyer receives its forDebuggingOnly events, sellers scoring and reporting events are also sent out but we loose a significant part of buyer's reporting events. As a short terms fix, in order to mitigate this effect, it looks reasonable to increase the default reportingTimeout value to 500ms or even 1 sec. However, it doesn’t look like a long term solution to just increase the default of reportingTimeout to a higher value as this might have other side effects on how bidding can be performed in other auctions on the same page. The reporting scripts generally contain few logic and should largely be finished within 50ms. Also those observations are not marginal and somehow contradict the previous expectations on how it PAAPI reporting behaves:
So it looks important to fully understand what is happening here to be able to mitigate this effect. AppendixExample results of the share of seller only / buyer only sendReportTo events on each label
|
This topic was discussed in the Feb 26, 2025 WICG call. |
Thanks for the discussion in the WICG call. The summary, with my understanding, is that the seller reporting script is executed straight away in the same JS context whereas there is a larger timeframe between buyer bid and buyer reporting. And therefore the buyer JS context (running in a process) gets released and instantiating the process from cache takes time. Bidding script caching didn't have an impact because this time is not taken into account in the Overall the explanation seems clear. And the analysis gives some importance to the ticket that an improvement looks useful. A note on applying the timeouts: It seems that bidding script network loading is included in other timeouts however like the |
Mine as well, based on https://github.com/WICG/turtledove/blob/main/PA_implementation_overview.md#phase-3---reporting-scripts, which reads:
|
As a follow up of the discussion in #1354 several limitations of reporting scripts came up.
They are summarized in the documentation:
https://github.com/WICG/turtledove/blob/main/PA_implementation_overview.md#phase-3---reporting-scripts
In particular reporting scripts compete for resources with bidding scripts and might be lost when the running auction frame is navigated away.
Reporting is one of the most important features as it is used for billing. So any robustness improvement made here would be useful. It should be noted that it might not be necessary to send out reports in strict real time.
Some delay of sending out those events could be acceptable if it improves robustness and improves resource availability for bidding and scoring.
The text was updated successfully, but these errors were encountered: