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

clarification regarding renderSize in scoring browser signals #1088

Open
rdgordon-index opened this issue Mar 18, 2024 · 15 comments
Open

clarification regarding renderSize in scoring browser signals #1088

rdgordon-index opened this issue Mar 18, 2024 · 15 comments

Comments

@rdgordon-index
Copy link
Contributor

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 -- #970 recently found another gap in the implementation, where the behaviour doesn't match the explainer -- could something similar be happening here)?

@rdgordon-index rdgordon-index changed the title clarification re:renderSize in scoring browser signals clarification regarding renderSize in scoring browser signals Mar 18, 2024
@rdgordon-index
Copy link
Contributor Author

rdgordon-index commented Mar 18, 2024

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
Copy link
Contributor

dmdabbs commented Mar 18, 2024

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.

@dmdabbs dmdabbs mentioned this issue Mar 18, 2024
@JensenPaul
Copy link
Collaborator

@gtanzer is an expert on ad sizes.

@LaszloAudigent
Copy link

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
Copy link
Contributor

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

@dmdabbs
Copy link
Contributor

dmdabbs commented Apr 10, 2024

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
Copy link

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
Copy link
Contributor

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
Copy link
Contributor

gtanzer commented Apr 10, 2024

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
Copy link

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.

chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 19, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 19, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 19, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 19, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 22, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 22, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 22, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue Apr 29, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue May 1, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue May 1, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5447954
Reviewed-by: Caleb Raitto <caraitto@chromium.org>
Commit-Queue: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1294870}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this issue May 1, 2024
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5447954
Reviewed-by: Caleb Raitto <caraitto@chromium.org>
Commit-Queue: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1294870}
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue May 6, 2024
…ze field to browserSignals of scoreAd., a=testonly

Automatic update from web-platform-tests
Protected Audience: Add missing renderSize field to browserSignals of
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5447954
Reviewed-by: Caleb Raitto <caraitto@chromium.org>
Commit-Queue: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1294870}

--

wpt-commits: 3c8f88bb2b952e67e70a7a896ef6b0cf259603f0
wpt-pr: 45802
ErichDonGubler pushed a commit to erichdongubler-mozilla/firefox that referenced this issue May 10, 2024
…ze field to browserSignals of scoreAd., a=testonly

Automatic update from web-platform-tests
Protected Audience: Add missing renderSize field to browserSignals of
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5447954
Reviewed-by: Caleb Raitto <caraitto@chromium.org>
Commit-Queue: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1294870}

--

wpt-commits: 3c8f88bb2b952e67e70a7a896ef6b0cf259603f0
wpt-pr: 45802
i3roly pushed a commit to i3roly/firefox-dynasty that referenced this issue Jun 6, 2024
…ze field to browserSignals of scoreAd., a=testonly

Automatic update from web-platform-tests
Protected Audience: Add missing renderSize field to browserSignals of
scoreAd.

The Protected Audience explainer claims the browserSignals argument of
scoreAd function should contain an optional field of renderSize.
However, it is found that this has not been implemented. See:
https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=%27renderSize%27%3A%20%7Bwidth%3A%20100%2C%20height%3A%20200%7D%2C%20/*%20if%20specified%20in%20the%20bid%20*/

This CL implements this optional field to match what the explainer
claims.

See: WICG/turtledove#1088

Spec PR: WICG/turtledove#1141
Explainer PR: WICG/turtledove#1145

Bug: 333628467
Change-Id: I95d5ebb7ddbbeb50d0ac3618e22ed1e228ec32a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5447954
Reviewed-by: Caleb Raitto <caraitto@chromium.org>
Commit-Queue: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1294870}

--

wpt-commits: 3c8f88bb2b952e67e70a7a896ef6b0cf259603f0
wpt-pr: 45802
@tylerdev0
Copy link

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
Copy link
Contributor

dmdabbs commented Aug 9, 2024

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
Copy link

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
Copy link
Contributor

dmdabbs commented Aug 9, 2024

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

@fliccione
Copy link

Hi, We used the sizeGroup field of the interestGroup to enable macro substitution related to size as indicated here:

When an ad with a particular size wins the auction (including in the current implementation), the size will be substituted into any macros in the URL (through {%AD_WIDTH%} and {%AD_HEIGHT%}, or ${AD_WIDTH} and ${AD_HEIGHT})

This macro substitution mechanism seems to no longer work. Can you confirm that it is currently unreliable? If so, is the only valid mechanism now the use of the requestedSize array? Thanks in advance.

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

8 participants