Skip to content

Commit db544bf

Browse files
Add device.ip regression test and clarify Prebid debug docs
1 parent 45c3b40 commit db544bf

2 files changed

Lines changed: 41 additions & 9 deletions

File tree

crates/common/src/integrations/prebid.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,38 @@ server_url = "https://prebid.example"
15501550
);
15511551
}
15521552

1553+
#[test]
1554+
fn to_openrtb_serializes_device_ip_when_present() {
1555+
let provider = PrebidAuctionProvider::new(base_config());
1556+
let mut auction_request = create_test_auction_request();
1557+
auction_request.device = Some(DeviceInfo {
1558+
user_agent: Some("test-agent".to_string()),
1559+
ip: Some("203.0.113.42".to_string()),
1560+
geo: None,
1561+
});
1562+
let settings = make_settings();
1563+
let request = Request::get("https://pub.example/auction");
1564+
let context = create_test_auction_context(&settings, &request);
1565+
1566+
let openrtb = provider.to_openrtb(&auction_request, &context, None);
1567+
1568+
assert_eq!(
1569+
openrtb
1570+
.device
1571+
.as_ref()
1572+
.and_then(|device| device.ip.as_deref()),
1573+
Some("203.0.113.42"),
1574+
"should propagate client IP into OpenRTB device.ip"
1575+
);
1576+
1577+
let serialized = serde_json::to_value(&openrtb).expect("should serialize OpenRTB request");
1578+
assert_eq!(
1579+
serialized["device"]["ip"],
1580+
json!("203.0.113.42"),
1581+
"should serialize device.ip when client IP is available"
1582+
);
1583+
}
1584+
15531585
#[test]
15541586
fn to_openrtb_omits_debug_flags_when_disabled() {
15551587
let provider = PrebidAuctionProvider::new(base_config());

docs/guide/auction-orchestration.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -621,15 +621,15 @@ price_floor = 0.50
621621

622622
#### `[integrations.prebid]`
623623

624-
| Field | Type | Default | Description |
625-
| ---------------- | -------- | ----------------- | --------------------------------------------------------------------------- |
626-
| `enabled` | bool | `true` | Enable Prebid provider |
627-
| `server_url` | string || Prebid Server URL (required) |
628-
| `timeout_ms` | u32 | `1000` | Request timeout |
629-
| `bidders` | string[] | `["mocktioneer"]` | Default bidders when not specified per-slot |
630-
| `auto_configure` | bool | `true` | Auto-remove client-side prebid.js scripts |
631-
| `debug` | bool | `false` | Enable Prebid debug mode (sets `ext.prebid.debug` and `returnallbidstatus`) |
632-
| `test_mode` | bool | `false` | Set OpenRTB `test: 1` for non-billable test traffic |
624+
| Field | Type | Default | Description |
625+
| ---------------- | -------- | ----------------- | -------------------------------------------------------------------------------------- |
626+
| `enabled` | bool | `true` | Enable Prebid provider |
627+
| `server_url` | string || Prebid Server URL (required) |
628+
| `timeout_ms` | u32 | `1000` | Request timeout |
629+
| `bidders` | string[] | `["mocktioneer"]` | Default bidders when not specified per-slot |
630+
| `auto_configure` | bool | `true` | Auto-remove client-side prebid.js scripts |
631+
| `debug` | bool | `false` | Enable Prebid debug mode (sets `ext.prebid.debug` and `ext.prebid.returnallbidstatus`) |
632+
| `test_mode` | bool | `false` | Set OpenRTB `test: 1` for non-billable test traffic |
633633

634634
#### `[integrations.aps]`
635635

0 commit comments

Comments
 (0)