Skip to content

Commit

Permalink
Add Additional Bids and Negative Targeting to the Explainer.
Browse files Browse the repository at this point in the history
The design for additional bids and negative targeting was first
discussed at WICG#319.
A short summary of these featues follows.

In online ad auctions for ad space, it’s sometimes useful to prevent showing an ad to certain audiences, a concept known as negative targeting. For example, you might not want to show a new customer advertisement to existing customers. New customer acquisition campaigns most often have this as a critical requirement. We enable this new use case in the Protected Audience API by allowing buyers to provide "additional bids", which are not generated during the auction based on InterestGroups membership like other bids, but are instead provided as part of the seller's signals request. Today, the seller uses this request to run their contextual auction and return a single winning ad that sets a lower bar that remarketing ads must beat to be shown. In this new model, the seller instead forwards some number of additional bids on behalf of the buyer to the auction running in the user's browser. Each additional bid is allowed to identify one or more InterestGroups that can be used for negative targeting. If the user has been joined to any of the identified InterestGroups, the additional bid is dropped. All remaining additional bids participate in the auction alongside bids generated by InterestGroup membership. Special care is taken to ensure that additional bids are only used in the auction for which the buyer intended them, that these bids are not modified in transit, and that the InterestGroups used for negative targeting are only usable by their owner. In this way, we're enabling advertisers to target new groups of users using the existing privacy-preserving concepts of the Protected Audience API.
  • Loading branch information
orrb1 committed Sep 11, 2023
1 parent 2d04688 commit 63da5cc
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions FLEDGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -864,7 +864,7 @@ Each additional bid may provide a value for **at most** one of the `negativeInte

The `auctionNonce`, `seller`, and `topLevelSeller` fields are used to prevent replay of this additional bid. The `auctionNonce` is described below in section [6.1 Auction Nonce](#61-auction-nonce). The `seller` and `topLevelSeller` fields echo those present in the `browserSignals` argument to `generateBid()` as described in section [3.2 On-Device Bidding](#32-on-device-bidding). In `generateBid()`, these are meant to ensure that the buyer acknowledges and accepts that their bid can participate in an auction with those parties. Additional bids don't have a corresponding call to `generateBid()`, and so the `seller` and `topLevelSeller` fields in an additional bid are intended to allow for the same acknowledgement as those in `browserSignals`.

Additional bids are not provided through the auction config passed to `runAdAuction()`, but rather through the response headers of a Fetch request, as described below in section [6.3 HTTP Response Headers](#63-http-response-headers). However, the auction config still has an `additionalBids` field, whose value is be a Promise with no value, used only to signal to the auction that the additional bids have arrived and are ready to be accepted in the auction.
Additional bids are not provided through the auction config passed to `runAdAuction()`, but rather through the response headers of a Fetch request, as described below in section [6.3 HTTP Response Headers](#63-http-response-headers). However, the auction config still has an `additionalBids` field, whose value is a Promise with no value, used only to signal to the auction that the additional bids have arrived and are ready to be accepted in the auction.

```
navigator.runAdAuction({
Expand Down Expand Up @@ -918,7 +918,7 @@ If an additional bid only needs to specify a single negative interest group, it
```
const additionalBid = {
// ...
"negativeInterestGroup": "example_advertiser_negative_interest_group"
"negativeInterestGroup": "example_advertiser_negative_interest_group",
// ...
}
```
Expand All @@ -939,7 +939,7 @@ const additionalBid = {
}
```

Any negative interest group that wasn't joined from that identified site won't be considered for negative targeting. This restriction is enforced so that negative targeting can only use targeting data from a single site. An additional bid that only specifies one negative interest group is not subject to the same restriction on joining origin.
Any negative interest group that wasn't joined from that identified origin won't be considered for negative targeting. This restriction is enforced so that negative targeting can only use targeting data from a single origin. An additional bid that only specifies one negative interest group is not subject to the same restriction on joining origin.

##### 6.2.3 Additional Bid Keys

Expand Down

0 comments on commit 63da5cc

Please sign in to comment.