WICG / sparrow

61 stars 12 forks source link

Quantify Browser/JavaScript resources #6

Open manoochehri opened 4 years ago

manoochehri commented 4 years ago

This proposal makes a few technical assumptions that I think need to be clarified.

1. "The Gatekeeper, not the browser, is in charge of resource-intensive tasks: bid computation or ad bundle pre-fetch. This will result in less impact on device resources such as memory or battery life, and less network usage."

Can you quantify this? JavaScript performance in the browser has improved tremendously, to the point of things like full VR applications and AI models being deployed in the browser via JavaScript.

2. "Models executed by the Gatekeeper can be more complex than those that could fit in a js bidding script."

Again, could you be more specific about this? What model is really so complex that the JS interpreter in a modern browser can't deal with it?

Pl-Mrcy commented 4 years ago

Hello @manoochehri,

Advertisers currently run models weighting from a dozen of megabytes to several gigabytes. I don't doubt that we could manage to run any of these models in JS in theory. However, in practice, we must consider that a user would potentially be eligible to dozens of advertisers, each of them with its own model, bundles, etc. We would also have to send these models through the network, to all individual browsers, thus greatly increasing the overall bandwidth dedicated to advertising. This would be particularly unsustainable for mobile web browsing. In the case of run-in-browser-run models, updating these models becomes problematic as well since you need to do so on billions of devices several times a day (think about Black Friday / peak season periods where advertisers can shift their trading strategy massively in a matter of minutes). Being able to update your models swiftly is key for any type of hot-fixing, AB testing, campaign management, click-fraud attacks, etc.

The additional burden on browsers to load, store and run models and bundles (hundreds of images, videos, playable ads etc. in dozens of formats) makes a truly decentralized system difficult to use in practice, and potentially impossible to use on mobile. Having a differentiated gatekeeper removes this complexity from the browser, ensuring a smoother browsing experience for the user.