> For the complete documentation index, see [llms.txt](https://developers.panxo.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.panxo.ai/integrations/prebid-server.md).

# Prebid Server

Panxo supports server-side bidding through Prebid Server (PBS). This allows publishers running PBS instances to include Panxo in their server-side auctions alongside client-side Prebid.js.

## Requirements

* **Prebid Server** with the Panxo adapter enabled
* **Panxo RTD Module** configured in Prebid.js on the client side
* A valid `propertyKey` from your Panxo dashboard

{% hint style="warning" %}
The Panxo RTD module (`panxoRtdProvider`) must be running on the client side even when using Prebid Server. The RTD module detects AI-referred traffic and injects classification signals that the server-side adapter requires to participate in the auction. Without it, Panxo will not bid.
{% endhint %}

## Prebid Server Configuration

Add the Panxo adapter to your Prebid Server configuration:

```yaml
adapters:
  panxo:
    endpoint: "https://panxo-sys.com/openrtb/2.5/bid"
```

## Prebid.js Setup

{% stepper %}
{% step %}

### Build Prebid.js with required modules

Include `panxoRtdProvider` and `prebidServerBidAdapter` in your Prebid.js build:

```bash
gulp build --modules=rtdModule,panxoRtdProvider,prebidServerBidAdapter,...
```

{% endstep %}

{% step %}

### Configure RTD module and S2S

```javascript
pbjs.setConfig({
    realTimeData: {
        auctionDelay: 300,
        dataProviders: [{
            name: 'panxo',
            waitForIt: true,
            params: {
                siteId: 'your-site-id'
            }
        }]
    },
    s2sConfig: {
        accountId: 'your-pbs-account',
        bidders: ['panxo'],
        defaultVendor: 'your-pbs-vendor',
        timeout: 500
    }
});

var adUnits = [{
    code: 'banner-ad',
    mediaTypes: {
        banner: {
            sizes: [[300, 250], [728, 90]]
        }
    },
    bids: [{
        bidder: 'panxo',
        params: {
            propertyKey: 'your-property-key'
        }
    }]
}];
```

{% endstep %}
{% endstepper %}

## Bid Parameters

| Name          | Scope    | Description                              | Example          | Type     |
| ------------- | -------- | ---------------------------------------- | ---------------- | -------- |
| `propertyKey` | required | Property identifier from Panxo dashboard | `'abc123def456'` | `string` |

## User Sync

Panxo supports redirect-based user sync through Prebid Server. Ensure user syncing is enabled in your PBS configuration for the Panxo adapter.

For client-side Prebid.js, configure pixel sync:

```javascript
pbjs.setConfig({
    userSync: {
        filterSettings: {
            pixel: {
                bidders: ['panxo'],
                filter: 'include'
            }
        }
    }
});
```

## Supported Features

| Feature               | Support           |
| --------------------- | ----------------- |
| Media Types           | Banner            |
| Platforms             | Site (no app)     |
| GDPR / TCF 2.2        | Yes (GVL ID 1527) |
| USP / CCPA            | Yes               |
| GPP                   | Yes               |
| COPPA                 | Yes               |
| Supply Chain (schain) | Yes               |
| Price Floors          | Yes               |
| First Party Data      | Yes               |
| Safeframes            | Yes               |
| Deals                 | Yes               |

## Bid Response

* **Currency**: USD
* **Net Revenue**: Yes
* **TTL**: 300 seconds (5 minutes)
* **Advertiser Domains**: Available in `meta.advertiserDomains`

## How to Get Started

1. Register at [app.panxo.ai](https://app.panxo.ai/) to obtain your `siteId` and `propertyKey`
2. Configure the RTD module in Prebid.js with your `siteId`
3. Add `panxo` to your Prebid Server adapter list
4. Add `panxo` bids to your ad units with your `propertyKey`
5. Verify traffic in your Panxo dashboard
