Index Exchange (Prebid Server)
Features
Bidder Code | ix | Prebid.org Member | yes |
---|---|---|---|
Prebid.js Adapter | no | Prebid Server Adapter | yes |
Media Types | display, video, native | Multi Format Support | true |
TCF-EU Support | yes | IAB GVL ID | 10 |
GPP Support | check with bidder | DSA Support | check with bidder |
USP/CCPA Support | yes | COPPA Support | yes |
Supply Chain Support | yes | Demand Chain Support | no |
Safeframes OK | yes | Supports Deals | yes |
Floors Module Support | yes | First Party Data Support | yes |
User IDs | idl, netId, fabrickId, zeotapIdPlus, uid2, TDID, id5Id, lotamePanoramaId, publinkId, hadronId, pubcid, utiq, criteoID, euid, imuid, 33acrossId, nonID, pairid | ORTB Blocking Support | check with bidder |
Privacy Sandbox | paapi | Prebid Server App Support | yes |
Table of contents
- Table of contents
- Introduction
- Supported media types
- Configure the Index adapter in your Prebid Server instance
- Publisher instructions to call Index through Prebid Server
- Bid request parameters
- Examples
Introduction
Publishers can use Prebid Server in any of the following ways with Index Exchange (Index). Index’s adapter supports all of the following methods:
- If you want to call Index from a web environment, you can use Prebid.js to call Prebid Server, and then Prebid Server uses our server-side adapter to call Index. This reduces workload on the browser. For set up instructions, see Call Index from a web browser section on this page.
- In mobile apps, you can use the Prebid Mobile SDK to call Prebid Server and then Prebid Server uses our server-side adapter to call Index. For set up instructions, see Call Index from Prebid Mobile SDK section on this page.
- In CTV apps and other long-form video environments, you (or the SSAI vendor) can make a call to Prebid Server using OpenRTB, and then Prebid Server uses our server-side adapter to call Index. For set up instructions, see Call Index from CTV/long-form video environment section on this page.
- In any other server-to-server OpenRTB environment, you can send OpenRTB bid requests to the Prebid Server host of your choice. For set up instructions, see Call Index from any other server-to-server OpenRTB environment section on this page.
Note about sending multiple ad slots in a single bid request: Index accepts up to 100 valid ad slots in a single bid request. If a single bid request contains more than 100 ad slots (including invalid ad slots), only the first 100 valid ad slots are accepted and the rest are ignored. For example, streaming TV media owners can signal multiple ad pods for long-form programming in a single request.
Supported media types
The following table lists the media types that Index supports. For information about the the Time-To-Live (TTL) for each media type, see How Index counts impressions in our Knowledge Base.
Type | Prebid Server support |
---|---|
banner | Supported |
video | Supported, including ad pods for OTT |
native | Supported |
Configure the Index adapter in your Prebid Server instance
Before you begin: Contact your Index Exchange Representative to get an endpoint and setup instructions.
If you are hosting your own Prebid Server instance, depending on whether you are using Prebid Server Go or Prebid Server Java version, complete one of the following steps:
-
If you are using the Prebid Server Go version, in the
static/bidder-info/ix.yaml
file, complete the following:- Enable the adapter by deleting the
disabled: true
entry. -
Add the following new entry and include the regional endpoint provided to you by Index:
endpoint: "https://<ENDPOINT URL>"
-
Edit the below existing entry and include your publisher ID in the
s
parameter:userSync: redirect: url: "https://ssum.casalemedia.com/usermatchredir?s=<PUBLISHER ID>&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&cb={{.RedirectURL}}"
-
Edit the below existing entry and include your publisher ID in the
s
parameter:userSync: redirect: iframe: "https://ssum.casalemedia.com/usermatch?s=<PUBLISHER ID>&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&cb={{.RedirectURL}}"
- Enable the adapter by deleting the
-
If you are using Prebid Server Java version, edit the
prebid-server-java
entry in thesrc/main/resources/bidder-config/ix.yaml
file as follows:-
Edit the below existing entry and include the endpoint URL provided to you by Index.
adapters: ix: endpoint: "https://<ENDPOINT URL>"
-
Edit the below existing entry and include your publisher ID in the
s
parameter:adapters: ix: usersync: redirect: url: "https://ssum.casalemedia.com/usermatchredir?s=<PUBLISHER ID>&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&cb={{.RedirectURL}}"
-
Add the below entry and include your publisher ID in the
s
parameter:adapters: ix: usersync: iframe: url: "https://ssum.casalemedia.com/usermatch?s=<PUBLISHER ID>&gdpr={{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}&cb={{.RedirectURL}}"
-
Publisher instructions to call Index through Prebid Server
If you are using an existing Prebid Server instance that is already configured to call Index, depending on whether you want to call Index from the browser, mobile app, CTV, or long-form video, follow any of the below sections to complete the Index-specific configuration.
Call Index from a web browser
To call Index from a web browser using Prebid Server, you must first configure Prebid.js to call Index directly from the browser using our client-side adapter. Follow the quick start instructions provided in Prebid’s Getting Started for Developers documentation. Complete the following steps to complete the Index-specific configuration:
- Build the binary in one of the following ways:
- Download Prebid.js from the Prebid site to use the standard compiled binary that Prebid includes in the download process and select Index Exchange as an adapter.
- Build it on your own from the source code by following the instructions in Prebid.js project README. If you use this method, you will need to include several modules in your build process. See the Index modules to include in your build process section in our Prebid.js documentation on the Prebid site.
-
Define the Index-specific parameters at the bidder level which include adding
ix
as the bidder and thesiteId
. For Index’s bidder-specific parameters, see the Bid request parameters section below.{ bidder: 'ix', params: { siteId: '9999990' } }
- Define your ad units in the
adUnit
object. This includes the details about the ad slots such as the media types, ad size, and ad code. For more information about this object, see Prebid’s Ad Unit Reference documentation. -
Enable user syncing by adding the following code in the pbjs.setConfig() function. Index strongly recommends enabling user syncing through iFrames, though we do also support image-based syncing. This functionality improves DSP user match rates and increases the Index bid rate and bid price. Make sure to call
pbjs.setConfig()
only once. This configuration is optional in Prebid, but required by Index.pbjs.setConfig({ userSync: { iframeEnabled: true, filterSettings: { iframe: { bidders: ['ix'], filter: 'include' } } } });
- (Optional) Set up First Party Data (FPD). For more information about the data types we support and the instructions for each option, see the Set up First Party Data (FPD) section in our Prebid.js documentation on the Prebid site.
-
(Optional) If you want to monetize instream video, you need to enable a cache endpoint in the pbjs.setConfig() function as follows:
pbjs.setConfig({ cache: { url: 'https://prebid.adnxs.com/pbc/v1/cache' } });
- (Optional) If you want to monetize outstream video, you can choose among the following options:
- Use Index’s outstream video player. For more information, see the Index’s outstream video player section in our Prebid.js documentation on the Prebid site.
- Use your own outstream video player. For more information, see Prebid’s documentation on how to show video ads.
- (Optional) Configure Prebid Native with Index. For more information, see the Prebid Native section in our Prebid.js documentation on the Prebid site. Prebid Native is available from Prebid.js version 7.4.0 or higher.
Call Index from Prebid Mobile SDK
Before you begin: Contact your Index Exchange representative to get your siteId
. You must provide this site ID to your Prebid Server host company.
Note: To implement Prebid Mobile SDK, follow Prebid’s Getting Started with Prebid Mobile documentation.
To add Index as a bidder to your mobile app:
- Inform your Prebid Server hosting company to add
ix
as a bidder in the configuration and include thesiteId
that Index provides to you at the time of integration. - Define the Index-specific parameters at the bidder level. For information about these parameters, see the Bid request parameters section below.
- Include any ad unit level required or optional parameters provided in Prebid’s Prebid Mobile API - iOS and Prebid Mobile API - Android documentation.
Call Index from CTV/long-form video environment
Before you begin: Contact your Index Exchange Representative to get the siteId
. You must provide this site ID to your Prebid Server host company.
Note: To implement CTV and long-form video using Prebid Server, follow Prebid’s Long Form Video documentation.
To add Index as a bidder:
- Inform your Prebid Server hosting company to add
ix
as a bidder in the configuration and include thesiteId
that Index provides to you at the time of integration. - Define the Index-specific parameters at the bidder level. For information about these parameters, see the Bid request parameters section below.
- Include any ad unit level required or optional parameters provided in Prebid’s /openrtb2/video documentation.
Call Index from any other server-to-server OpenRTB environment
To request bids from Index:
- In requests that you make to your Prebid Server host, add
imp.ext.ix
and include thesiteId
that Index provides to you at the time of integration.
Example:
"imp": [{
"ext": {
"ix": {
"siteId": "9999990"
}
}
}],
Bid request parameters
For a list of the OpenRTB fields that Index supports in bid requests, see List of supported OpenRTB bid request fields for sellers. The following are the required fields for the various supported media types.
Banner
You must include these parameters at the bidder level.
Key | Scope | Type | Description |
---|---|---|---|
siteId |
Required | String | An Index-specific identifier that is associated with this ad unit. This is similar to a placement ID or an ad unit ID that some other modules have. For example, '9999990' , '9999991' , '9999992' |
Video
You must include these parameters at the bidder level.
Key | Scope | Type | Description |
---|---|---|---|
siteId |
Required | String | An Index-specific identifier that is associated with this ad unit. It will be associated with the single size, if the size is provided. This is similar to a placement ID or an ad unit ID that some other modules have. For example, '9999990' , '9999991' , '9999992' Note: You can re-use the existing siteId within the same flex position or video size, if the video adapts to the containing <div> element. |
If you are using Index’s outstream ad unit and have placed the video object at the bidder level, you must include the Index required parameters at the bidder level. You can include the optional parameters to specify the outstream ad unit configurations.
Key | Scope | Type | Description |
---|---|---|---|
video.w |
Required | Integer | The width of the video player in pixels that will be passed to demand partners. You must define the size of the video player using the video.w and video.h parameters. We strongly recommend video sizes to be 256 x 256 or greater, 300 x 250 , or 320 x 180 . |
video.h |
Required | Integer | The height of the video player in pixels that will be passed to demand partners. You must define the size of the video player using the video.w and video.h parameters. We strongly recommend video sizes to be 256 x 256 or greater, 300 x 250 , or 320 x 180 . |
video.playerSize |
Required | Integer[] | The video player size that will be passed to demand partners. |
video.playerConfig |
Optional | Hash | The Index-specific outstream ad unit configurations. |
video.playerConfig.floatOnScroll |
Optional | Boolean | A boolean specifying whether you want to use the player’s floating capabilities, where: - true : Use the Index player’s float capabilities.Note: If you set floatOnScroll to true , Index updates the placement value to 5 .Note: We do not recommend using the player’s default float capabilities if you have more than one outstream ad unit per page. - false : Do not use the Index player’s float capabilities (default). |
video.playerConfig.floatSize |
Optional | Integer[] | The height and width of the floating player in pixels. If you do not specify a float size, the player adjusts to the aspect ratio of the player size that is defined when it is not floating. Index recommends that you review and test the float size to your user experience preference. |
video.plcmt |
Required | Integer[] | The video’s placement type, where: - 1 = Instream- 2 = Accompanying Content - 3 = Interstitial - 4 = No Content/Standalone |
Examples
Banner
{
"id": "ix-banner-id",
"imp": [
{
"id": "imp-id",
"banner": {
"w": 300,
"h": 250,
"id": "1",
"pos": 0,
"format": [
{
"w": 300,
"h": 250
},
{
"w": 300,
"h": 600
}
]
},
"instl": 0,
"tagid": "5602709",
"bidfloor": 0.02,
"bidfloorcur": "USD",
"secure": 1,
"ext": {
"ix": {
"siteId": "9999990"
}
}
}
],
"app": {
"bundle": "555555555",
"storeurl": "https://apps.apple.com/us/app/test-app/id555555555",
"publisher": {
"id": "123456"
},
"content": {
"title": "Entertainment",
"genre": "IAB9-30,IAB6,IAB9-7,IAB1"
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"ip": "10.20.30.40",
"ifa": "2E2E2E2E-3B3B-4141-8A8A-181818181818"
},
"at": 1,
"tmax": 200
}
Video
{
"id": "ix-video-example",
"imp": [
{
"id": "imp-id",
"video": {
"mimes": [
"video/mp4",
"video/3gpp",
"video/webm"
],
"minduration": 15,
"maxduration": 60,
"startdelay": -1,
"protocols": [
2,
3,
5,
6
],
"w": 320,
"h": 480,
"placement": 1,
"linearity": 1,
"minbitrate": 1000,
"api": [
1,
2,
3,
5
]
},
"secure": 1,
"ext": {
"ix": {
"siteId": "9999990"
}
}
}
],
"app": {
"bundle": "555555555",
"storeurl": "https://apps.apple.com/us/app/test-app/id555555555",
"publisher": {
"id": "123456"
},
"content": {
"title": "Entertainment",
"genre": "IAB9-30,IAB6,IAB9-7,IAB1"
}
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E18",
"ip": "10.20.30.40",
"ifa": "2E2E2E2E-3B3B-4141-8A8A-181818181818"
},
"at": 1,
"tmax": 1000
}
"Send All Bids" Ad Server Keys
These are the bidder-specific keys that would be targeted within GAM in a Send-All-Bids scenario. GAM truncates keys to 20 characters.hb_pb_ix |
hb_bidder_ix |
hb_adid_ix |
hb_size_ix |
hb_source_ix |
hb_format_ix |
hb_cache_host_ix |
hb_cache_id_ix |
hb_uuid_ix |
hb_cache_path_ix |
hb_deal_ix |