From 6e48267d93d32daff3293f42fac57153d182c804 Mon Sep 17 00:00:00 2001 From: Maks Orlovich Date: Fri, 31 Jan 2025 14:43:12 -0800 Subject: [PATCH] FLEDGE: Include BSRID w/creative scanning metadata in TSS request. Adds buyerAndSellerReportingId (BSRID) to the query parameters of the BYOS scoring signals request URL for use in creative scanning when `sendCreativeScanningMetadata` is set to true on the auction config. See https://github.com/WICG/turtledove/issues/792#issuecomment-2402992572 for more context (along with following comments) Bug: 383513677 Change-Id: I77dced8bb39a55cf7b7ad9fb80c91fed8c9dad00 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6219861 Reviewed-by: Orr Bernstein Commit-Queue: Maks Orlovich Cr-Commit-Position: refs/heads/main@{#1414406} --- .../resources/fledge_http_server_util.py | 3 ++- .../trusted-scoring-signals.https.window.js | 22 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/fledge/tentative/resources/fledge_http_server_util.py b/fledge/tentative/resources/fledge_http_server_util.py index b7456282d8103b..179262d3392689 100644 --- a/fledge/tentative/resources/fledge_http_server_util.py +++ b/fledge/tentative/resources/fledge_http_server_util.py @@ -119,7 +119,8 @@ def decode_trusted_scoring_signals_params(request): pair[0] == 'adSizes' or pair[0] == 'adComponentSizes' or pair[0] == 'adBuyer' or - pair[0] == 'adComponentBuyer'): + pair[0] == 'adComponentBuyer' or + pair[0] == 'adBuyerAndSellerReportingIds'): continue raise ValueError("Unexpected query parameter: " + param) diff --git a/fledge/tentative/trusted-scoring-signals.https.window.js b/fledge/tentative/trusted-scoring-signals.https.window.js index 0c3b4054395a9a..ea820d3acf54e7 100644 --- a/fledge/tentative/trusted-scoring-signals.https.window.js +++ b/fledge/tentative/trusted-scoring-signals.https.window.js @@ -809,9 +809,13 @@ subsetTest(promise_test, async test => { const bidder_origin = OTHER_ORIGIN1; - await joinCrossOriginInterestGroup( - test, uuid, bidder_origin, - {ads: [{renderURL: renderURL, creativeScanningMetadata: 'hello'}]}); + await joinCrossOriginInterestGroup(test, uuid, bidder_origin, { + ads: [{ + renderURL: renderURL, + creativeScanningMetadata: 'hello', + buyerAndSellerReportingId: 'chair' + }] + }); const scoreAdBody = ` ${makeParseHelper(renderURL)} @@ -819,6 +823,8 @@ subsetTest(promise_test, async test => { throw 'Wrong URL'; if (parsed.get('adCreativeScanningMetadata') !== 'hello') throw 'Wrong creative scanning metadata'; + if (parsed.get('adBuyerAndSellerReportingIds') !== 'chair') + throw 'Wrong BSRID'; if (parsed.get('adSizes') !== ',') throw 'Wrong adSizes'; if (parsed.get('adBuyer') !== '${bidder_origin}') @@ -852,7 +858,7 @@ subsetTest(promise_test, async test => { await joinCrossOriginInterestGroup( test, uuid, bidder_origin, - {ads: [{renderURL: renderURL}]}); + {ads: [{renderURL: renderURL, buyerAndSellerReportingId: 'sofa'}]}); const scoreAdBody = ` ${makeParseHelper(renderURL)} @@ -860,6 +866,8 @@ subsetTest(promise_test, async test => { throw 'Wrong URL'; if (parsed.get('adCreativeScanningMetadata') !== '') throw 'Wrong creative scanning metadata'; + if (parsed.get('adBuyerAndSellerReportingIds') !== 'sofa') + throw 'Wrong BSRID'; if (parsed.get('adSizes') !== ',') throw 'Wrong adSizes'; if (parsed.get('adBuyer') !== '${bidder_origin}') @@ -899,6 +907,8 @@ subsetTest(promise_test, async test => { throw 'Wrong URL'; if (parsed.has('adCreativeScanningMetadata')) throw 'Unexpected creative scanning metadata'; + if (parsed.has('adBuyerAndSellerReportingIds')) + throw 'Unexpected BSRID'; if (parsed.has('adSizes')) throw 'Unexpected adSizes'; if (parsed.has('adBuyer')) @@ -958,6 +968,8 @@ subsetTest(promise_test, async test => { throw 'Wrong URL'; if (parsed.get('adCreativeScanningMetadata') !== 'hello') throw 'Wrong creative scanning metadata'; + if (parsed.get('adBuyerAndSellerReportingIds') !== '') + throw 'Wrong BSRID'; if (parsed.get('adSizes') !== '100px,10sh') throw 'Wrong adSizes'; if (parsed.get('adBuyer') !== '${window.location.origin}') @@ -1035,6 +1047,8 @@ subsetTest(promise_test, async test => { throw 'Wrong URL'; if (parsed.get('adCreativeScanningMetadata') !== 'hello') throw 'Wrong creative scanning metadata'; + if (parsed.get('adBuyerAndSellerReportingIds') !== '') + throw 'Wrong BSRID'; if (parsed.get('adSizes') !== ',') throw 'Wrong adSizes'; if (parsed.get('adBuyer') !== '${window.location.origin}')