WICG / turtledove

TURTLEDOVE
https://wicg.github.io/turtledove/
Other
523 stars 227 forks source link

clarification regarding renderSize in scoring browser signals #1088

Open rdgordon-index opened 6 months ago

rdgordon-index commented 6 months ago

According to https://github.com/WICG/turtledove/blob/main/FLEDGE.md#23-scoring-bids, browserSignals in scoreAd should contain the following:

'renderSize': {width: 100, height: 200}, / if specified in the bid /

However, when looking at the spec, https://wicg.github.io/turtledove/#structures, ScoringBrowserSignals doesn't seems to have any mention of the width and height from the AdRender object (cf. https://wicg.github.io/turtledove/#convert-an-ad-render):

dictionary ScoringBrowserSignals {
  required [DOMString](https://webidl.spec.whatwg.org/#idl-DOMString) topWindowHostname;
  required [USVString](https://webidl.spec.whatwg.org/#idl-USVString) interestGroupOwner;
  required [USVString](https://webidl.spec.whatwg.org/#idl-USVString) renderURL;
  required [unsigned long](https://webidl.spec.whatwg.org/#idl-unsigned-long) biddingDurationMsec;
  required [DOMString](https://webidl.spec.whatwg.org/#idl-DOMString) bidCurrency;

  [unsigned long](https://webidl.spec.whatwg.org/#idl-unsigned-long) dataVersion;
  [sequence](https://webidl.spec.whatwg.org/#idl-sequence)<[USVString](https://webidl.spec.whatwg.org/#idl-USVString)> adComponents;
  [boolean](https://webidl.spec.whatwg.org/#idl-boolean) forDebuggingOnlyInCooldownOrLockout = false;
};

Using M124, despite bidding with a render object including url, width and height, I'm unable to observe the renderSize in scoreAd's browserSignals -- can you elaborate on when this value should be populated?

(perhaps related -- https://github.com/WICG/turtledove/issues/970 recently found another gap in the implementation, where the behaviour doesn't match the explainer -- could something similar be happening here)?

rdgordon-index commented 6 months ago

I've also subsequently confirmed that this doesn't seem to be impacted by the presence of adSizes or sizeGroups in the interestGroup definitions, nor the existence of requestedSize in the component-seller's auctionConfig.

dmdabbs commented 6 months ago

Right. One's interest group can include adSizes, sizeGroups and apply those to renderURLs but Chrome does not consume them (or at least does not include them in the interestGroup parameter provided to generateBid ). I recall a Chrome engineer confirming in a recent Wednesday meeting that this was awaiting the future enforcement tied to k-anon.

Buyers and Sellers could use this metadata now prior to its application to k-anonymity. Buyers to signal renderURL size to bidding code versus a scheme within metadata or parsing the renderURL (which doesn't work for a responsive/sizeless URL), that would be superceded once size is plumbed. Sellers want buyers to priovide width & height with bids in a standard way versus another sidecar metadata standard to be negotiated across participants.

Speaking of sellers receiving bid size metadata, the browserSignals.renderSize @rdgordon-index called out is a pre multi-bid vestige.

JensenPaul commented 6 months ago

@gtanzer is an expert on ad sizes.

LaszloAudigent commented 5 months ago

Hi @gtanzer we have run into this issue as we wanted to use the adSize information defined in our IGs in the generateBid function, could you please provide more information on the status of this?

xiaochen-z commented 5 months ago

Tracking in https://issues.chromium.org/u/1/issues/333628467. I'm working on a fix.

dmdabbs commented 5 months ago

Tracking in https://issues.chromium.org/u/1/issues/333628467. I'm working on a fix.

As I read that ticket, it will solve for sellers to use any size metadata buyers might provide in the bid.render map, which is a win for sure. It doesn't mention buyers in generateBid. Recent Wednesday discussion with Chrome team indicated this was a more complicated thing viz privacy protections.

LaszloAudigent commented 5 months ago

Thanks @dmdabbs, I was about to ask the same, as our case is on the buyer side. @xiaochen-z could you please confirm if this is only covering the seller side of things, or would also be a buyer solution / buyer part will be dealt with in another ticket? Thanks.

xiaochen-z commented 5 months ago

Sorry I'm not super familiar with Protected Audience. Is there another issue in generateBid? I read the original issue is ScoringBrowserSignals is missing the renderSize field, but the explainer claims it should have one. So the ticket is about fixing that.

gtanzer commented 5 months ago

The issue with generateBid will be handled separately. The only complication there is figuring out how to handle the initial auction vs. the fallback auction when non-k-anon options are removed. That isn't an issue for scoreAd so it's an easier fix.

LaszloAudigent commented 5 months ago

thank you @gtanzer . In the meantime I have also read the meeting minutes where the k-anon issue was discussed. Thanks for looking into this.

tylerdev0 commented 1 month ago

What is the status of providing size information to the bidding function? Not having this, makes it difficult to filter out ads which don't support the requested slot size.

dmdabbs commented 1 month ago

Howdy @tylerdev0. When requestedSize is included in the auctionConfig, I see Chrome passing it as a member of browserSignals...

 "browserSignals": {
  "topWindowHostname": "www.test.com",
  "seller": "https://td.seller.net",
  "topLevelSeller": "https://td.seller.net",
  "joinCount": 27,
  "bidCount": 47,
  "forDebuggingOnlyInCooldownOrLockout": true,
  "adComponentsLimit": 40,
  "recency": 759802700,
  "requestedSize": {
   "width": "300px",
   "height": "250px"
  },
  "prevWinsMs": [
    ...
  ],
 ...
} 

And, FWIW, how GAM selects a size: https://github.com/google/ads-privacy/tree/master/proposals/fledge-multiple-seller-testing#faq

tylerdev0 commented 1 month ago

Yes, I see we get the requested size as part of the browser signals, however we don't get the Interest Groups' adSizes or adGroups properties as part of generateBid.

The impact is that we were planning on relying on the sizeGroup and adSizes definitions to filter out ads which don't support the requested slot size. I suppose we can duplicate that information in the ad metadata, but it would be preferable to just have the interest group's defined ad sizes provided to generateBid so that can be used directly for this purpose.

dmdabbs commented 1 month ago

The impact is that we were planning on relying on the sizeGroup and adSizes definitions to filter out ads which don't support the requested slot size.

Ah, yes. I'm with you there, @tylerdev0.

At a Wed meeting (probably around my march comment above) when we were discussing sellers' scoreAd access to the render size info, we asked if buyers could also begin our size metadata investment. The response was, paraphrasing MK, GT et al, "we're not ready to commit to that work just yet... the k-anon implications need consideration, &c"

You could raise it again in this Wednesday's call. We've both expressed our interest here in writing (albeit on an adjacent issue) to have this implemented. Might not hurt either to post a separate issue specifically requesting this.

cc: @gtanzer