Skip to main content

Index Exchange

Index Exchange

Index Exchange is a global ad exchange that helps publishers connect with premium demand through real-time bidding.

Setup

Troubleshooting

Overview

Index Exchange is a global ad exchange that helps publishers connect with premium demand through real-time bidding. Our integration with Index Exchange allows you to activate Permutive cohorts for targeting on Index Exchange’s supply-side platform. This integration is a Destination:
  • Destination: Permutive cohorts are activated and passed to Index Exchange through bid requests, enabling advertisers to target your audiences programmatically.
This integration supports two activation methods:
  • Real-time bidstream activation: Cohort IDs are attached to bid requests as first-party data via Prebid.js (Web), Prebid Mobile (iOS/Android), and other Prebid integrations.
  • Server-side identity-based activation: Can be an alternative path where client-side activation isn’t viable. Permutive uploads cohort memberships to Index Exchange keyed by identity values (cookie ID, IDFA, AAID, IP address, or hashed email). Cohorts appear as Index Exchange segments ready for targeting.
Use cases include:
  • Cookie-less audience activation at scale: Activate Permutive cohort signals programmatically via the bidstream without reliance on third-party cookies, enabling addressable reach across all users
  • Private Marketplace (PMP) deals: Use Custom Cohorts, DCR Cohorts, and Curated Cohorts to create premium, curated inventory packages for direct buyer relationships
  • Open Marketplace (OMP) monetization: Leverage Standard Cohorts to make your audiences available to demand partners in the open auction, increasing bid density and CPMs
  • Maximize programmatic yield: Make Permutive audiences available through Index Exchange’s ad exchange to increase competition and drive higher CPMs
  • Cross-environment activation: Activate audiences across Web, in-app (iOS/Android), and CTV inventory through real-time bidstream or server-side identity-based methods

Environment Compatibility

EnvironmentActivation
Web Live — Permutive RTD module in Prebid.js
iOS Available — via Prebid Mobile (customer implementation)
Android Available — via Prebid Mobile (customer implementation)
CTV Discuss with your CSM
API Direct Discuss with your CSM (for SDK-less environments)
Server-side identity-based activation can be an alternative path for this integration, particularly where client-side activation isn’t viable. Permutive can support your team in setting this up — contact your Customer Success Manager to discuss.

Supported Cohort Types

Index Exchange activation supports all current Permutive cohort types. Availability depends on your workspace participating in the relevant Permutive offering.
Cohort typeAvailability for Index ExchangeProduct required
Custom Cohorts LiveCore Platform
Standard Cohorts LiveCuration
Curation Cohorts LiveCuration
Data Clean Room Cohorts LiveData Clean Room
Cohort type support beyond WebThe availability shown above reflects Web today. In mobile (iOS/Android) and CTV environments where this integration is available, cohort type support depends on the Permutive Mobile/CTV SDKs:
  • Custom Cohorts — supported across all environments where this integration is available.
  • Data Clean Room Cohorts — not currently exposed by the Permutive Mobile/CTV SDKs, but cohort signals can be retrieved with customer integration via an additional Permutive API call from your application code.
  • Standard and Curation Cohorts — not currently exposed by the Permutive Mobile/CTV SDKs. Support is coming — reach out to your Customer Success Manager if you’re interested.
Cohort type availability also depends on your workspace participating in the relevant Permutive offering. Contact your Customer Success Manager to enable additional cohort types or discuss your use case.

Prerequisites

Required for all activation methods:
  • Index Exchange SSP Account — an active Index Exchange SSP account
For Web (Prebid.js):
  • Permutive Web SDK — deployed on your site
  • Prebid.js with Permutive RTD module — configured to pass cohort data to Index Exchange
  • Index Exchange bidder adapter — the ix bidder adapter configured in your Prebid.js setup (this is the bidder code for Index Exchange)
For iOS / Android (Prebid Mobile):
  • Permutive Mobile SDK — deployed in your iOS / Android app
  • Prebid Mobile SDK — configured in your app
  • Prebid Server — that Prebid Mobile communicates with, with the ix bidder configured (Prebid Mobile passes bid requests to Prebid Server, which handles bidder routing)
  • Customer implementation — to retrieve Permutive cohorts from the SDK and attach them to Prebid Mobile bid requests
For CTV and other environments:
  • Contact your Permutive Customer Success Manager to discuss the integration approach for your stack.
For server-side identity-based activation:
  • This connector is not built today. If your use case calls for it, identity collection would need to be configured in Permutive for the identity types you want to use (cookie ID, IDFA, AAID, IP address, hashed email).
  • Contact your Permutive Customer Success Manager to discuss.

Setup

1

Configure Cohort Activations

The Index Exchange SSP integration works automatically through Prebid.js once cohorts are activated. Navigate to the cohort you wish to activate in the Permutive dashboard.For Custom Cohorts (publisher-specific audiences), enable the Index Exchange SSP activation. When activated, cohort data will be stored in the _pindexs local storage key, which the Permutive RTD module reads and passes to Index Exchange.
Custom Cohorts require explicit activation per cohort. Standard, Curated, and Data Clean Room cohorts are configured by your Customer Success Manager. Contact your CSM to enable these cohort types for your integration.
2

Verify Prebid.js Configuration

Ensure your Prebid.js configuration includes the Permutive RTD module with Index Exchange support: Verify that the Permutive SDK is loading correctly and that cohort data is being written to local storage.
3

Verify Setup

After activating cohorts and configuring Prebid.js, verify that cohort data is being passed to Index Exchange in bid requests.Use the Professor Prebid Chrome extension (download here) to inspect bid requests:
  1. Install the Professor Prebid extension
  2. Open the extension while on your page
  3. Navigate to the “Bid Requests” tab
  4. Find Index Exchange (ix) bidder requests
  5. Verify that the ORTB2 object contains Permutive cohort data in ortb2.user.data and ortb2.user.keywords
Alternatively, use browser developer tools to:
  1. Check local storage for the _pindexs key (Custom Cohorts) or _pssps key (Standard/Curated/DCR cohorts)
  2. Inspect network requests to Index Exchange endpoints
  3. Verify that the ORTB2 object in bid requests contains Permutive cohort data
It may take a few minutes for cohort membership to populate after initial page load.

Data Types

The Index Exchange SSP integration is a destination-only integration focused on cohort activation. Permutive does not collect event data from Index Exchange SSP. When cohorts are activated to Index Exchange, the following data is transmitted via the Prebid.js bidstream:
Permutive passes cohort data to Index Exchange SSP via the ORTB2 object in Prebid.js bid requests. Different cohort types are written to specific ORTB2 locations:
ORTB2 LocationCohort Types
ortb2.user.data (name: permutive.com)Standard Cohorts, DCR Cohorts, Curated Cohorts
ortb2.user.data (name: permutive)Custom Cohorts
ortb2.user.keywords (permutive)Custom Cohorts
ortb2.user.keywords (p_standard)Standard Cohorts, DCR Cohorts, Curated Cohorts
ortb2.user.keywords (p_standard_aud)Curated Cohorts
The Permutive Web SDK exposes cohort data via local storage, which the Permutive RTD module reads to populate bid requests.
_pindexs
array
Local storage key containing Custom Cohort IDs for Index Exchange.
_pssps
object
Local storage key containing Standard Cohorts, Curated Cohorts, and Data Clean Room Cohorts.

Troubleshooting

If Permutive cohorts aren’t being passed to Index Exchange in your bid requests:
  • Verify that the Permutive RTD module is properly configured in your Prebid.js setup
  • Confirm that the Permutive SDK is loading correctly on your pages
  • Use browser developer tools to inspect local storage and verify that the _pindexs key (for Custom Cohorts) or _pssps key (for Standard/Curated/DCR cohorts) contains cohort data
  • Check your Prebid.js console logs for any errors related to the Permutive RTD module
  • Use the Professor Prebid Chrome extension to inspect ORTB2 data being sent to Index Exchange bid requests
  • Inspect network requests to Index Exchange endpoints to verify ORTB2 data is present
If you see cohort data in local storage but not in bid requests, verify that your Prebid.js configuration includes waitForIt: true for the Permutive RTD module.
If local storage keys are empty or missing:
  • Verify that Custom Cohorts have been activated in the Permutive dashboard with Index Exchange SSP enabled
  • Check that users actually qualify for the activated cohorts based on cohort definitions
  • Ensure the Permutive SDK is loading before Prebid.js attempts to read cohort data
  • Verify that third-party cookies and local storage are not blocked by browser settings or extensions
  • Check the browser console for any Permutive SDK errors during page load
If cohorts are being passed in bid requests but you don’t see them available for targeting in the Index Exchange UI:
  • Verify with your Index Exchange account team that your SSP seat is configured to receive and process Permutive cohort data
  • Check that DSPs connected to your Index Exchange seat have access to user data signals from the bid request
  • Ensure that your Index Exchange line items or deals are configured to accept and use targeting data from the bid stream
  • Confirm that the ORTB2 data structure matches Index Exchange’s expectations for user data and keywords
If you’re not seeing Index Exchange bid requests in the Professor Prebid Chrome extension:
  • Verify that the ix bidder adapter is properly configured in your Prebid.js setup
  • Check that Index Exchange is enabled and actively bidding on your inventory
  • Ensure you’re viewing the correct page where Index Exchange bidder is configured
  • Try refreshing the page with the extension open to capture new bid requests
  • Check your Prebid.js console logs to confirm Index Exchange bidder is being called

Changelog

For detailed changelog information, visit our Changelog.