WICG / turtledove

TURTLEDOVE
https://wicg.github.io/turtledove/
Other
519 stars 219 forks source link

[Outage Recovery/Mitigation] Contextual Signals To Restore Interest Groups Ads #1135

Open vishnu4fledge opened 4 months ago

vishnu4fledge commented 4 months ago

The current PA-API offers no proactive method to restore Ads on browsers if a daily update bug causes a wipeout of Ads in IG.

Due to API limitations, even after fixing a DSP-side issue, the fix won't appear until the next daily update – potentially causing a 24-hour delay and risking revenue recovery for 24 hours.

This proposal suggests updating the PA-API to allow buyers to trigger updates for specific IG or all IGs. Buyers would provide IG to update information in the 'perBuyerSignals' of the contextual response, that Chrome can use to trigger updates, enabling quick updates regardless of DSP or bidding signals.

michaelkleber commented 4 months ago

We're working on implementing a way for the K/V server response to trigger an Interest Group update instead of waiting for the 24 hours to elapse. (Discussed in https://github.com/WICG/turtledove/issues/729#issuecomment-1813151762 and later in that thread, although the discussion there has other aspects that aren't about updating speed.)

Will that address your concern? I think triggering an update from the K/V response seems better than from the contextual response, since in the contextual request you deliberately don't have any idea what IGs are on the device.

vishnu4fledge commented 3 months ago

https://github.com/WICG/turtledove/issues/729#issuecomment-1813151762 partially address the requirements to solve this problem, and that solution only works for IGs eligible for real time K/V server requests.

Also with that solution an IG not eligible for real time request has to wait for about 24 hr to get fixed by next daily update. This solution does not provide a way to trigger update to all IGs

While this ask is to provide a signal in contextual response(in perBuyerSignals or similar object) to refresh all IGs, that will eliminate dependency on IG eligibility or real time K/V server response.

michaelkleber commented 3 months ago

What "IG eligibility" dependency are you worried about?

It is deliberate that the only IGs that get a chance to update is ones that are invited to participate in an auction on the current page. I'm not sure whether your goal fits within that constraint.

vishnu4fledge commented 3 months ago

As per my understanding an empty IG does not participate in auction (let me know if this is not correct). An IG will not participate in auction when a bad update wipes out all ads in it, hence no option to update them via realtime K/V request/response.

Also proposal https://github.com/WICG/turtledove/issues/729#issuecomment-1813151762 is per IG, while via contextual signals we can update all IGs irrespective of auction eligibility.

dmdabbs commented 3 months ago

I was under the impression that an IG with no ads, but at least biddingLogicURL, is eligible for, but of course could not place a bid in, an auction. If it has an updateURL then after that auction it could be updated. Lacking that, then it really is "empty" or perhaps "inert."

vishnu4fledge commented 3 months ago

One potential solution is to introduce a timestamp-based mechanism for invalidating IGs. The buyer could specify a timestamp in contextual response, and Chrome would refresh all IGs if their last refresh occurred before that time.

This timestamp approach would restrict forced refreshes to a single instance per browser, preventing IG refreshes with every contextual response.

leeronisrael commented 2 months ago

Hi Vishnu - A few points in response:

  1. There's not an obvious way for the browser to support a field in perBuyerSignals blob that would trigger an IG update
  2. We have heard it's unreasonable to assume buyers get a chance to run JS API (e.g., Navigator.updateAdInterestGroup)
  3. An alternative option is to remove all eligibility requirement for IGs being sent to K/V server

Let us know your thoughts.

vishnu4fledge commented 2 months ago

This should work, here are few other options that should work too in additional of Implementing a way for the K/V server to trigger Interest Groups update by relaxing IG eligibility requirement.