Skip to content

Commit

Permalink
[wip] ADG Integration
Browse files Browse the repository at this point in the history
  • Loading branch information
takuma horiguchi committed Feb 14, 2020
1 parent fd9bc8f commit 143666a
Show file tree
Hide file tree
Showing 10 changed files with 104 additions and 0 deletions.
65 changes: 65 additions & 0 deletions adapters/adgeneration/adgeneration.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package adgeneration

import (
"encoding/json"
"fmt"
"net/http"

"github.com/mxmCherry/openrtb"
"github.com/prebid/prebid-server/adapters"
"github.com/prebid/prebid-server/errortypes"
)

type AdGenerationAdapter struct {
endpoint string
}

func (adg *AdGenerationAdapter) MakeRequests(request *openrtb.BidRequest, reqInfo *adapters.ExtraRequestInfo) ([]*adapters.RequestData, []error) {
numRequests := len(request.Imp)
var errs []error

reqs := make([]*adapters.RequestData, 0, numRequests)
for index := 0; index < numRequests; index++ {
headers := http.Header{}
headers.Add("Content-Type", "application/json;charset=utf-8")
headers.Add("Accept", "application/json")

reqJSON, err := json.Marshal(request)
if err != nil {
errs = append(errs, err)
return nil, errs
}

req := &adapters.RequestData{
Method: "POST",
Uri: adg.endpoint,
Body: reqJSON,
Headers: headers,
}
reqs = append(reqs, req)
}

return reqs, errs
}
func (adg *AdGenerationAdapter) MakeBids(internalRequest *openrtb.BidRequest, externalRequest *adapters.RequestData, response *adapters.ResponseData) (*adapters.BidderResponse, []error) {
var errs []error

if response.StatusCode == http.StatusNoContent {
return nil, nil
}
if response.StatusCode == http.StatusBadRequest {
return nil, []error{&errortypes.BadInput{
Message: fmt.Sprintf("unexpected status code: %d. Run with request.debug = 1 for more info", response.StatusCode),
}}
}
if response.StatusCode != http.StatusOK {
return nil, []error{fmt.Errorf("Unexpected status code: %d. Run with request.debug = 1 for more info", response.StatusCode)}
}
return nil, errs
}

func NewAdGenerationAdapter(endpoint string) *AdGenerationAdapter {
return &AdGenerationAdapter{
endpoint,
}
}
1 change: 1 addition & 0 deletions adapters/adgeneration/adgeneration_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package adgeneration
1 change: 1 addition & 0 deletions adapters/adgeneration/params_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package adgeneration
13 changes: 13 additions & 0 deletions adapters/adgeneration/usersync.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package adgeneration

import (
"text/template"

"github.com/prebid/prebid-server/adapters"
"github.com/prebid/prebid-server/usersync"
)

func NewAdGenerationSyncer(temp *template.Template) usersync.Usersyncer {
// TOOD: GDPR VenderID の存在について調べる
return adapters.NewSyncer("adgeneration", 0, temp, adapters.SyncTypeRedirect)
}
1 change: 1 addition & 0 deletions adapters/adgeneration/usersync_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package adgeneration
2 changes: 2 additions & 0 deletions exchange/adapter_map.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/prebid/prebid-server/adapters"
ttx "github.com/prebid/prebid-server/adapters/33across"
"github.com/prebid/prebid-server/adapters/adform"
"github.com/prebid/prebid-server/adapters/adgeneration"
"github.com/prebid/prebid-server/adapters/adkernel"
"github.com/prebid/prebid-server/adapters/adkernelAdn"
"github.com/prebid/prebid-server/adapters/adpone"
Expand Down Expand Up @@ -69,6 +70,7 @@ func newAdapterMap(client *http.Client, cfg *config.Configuration, infos adapter
ortbBidders := map[openrtb_ext.BidderName]adapters.Bidder{
openrtb_ext.Bidder33Across: ttx.New33AcrossBidder(cfg.Adapters[string(openrtb_ext.Bidder33Across)].Endpoint),
openrtb_ext.BidderAdform: adform.NewAdformBidder(client, cfg.Adapters[string(openrtb_ext.BidderAdform)].Endpoint),
openrtb_ext.BidderAdgeneration: adgeneration.NewAdGenerationAdapter(cfg.Adapters[string(openrtb_ext.BidderAdgeneration)].Endpoint),
openrtb_ext.BidderAdkernel: adkernel.NewAdkernelAdapter(cfg.Adapters[strings.ToLower(string(openrtb_ext.BidderAdkernel))].Endpoint),
openrtb_ext.BidderAdkernelAdn: adkernelAdn.NewAdkernelAdnAdapter(cfg.Adapters[strings.ToLower(string(openrtb_ext.BidderAdkernelAdn))].Endpoint),
openrtb_ext.BidderAdpone: adpone.NewAdponeBidder(cfg.Adapters[string(openrtb_ext.BidderAdpone)].Endpoint),
Expand Down
2 changes: 2 additions & 0 deletions openrtb_ext/bidders.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ type BidderName string
const (
Bidder33Across BidderName = "33across"
BidderAdform BidderName = "adform"
BidderAdgeneration BidderName = "adgeneration"
BidderAdkernel BidderName = "adkernel"
BidderAdkernelAdn BidderName = "adkernelAdn"
BidderAdpone BidderName = "adpone"
Expand Down Expand Up @@ -77,6 +78,7 @@ const (
var BidderMap = map[string]BidderName{
"33across": Bidder33Across,
"adform": BidderAdform,
"adgeneration": BidderAdgeneration,
"adkernel": BidderAdkernel,
"adkernelAdn": BidderAdkernelAdn,
"adpone": BidderAdpone,
Expand Down
16 changes: 16 additions & 0 deletions static/bidder-params/adgeneration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AdGeneration Adapter Params",
"description": "A schema which validates params accepted by the AdGeneration adapter",

"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"description": "Ad ID registered by AdGeneration."
}
},
"required": ["id"]
}

2 changes: 2 additions & 0 deletions usersync/usersyncers/syncer.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/golang/glog"
ttx "github.com/prebid/prebid-server/adapters/33across"
"github.com/prebid/prebid-server/adapters/adform"
"github.com/prebid/prebid-server/adapters/adgeneration"
"github.com/prebid/prebid-server/adapters/adkernel"
"github.com/prebid/prebid-server/adapters/adkernelAdn"
"github.com/prebid/prebid-server/adapters/adtelligent"
Expand Down Expand Up @@ -66,6 +67,7 @@ func NewSyncerMap(cfg *config.Configuration) map[openrtb_ext.BidderName]usersync

insertIntoMap(cfg, syncers, openrtb_ext.Bidder33Across, ttx.New33AcrossSyncer)
insertIntoMap(cfg, syncers, openrtb_ext.BidderAdform, adform.NewAdformSyncer)
insertIntoMap(cfg, syncers, openrtb_ext.BidderAdgeneration, adgeneration.NewAdGenerationSyncer)
insertIntoMap(cfg, syncers, openrtb_ext.BidderAdkernel, adkernel.NewAdkernelSyncer)
insertIntoMap(cfg, syncers, openrtb_ext.BidderAdkernelAdn, adkernelAdn.NewAdkernelAdnSyncer)
insertIntoMap(cfg, syncers, openrtb_ext.BidderAdpone, adpone.NewadponeSyncer)
Expand Down
1 change: 1 addition & 0 deletions usersync/usersyncers/syncer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ func TestNewSyncerMap(t *testing.T) {
Adapters: map[string]config.Adapter{
string(openrtb_ext.Bidder33Across): syncConfig,
string(openrtb_ext.BidderAdform): syncConfig,
string(openrtb_ext.BidderAdgeneration): syncConfig,
string(openrtb_ext.BidderAdkernel): syncConfig,
string(openrtb_ext.BidderAdkernelAdn): syncConfig,
string(openrtb_ext.BidderAdpone): syncConfig,
Expand Down

0 comments on commit 143666a

Please sign in to comment.