google / ads-privacy

Apache License 2.0
347 stars 79 forks source link

in batch upload of KV, how does the SSP match the DSP CS/bids with publishers? #12

Open jdelhommeau opened 4 years ago

jdelhommeau commented 4 years ago

Hello everyone,

I had a question while reading through the specifications. Specifically regarding the part where DSPs and SSPs would bulk upload Key-Values to the KV server ahead of time. The specification says:

From historical ad requests and tagging signals, along with information about previously missing keys that would need to be provided by the aggregate reporting API, the DSP can make an informed decision to predict which keys (contextual signals + ig_id) will provide maximum coverage. Once a key is identified, the DSP can compute the respective values, i.e., creative_id and bid, and then pass this key-value pair, along with the contextual ad request, to the SSP.

Given a contextual ad request, creative_id, and the bid, the SSP can apply publisher brand safety & ad quality checks, pricing rules to calculate publisher payout.

So my understanding from this, is that DSP will decide how to generate a CS (no pre-defined form). For example, if a DSP decides that its CS will contain domain, size and geo country information, it will generate a CS of the form "domain-size-geo". For ease of usage, the DSP may choose to use internal id to represent each dimension, so the CS could become something like "1234-5-67". The DSP then decides which IG campaign(s) is most likely to deliver on this CS. For example, IG1 for a bid of $10 for creative id 789.

The DSP will then provide the SSP with such CS / bid combination: [(1234-5-67,IG1),(10,789)] As per the specifications, the SSP should then apply publisher brand safety, ad quality and pricing rules. However, how should the SSP decides which publisher to do that for? The DSP's CS has no meaning for the SSP, so it can't know in advance which publishers might be eligible for that CS/bid KV. Should the SSP apply publisher brand safety, ad quality and pricing rules for each publisher he works with for that provided KV?

Thank you for your clarification and help on this.

ardianp-google commented 4 years ago

Thank you for your interest in Dovekey.

Both SSP and DSP need to synchronize on the composite contextual signals key used to populate a bid in the KV server. You raised an important point that was not elaborated in the explainer – the SSP can construct its contextual key (SSP-CK) and provide one in bid requests to a DSP.

For populating the KV server, we are thinking of two possible flows:

  1. During contextual ad request, a DSP sends along (DSP-CK, interest group ID, bid) to the SSP, together with the regular contextual ad response. SSP will then apply publisher controls, ad quality checks, and upload these interest group bids to the KV server.
    • As an additional side effect of this flow, a DSP can remember that it already populated a given composite key (SSP+DSP) with certain interest group bids, so as to avoid populating the same interest group bids again in future.
  2. A DSP sends a batch update containing (SSP-CK, DSP-CK, interest group ID, bid) to the SSP. SSP is able to map its contextual key (SSP-CK) to the publisher brand safety and other settings, apply those, and then batch upload resulting bids to the KV server.

We plan to incorporate more specifics about these potential flows into the main explainer.

jdelhommeau commented 4 years ago

Thank you for additional context.

Method 1 is clear, although I think it may have its own set of issues, due to the size of the data to be transfered from the DSP to the SSP as part of the bid response, in a real time manner. But not the goal of this ticket.

Regarding Method 2, thank you, I think the piece I was missing was the SSP sending its SSP-CK signal as part of the bid request to made the DSP aware of it. So this means the DSP will need to send those batch, once he has been made aware of a SSP-CK. So looking at the historic of CK sent by the SSP in the bid requests to the DSP, for each SSP-CK, the DSP will need to build its own DSP-CK, as well as evaluate any of the eligible IG ID for that context. From there, the DSP will be able to build a list of (SSP-CK, DSP-CK, IG ID, bid) to batch upload to the SSP for it to evaluate publishers rules and ad quality, then upload results on KV server. Thank you that makes sense and clarify how the SSP can achieve the expected outcome described in the specs.