File tree Expand file tree Collapse file tree
crates/common/src/integrations Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ( ) ) ;
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments