How to send Protected Audience fields in bid responses to Index
Info: Starting in June 2025, Index is pausing support for the Protected Audience API. After this date, any Protected Audience fields included in bid responses to Index will no longer be processed for on-device auctions.
The Protected Audience API, which is a part of Google's Privacy Sandbox, is an in-browser API available on Chrome for web banner ads. It allows DSPs to create and target interest groups without relying on third-party cookies, while protecting users from cross-site tracking. A Protected Audience API runs on the user's device to choose an ad.
What do Protected Audience bid requests include?
-
Publisher The owner of a website or app where advertisements are served. ad slots that are enabled for Protected Audience API demand will send the
ae = 1
field in theimp.ext
object in the bid request An OpenRTB request that is sent from a supply-side platform (SSP) or ad exchange to the DSP requesting a bid response for potential impressions. A bid request contains information about the impression that allows the DSP to decide whether to bid on the impression.. -
You will receive the
cdep
field in thedevice.ext
object in the bid request. This field specifies the Chrome-facilitated testing modes. For more information about this field, see List of supported OpenRTB bid response fields for DSPs.
How to participate in an on-device auction?
If you want to be able to participate in an on-device auction using the Protected Audience API, Index Exchange (Index) recommends that you do the following:
-
Make sure to include Index's seller A supply partner that sells their own inventory or on behalf of a publisher. origin domains to your allowed list of domains. This could include any domain with *.indexww.com or *.casalemedia.com. For example, the domain could be cdn.indexww.com or privacysandbox.casalemedia.com.
-
Include the
igbid
array of objects field in theResponse.ext
field. Theigbid
includes the information for running an in-browser interest group auction. This is sent in theperBuyerSignals
object in the bid response An OpenRTB response that is sent by the DSP in response to the SSP's or ad exchange's bid request. It is an event directed back to the seller expressing a valuation for the request and conditions of sale. to the publisher. For more information about theigbid
array of objects field, see List of supported OpenRTB bid response fields for DSPs.-
Index recommends that you include the following fields in the
generateBid()
function that the browser uses to run an auction. For more information about thegenerateBid()
function, see Google’s Buyer guide: join interest groups and generate bids documentation.Field Type Description ad
Object
The
ad
object metadata includes information about the ad, which this interest group wants to show. The browser uses this information in its auction and decision logic. There are required and optional (but recommended) attributes that you should include in thead
object metadata. For a list of these fields, see the generateBid(): ad object metadata fields reference section below.bid
Float
The bid price expressed as CPM Cost Per Thousand (CPM). A pricing structure for buying impressions and is the cost of serving an advertisement 1,000 times. Also known as Cost Per Mille (where M represents 1,000 in Roman numerals) or Cents Per Mille., although the actual transaction is for a unit impression only.
bidCurrency
String
The bid currency. This should always be USD.
render
String
The creative A digital ad made available in various creative types, defined by their size in pixels such as 300x250px.'s URL that should be rendered if this bid wins the auction.
allowComponentAuction
Boolean
A boolean specifying if you want to participate in multi-seller auctions. Make sure to set this value to
true
or the Protected Audience API will not include your on-device interest group bids.
-
generateBid(): ad object metadata fields reference
The following table lists the Protected Audience API fields that can be sent in the ad
object. You must include all the required fields. The other fields are optional, but highly recommended. As a reference, the corresponding OpenRTB An open industry standard for communication between buyers and sellers of online advertising in real-time bidding auctions. It's published by the IAB. fields are included as a comparison to what you would typically send to Index, which contain the same information as the Protected Audience fields:
Protected audience attribute | OpenRTB attribute | Type | Description |
---|---|---|---|
|
|
String; required |
The buyer seat ID on whose behalf the bid is made. |
ad.adomain
|
|
Array of Strings; required |
The domain/landing page/brand to identify the advertiser; limited to 128 characters. |
ad.w
|
|
Integer; required |
Width of the creative in device-independent pixels. |
ad.h
|
|
Integer; required |
Height of the creative in device-independent pixels. |
ad.id
|
|
String; recommended |
A unique identifier for this request, as indicated in the |
ad.cur
|
BidResponse.cur
|
String; recommended |
Bid currency using ISO-4217 alpha codes (default USD). |
|
|
Integer; recommended |
The creative markup type, where:
|
|
|
Array of Integers; recommended |
The creative type A classification of ads based on behavior. Describes the properties of the advertisement creative. Available formats include: standard, expandable, overlay/voken, in-banner video, survey, audio, and video., as per the standard creative attributes list. |
|
|
String; recommended |
The campaign A collection of multiple ads in different formats. ID to assist with ad quality checking. |
|
|
String; recommended |
The creative ID to assist with ad quality checking. |
|
|
String; recommended |
The language of the creative using ISO-639-1-alpha-2.
You can send either the |
|
|
String; recommended |
Content language using IETF BCP 47. You can send either the |
|
|
Integer; recommended |
The taxonomy in use for |
|
|
String; recommended |
A unique identifier for the direct deal A private auction that allows publishers to offer specific inventory directly to selected buyers identified by a deal ID. Terms are negotiated and are agreed upon before the auction occurs. associated with this bid. |
Example
The following code is an example of the generateBid()
JavaScript function that is used by the browser:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
...
return {'ad': adObject,
'bid': bidValue,
'bidCurrency': 'USD',
'render': renderURL,
'allowComponentAuction': true};
}
The following code includes example values returned in the generateBid()
function when the browser makes a call to run an on-device auction:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
...
return {
'ad':
{
w: 200
h: 300,
seat: "99",
adomain: ["example.com"]
// other ad-meta data
}
'bid': 1.99,
'bidCurrency': 'USD',
'render': https://www.example-dsp.com/ad/123.jpg,
'allowComponentAuction': true};
}
Note: The Prebid.js An open-source library for publishers to implement header bidding on their websites and manage multiple header bidding partners. fledgeForGpt module adds the auctionSignals.prebid
object, which includes the auctionSignals.prebid.ortb2
and auctionSignals.prebid.ortb2Imp
objects.
The following code is an example of the auctionSignals
object added by the Prebid.js fledgeForGpt
module:
"auctionSignals": {
"prebid": {
"ortb2": {
"source": {},
"site": {
"domain": "example.com",
"publisher": {
"domain": "example.com"
},
"page": "https://www.example.com/page?key=value"
},
"device": {
"w": 1920,
"h": 431,
"dnt": 0,
"ua": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
"language": "en",
"sua": {
"source": 1,
"platform": {
"brand": "Linux"
},
"browsers": [
{
"brand": "Google Chrome",
"version": [
"122"
]
}
],
"mobile": 0
}
}
},
"ortb2Imp": {
"ext": {
"ae": 1,
"data": {
"adserver": {
"name": "gam",
"adslot": "privacy-sandbox-adunit"
},
"pbadslot": "privacy-sandbox-adunit"
},
"gpid": "privacy-sandbox-adunit"
}
}
}
}