FLEDGE has been renamed to Protected Audience API. To learn more about the name change, see the blog post
- Since version 109.0.5414.16, the
sendReports
parameter tonavigator.deprecatedURNToURL()
is respected.
- Support reporting bid reject reason to buyers through calling
forDebuggingOnly.reportAdAuctionLoss()
API ingenerateBid()
and including${rejectReason}
in the report URL's query string. See FOT#1 reporting details for more information.
- Add
.well-known
join/leave permission cache. - Clear pending report request queue after a certain time to prevent reports continuing for unbounded amounts of time.
- Implement improved process model for Android (for local FLEDGE testing by developers while the FLEDGE origin trial is not supported on Android).
- Add
chrome://tracing
support for FLEDGE auctions (including worklets). - Add basic
.well-known
support for determining if a site is allowed to join or leave interest groups for an owner..well-known
ownership delegation is documented in the explainer. joinAdInterestGroup()
andleaveAdInterestGroup()
changed to return promises (fulfilled or rejected based on whether the join or leave is allowed based on the.well-known
lookup).- Rate-limit report network requests, to prevent over-consuming networking resources and allow requests to be sent in parallel.
- Add
navigator.deprecatedReplaceInURN()
function. For more information see Issue #286. - Bug fixes:
- Fenced Frame reporting added. Worklets now support a
registerAdBeacon()
function inreportWin()
andreportResult()
which can be used to register reporting URLs. - As described in the FLEDGE explainer, ads selected by a FLEDGE
runAdAuction()
call and rendered in a Fenced Frame can now callnavigator.leaveAdInterestGroup()
without arguments to leave the interest group that triggered the ad. - Limits on the number of interest groups allowed to participate in auctions cause auctions to choose interest groups uniformly and randomly. They have equal priority instead of in order of decreasing expiration time. See
perBuyerGroupLimits
in the FLEDGE explainer for more information about interest group limits in auctions. - Post-auction signals:
- Post-auction signals
highestScoringOtherBid
andmadeHighestScoringOtherBid
added tobrowser_signals
provided to reporting functionsreportWin()
andreportResult()
as documented by pull request #316. - Post-auction signals can be included in the URLs fetched through the
reportAdAuctionLoss()
andreportAdAuctionWin()
APIs: text placeholders like “${winningBid}” in the URL will be replaced with the corresponding value from the auction. For example a URL provided toreportAdAuctionLoss()
as'https://example.com/report/group=myGroup/bid=${winningBid}/otherBid=${highestScoringOtherBid}'
may be fetched as'https://example.com/report/group=myGroup/bid=1/otherBid=2'
Note that due to a bug replacement is currently supported only in the URL path, but will be changed to only be supported in the URL query parameters when that bug is fixed. Further details are present in the FLEDGE OT explainer.
- Post-auction signals
- As discussed in https://crbug.com/1311478,
forDebuggingOnly.reportAdAuctionLoss()
now sends a loss report event if an error or timeout occurs after the report URL was registered. This can be useful for measuring how often worklets do not complete due to timeouts or throwing exceptions. componentAuctions
andtrustedScoringSignalsUrl
from auction config passed to seller worklets.- Add
biddingLogicUrl
,biddingWasmHelperUrl
,trustedBiddingSignalsUrl
,trustedBiddingSignalsKeys
, anddailyUpdateUrl
fields tointerestGroup
parameter passed togenerateBid()
. - Worklet features
ad
output field ofgenerateBid()
now optionalsetBid()
function added togenerateBid()
. This function sets a default return value to be used if the worklet times out.setBid()
can be called multiple times, with newer values overwriting previous ones. This function may be useful for bidding scripts that progressively increase.reportAdAuctionWin()
andreportAdAuctionLoss()
can be called multiple times within a worklet, with newer values overwriting previous ones.
joinAdInterestGroup()
can specify interest group priority using thepriority
value. Limits on the number of interest groups per bidder can be specified using theperBuyerGroupLimits
value in the auction configuration passed torunAdAuction()
. The default interest group priority is 0. Per-bidder limits on interest groups restrict the number of interest groups that can participate in an ad auction, choosing higher priority interest groups preferentially.- Update interest groups that were involved in an auction, as described in the proposal for the first FLEDGE origin trial. Chrome collects the origins of owners for interest groups that participated in the auction, including inside component auctions, then randomizes the order and updates each one. Updates occur for both successful and failed auctions.
- Component auctions are now supported.
- Bug fixes:
- Interest group updates can change
biddingWASMHelperURL
andadComponents
fields within the stored interest groups. forDebuggingOnly.reportAdAuctionLoss()
now sends a report when no bid wins and the auction runs to completion. If an auction is canceled (for example, due to a new navigation), no reports will be generated.
- Interest group updates can change
- Support passing
Data-Version
from the trusted key/value server to the worklet via thedataVersion
value as specified in the explainer. - Devtools Interest Group storage under the Applications panel shows interest groups as they are used. Described in the FLEDGE API Developer Guide.
- Per-Buyer worklet timeout: In
AuctionConfig
,perBuyerTimeouts
can be specified to restrict the runtime (in milliseconds) of particular buyer'sgenerateBid()
scripts. If no value is specified for a particular buyer, a default timeout of 50 ms will be selected. Any timeout higher than 500 ms will be clamped to 500 ms. A key of '*' is used to change the default of unspecified buyers. Addresses FLEDGE issue #90. - Seller worklet timeout: In
AuctionConfig
,sellerTimeouts
can be specified to restrict the runtime (in milliseconds) of the seller'sscoreAd()
scripts. If no value is specified, a default timeout of 50 ms will be selected. Any timeout higher than 500 ms will be clamped to 500 ms. - Full console API should now be available for worklets (rather than a small subset).