diff --git a/adapters/displayio/displayio.go b/adapters/displayio/displayio.go index 5e63fe2b5a..b665cecd3e 100644 --- a/adapters/displayio/displayio.go +++ b/adapters/displayio/displayio.go @@ -35,6 +35,14 @@ func (adapter *adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo * result := make([]*adapters.RequestData, 0, len(request.Imp)) errs := make([]error, 0, len(request.Imp)) + // Display.io keys Apple traffic on "iOS" and does not recognise "iPadOS". + device := request.Device + if device != nil && device.OS == "iPadOS" { + deviceCopy := *device + deviceCopy.OS = "iOS" + device = &deviceCopy + } + for _, impression := range request.Imp { var requestExt map[string]interface{} @@ -75,6 +83,7 @@ func (adapter *adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo * dioExt := reqDioExt{PlacementId: impressionExt.PlacementId, InventoryId: impressionExt.InventoryId} requestCopy := *request + requestCopy.Device = device err = jsonutil.Unmarshal(requestCopy.Ext, &requestExt) if err != nil { diff --git a/adapters/displayio/displayiotest/supplemental/ipados-os.json b/adapters/displayio/displayiotest/supplemental/ipados-os.json new file mode 100644 index 0000000000..ccdf0af28a --- /dev/null +++ b/adapters/displayio/displayiotest/supplemental/ipados-os.json @@ -0,0 +1,83 @@ +{ + "mockBidRequest": { + "app": { + "id": "1011" + }, + "device": { + "os": "iPadOS", + "osv": "18.5", + "make": "Apple", + "model": "iPad" + }, + "id": "requestId10111011101110111011", + "imp": [ + { + "banner": { + "h": 250, + "w": 300 + }, + "bidfloor": 0.225, + "bidfloorcur": "USD", + "id": "impId10111011101110111011", + "ext": { + "bidder": { + "placementId": "1011", + "publisherId": "101", + "inventoryId": "1011" + } + } + } + ] + }, + "httpCalls": [ + { + "expectedRequest": { + "uri": "https://adapter.endpoint/?macro=101", + "body": { + "id": "requestId10111011101110111011", + "app": { + "id": "1011" + }, + "device": { + "os": "iOS", + "osv": "18.5", + "make": "Apple", + "model": "iPad" + }, + "imp": [ + { + "banner": { + "h": 250, + "w": 300 + }, + "bidfloor": 0.225, + "bidfloorcur": "USD", + "id": "impId10111011101110111011", + "ext": { + "bidder": { + "placementId": "1011", + "publisherId": "101", + "inventoryId": "1011" + } + } + } + ], + "ext": { + "displayio": { + "placementId": "1011", + "inventoryId": "1011" + } + } + }, + "impIDs": [ + "impId10111011101110111011" + ] + }, + "mockResponse": { + "status": 204, + "body": {} + } + } + ], + "expectedBidResponses": [] +}