-
Notifications
You must be signed in to change notification settings - Fork 754
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
Consumable adapter implementation #801
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove the debug logging. We don't want production logs to explode. Also if it is not too much trouble, another merge with master or cleanup so it is clear that this PR doesn't touch the other adapters would be appreciated.
Sorry for the delay in review, things have been busy.
…ativeId Also take out potential nil pointer dereferences so that we don't kill the server on omitted data.
Only question here is what to do with redirect
… request This is to match requests observed on live sites making calls to serverbid.
Note: Need to validate that bid.id can be same on multiple bids (other adapters use rand(1000) and request.id)
fea4e75
to
599c0d4
Compare
Hi, |
* Create placeholder type for Consumable adapter. * Create placeholder type for Consumable parameters. * Create placeholder JSON Schema for Consumable parameters. * Create skeleton implementation of Bidder for ConsumableAdapter. * Add placeholder NewConsumableBidder function. * Add Consumable to adapter map. * Add comment to ExtImpConsumable. * Generate skeleton bid request. * Set User-Agent header. * Set Forwarded and X-Forwarded-For headers. * Set Referer header. * Set Origin header. * Add type representing ad placement. * Add type representing user. * Add type representing Bid Request. * Add placeholder JSON body to request. * Populate Time field of bid request. * Populate more fields of bid request. * Don't panic if request.Site is nil. * #8 Initial partial implmentation of MakeBids * #11 Add initial exemplary test to get things going * #8 Some initial correct-looking impl and test for MakeBids * Partially implement creating placements from impressions. * #4 Add ExtImpConsumable contract class * #6 Add handling of Ext.SiteId and NetworkId * #11 Provide configurable instant time source to allow testing * #6 Add conversion of w,h formats to adtypes in MakeRequests * #8 Implement retrieveAd for ad markup * #4 Update JSON Schema to match prebid.js consumable docs See https://github.com/prebid/prebid.github.io/blob/b7e1f6fbdbdb87b2b8cd283d311e8ddb2264e599/dev-docs/bidders/consumable.md * #16 Add bidder-info/consumable.yaml * #8 Clean up comments in MakeBids * #12 Add params_test.go * #8 MakeBids: Use bid.id=decision.adId and bid.crId=decision.creativeId Also take out potential nil pointer dereferences so that we don't kill the server on omitted data. * #11 Add a JSON test for absent impressionUrl * #9 Implement usersync based on prebid.js adapter code Only question here is what to do with redirect * Make unitName optional * Duplicate networkId,siteId,unitId/Name from first placement to top of request This is to match requests observed on live sites making calls to serverbid. * Add header info to simple-banner.json test scenario * Handle adId as int64 and use for bid.crid. Use internalReq.id for bid.id Note: Need to validate that bid.id can be same on multiple bids (other adapters use rand(1000) and request.id) * #9 Turn buyeruid into azk Cookie header when calling serverbid.com * #17 Extract Consumable endpoint and usersync_url to config with defaults * #9 Update usersync to work based on templates * Add callback URL to usersync for consumable * Remove additional markup from ad markup - just pass Content.Body through * Remove println's that were accidentally committed * Organise import so consumable import is in order * Delete fmt.Printf calls that shouldn't be there * Clarify why VENDOR_ID is a TODO * Move getImp and error check within test for a valid decision
* Create placeholder type for Consumable adapter. * Create placeholder type for Consumable parameters. * Create placeholder JSON Schema for Consumable parameters. * Create skeleton implementation of Bidder for ConsumableAdapter. * Add placeholder NewConsumableBidder function. * Add Consumable to adapter map. * Add comment to ExtImpConsumable. * Generate skeleton bid request. * Set User-Agent header. * Set Forwarded and X-Forwarded-For headers. * Set Referer header. * Set Origin header. * Add type representing ad placement. * Add type representing user. * Add type representing Bid Request. * Add placeholder JSON body to request. * Populate Time field of bid request. * Populate more fields of bid request. * Don't panic if request.Site is nil. * #8 Initial partial implmentation of MakeBids * #11 Add initial exemplary test to get things going * #8 Some initial correct-looking impl and test for MakeBids * Partially implement creating placements from impressions. * #4 Add ExtImpConsumable contract class * #6 Add handling of Ext.SiteId and NetworkId * #11 Provide configurable instant time source to allow testing * #6 Add conversion of w,h formats to adtypes in MakeRequests * #8 Implement retrieveAd for ad markup * #4 Update JSON Schema to match prebid.js consumable docs See https://github.com/prebid/prebid.github.io/blob/b7e1f6fbdbdb87b2b8cd283d311e8ddb2264e599/dev-docs/bidders/consumable.md * #16 Add bidder-info/consumable.yaml * #8 Clean up comments in MakeBids * #12 Add params_test.go * #8 MakeBids: Use bid.id=decision.adId and bid.crId=decision.creativeId Also take out potential nil pointer dereferences so that we don't kill the server on omitted data. * #11 Add a JSON test for absent impressionUrl * #9 Implement usersync based on prebid.js adapter code Only question here is what to do with redirect * Make unitName optional * Duplicate networkId,siteId,unitId/Name from first placement to top of request This is to match requests observed on live sites making calls to serverbid. * Add header info to simple-banner.json test scenario * Handle adId as int64 and use for bid.crid. Use internalReq.id for bid.id Note: Need to validate that bid.id can be same on multiple bids (other adapters use rand(1000) and request.id) * #9 Turn buyeruid into azk Cookie header when calling serverbid.com * #17 Extract Consumable endpoint and usersync_url to config with defaults * #9 Update usersync to work based on templates * Add callback URL to usersync for consumable * Remove additional markup from ad markup - just pass Content.Body through * Remove println's that were accidentally committed * Organise import so consumable import is in order * Delete fmt.Printf calls that shouldn't be there * Clarify why VENDOR_ID is a TODO * Move getImp and error check within test for a valid decision
* Create placeholder type for Consumable adapter. * Create placeholder type for Consumable parameters. * Create placeholder JSON Schema for Consumable parameters. * Create skeleton implementation of Bidder for ConsumableAdapter. * Add placeholder NewConsumableBidder function. * Add Consumable to adapter map. * Add comment to ExtImpConsumable. * Generate skeleton bid request. * Set User-Agent header. * Set Forwarded and X-Forwarded-For headers. * Set Referer header. * Set Origin header. * Add type representing ad placement. * Add type representing user. * Add type representing Bid Request. * Add placeholder JSON body to request. * Populate Time field of bid request. * Populate more fields of bid request. * Don't panic if request.Site is nil. * #8 Initial partial implmentation of MakeBids * #11 Add initial exemplary test to get things going * #8 Some initial correct-looking impl and test for MakeBids * Partially implement creating placements from impressions. * #4 Add ExtImpConsumable contract class * #6 Add handling of Ext.SiteId and NetworkId * #11 Provide configurable instant time source to allow testing * #6 Add conversion of w,h formats to adtypes in MakeRequests * #8 Implement retrieveAd for ad markup * #4 Update JSON Schema to match prebid.js consumable docs See https://github.com/prebid/prebid.github.io/blob/b7e1f6fbdbdb87b2b8cd283d311e8ddb2264e599/dev-docs/bidders/consumable.md * #16 Add bidder-info/consumable.yaml * #8 Clean up comments in MakeBids * #12 Add params_test.go * #8 MakeBids: Use bid.id=decision.adId and bid.crId=decision.creativeId Also take out potential nil pointer dereferences so that we don't kill the server on omitted data. * #11 Add a JSON test for absent impressionUrl * #9 Implement usersync based on prebid.js adapter code Only question here is what to do with redirect * Make unitName optional * Duplicate networkId,siteId,unitId/Name from first placement to top of request This is to match requests observed on live sites making calls to serverbid. * Add header info to simple-banner.json test scenario * Handle adId as int64 and use for bid.crid. Use internalReq.id for bid.id Note: Need to validate that bid.id can be same on multiple bids (other adapters use rand(1000) and request.id) * #9 Turn buyeruid into azk Cookie header when calling serverbid.com * #17 Extract Consumable endpoint and usersync_url to config with defaults * #9 Update usersync to work based on templates * Add callback URL to usersync for consumable * Remove additional markup from ad markup - just pass Content.Body through * Remove println's that were accidentally committed * Organise import so consumable import is in order * Delete fmt.Printf calls that shouldn't be there * Clarify why VENDOR_ID is a TODO * Move getImp and error check within test for a valid decision
Hi,
We'd like to add the Consumable adapter in this PR.
We believe we've met all the criteria for adding an adapter.
Also, as we wanted to cover HTTP headers in our testing, we've included the commits from #795 which implement checking of those parts of the test files.
Please let us know if there's anything else you need for this to be merged.
Thanks,
Neale.