Skip to content
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

prevWins Transformer, Output Limited to browserSignals #853

Open
thegreatfatzby opened this issue Oct 10, 2023 · 0 comments
Open

prevWins Transformer, Output Limited to browserSignals #853

thegreatfatzby opened this issue Oct 10, 2023 · 0 comments

Comments

@thegreatfatzby
Copy link
Contributor

While digging in on prevWins for #852 , the idea of allowing the previous wins being "aggregated" but still only available in browserSignals came back to me. It would be useful regardless of the answer to #852 , but especially so if my updated understanding is confirmed.

Goal

The goal would be to allow some transformation to run that would take the IGs auction win history and output a more convenient (possibly also more concise, though not necessarily) version of the data that the generateBid function will need, rather than having to do that at auction time.

For instance, given my old understanding that the ad is the renderURL, a super basic thing that could be done would be:
[[t1, ad1], [t2, ad2], [t3, ad1], [t4, ad2], [t5, ad1], [t6, ad2]...]
---->
{
ad1: [t1, t3, t5...],
ad2: [t2, t4, t6...]
}
In this case it wouldn't be more concise (maybe a bit) but it would be more convenient for lookups at auction time.

It would be great if this transformation could be "guaranteed" to run on some regular basis (say once an hour) which would allow the transformation to output more meaningful capping information, something like:
{
ad1: {frequencyType: hour, frequencyValue: 2, mostRecent: t5}...
}

Could We...

So kind of thinking out loud here, could we do something like:

  • Interest Group can define a prevWinsTransformer, that takes in the previous wins of the IG and outputs a serializable thing.
  • Each IG now has a new dictionary, prevWinsTransformed with two fields prevWinsTransformed and updatedSinceLastWin which defaults to false.
  • A call to the prevWinTransformer results in the prevWinsTransformed being set to the output and updatedSinceLastWin to true.
  • In addition to prevWins the browserSignals of BiddingBrowserSignals gets the prevWinTransformed dictionary.
  • After an IG finishes winning (render of the renderURL and calling of report*), updatedSinceLastWin is set to false.
  • The browser tries to run the transformer of the winner after win.
  • Some periodic process runs to ensure that any IG with prevWinsTransformValue.updatedSinceLastWin has it's transformer run.

Priority: Low I think

I don't think this is the highest, or likely even medium'est, priority, but if indeed what is passed into generateBid in browserSignals.prevWins is the full ad blob from the previous win, I could see it being more important as there will likely be more done than just capping for a renderURL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant