Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adform adapter: digitrust cleanup #1690

Merged
merged 2 commits into from
Feb 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
56 changes: 1 addition & 55 deletions adapters/adform/adform.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,23 +44,11 @@ type adformRequest struct {
adUnits []*adformAdUnit
gdprApplies string
consent string
digitrust *adformDigitrust
currency string
eids string
url string
}

type adformDigitrust struct {
Id string `json:"id"`
Version int `json:"version"`
Keyv int `json:"keyv"`
Privacy adformDigitrustPrivacy `json:"privacy"`
}

type adformDigitrustPrivacy struct {
Optout bool `json:"optout"`
}

type adformAdUnit struct {
MasterTagId json.Number `json:"mid"`
PriceType string `json:"priceType,omitempty"`
Expand Down Expand Up @@ -216,24 +204,6 @@ func pbsRequestToAdformRequest(a *AdformAdapter, request *pbs.PBSRequest, bidder
gdprApplies = ""
}
consent := request.ParseConsent()
var digitrustData *openrtb_ext.ExtUserDigiTrust
if request.User != nil {
var extUser *openrtb_ext.ExtUser
if err := json.Unmarshal(request.User.Ext, &extUser); err == nil {
digitrustData = extUser.DigiTrust
}
}

var digitrust *adformDigitrust = nil
if digitrustData != nil {
digitrust = new(adformDigitrust)
digitrust.Id = digitrustData.ID
digitrust.Keyv = digitrustData.KeyV
digitrust.Version = 1
digitrust.Privacy = adformDigitrustPrivacy{
Optout: digitrustData.Pref != 0,
}
}

return &adformRequest{
adUnits: adUnits,
Expand All @@ -247,7 +217,6 @@ func pbsRequestToAdformRequest(a *AdformAdapter, request *pbs.PBSRequest, bidder
tid: request.Tid,
gdprApplies: gdprApplies,
consent: consent,
digitrust: digitrust,
currency: defaultCurrency,
}, nil
}
Expand Down Expand Up @@ -371,18 +340,9 @@ func (r *adformRequest) buildAdformHeaders(a *AdformAdapter) http.Header {
header.Set("Referer", r.referer)
}

cookie := make([]string, 0, 2)
if r.userId != "" {
cookie = append(cookie, fmt.Sprintf("uid=%s", r.userId))
}
if r.digitrust != nil {
if digitrustBytes, err := json.Marshal(r.digitrust); err == nil {
digitrust := base64.URLEncoding.WithPadding(base64.NoPadding).EncodeToString(digitrustBytes)
// Cookie name and structure are described here: https://github.com/digi-trust/dt-cdn/wiki/Cookies-for-Platforms
cookie = append(cookie, fmt.Sprintf("DigiTrust.v1.identity=%s", digitrust))
}
header.Set("Cookie", fmt.Sprintf("uid=%s;", r.userId))
}
header.Set("Cookie", strings.Join(cookie, ";"))

return header
}
Expand Down Expand Up @@ -506,27 +466,14 @@ func openRtbToAdformRequest(request *openrtb.BidRequest) (*adformRequest, []erro

eids := ""
consent := ""
var digitrustData *openrtb_ext.ExtUserDigiTrust
if request.User != nil {
var extUser openrtb_ext.ExtUser
if err := json.Unmarshal(request.User.Ext, &extUser); err == nil {
consent = extUser.Consent
digitrustData = extUser.DigiTrust
eids = encodeEids(extUser.Eids)
}
}

var digitrust *adformDigitrust = nil
if digitrustData != nil {
digitrust = new(adformDigitrust)
digitrust.Id = digitrustData.ID
digitrust.Keyv = digitrustData.KeyV
digitrust.Version = 1
digitrust.Privacy = adformDigitrustPrivacy{
Optout: digitrustData.Pref != 0,
}
}

requestCurrency := defaultCurrency
if len(request.Cur) != 0 {
hasDefaultCurrency := false
Expand All @@ -552,7 +499,6 @@ func openRtbToAdformRequest(request *openrtb.BidRequest) (*adformRequest, []erro
tid: tid,
gdprApplies: gdprApplies,
consent: consent,
digitrust: digitrust,
currency: requestCurrency,
eids: eids,
url: url,
Expand Down
17 changes: 5 additions & 12 deletions adapters/adform/adform_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (

func TestJsonSamples(t *testing.T) {
bidder, buildErr := Builder(openrtb_ext.BidderAdform, config.Adapter{
Endpoint: "http://adx.adform.net/adx"})
Endpoint: "https://adx.adform.net/adx"})

if buildErr != nil {
t.Fatalf("Builder returned unexpected error %v", buildErr)
Expand Down Expand Up @@ -300,7 +300,7 @@ func preparePrebidRequestBody(requestData aBidInfo, t *testing.T) *bytes.Buffer

func TestOpenRTBRequest(t *testing.T) {
bidder, buildErr := Builder(openrtb_ext.BidderAdform, config.Adapter{
Endpoint: "http://adx.adform.net"})
Endpoint: "https://adx.adform.net"})

if buildErr != nil {
t.Fatalf("Builder returned unexpected error %v", buildErr)
Expand Down Expand Up @@ -525,12 +525,6 @@ func getRegs() openrtb.Regs {
}

func getUserExt() []byte {
digitrust := openrtb_ext.ExtUserDigiTrust{
ID: "digitrustId",
KeyV: 1,
Pref: 0,
}

eids := []openrtb_ext.ExtUserEid{
{
Source: "test.com",
Expand All @@ -556,9 +550,8 @@ func getUserExt() []byte {
}

userExt := openrtb_ext.ExtUser{
Eids: eids,
Consent: "abc",
DigiTrust: &digitrust,
Eids: eids,
Consent: "abc",
}
userExtData, err := json.Marshal(userExt)
if err == nil {
Expand Down Expand Up @@ -630,7 +623,7 @@ func assertAdformServerRequest(testData aBidInfo, r *http.Request, isOpenRtb boo
if ok, err := equal(testData.referrer, r.Header.Get("Referer"), "Referer"); !ok {
return err
}
if ok, err := equal(fmt.Sprintf("uid=%s;DigiTrust.v1.identity=eyJpZCI6ImRpZ2l0cnVzdElkIiwidmVyc2lvbiI6MSwia2V5diI6MSwicHJpdmFjeSI6eyJvcHRvdXQiOmZhbHNlfX0", testData.buyerUID), r.Header.Get("Cookie"), "Buyer ID"); !ok {
if ok, err := equal(fmt.Sprintf("uid=%s;", testData.buyerUID), r.Header.Get("Cookie"), "Buyer ID"); !ok {
return err
}
return nil
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"httpCalls": [
{
"expectedRequest": {
"uri": "http://adx.adform.net/adx?CC=1&fd=1&gdpr=&gdpr_consent=&ip=&rp=4&stid=&bWlkPTEyMzQ1JnJjdXI9VVNE&bWlkPTU0MzIxJnJjdXI9VVNE"
"uri": "https://adx.adform.net/adx?CC=1&fd=1&gdpr=&gdpr_consent=&ip=&rp=4&stid=&bWlkPTEyMzQ1JnJjdXI9VVNE&bWlkPTU0MzIxJnJjdXI9VVNE"
},
"mockResponse": {
"status": 200,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"httpCalls": [
{
"expectedRequest": {
"uri": "http://adx.adform.net/adx?CC=1&fd=1&gdpr=&gdpr_consent=&ip=&rp=4&stid=&bWlkPTEyMzQ1JnJjdXI9VVNE"
"uri": "https://adx.adform.net/adx?CC=1&fd=1&gdpr=&gdpr_consent=&ip=&rp=4&stid=&bWlkPTEyMzQ1JnJjdXI9VVNE"
},
"mockResponse": {
"status": 200,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"httpCalls": [
{
"expectedRequest": {
"uri": "http://adx.adform.net/adx?CC=1&fd=1&gdpr=&gdpr_consent=&ip=&rp=4&stid=&bWlkPTU0MzIxJnJjdXI9VVNE"
"uri": "https://adx.adform.net/adx?CC=1&fd=1&gdpr=&gdpr_consent=&ip=&rp=4&stid=&bWlkPTU0MzIxJnJjdXI9VVNE"
},
"mockResponse": {
"status": 200,
Expand Down
2 changes: 1 addition & 1 deletion adapters/adform/adformtest/supplemental/user-nil.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"httpCalls": [
{
"expectedRequest": {
"uri": "http://adx.adform.net/adx?CC=1&fd=1&gdpr=1&gdpr_consent=abc2&ip=&pt=gross&rp=4&stid=&bWlkPTEmcmN1cj1VU0Q"
"uri": "https://adx.adform.net/adx?CC=1&fd=1&gdpr=1&gdpr_consent=abc2&ip=&pt=gross&rp=4&stid=&bWlkPTEmcmN1cj1VU0Q"
},
"mockResponse": {
"status": 204
Expand Down
2 changes: 1 addition & 1 deletion config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,7 @@ func SetupViper(v *viper.Viper, filename string) {
v.SetDefault("adapters.33across.endpoint", "http://ssc.33across.com/api/v1/hb")
v.SetDefault("adapters.33across.partner_id", "")
v.SetDefault("adapters.acuityads.endpoint", "http://{{.Host}}.admanmedia.com/bid?token={{.AccountID}}")
v.SetDefault("adapters.adform.endpoint", "http://adx.adform.net/adx")
v.SetDefault("adapters.adform.endpoint", "https://adx.adform.net/adx")
v.SetDefault("adapters.adgeneration.endpoint", "https://d.socdm.com/adsv/v1")
v.SetDefault("adapters.adhese.endpoint", "https://ads-{{.AccountID}}.adhese.com/json")
v.SetDefault("adapters.adkernel.endpoint", "http://{{.Host}}/hb?zone={{.ZoneID}}")
Expand Down