Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
310642a
Targeting is being passed from the Prebid request to the ad server re…
mikael-lundin Sep 25, 2025
69c24e1
Merge branch 'prebid:master' into master
mikael-lundin Sep 25, 2025
c405e14
Merge branch 'prebid:master' into master
mikael-lundin Dec 10, 2025
5c544c8
Moving Eids from uid parameter to be sent in as a query parameter in …
mikael-lundin Dec 10, 2025
9f908cb
Aso: Add user sync endpoint to adapter and aliases (#4580)
adserver-online Jan 10, 2026
d237739
Adot: Constrain publisher path to an enum list (#4573)
khouajaSadok Jan 10, 2026
8b7f62a
AdOcean: Remove adapter (#4296)
patryk-grzegorczyk Jan 10, 2026
94d9c14
ProgX: Change alias of (#4352)
ProgrammaticX Jan 10, 2026
759c04d
AdsInteractive: Change to aliases (#4359)
AdsInteractive Jan 10, 2026
3dbfb64
ResetDigital: Switch to OpenRTB (#4475)
Valentino3 Jan 10, 2026
556ec50
Attekmi: Remove Vimayx alias (#4546)
SmartHubSolutions Jan 10, 2026
c439052
Seedtag: Set bid request currency to USD (#4615)
sangarbe Jan 10, 2026
c001ef0
Flipp: Update endpoint to not use cdn (#4621)
hasan-kanjee Jan 10, 2026
24d6e10
Adverxo: Remove Mobupps alias (#4323)
dev-adverxo Jan 10, 2026
1912bb1
Optidigital: Add GPP support to user sync (#4646)
optidigital-prebid Jan 11, 2026
5e982b2
New Adapter: RadiantFusion - Attekmi alias (#4616)
SmartHubSolutions Jan 11, 2026
803a6d2
Mobilefuse: Add site media types (#4613)
dtbarne Jan 11, 2026
bb843bd
New Adapter: Bidfuse (#4532)
bidfuse Jan 11, 2026
e465297
Metrics: Standardize adapter connection metrics names (#4549)
guscarreon Jan 15, 2026
f6997e9
Seedtag: Adds GPP macros on user sync url (#4465)
sangarbe Jan 20, 2026
cd75f14
Ogury: Allow inventory mapping for in-app traffic. (#4636)
crepi Jan 28, 2026
ecec412
DXKulture: Remove Adapter (#4653)
dxtech-git Jan 30, 2026
32299a4
New Adapter: ProgrammaticX - Vidazoo Alias (#4456)
anna-y-perion Feb 2, 2026
2420fef
Gothamads: Rename to intenze (#4333)
support-gotham-ads Feb 3, 2026
b7f620b
Screencore: Convert to Teqblaze alias (#4611)
screencore-dev Feb 3, 2026
04e6705
New Adapter: TRUSTX (remove Grid alias) (#4614)
trustXops Feb 3, 2026
6a2891e
Deprecate Embedded Certs (#4625)
SyntaxNode Feb 3, 2026
257f6d2
Changes according to comments.
mikael-lundin Feb 5, 2026
d7c018b
Merge branch 'master' into eids-update
mikael-lundin Feb 5, 2026
47912a5
Merge branch 'master' into eids-update
mikael-lundin Feb 10, 2026
1114de1
Checking if a valid Eid is in list
mikael-lundin Feb 20, 2026
758a1cf
Merge remote-tracking branch 'upstream/master' into eids-update
mikael-lundin Feb 20, 2026
5036ccf
Merge branch 'eids-update' of https://github.com/Adnuntius/prebid-ser…
mikael-lundin Feb 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 8 additions & 15 deletions adapters/adnuntius/adnuntius.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,15 @@ func (a *adapter) generateRequests(ortbRequest openrtb2.BidRequest) ([]*adapters
}

}
var extUser openrtb_ext.ExtUser
if ortbRequest.User != nil && ortbRequest.User.Ext != nil {
if err := jsonutil.Unmarshal(ortbRequest.User.Ext, &extUser); err != nil {
return nil, []error{fmt.Errorf("failed to parse Ext User: %w", err)}
}
}

endpoint, err := makeEndpointUrl(ortbRequest, a, noCookies, extUser)

endpoint, err := makeEndpointUrl(ortbRequest, a, noCookies)
if err != nil {
return nil, []error{&errortypes.BadInput{
Message: fmt.Sprintf("failed to parse URL: %s", err),
Expand All @@ -119,13 +126,6 @@ func (a *adapter) generateRequests(ortbRequest openrtb2.BidRequest) ([]*adapters
return nil, []error{fmt.Errorf("failed to parse site Ext: %v", err)}
}

var extUser openrtb_ext.ExtUser
if ortbRequest.User != nil && ortbRequest.User.Ext != nil {
if err := jsonutil.Unmarshal(ortbRequest.User.Ext, &extUser); err != nil {
return nil, []error{fmt.Errorf("failed to parse Ext User: %v", err)}
}
}

for _, networkAdunits := range networkAdunitMap {

adnuntiusRequest := adnRequest{
Expand All @@ -134,13 +134,6 @@ func (a *adapter) generateRequests(ortbRequest openrtb2.BidRequest) ([]*adapters
KeyValues: extSite.Data,
}

// Will change when our adserver can accept multiple user IDS
if extUser.Eids != nil && len(extUser.Eids) > 0 {
if len(extUser.Eids[0].UIDs) > 0 {
adnuntiusRequest.MetaData.Usi = extUser.Eids[0].UIDs[0].ID
}
}

ortbUser := ortbRequest.User
if ortbUser != nil {
ortbUserId := ortbRequest.User.ID
Expand Down
18 changes: 17 additions & 1 deletion adapters/adnuntius/adnuntius_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func setHeaders(ortbRequest openrtb2.BidRequest) http.Header {
return headers
}

func makeEndpointUrl(ortbRequest openrtb2.BidRequest, a *adapter, noCookies bool) (string, []error) {
func makeEndpointUrl(ortbRequest openrtb2.BidRequest, a *adapter, noCookies bool, extUser openrtb_ext.ExtUser) (string, []error) {
uri, err := url.Parse(a.endpoint)
if err != nil {
return "", []error{fmt.Errorf("failed to parse Adnuntius endpoint: %v", err)}
Expand Down Expand Up @@ -80,6 +80,22 @@ func makeEndpointUrl(ortbRequest openrtb2.BidRequest, a *adapter, noCookies bool
q.Set("noCookies", "true")
}

if len(extUser.Eids) > 0 {
hasValidEid := false
for _, eid := range extUser.Eids {
if len(eid.UIDs) > 0 {
hasValidEid = true
break
}
}
if hasValidEid {
eidsJSON, err := jsonutil.Marshal(extUser.Eids)
if err == nil {
q.Set("eids", string(eidsJSON))
}
}
}

q.Set("tzo", strconv.Itoa(tzo))
q.Set("format", "prebidServer")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
{
"mockBidRequest": {
"id": "test-request-id",
"user": {
"id": "1kjh3429kjh295jkl",
"ext":{
"eids" : [
{
"source": "adserver.org",
"uids": [
{ "id": "111111111111", "atype": 1, "ext": { "rtiPartner": "TDID" } }
]
},
{
"source": "pubcid.org",
"uids": [
{ "id": "22222222-2222-2222-2222-222222222222", "atype": 1 }
]
}
]
}
},
"imp": [
{
"id": "test-imp-id",
"banner": {
"format": [
{
"w": 300,
"h": 250
},
{
"w": 300,
"h": 600
}
]
},
"ext": {
"bidder": {
"auId": "123"
}
}
}
]
},
"httpCalls": [
{
"expectedRequest": {
"uri": "http://whatever.url?eids=%5B%7B%22source%22%3A%22adserver.org%22%2C%22uids%22%3A%5B%7B%22id%22%3A%22111111111111%22%2C%22atype%22%3A1%2C%22ext%22%3A%7B+%22rtiPartner%22%3A+%22TDID%22+%7D%7D%5D%7D%2C%7B%22source%22%3A%22pubcid.org%22%2C%22uids%22%3A%5B%7B%22id%22%3A%2222222222-2222-2222-2222-222222222222%22%2C%22atype%22%3A1%7D%5D%7D%5D&format=prebidServer&tzo=0",
"body": {
"adUnits": [
{
"auId": "123",
"targetId": "123-test-imp-id:banner",
"nativeRequest": {},
"dimensions": [[300,250],[300,600]]
}
],
"metaData": {
"usi": "1kjh3429kjh295jkl"
},
"context": "unknown"
},
"impIDs":["test-imp-id"]
},
"mockResponse": {
"status": 200,
"body": {
"adUnits": [
{
"auId": "0000000000000123",
"targetId": "123-test-imp-id:banner",
"matchedAdCount": 1,
"html": "<ADCODE>",
"responseId": "adn-rsp-900646517",
"ads": [
{
"destinationUrls": {
"url": "http://www.google.com"
},
"advertiserDomains": ["google.com"],
"bid": {
"amount": 20.0,
"currency": "NOK"
},
"adId": "adn-id-1559784094",
"creativeWidth": "980",
"creativeHeight": "240",
"creativeId": "jn9hpzvlsf8cpdmm",
"lineItemId": "q7y9qm5b0xt9htrv"
}
]
}
]
}
}
}
],
"expectedBidResponses": [
{
"bids": [
{
"bid": {
"id": "adn-id-1559784094",
"impid": "test-imp-id",
"price": 20000,
"adm": "<ADCODE>",
"adid": "adn-id-1559784094",
"adomain": [
"google.com"
],
"cid": "q7y9qm5b0xt9htrv",
"crid": "jn9hpzvlsf8cpdmm",
"mtype": 1,
"w": 980,
"h": 240
},
"type": "banner"
}
],
"currency": "NOK"
}
]
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"mockBidRequest": {
"id": "test-request-id",
"user": {
"ext":{
"eids" : [
{
"source": "adserver.org",
"uids": [
{ "id": "111111111111", "atype": 1, "ext": { "rtiPartner": "TDID" } }
]
},
{
"source": "pubcid.org",
"uids": [
{ "id": "22222222-2222-2222-2222-222222222222", "atype": 1 }
]
}
]
}
},
"imp": [
{
"id": "test-imp-id",
"banner": {
"format": [
{
"w": 300,
"h": 250
},
{
"w": 300,
"h": 600
}
]
},
"ext": {
"bidder": {
"auId": "123"
}
}
}
]
},
"httpCalls": [
{
"expectedRequest": {
"uri": "http://whatever.url?eids=%5B%7B%22source%22%3A%22adserver.org%22%2C%22uids%22%3A%5B%7B%22id%22%3A%22111111111111%22%2C%22atype%22%3A1%2C%22ext%22%3A%7B+%22rtiPartner%22%3A+%22TDID%22+%7D%7D%5D%7D%2C%7B%22source%22%3A%22pubcid.org%22%2C%22uids%22%3A%5B%7B%22id%22%3A%2222222222-2222-2222-2222-222222222222%22%2C%22atype%22%3A1%7D%5D%7D%5D&format=prebidServer&tzo=0",
"body": {
"adUnits": [
{
"auId": "123",
"targetId": "123-test-imp-id:banner",
"nativeRequest": {},
"dimensions": [[300,250],[300,600]]
}
],
"metaData": {},
"context": "unknown"
},
"impIDs":["test-imp-id"]
},
"mockResponse": {
"status": 200,
"body": {
"adUnits": [
{
"auId": "0000000000000123",
"targetId": "123-test-imp-id:banner",
"matchedAdCount": 1,
"html": "<ADCODE>",
"responseId": "adn-rsp-900646517",
"ads": [
{
"destinationUrls": {
"url": "http://www.google.com"
},
"advertiserDomains": ["google.com"],
"bid": {
"amount": 20.0,
"currency": "NOK"
},
"adId": "adn-id-1559784094",
"creativeWidth": "980",
"creativeHeight": "240",
"creativeId": "jn9hpzvlsf8cpdmm",
"lineItemId": "q7y9qm5b0xt9htrv"
}
]
}
]
}
}
}
],
"expectedBidResponses": [
{
"bids": [
{
"bid": {
"id": "adn-id-1559784094",
"impid": "test-imp-id",
"price": 20000,
"adm": "<ADCODE>",
"adid": "adn-id-1559784094",
"adomain": [
"google.com"
],
"cid": "q7y9qm5b0xt9htrv",
"crid": "jn9hpzvlsf8cpdmm",
"mtype": 1,
"w": 980,
"h": 240
},
"type": "banner"
}
],
"currency": "NOK"
}
]
}

Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@
"user": {
"ext":{
"eids" : [
{
"source": "idProvider",
"uids": [
{ "id": "userId", "atype": 1, "ext": { "stype": "ppuid" } }
]
}
]
}
},
Expand Down Expand Up @@ -48,10 +42,8 @@
"nativeRequest": {},
"dimensions": [[300,250],[300,600]]
}
],
"metaData": {
"usi": "userId"
},
],
"metaData": {},
"context": "unknown"
},
"impIDs":["test-imp-id"]
Expand Down Expand Up @@ -115,3 +107,4 @@
}
]
}

Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
},
"expectedMakeRequestsErrors": [
{
"value": "failed to parse URL: [failed to parse GDPR information: failed to parse ExtUser in Adnuntius GDPR check: expect { or n, but found \"]",
"value": "failed to parse Ext User: expect { or n, but found \"",
"comparison": "literal"
}
]
Expand Down
Loading