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

Move FamilyName() to an "enumerated" type. #96

Closed
wants to merge 19 commits into from
Closed

Move FamilyName() to an "enumerated" type. #96

wants to merge 19 commits into from

Conversation

hhhjort
Copy link
Collaborator

@hhhjort hhhjort commented Aug 16, 2017

Created new package "family" to avoid a circular import (pbs needs to know about family, adapters imports pbs).
The family.Name type extends into pbs.PBSRequest.GetUserID() and cookieSync()

This should provide some safety around handling FamilyNames in adapters.

@@ -3,6 +3,7 @@ package adapters
import (
"context"
"crypto/tls"
"github.com/prebid/prebid-server/family"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would lean towards naming this package constants, to make it more reusable. Named family, nothing else will go in there.

There are a few other "magic string constants" which are shared throughout several other PBS modules though. For example, BidderCode and ResponseStatus. It'd be nice to have a place to move them all to, as time permits.

func (req PBSRequest) GetUserID(BidderCode string) string {
if uid, ok := req.UserIDs[BidderCode]; ok {
func (req PBSRequest) GetUserID(BidderCode family.Name) string {
if uid, ok := req.UserIDs[BidderCode.String()]; ok { // TODO: consider moving UserIDs to an array indexed by the FamilyName int.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What made you decide to switch back to strings here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was either dig in here to make sure I caught every usage of UserIDs, or put it off for a later PR. Seems a bit more manageable in chunks rather than starting off with a huge PR as my first.

The comment above about "family" makes sense and I will work on it, and I will take a look at how much UserIDs is actually referenced and consider pushing familyName all the way down there.

Copy link
Contributor

@dbemiller dbemiller Aug 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gotcha... ok.

The main benefit of having a type at all is to make bugs less likely. Right now, req.UserIDs[adapter.Name()] is a really easy mistake to make. It would work most of the time... but not always--which makes it vulnerable to subtle, hard-to-find bugs.

Working in smaller chunks is also a noble goal, though, and I personally tend to make much larger diffs than average (to the point that it annoys people sometimes).

I'm not sure what the answer on "how to merge well" is. I do definitely think familyName should be pushed around the whole codebase, though. The main value is to help document which parts of the code are implicitly "the same as" other parts, and make bugs due to miscommunication less likely.

@hhhjort
Copy link
Collaborator Author

hhhjort commented Aug 17, 2017

Been looking at pushing FamilyName all the way down. The difficulty comes in at PBSCookie, which eventually gets marshalled into json format and that is converted into a string and set as a cookie. Since this hits an external interface (how we store ID cookies in a user's browser) this would be a breaking change if we changed how it is done. Ideally the solution should be using the values from constants to convert the internal int indexed array with the string indexed map that goes into the cookie. The current build has family moved to constants, but no work done yet on pushing FamilyName down further.

@hhhjort
Copy link
Collaborator Author

hhhjort commented Aug 18, 2017

I have a branch now that uses FamilyName in PBSRequest, but leaves PBSCookie alone. Utility functions to convert between the array and map. Down side is there are now 2 ways to index UserIDs in an array/map, which could lead to confusion down the line. But since the map indexes on a string, and the array on int, compiler will catch any confusions. The only way to push this further is to create a second PBSCookie struct, and convert between array based PBSCookie and map based PBSCookie when reading/writing the actual cookie. Not sure when we hit diminishing returns on this.

Do you want this branch merged into this pull request, or open a second PR?

@dbemiller
Copy link
Contributor

dbemiller commented Aug 18, 2017

Either way should work, as long as you have separate commits. You can always git reset HEAD~numCommits and git push -f branch if you want to delete those changes later.

Or you could just open a PR between the two branches in your own repo, and I can take a look there.

Your call on which one you'll find easier to work with.

I do definitely find the phrase "2 ways to index UserIDs" a bit disturbing... but I'm not sure exactly what you mean by it.

Duplicating PBSCookie structs would be a clearly bad idea though. What do you mean by "the only way to push this farther"? What issue prevents you from pushing it into the PBSCookie which already exists?

@dbemiller
Copy link
Contributor

Also FYI: there are some other changes to the PBSCookie in the pipeline. I'm not sure which one of us will merge first... but that might impact the issues you're seeing a bit ^^.

@hhhjort
Copy link
Collaborator Author

hhhjort commented Aug 18, 2017

Set up a PR on my fork.

"2 ways to index UserIDs": We have a slice of UserIDs that are indexed according to the int value of FamilyName and we have a map of UserIDs that are indexed by the string values. This could be a little confusing when writing code, but the compiler will ensure we don't have the two index methods confused in the end.

The issue with PBSCookie is pbs.ParseUIDCookie() and pbs.SetUIDCookie() which use json.Mashal and json.Unmashal to convert between the PBSCookie struct and the JSON representation that gets stored as the actual cookie in the browser. To convert between the struct and the JSON, we need a struct that matches the structure of the JSON. The JSON currently uses a dictionary/map to index the various UIDs, so we need a PBSCookie struct that uses map in order to match. If we want a PBSCookie struct with an array for internal use, we would have to convert between PBSCookieInternal and PBSCookieJSON in these two functions, or implement our own JSON parser to work around the mismatch between the array of UIDs and the dictionary of UIDs. Converting between the two structs would not be difficult since I already have functions to convert between the map and array, but I haven't verified that there isn't any other code that bypasses this functions to access the cookie directly.

So it might not be too bad to rename PBSCookie to pBSCookieJSON, and define a new PBSCookie with an array of UIDs. Lower case 'p' as pBSCookieJSON should only be used in the two cookie functions, and thus not needed outside the package.

dbemiller
dbemiller previously approved these changes Aug 28, 2017
hhhjort and others added 10 commits September 26, 2017 09:37
Fixing bad revert

This reverts commit 608aef1.
This reverts commit 6ab5fc5.
… names, and moved declaration to its own package to avoid circular dependencies. Need to fix tests still"

This reverts commit b6eb1f2.
Getting my fork caught up to base
@hhhjort
Copy link
Collaborator Author

hhhjort commented Sep 26, 2017

Need to resubmit from a branch rather than master.

@hhhjort hhhjort closed this Sep 26, 2017
pm-nilesh-chate pushed a commit to pm-nilesh-chate/prebid-server that referenced this pull request Feb 25, 2023
* replacing info@prebid.org maintainer email addrs (#1256)

* aligning maintainer info (#1258)

* Add kidoz bidder info (#1257)

got this info from email communication with kidoz

* Add Cropping of BAdv for Rubicon Adapter (#1254)

* Add Cropping of BAdv for Rubicon Adapter

BAdv size is limited to 50

* Fix after review

Co-authored-by: Harbar Dmytro <dharbar@rubiconproject.com>

* Added metrics support to endpoint aspect (#1226)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Prebid Server adapter for Telaria (#1231)

* TELARIA adapter. First Pass

* Some refactoring

* added the json files

* fixed some tests and added the bidder info

* fixed some tests and added the bidder info

* added default user sync ur;

* - Handling gzipped responses from our server

* - more refactoring.

* added the proper user sync default URL

* changed the urls from dev to prod

* changed up the required fields. Now AdCode in the Imp.Ext isn't required but Bid.SeatCode is required

* change in the return type after decompressing

* some refactoring

* change in our config url

* using pbs.yml to switch between our production and test URLs

* setting default endpoint

* - fixed the issue that was preventing telaria test cases to run.
- added more test cases

* - Modifications as per the changes requested by the maintainers.

* Moved the seat code to imp.ext

* Moved the seat code to imp.ext

* Added 'Telaria: ' prefix for error messages

* - Fixes for race conditions. Was modifying the original request object instead of a copy

* cosmetic changes.

* added params_test.go

Co-authored-by: Vinay Prasad <vprasad@telaria.com>

* #615 Beachfront URLs from config (#1238)

* Add nil check errors when setting native asset types (#1260)

* Bugfix: no bids from bidder handling (#1252)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Add missing categories to AppNexus -> IAB mapping file. (#1264)

* Add missing categories to AppNexus -> IAB mapping file.

* Remove entry for category 38 which was set to a primary IAB category instead of a sub-category.

* Fix order of category 22

* Yieldone s2s Bid Adapter (#1242)

* Added new Yieldone Bid s2s Adapter

* Update endpoint for yieldone bid adapter

* Fixes after review for Yieldone Bid s2s Adapter

* Fix typeo in Yieldone s2s Bid Adapter

* Fix: URL de sync (#1261)

* populate the app ID in the FAN timeout notif url with the publisher ID (#1265)

and the auction with the request ID

Co-authored-by: Aadesh Patel <aadesh.patel@xandr.com>

* Added header User Agent decoding (#1268)

* Added header User Agent decoding

* Added header User Agent decoding: unit tests

* Added header User Agent decoding: unit tests

* Added check UA is encoded to avoid `+` converted to space

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Ad Generation Adapter Integration. (#1253)

* AdGeneration Integration.

* update AdGeneration adapter.
fix: some methods of the adgAdapter replace to functions.
fix: unmarshal functions return a pointer.
fix: header is defined once.
fix: return when imps is appended

* update AdGeneration Adapter.

add: Added a comment in usersync.
add: Added a test for parameters whose ID does not exist in params_test.
change: Change to query creation by net/url. Added getRawQuery Test.
fix: Changed variable names related to bidRequest.

* Fix Go 1.14 Error Message Changes (#1271)

* NinthDecimal Adapter (#1249)

Co-authored-by: Chandra Prakash <chandra.prakash@advangelists.com>

* * Add PubMatic bidder doc file (#1255)

* Add app video capability to PubMatic bidder info file

* Appnexus adapter: Add category mapping for government. (#1278)

* Update a Freewheel mapping to Gaming category. (#1280)

* Add AJA adapter (#1269)

* OpenX adapter: Pass gdpr and gdpr_consent to user sync endpoint (#1282)

I've also updated the test to avoid any confusion.

* OpenX adapter: Enable video for app (#1281)

* fix conversant sync pixel (#1284)

* Add AdOcean adapter (#1273)

* [ADOCEAN-20132] AdOcean adapter

* [ADOCEAN-20132] AdOcean adapter - support for gdpr

* [ADOCEAN-20132] AdOcean adapter - tests

* [ADOCEAN-20132] AdOcean adapter - user sync

* [ADOCEAN-20132] AdOcean adapter - formatting

* [ADOCEAN-20132] AdOcean adapter - send uuid to emitter

* [ADOCEAN-20132] adocean adapter - return nil if there is no creative

* [ADOCEAN-20132] AdOcean adapter - add version parameter

* [ADOCEAN-20132] AdOcean adapter - optimization

* [ADOCEAN-20132] AdOcean adapter - add to syncer_test.go

* [ADOCEAN-20132] AdOcean adapter - changes after review:
* remove whitespaces in js code on adapter initialization instead on every request
* check if request.Site is not nil
* reuse newUri variable

* [ADOCEAN-20132] AdOcean adapter - changes after review:
* do not terminate the auction on a single faulty bid

* [ADOCEAN-20132] AdOcean adapter - changes after review:
* remove unnecessary input parameters check
* small optimization

* LunaMedia Adapter (#1285)

Co-authored-by: Chandra Prakash <chandra.prakash@advangelists.com>

* [Sharethrough] Add CCPA support (#1263)

* Handle gzip responses from ad server correctly

* Bump to version 8

* [Go Modules] Add proxy (#1079)

* Add SSL cert for accessing stored request API (#1087)

* [misspell] fix a misspell (#1102)

* update static bidder params for rubicon video to follow the json marshalling names (#1100)

* Switching yieldmo auction endpoint from http to https (#1103)

* Add Datablocks Adapter (#1095)

* datablocks bid adapter

* ttx

* add test json

* add coverage

* redo ttx

* formatted

* better error handling

* additional tests and recomended fixes

* Adding translatecategories flag to includebrandcategory (#1098)

* Making IAB category translation optional with translatecategories boolean in request

* Updating exchange unit tests to remove extra bids

* Updates from code review comments

* Removed comment about default TranslateCategories value
* Changed translateCat to translateCategories in tests
* Combined helper functions in exchange_test related to TranslateCategories

* Bid floor (#1085)

* Currency handling fix (#1097)

* facebook adapter refactor (#1064)

* Kubient adapter (#1094)

* [synacormedia] Update user sync url to be https (#1115)

This detail was missed while setting up the adapter, but we would like to use https for the user sync.

* Remove Go 1.11 Build Target (#1109)

* Set "Secure" on Same SIte cookies (#1119)

* TripleliftNative Adapter (#1114)

* ignore swp files

* start small

* start really small

* add a user sync

* justify

* triplelift adapter

* add our endpoint

* fix syntax

* config stuff

* compiler fixes

* more config

* add params

* making progress

* make our ext more exty

* start making responses

* more logic

* fix compilation errors

* can we just nil this out?

* augment our json

* radically simplify our json

* fix errs

* infer the bid type

* fix syntax

* fix comilation errors

* rename

* fix compilation error

* config stuff

* simplify params

* more config stuff

* fixes

* revert this

* fix up the extension

* getting closer

* add a test

* update config

* update bidder params

* add the floor here, too

* add a usersync test

* validation, ws, and a test

* update tests

* fix test

* update email

* why not

* change email

* preprocess requests

* do some parsing

* take care of some errors

* floor is optional

* ws

* remove native

* everything is either banner or video

* this should be a float

* floor to floor

* fix compilation errors

* add some tests

* more tests

* more tests

* simplify

* more progress

* format

* ws

* rm

* don't need this

* fix test

* fix test

* don't ignore swap

* change line back

* report an error if there are no valid impressions for triplelift

* check for either a Banner or Video object on the impression

* more tests

* mv

* more tests

* update triplelift end point

* send native

* ws

* start changing tests

* fix more tests

* update config

* add redirect to triplelift usersync

* fix supplier id in triplelift_test

* update tl usersync endpoint and test

* fix tl supplier id in test json

* update usersync test template

* adjust inconsistency with test and sync url

* mv

* update packages

* mv

* mv

* update

* fix compilation errors

* rename

* rename some stuff

* rename

* rename

* fix some compilation errors

* ws

* ws

* add the extra info

* add some extra info

* add some files back

* ws and such

* updates

* ws

* fix compilation error

* mv

* rename

* Revert "rename"

This reverts commit 1b77c72e1eeee580148540fbdd880e70bf699709.

* Revert "mv"

This reverts commit 52a134ddfaf531fe6235e4751935d4266a36e78f.

* it builds

* cp a file

* cp another file

* fix a test

* fix test

* add the extra info

* ws

* add some logic

* edit comment

* it compiles

* this is now public

* call this

* add the function

* return nil

* seems to be working

* ws

* seems to be working

* ws

* mv

* starting to work

* ws

* add a new function

* ws

* fix tests

* bug fix

* update some stuff

* revert

* take out prints

* fix up diff

* fix up diff

* update ws

* fix

* ws

* omit the triplelift endppint

* Revert "omit the triplelift endppint"

This reverts commit 7abc3e46f0fbba39041da6fff7bb2335adc1fece.

* populate the endpoint through the extinfo

* ws

* set disabled to be default

* ws

* update types

* fixing tests

* making progres

* fix tests

* fix tests

* more fixes for tests

* fixed tests

* just use a comment

* get rid of endpoint

* restore endpoint

* add some errors around unmarshalling

* ws

* ws

* use the literal

* ws

* ws

* update json

* simplify

* ws

* restore tests

* fail fast when grabbing invcode

* use the right type

* use a different error type

* bump code coverage

* add a new test

* change error type

* ws

* break out test into its own function

* JSON block that has a full data-center specific URL cache info (#1104)

* Update Dockerfile and Makefile  (#1099)

* Add option for running tests as part of the docker image building

* Update Makefile

- Add ability to execute adapter specific tests
- Execute targets for "all" rather than just printing the target name and usage
- Remove use of non-existing "install" target from .PHONY targets
- Remove "build" as a dependency for "image"

* enable app requests for audience network (#1122)

* [docs] fix markdown title (#1124)

* Prometheus Refactor (#1108)

* update default sync url (#1127)

* Update sync url for BidderGrid adapter (#1120)

* [SonarCloud] Legacy auction endpoint (#1017)

* [currency converter] allow to deduce reverse rate (#1126)

This CL allows the currency rate currency to deduce a currency rate even
if not directly defined in the table but the reverse rate is present.

E.q.

USD => EUR is 1.0897
EUR => USD is not set

Old behavior when asking rate from EUR to USD will not be found,
New behavior is using the known reverse rate to deduce the rate.

Rate for 2 USD will be 2 * (1 / 1.0897)

* Updated handleError arguments to be pointers for video endpoint (#1128)

* Updated handleError arguments to be pointers for video endpoint

* Removing unneeded pointer to http.ResponseWriter

* Adding units test for update to handleError

* Revert changes to GetExtCacheData() made in #1104 (#1130) (#1131)

* Better native request validation (#1132)

* require the caller to define native assets[...].ID (#1123)

* require the caller to define native assets[...].ID

* Update assets-with-partial-ids.json

* CCPA Phase 1: AMP Endpoint (#1125)

* facebook: removed Auth-Token from header (replaced by authentication_id in the request body) (#1113)

* Setuid Fix (#1121)

* Update http refresh to use url builder. Fixes #1065 (#1133)

* Add mapping of user.ext.eids[] for LiveIntent in Rubicon bidder (#1089)

* support facebook app_secret config param (#1139)

* CCPA Phase 1: Cookie Sync (#1135)

* null check banner.h (#1142)

* Add Pubnative Adapter (#1134)

* Adding the passing of CCPA value to the bid request for video endpoint (#1143)

* first draft (#1137)

* CCPA Phase 2: Enforcement (#1138)

* Gamoshi Adapter: Update cookie sync (#1146)

* Simplify static/bidder-params/triplelift_native.json (#1152)

* Added US Privacy support in TheMediaGrid server adapter (#1147)

* Add TheMediaGrid server adapter

* Add video support in TheMediaGrid s2s adapter

* Update sync url for TheMediaGrid s2s adapter

* Added CCPA support for TheMediaGrid s2s adapter

* Fix sync url for TheMediaGrid adapter

* CCPA User Sync Updates (#1153)

* Marsmedia - add new bidder (#1118)

* Add Applogy adapter (#1151)

* enforce video.size_id for video imps in rubicon adapter (#1101)

* Updated PubMatic endpoint to use https (#1155)

* Update Example AppNexus Placement ID (#1160)

* Fix Currency Converter Doesn't Output CUR (#1154)

* Add custom JSON req/resp data to the analytics logging… (#1145)

* Add custom JSON req/resp data to the analytics logging for the /openrtb2/video endpoint.

* Add calls in unit tests to cover logging and jsonify of video object.

* CCPA User Sync URL Updates (#1157)

* Fixes audienceNetwork adapter ignoring banner.format sizes. (#1164)

* adding yieldmo vendor id to usersync (#1166)

* Add SmartRTB adapter (#1071)

* Added new adapter for CPMStar ad network banners and video (#1159)

* Update the Conversant sync pixel (#1161)

* Add imp.ext.is_rewarded_inventory flag for rewarded video in Rubicon (#1170)

* [currencies] fix GetInfo() null ref issue (#1169)

This CL fixes the null ref on `RateConverter.GetInfo()` when rates
are nil. Issue: #1136

* Fix triplelift User Sync (#1173)

* Enhance Message For Cache Errors (#1175)

* Fix PubMatic Usersync URL (#1178)

Co-authored-by: pm-isha-bharti <isha.bharti@pubmatic.com>

* [Synacormedia] Add tagId bidder parameter (#1165)

* Remove all non-secure calls from eplanning adapter (#1179)

* Expose Cache HTTP Settings (#1184)

* Adding bid rejection messages to debug response (#1181)

* Adds timeout notifications for Facebook (#1182)

* VIS.X: added app type support (#1194)

* Add Adoppler bidder support. (#1186)

* Add Adoppler bidder support.

* Address code review comments. Use JSON-templates for testing.

* Fix misprint; Add url.PathEscape call for adunit URL parameter.

* Adding support for deal prefixes (#1183)

* updating default hard-coded list of certs (#1201)

Co-authored-by: Shalmali Patil <shalmali.patil@pubmatic.com>

* add admixer adapter (#1195)

* Adding copying of gdpr consent string to openrtb bid request (#1189)

* Adding copying of gdpr consent string to openrtb bid request

* Updated video request to use OpenRTB Video and User objects

* Fixing unit test failure message

* Updates from code review comments

* Updating unit test initialization

* Updated mimes array construction

* fix conversant sync pixel (#1208)

* openx adapter: forward bid response currency in openx adapter if set (#1211)

it was always set to the default USD before

* add ucfunnel adapter (#1192)

* Update required params for TheMediaGrid adapter (#1188)

* add zeroclickfraud adapter (#1207)

* add zeroclickfraud adapter

* fixes for PR

* fix casing of Zeroclickfraud

* Fix Adform's parameters regex (#1214)

* Added adform info file

* Added Adform adapter and bidder

* Updates from master

* Removed usersyncInfo from Adform adapter. Inverted Imp type check.

* Removed excessive loop

* Updated with the last master

* Create readme file for adform

* Fix Adform's parameters regex

Motivation: catastrophic backtracking during regex execution

Details:
- https://regex101.com/r/NNQrWq/1
- string to check "url_domain:keskustelu.suomi24.fi,url_path:/matkailu/matkakohteet/aasia,layout:lg,categories:Matkailu,main_category:Matkailu"

Co-authored-by: v.statkevich <v.statkevich@adform.com>
Co-authored-by: Olga Linkevich <o.linkevich@adform.com>

* If Device.UA is not present in request body, init it with user-agent from header (#1219)

* If Device.UA is not present in request body, init it with user-agent from request header if it's present

* Moved User-Agent handler to parseVideoRequest func and added unit test

* Minor clean up

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Queued request timeout (#1217)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* docs: adding currency support section (#1199)

* Add ValueImpression Adapter (#1204)

* Kidoz adapter (#1210)

Co-authored-by: Ryan Haksi <ryan.haksi@freshgrade.com>

* Update auction.md (#1224)

Fix type

* Update auction.md (#1225)

Fix typo.

* Added logging to cache for video endpoint (#1220)

* WIP added logging to cache for video endpoint

* Updating cache call to use TTL from config

* Updates from initial feedback
* Log now includes HTTP headers
* Fixed caching to use a new cache entry rather than appending to the
VAST
* Added feature where is query is set, the test flag is set in the
request

* Updated recorded response and handleError

* Updates from code review comments

* Changed recorded output to be only the debug ext
* Removed extra marhal calls
* Changed cache to be an endpoint dependency
* Added debugLog struct to hold all debug related info
* Numerous smaller changes

* Further code cleanup and added unit tests for debug changes

* Added missing error checks

* Added unit test for error case

* added VISX vendor ID for usersyncing (#1229)

Co-authored-by: Aadesh Patel <aadesh.patel@xandr.com>

* First pass at phase 1 TCF 2.0 support (#1228)

* First pass at phase 1 TCF 2.0 support

* minor fixes

* Update go-gdpr library and fix stuff

* Fixes for PR comments

* Updated price granularity unmarshal to accept empty values and ranges (#1230)

* Update vendorID for TheMediaGrid s2s Bid Adapter (#1232)

* treat 204 from FAN as a no bids response (#1233)

Co-authored-by: Aadesh Patel <aadesh.patel@xandr.com>

* AMP CCPA Fix (#1187)

* Update rubicon.md (#1234)

* adding schain interface (#1203)

* added Rewarded Video section (#1200)

also edited all examples so they include the full openRTB context

* nanointeractive adapter (#1213)

* nanointeractive adapter

* nanointeractive adapter, changes after review

* nanointeractive adapter

* nanointeractive adapter, changes after review

* formatting

* Typos Fix (#1236)

* Fix Typo

* Fixed More Typos

* Moved hb_pc_cat_dur modification to be before caching (#1250)

* Handle CCPA + enable gzip response

[#169984259]

* Addressing review (#273)

[#169984259]

* Remove custom gzip logic  (#280)

* Getting rid of custom gzip logic

[#169984259]

* Restore prod ad server url

[#169984259]

Co-authored-by: Benjamin <b.chastanier@criteo.com>
Co-authored-by: guscarreon <guscarreon@gmail.com>
Co-authored-by: Aadesh <aadeshp95@gmail.com>
Co-authored-by: Winston-Yieldmo <46379634+Winston-Yieldmo@users.noreply.github.com>
Co-authored-by: htang555 <htang555@gmail.com>
Co-authored-by: Cameron Rice <37162584+camrice@users.noreply.github.com>
Co-authored-by: ah-tappx <46002207+ah-tappx@users.noreply.github.com>
Co-authored-by: hhhjort <31041505+hhhjort@users.noreply.github.com>
Co-authored-by: Marsel <taipovm@gmail.com>
Co-authored-by: Corey Kress <coreykre@buffalo.edu>
Co-authored-by: Scott Kay <noreply@syntaxnode.com>
Co-authored-by: Kevin Kerr <kkerr@triplelift.com>
Co-authored-by: Mansi Nahar <mansinahar@users.noreply.github.com>
Co-authored-by: Benjamin <benjamin.chastanier@gmail.com>
Co-authored-by: TheMediaGrid <44166371+TheMediaGrid@users.noreply.github.com>
Co-authored-by: Austin Bischoff <Austinb@users.noreply.github.com>
Co-authored-by: rpanchyk <rpanchyk@users.noreply.github.com>
Co-authored-by: Florian Hartwig <florian.hartwig@pubnative.net>
Co-authored-by: Salomon Rada <salomon@gamoshi.com>
Co-authored-by: vladi-mmg <vladi@m-m-g.com>
Co-authored-by: Aleksei Lin <aleksey@incsw.in>
Co-authored-by: PubMatic-OpenWrap <UOEDev@pubmatic.com>
Co-authored-by: jmaynardxandr <46759873+jmaynardxandr@users.noreply.github.com>
Co-authored-by: evanmsmrtb <evanm@smrtb.com>
Co-authored-by: CPMStar <josh@cpmstar.com>
Co-authored-by: johnwier <49074029+johnwier@users.noreply.github.com>
Co-authored-by: pm-isha-bharti <isha.bharti@pubmatic.com>
Co-authored-by: Seba Perez <sperez@est.frba.utn.edu.ar>
Co-authored-by: Michael Kuryshev <mk0x9@users.noreply.github.com>
Co-authored-by: Viacheslav Chimishuk <vchimishuk@yandex.ru>
Co-authored-by: Shalmali Patil <shalmali.patil@pubmatic.com>
Co-authored-by: DmitryStashkevich <34479135+DmitryStashkevich@users.noreply.github.com>
Co-authored-by: vstatkevich <v.statkevich@gmail.com>
Co-authored-by: v.statkevich <v.statkevich@adform.com>
Co-authored-by: Olga Linkevich <o.linkevich@adform.com>
Co-authored-by: Veronika Solovei <kalypsonika@gmail.com>
Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>
Co-authored-by: bretg <bgorsline@gmail.com>
Co-authored-by: thuyhq <61451682+thuyhq@users.noreply.github.com>
Co-authored-by: rhaksi-kidoz <61601767+rhaksi-kidoz@users.noreply.github.com>
Co-authored-by: Ryan Haksi <ryan.haksi@freshgrade.com>
Co-authored-by: ACannuniRP <57228257+ACannuniRP@users.noreply.github.com>
Co-authored-by: Aadesh Patel <aadesh.patel@xandr.com>
Co-authored-by: Rade Popovic <32302052+nanointeractive@users.noreply.github.com>

* Remove Outdated GDPR AMP Special Case (#1283)

* Stricter Privacy Scrubbing (#1286)

* Stricter Privacy Scrubbing

* Update Unit Test Style

* Fixed Whitespace

* Add Adapter Orbidder (#1275)

Co-authored-by: Volk, Rainer <Rainer.Volk@otto.de>
Co-authored-by: RainerVolk4014 <53347752+RainerVolk4014@users.noreply.github.com>
Co-authored-by: rvolk <>
Co-authored-by: Hendrik Iseke <hendrik.iseke@gmx.de>
Co-authored-by: hendrikiseke1979 <53309111+hendrikiseke1979@users.noreply.github.com>

* Added OpenX Bidder adapter documentation (#1291)

* OpenX adapter: Pass rewarded video flag (#1290)

* Bugfix for missing fields in imp.video (#1297)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Add cpmOverride (#1289)

* Add cpmOverride

Enabled `request.ext.rubicon.debug.cpmOverride` and `request.imp[].ext.rubicon.debug.cpmOverride` processing.
Updates tests

* Remove unnecessary error checks and add shallow copy

* Fixed same pointer

* Add Beintoo adapter (#1274)

* Add Beintoo adapter

* Yeahmobi adapter (#1279)

Co-authored-by: junping.zhao <junping.zhao@yeahmobi.com>

* advangelists: Vendor id update (#1307)

Co-authored-by: Chandra Prakash <chandra.prakash@advangelists.com>

* Consumable: Support GDPR and US Privacy consent (#1300)

* Restore the AMP privacy exception as an option. (#1311)

* Restore the AMP privacy exception as an option.

* Adds missing test case

* More PR feedback

* Remove unused constant

* Comment tweak

* consumable: Correct GDPR vendor ID to 591. (#1309)

fixes #1299.

* VIS.X: fix bid.ID, bid.CrID and set default currency value (#1296)

* Fix debug log error messages (#1270)

* Fixing missing error messages for debug logging

* Updated formatting of debug log message

* Updated unit tests for debug log to have test flag enabled

* Cleaned up debug log implementation

* Updates from review comments

* Cleaned up field and function names
* Added replacer for <> characters
* Added cache string unit test

* Moved regex from function to struct field

* Moved debug regex to endpoint deps

* Moving regex initialization to NewVideoEndpoint

* MobileFuse Adapter (#1303)

Co-authored-by: Dan Barnett <danb@mobilefuse.com>

* eplanning: Support for apps (#1306)

* Introduce Adhese adapter (#1292)

Co-authored-by: Mateusz <mateusz@adhese.eu>

* privacy: Potential JSON injection (#1304)

* Updating bidder params for Advangelists (#1316)

* Updating placement info on bidder params

Co-authored-by: Chandra Prakash <chandra.prakash@advangelists.com>

* Change placement of cpmoverride for Rubicon (#1310)

* increasing the stale period to 2 months (#1305)

* Add Go 1.14 Build Target (#1314)

* Privacy: Remove user.ext.eids (#1294)

* Privacy: Remove user.ext.eids

* Extract To A Method

* Minor Refactor + More Tests

* Performance Tweak

* Removed some redundant methods (#1320)

* TELARIA adapter. First Pass

* Some refactoring

* added the json files

* fixed some tests and added the bidder info

* fixed some tests and added the bidder info

* added default user sync ur;

* - Handling gzipped responses from our server

* - more refactoring.

* added the proper user sync default URL

* changed the urls from dev to prod

* changed up the required fields. Now AdCode in the Imp.Ext isn't required but Bid.SeatCode is required

* change in the return type after decompressing

* some refactoring

* change in our config url

* using pbs.yml to switch between our production and test URLs

* setting default endpoint

* - fixed the issue that was preventing telaria test cases to run.
- added more test cases

* - Modifications as per the changes requested by the maintainers.

* Moved the seat code to imp.ext

* Moved the seat code to imp.ext

* Added 'Telaria: ' prefix for error messages

* - Fixes for race conditions. Was modifying the original request object instead of a copy

* cosmetic changes.

* added params_test.go

* Removed some redundant methods.

* Removed a comment

Co-authored-by: Vinay Prasad <vprasad@telaria.com>

* Beachfront: GDPR id (issue 1301) and documentation updates (#1321)

* Defined cookie sync URL in config, cleared deprecated comment in usersync

* Update beachfront.md

* editing documentation

* updated gdpr id - issue 1301

* Add Yieldlab Adapter (#1287)

Co-authored-by: Mirko Feddern <mirkorean@users.noreply.github.com>
Signed-off-by: Alex Klinkert <alex@klinkert.io>

Co-authored-by: Alexander Pinnecke <alexander.pinnecke@googlemail.com>
Co-authored-by: Alex Klinkert <alex@klinkert.io>
Co-authored-by: Mirko Feddern <mirkorean@users.noreply.github.com>

* Update adtelligent ortb endpoint (#1318)

* Change on eplanning endpoint (#1327)

* Enable full TCF2 support (#1302)

* New config options

* Enble TCF2 fields and logic

* Resolves some PR comments

* More tests

* gofmt

* Added enforcement tests for split GDPR/GDPRGeo

* Testing tweaks

* No longer ignore enforce purpose 1 on allowSync()

* Removes Purpose 4

* Change on eplanning endpoint (hostname) (#1328)

* Districtm Dmx: new adapter  (#1209)

Co-authored-by: steve-a-districtm <steve@districtm.net>

* Fix sync url for Yieldone s2s Bid Adapter (#1336)

* Fix typo in Yieldone sync url

* CCPA Video Bug (#1333)

* Add Pubnative bidder documentation (#1340)

* Timeout notification monitoring and debugging (#1322)

* Add Adtarget server adapter (#1319)

* Add Adtarget server adapter

* Suggested changes for Adtarget

* Update Auction OpenRTB Sample (#1342)

* Update Auction OpenRTB Sample

* Removed Extra "Or"

* Triplelift: Add SRA Support (#1347)

* Privacy: Limit Ad Tracking (#1334)

* Avoid overriding AMP request original size with mutli-size (#1352)

* Extra logging for timeout notifications (#1349)

* Consumable: Correct bid type, should always be "banner". (#1359)

* Build With Go 1.14 (#1350)

* Category mapping changes from product team. (#1348)

* Adds Avocet adapter (#1354)

* AdOcean adapter - Support for sizes defined in prebid configuration. (#1339)

support for multiple sizes

bump version to 1.1.0

* Log account id and all bidder names when recovering from OpenRTB auction bidder… (#1358)

* Adding Smartadserver adapter (#1346)

Co-authored-by: tadam <tadam@smartadserver.com>

* Added additional Ext Param (#1357)

Co-authored-by: Vinay Prasad <vprasad@telaria.com>

* Adman adapter (#1356)

Co-authored-by: Aiholkin <artem.iholkin@smartyads.com>

* PBS-632 add max connections per host config setting to general http a… (#1366)

* Add ext.bidder.zoneid for Kubient adapater (#1367)

* Add ext.bidder.zoneid for Kubient adapater

* Check the number of Imps. zoneid is optional.

* Improved IPv6 Support + Private Network Filtering (#1362)

* Change endpont address (#1370)

* Adman adapter

* add adman line to syner test

* add tests

* fix issues

* fix web banner test

* add 404 banner

* fmt

* rase coverage

* del redundant files

* change endpont address

* change config endpoint

Co-authored-by: Aiholkin <artem.iholkin@smartyads.com>

* Don't override test parameter (#1373)

* OpenX + Facebook Hardening (#1368)

* Updating Conversant endpoint url (#1376)

* Metrics for TCF 2 adoption (#1360)

* Fall back to constant rates when the currency rates endpoint i… (#1364)

* TheMediaGrid: added app type support (#1377)

* user.ext.eids support in adform adapter (#1381)

* Add Logicad adapter (#1382)

* Fix Previous Merge Conflict (#1392)

* Kubient: Change default endpont address (#1398)

* Add support for multiple root schain nodes (#1374)

* Update endpoint for latest release by districtm (#1401)

Co-authored-by: steve-a-districtm <steve@districtm.net>

* Set OpenRTB DNT From HTTP Header (#1397)

* Add video for InApp support (#1399)

* Timeout fix (#1390)

* Privacy Request Metrics (#1400)

* Privacy Request Metrics

* Fix Bug + Add Unit Tests

* Fixed Tests

* Fix Typo

* Parse Site.Publisher.ID from Amp Auction HTTP Req Query Parameter "account" (#1403)

* Facebook Only Supports App Impressions (#1396)

* fix: Change currency of ad-generation's bidResponse according to bidRequest (#1383)

* Adding primary categories to freewheel mapping (#1407)

* Add Outgoing Connection Metrics (#1343)

* Pubmatic: Support for video duration and primary category (#1384)

* Adding suport for video duration and primary category in pubmatic adapter

* Adding code review changes for PR-1384

* Adding changes for syntaxNode suggestion

Co-authored-by: Isha Bharti <isha.bharti@pubmatic.com>

* Add IPv6 Non-Public Network (#1417)

* GumGum: adds support for video (#1408)

* OpenX adapter: pass optional platform (PBID-598) (#1421)

* Adds keyvalue hb_format support (#1414)

* feat: Add new logger module - Pubstack Analytics Module (#1331)

* Pubstack Analytics V1 (#11)

* V1 Pubstack (#7)

* feat: Add Pubstack Logger (#6)

* first version of pubstack analytics

* bypass viperconfig

* commit #1

* gofmt

* update configuration and make the tests pass

* add readme on how to configure the adapter and update the network calls

* update logging and fix intake url definition

* feat: Pubstack Analytics Connector

* fixing go mod

* fix: bad behaviour on appending path to auction url

* add buffering

* support bootstyrap like configuration

* implement route for all the objects

* supports termination signal handling for goroutines

* move readme to the correct location

* wording

* enable configuration reload + add tests

* fix logs messages

* fix tests

* fix log line

* conclude merge

* merge

* update go mod

Co-authored-by: Amaury Ravanel <amaury.ravanel@gmail.com>

* fix duplicated channel keys

Co-authored-by: Amaury Ravanel <amaury.ravanel@gmail.com>

* first pass - PR reviews

* rename channel* -> eventChannel

* dead code

* Review (#10)

* use json.Decoder

* update documentation

* use nil instead []byte("")

* clean code

* do not use http.DefaultClient

* fix race condition (need validation)

* separate the sender and buffer logics

* refactor the default configuration

* remove error counter

* Review GP + AR

* updating default config

* add more logs

* remove alias fields in json

* fix json serializer

* close event channels

Co-authored-by: Amaury Ravanel <amaury.ravanel@gmail.com>

* fix race condition

* first pass (pr reviews)

* refactor: store enabled modules into a dedicated struct

* stop goroutine

* test: improve coverage

* PR Review

* Revert "refactor: store enabled modules into a dedicated struct"

This reverts commit f57d9d61680c74244effc39a5d96d6cbb2f19f7d.

# Conflicts:
#	analytics/config/config_test.go

Co-authored-by: Amaury Ravanel <amaury.ravanel@gmail.com>

* New bid adapter for Smaato (#1413)

Co-authored-by: vikram <vikram.chandel@smaato.com>
Co-authored-by: Stephan <s@brosinski.com>

* New Adprime adapter (#1418)

Co-authored-by: Aiholkin <artem.iholkin@smartyads.com>

* Separate "debug" behavior from "billable" behavior (#1387)

* Remove redundad struct (#1432)

* Tcf2 id support (#1420)

* Default TCF1 GVL in anticipation of IAB no longer hosting the v1 GVL (#1433)

* update to the latest go-gdpr release (#1436)

* Video endpoint bid selection enhancements (#1419)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* [WIP] Bid deduplication enhancement (#1430)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Refactor rate converter separating scheduler from converter logic to improve testability (#1394)

* Fix TCF1 Fetcher Fallback (#1438)

* UOE-5440: Changes for capturing Pod algorithm execution time using pbmetrics (#65)

* Added function getPrometheusRegistry()

* Exported function GetPrometheusRegistry

* UOE-5440: Capturing execution time in nanoseconds for algorithms

* UOE-5440: Changes for prometheus algorithem metrics for pod using pbsmetrics

* UOE-5440: Test cases for prometheus

* UOE-5440: Added test cases

* UOE-5440: Changing buckets

* UOE-5440: changes in pbsmetrics for newly added metrics

Co-authored-by: Sachin Survase <sachin.survase@pubmatic.com>
Co-authored-by: PubMatic-OpenWrap <UOEDev@pubmatic.com>
Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* UOE-5440: Fixed the Unit test issues (#72)

Fixed unit test issues 
Co-authored-by: Sachin Survase <sachin.survase@pubmatic.com>
Co-authored-by: PubMatic-OpenWrap <UOEDev@pubmatic.com>
Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* Eplanning adapter: Get domain from page (#1434)

* Fix no bid debug log (#1375)

* Update the fallback GVL to last version (#1440)

* UOE-5511 Support for skadnetwork in pubmatic (#73)

Co-authored-by: Isha Bharti <isha.bharti@pubmatic.com>

* Enable geo activation of GDPR flag (#1427)

* Validate External Cache Host  (#1422)

* first draft

* Little tweaks

* Scott's review part 1

* Scott's review corrections part 2

* Scotts refactor

* correction in config_test.go

* Correction and refactor

* Multiple return statements

* Test case refactor

Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-12-170.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-12-23.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@Guss-MacBook-Pro.local>

* Fixes bug (#1448)

* Fixes bug

* shortens list

* Added adpod_id to request extension (#1444)

* Added adpod_id to request -> ext -> appnexus and modified requests splitting based on pod

* Unit test fix

* Unit test fix

* Minor unit test fixes

* Code refactoring

* Minor code and unit tests refactoring

* Unit tests refactoring

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* Adform adapter: additional targeting params added (#1424)

* Fix minor error message spelling mistake "vastml" -> "vastxml" (#1455)

* Fixing comment for usage of deal priority field (#1451)

* moving docs to website repo (#1443)

* Fix bid dedup (#1456)

Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>

* consumable: Correct width and height reported in response. (#1459)

Prebid Server now responds with the width and height specified in
the Bid Response from Consumable. Previously it would reuse the width
and height specified in the Bid Request. That older behaviour was
ported from an older version of the prebid.js adapter but is no longer
valid.

* Panics happen when left with zero length []Imp (#1462)

* Add Scheme Option To External Cache URL (#1460)

* Update gamma adapter (#1447)

* Gamma SSP Adapter

* Add Gamma SSP server adapter

* increase coverage

* Fix conflict with base master

* Add check MediaType for Imp

* Implement  Multi Imps request

* Changes requested

* remove bad-request

* increase coverage

* Remove duplicate test file

* Update gamma.go

* Update gamma.go

* Update gamma.go

* Update config.go

Remove Gamma User Sync Url from config

* Gamma SSP Adapter

* Add Gamma SSP server adapter

* increase coverage

* Fix conflict with base master

* Add check MediaType for Imp

* Implement  Multi Imps request

* Changes requested

* remove bad-request

* increase coverage

* Remove duplicate test file

* Update gamma.go

* Update gamma.go

* update gamma adapter

* return nil when have No-Bid Signaling

* add missing-adm.json

* discard the bid that's missing adm

* discard the bid that's missing adm

* escape vast instead of encoded it

* expand test coverage

Co-authored-by: Easy Life <ezlife.ga@gmail.com>

* fix: avoid unexpected EOF on gz writer (#1449)

* Smaato adapter: support for video mediaType (#1463)

Co-authored-by: vikram <vikram.chandel@smaato.com>

* Resolved merge issues

* Rubicon liveramp param (#1466)

Add liveramp mapping to user.ext

should translate the "liveramp.com" id from the "user.ext.eids" array to "user.ext.liveramp_idl" as follows:

```
{
  "user": {
    "ext": {
      "eids": [{
        "source": 'liveramp.com',
        "uids": [{
          "id": "T7JiRRvsRAmh88"
        }]
      }]
    }
  }
}
```

 to XAPI:
```
{
  "user": {
    "ext": {
      "liveramp_idl": "T7JiRRvsRAmh88"
    }
  }
}
```

* Consolidate StoredRequest configs, add validation for all data types (#1453)

* Fix Test TestEventChannel_OutputFormat (#1468)

* Add ability to randomly generate source.TID if empty and set publisher.ID to resolved account ID (#1439)

* Add support for Account configuration (PBID-727, #1395) (#1426)

* Minor changes to accounts test coverage (#1475)

* Brightroll adapter - adding config support (#1461)

* Refactor TCF 1/2 Vendor List Fetcher Tests (#1441)

* BugID:OTT-17 First Commit

* Add validation checker for PRs and merges with github actions (#1476)

* Cache refactor (#1431)

Reason: Cache has Fetcher-like functionality to handle both requests and
imps at a time. Internally, it still uses two caches configured and searched
separately, causing some code repetition. Reusing this code to cache
other objects like accounts is not easy.

Keeping the req/imp repetition in fetcher and out of cache allows for a
reusable simpler cache, preserving existing fetcher functionality.

Changes in this set:

Cache is now a simple generic id->RawMessage store
fetcherWithCache handles the separate req and imp caches
ComposedCache handles single caches - but it does not appear to be used
Removed cache overlap tests since they do not apply now
Slightly less code

* Pass Through First Party Context Data (#1479)

* Added new size 640x360 (Id: 198) (#1490)

* Refactor: move getAccount to accounts package (from openrtb2) (#1483)

* OTT-18: moved VideoAuction to selector pattern. This  required for mocking PBS response (#76)

Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* Fixed TCF2 Geo Only Enforcement (#1492)

* New colossus adapter [Clean branch] (#1495)

Co-authored-by: Aiholkin <artem.iholkin@smartyads.com>

* New: InMobi Prebid Server Adapter (#1489)

* Adding InMobi adapter

* code review feedback, also explicitly working with Imp[0], as we don't support multiple impressions

* less tolerant bidder params due to sneaky 1.13 -> 1.14+ change

* Revert "Added new size 640x360 (Id: 198) (#1490)" (#1501)

This reverts commit fa23f5c226df99a9a4ef318100fdb7d84d3e40fa.

* CCPA Publisher No Sale Relationships (#1465)

* Fix Merge Conflict (#1502)

* Update conversant adapter for new prebid-server interface (#1484)

* Implement returnCreative (#1493)

* Working solution

* clean-up

* Test copy/paste error

Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-12-23.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@Guss-MacBook-Pro.local>

* OTT-24: Basic support for sorting the deal bids in forming the final ad pod response

* ConnectAd S2S Adapter (#1505)

* between adapter (#1437)

Co-authored-by: Alexey Elymanov <elymanov@betweenx.com>

* Invibes adapter (#1469)

Co-authored-by: aurel.vasile <vaurels@yahoo.com>

* OTT-24: Added changes around https://github.com/prebid/prebid-server/issues/1503 (Proposal for Prebid Server)

* Refactor postgres event producer so it will run either the full or de… (#1485)

* Refactor postgres event producer so it will run either the full or delta query periodically

* Minor cleanup, follow golang conventions, declare const slice, add test cases

* Remove comments

* Bidder Uniqueness Gatekeeping Test (#1506)

* OTT-27, OTT-32 Supporting Deal Prioritization for CTV

* ucfunnel adapter update end point (#1511)

* Refactor EEAC map to be more in line with the nonstandard publisher map (#1514)

* Added bunch of new sizes (#1516)

* New krushmedia bid adapter (#1504)

* Invibes: Generic domainId parameter (#1512)

* Smarty ads adapter (#1500)

Co-authored-by: Kushneryk Pavlo <pavel.k@smartyads.com>
Co-authored-by: user <support@smartyads.com>

* Add vscode remote container development files (#1481)

* First commit (#1510)

Co-authored-by: Gus Carreon <gcarreongutierrez@appnexus.com>

* UOE-5616: Support wiid in pubmatic (#77)

Co-authored-by: Isha Bharti <isha.bharti@pubmatic.com>

* Vtrack and event endpoints (#1467)

* Rework pubstack module tests to remove race conditions (#1522)

* Rework pubstack module tests to remove race conditions

* PR feedback

* Remove event count and add helper methods to assert events received on channel

* Updating smartadserver endpoint configuration. (#1531)

Co-authored-by: tadam <tadam@smartadserver.com>

* Add new size 500x1000 (ID: 548) (#1536)

* Fix missing Request parameter for Adgeneration Adapter (#1525)

* Fix endpoint url for TheMediaGrid Bid Adapter (#1541)

* Add Account cache (#1519)

* Add bidder name key support (#1496)

* Simplifying exchange module: bidResponseExt gets built anyway (#1518)

* first draft

* Scott's feedback

* stepping out real quick

* add cache errors to bidResponseExt before marshalling

* Removed vim's swp file

Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-12-23.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-10-44.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@Guss-MacBook-Pro.local>

* Correct GetCpmStringValue's second return value (#1520)

* Add metrics to capture stored data fetch all/delta durations with fetch status (#1515)

* Adds preferDeals support (#1528)

* OTT-29 Fixing Skip Dedup Map Issue

* Emxd 3336 add app video ctv (#1529)

* Adapter changes for app and video support

* adding ctv devicetype test case

* Adding whitespace

* Updates based on feedback from Prebid team

* protocol bug fix and testing

* Modifying test cases to accomodate new imp.ext field

* bidtype bug fix and additonal testcase for storeUrl

Co-authored-by: Rakesh Balakrishnan <Rakesh.Balakrishnan@emxdigital.com>
Co-authored-by: Dan Bogdan <daniel.bogdan@emxdigital.com>

* Add http api for fetching accounts (#1545)

* Add missing postgres cache init config validation

* Acuity ads adapter (#1537)

Co-authored-by: Kushneryk Pavlo <pavel.k@smartyads.com>

* Yieldmo app support in yaml file (#1542)

Co-authored-by: Winston <wiston@yieldmo.com>

* Add metrics for account cache (#1543)

* OTT-29 Adding Video Duration in hb_pb_cat_dur key
OTT-29 Fixing Skip Dedup Map Issue

* OTT-9 Adding Duration in hb_pb_cat_dur field

* [Invibes] remove user sync for invibes (#1550)

* [invibes] new bidder stub

* [invibes] make request

* [invibes] bid request parameters

* [invibes] fix errors, add tests

* [invibes] new version of MakeBids

* cleaning code

* [invibes] production urls, isamp flag

* [invibes] fix parameters

* [invibes] new test parameter

* [invibes] change maintainer email

* [invibes] PR fixes

* [invibes] fix parameters test

* [invibes] refactor endpoint template and bidVersion

* [Invibes] fix tests

* [invibes] resolve PR

* [invibes] fix test

* [invibes] fix test

* [invibes] generic domainId parameter

* [invibes] remove invibes cookie sync

* [Invibes] comment missing Usersync

Co-authored-by: aurel.vasile <vaurels@yahoo.com>

* Add Support For imp.ext.prebid For DealTiers (#1539)

* Add Support For imp.ext.prebid For DealTiers

* Remove Normalization

* Add Accounts to http cache events (#1553)

* OTT-9 : (OTT-45) Added logger and prometheus metrics to capture bid.id collisions (#85)


* OTT-45: Added logger and Prometheus metrics to capture bid.id collisions (#84)
Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* Fix JSON tests ignore expected message field (#1450)

* NoBid version 1.0. Initial commit. (#1547)

Co-authored-by: Reda Guermas <reda.guermas@nobid.io>

* Added dealTierSatisfied parameters in exchange.pbsOrtbBid and openrtb_ext.ExtBidPrebid and dealPriority in openrtb_ext.ExtBidPrebid  (#1558)

Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* UOE-5745 changes for consuming rewarded inventory flag in PubMatic adapter

* Add client/AccountID support into Adoppler adapter. (#1535)

* Optionally read IFA value and add it the the request url (Adhese) (#1563)

* Add AMX RTB adapter (#1549)

* UOE-5745 adding a test input file for rewarded video case

* UOE-5745: removing commented code

* update Datablocks usersync.go (#1572)

* 33Across: Add video support in adapter (#1557)

* SilverMob adapter (#1561)

* SilverMob adapter

* Fixes andchanges according to notes in PR

* Remaining fixes:
multibids, expectedMakeRequestsErrors

* removed log

* removed log

* Multi-bid test

* Removed unnesesary block

Co-authored-by: Anton Nikityuk <antony.sq@gmail.com>

* Updated ePlanning GVL ID (#1574)

* update adpone google vendor id (#1577)

* ADtelligent gvlid (#1581)

* Add account/ host GDPR enabled flags & account per request type GDPR enabled flags (#1564)

* Add account level request type specific and general GDPR enabled flags

* Clean up test TestAccountLevelGDPREnabled

* Add host-level GDPR enabled flag

* Move account GDPR enable check as receiver method on accountGDPR

* Remove mapstructure annotations on account structs

* Minor test updates

* Re-add mapstructure annotations on account structs

* Change RequestType to IntegrationType and struct annotation formatting

* Update comment

* Update account IntegrationType comments

* Remove extra space in config/accounts.go via gofmt

* DMX Bidfloor fix (#1579)

* adform bidder video bid response support (#1573)

* Fix Beachfront JSON tests (#1578)

* Add account CCPA enabled and per-request-type enabled flags (#1566)

* Add account level request-type-specific and general CCPA enabled flags

* Remove mapstructure annotations on CCPA account structs and clean up CCPA tests

* Adjust account/host CCPA enabled flag logic to incorporate feedback on similar GDPR feature

* Add shared privacy policy account integration data structure

* Refactor EnabledForIntegrationType methods on account privacy objects

* Minor test refactor

* Simplify logic in EnabledForIntegrationType methods

* Refactored HoldAuction Arguments (#1570)

* Fix bug in request.imp.ext Validation (#1575)

* First draft

* Brian's reivew

* Removed leftover comments

Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-10-44.nym2.appnexus.com>

* Updating import statements for v0.138.0 upgrade

* OTT-66 Selecting DealBids over Normal Bids for CTV Requests

* OTT-64: ctv auction module will now  populate hb_pb and hb_pb_cat_dur… (#89)

* OTT-64: ctv auction module will now  populate hb_pb and hb_pb_cat_dur (in case supportdeals=true)
Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* OTT-67: Added functionality to prefer using actual video ad duration  (#90)

* OTT-67: Added functionality to prefer using video ad duration returned by the bidder.
If it is 0 or any error is occurred in determining it then the impression-level max duration value
will be used.

Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* OTT-71: (CI) Add stats collecting information around the actual Ad duration (#93)

* OTT-71: added new metrics adapter_vidbid_dur

* OTT-71: Added new metric

* OTT-71: Reverted with master changes

* OTT-71: Added missing method in mock. Refatored testcase data structure

* OTT-71: Corrected unit tests and addressed code review comments

* OTT-71: Removed unwanted method and comment

* OTT-71: Corrected the comment

Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>

* UOE-5690: Fixing merging issues

* UOE-5690 Fixing merging issues

* prebid-server v0.138 upgrade: fixing merging issue

* Prebid-upgrade Fixing test cases

* Prebid-server upgrade: removing unwanted files

* prebid-server upgrade: fixing formating issue

Co-authored-by: bretg <bgorsline@gmail.com>
Co-authored-by: Dmitriy <DimaGarbar49@gmail.com>
Co-authored-by: Harbar Dmytro <dharbar@rubiconproject.com>
Co-authored-by: Veronika Solovei <kalypsonika@gmail.com>
Co-authored-by: Veronika Solovei <veronika.solovei@xandr.com>
Co-authored-by: Telaria Engineering <36203956+telariaEng@users.noreply.github.com>
Co-authored-by: Vinay Prasad <vprasad@telaria.com>
Co-authored-by: Krzysztof Desput <dowlander@gmail.com>
Co-authored-by: Mansi Nahar <mansinahar@users.noreply.github.com>
Co-authored-by: jmaynardxandr <46759873+jmaynardxandr@users.noreply.github.com>
Co-authored-by: hbanalytics <55453525+hbanalytics@users.noreply.github.com>
Co-authored-by: chino117 <chino117@hotmail.com>
Co-authored-by: Aadesh <aadeshp95@gmail.com>
Co-authored-by: Aadesh Patel <aadesh.patel@xandr.com>
Co-authored-by: Ad Generation <AdGeneration@users.noreply.github.com>
Co-authored-by: Scott Kay <noreply@syntaxnode.com>
Co-authored-by: trchandraprakash <47793448+trchandraprakash@users.noreply.github.com>
Co-authored-by: Chandra Prakash <chandra.prakash@advangelists.com>
Co-authored-by: Mike Chowla <mchowla@gmail.com>
Co-authored-by: Taiki Sakamoto <godgourd@gmail.com>
Co-authored-by: Laurentiu Badea <laurb9@users.noreply.github.com>
Co-authored-by: johnwier <49074029+johnwier@users.noreply.github.com>
Co-authored-by: Marcin Muras <47107445+mmuras@users.noreply.github.com>
Co-authored-by: Mathieu Pheulpin <mpheulpin@sharethrough.com>
Co-authored-by: Benjamin <b.chastanier@criteo.com>
Co-authored-by: guscarreon <guscarreon@gmail.com>
Co-authored-by: Winston-Yieldmo <46379634+Winston-Yieldmo@users.noreply.github.com>
Co-authored-by: htang555 <htang555@gmail.com>
Co-authored-by: Cameron Rice <37162584+camrice@users.noreply.github.com>
Co-authored-by: ah-tappx <46002207+ah-tappx@users.noreply.github.com>
Co-authored-by: hhhjort <31041505+hhhjort@users.noreply.github.com>
Co-authored-by: Marsel <taipovm@gmail.com>
Co-authored-by: Corey Kress <coreykre@buffalo.edu>
Co-authored-by: Kevin Kerr <kkerr@triplelift.com>
Co-authored-by: Benjamin <benjamin.chastanier@gmail.com>
Co-authored-by: TheMediaGrid <44166371+TheMediaGrid@users.noreply.github.com>
Co-authored-by: Austin Bischoff <Austinb@users.noreply.github.com>
Co-authored-by: rpanchyk <rpanchyk@users.noreply.github.com>
Co-authored-by: Florian Hartwig <florian.hartwig@pubnative.net>
Co-authored-by: Salomon Rada <salomon@gamoshi.com>
Co-authored-by: vladi-mmg <vladi@m-m-g.com>
Co-authored-by: Aleksei Lin <aleksey@incsw.in>
Co-authored-by: evanmsmrtb <evanm@smrtb.com>
Co-authored-by: CPMStar <josh@cpmstar.com>
Co-authored-by: pm-isha-bharti <isha.bharti@pubmatic.com>
Co-authored-by: Seba Perez <sperez@est.frba.utn.edu.ar>
Co-authored-by: Michael Kuryshev <mk0x9@users.noreply.github.com>
Co-authored-by: Viacheslav Chimishuk <vchimishuk@yandex.ru>
Co-authored-by: Shalmali Patil <shalmali.patil@pubmatic.com>
Co-authored-by: DmitryStashkevich <34479135+DmitryStashkevich@users.noreply.github.com>
Co-authored-by: vstatkevich <v.statkevich@gmail.com>
Co-authored-by: v.statkevich <v.statkevich@adform.com>
Co-authored-by: Olga Linkevich <o.linkevich@adform.com>
Co-authored-by: thuyhq <61451682+thuyhq@users.noreply.github.com>
Co-authored-by: rhaksi-kidoz <61601767+rhaksi-kidoz@users.noreply.github.com>
Co-authored-by: Ryan Haksi <ryan.haksi@freshgrade.com>
Co-authored-by: ACannuniRP <57228257+ACannuniRP@users.noreply.github.com>
Co-authored-by: Rade Popovic <32302052+nanointeractive@users.noreply.github.com>
Co-authored-by: Arne Schulz <arne.schulz@otto.de>
Co-authored-by: Volk, Rainer <Rainer.Volk@otto.de>
Co-authored-by: RainerVolk4014 <53347752+RainerVolk4014@users.noreply.github.com>
Co-authored-by: Hendrik Iseke <hendrik.iseke@gmx.de>
Co-authored-by: hendrikiseke1979 <53309111+hendrikiseke1979@users.noreply.github.com>
Co-authored-by: Jimmy Tu <jimee02@users.noreply.github.com>
Co-authored-by: ddantuonobeintoo <58686785+ddantuonobeintoo@users.noreply.github.com>
Co-authored-by: zhaojp <327199034@qq.com>
Co-authored-by: junping.zhao <junping.zhao@yeahmobi.com>
Co-authored-by: Daniel Cassidy <mail@danielcassidy.me.uk>
Co-authored-by: dtbarne <7635750+dtbarne@users.noreply.github.com>
Co-authored-by: Dan Barnett <danb@mobilefuse.com>
Co-authored-by: Sander <sander@adhese.eu>
Co-authored-by: Mateusz <mateusz@adhese.eu>
Co-authored-by: Jim Naumann <muncha@users.noreply.github.com>
Co-authored-by: Mirko Feddern <3244291+mirkorean@users.noreply.github.com>
Co-authored-by: Alexander Pinnecke <alexander.pinnecke@googlemail.com>
Co-authored-by: Alex Klinkert <alex@klinkert.io>
Co-authored-by: Mirko Feddern <mirkorean@users.noreply.github.com>
Co-authored-by: Gena <wertixvost@gmail.com>
Co-authored-by: Steve Alliance <steve.alliance@gmail.com>
Co-authored-by: steve-a-districtm <steve@districtm.net>
Co-authored-by: Artur Aleksanyan <artur.aleksanyan89@gmail.com>
Co-authored-by: Brandon Ling <51931757+blingster7@users.noreply.github.com>
Co-authored-by: Richard Lee <14349+dlackty@users.noreply.github.com>
Co-authored-by: Simon Critchley <sicritchley@gmail.com>
Co-authored-by: Brian Sardo <1168933+bsardo@users.noreply.github.com>
Co-authored-by: tadam75 <adam.thomas@live.fr>
Co-authored-by: tadam <tadam@smartadserver.com>
Co-authored-by: SmartyAdman <59048845+SmartyAdman@users.noreply.github.com>
Co-authored-by: Aiholkin <artem.iholkin@smartyads.com>
Co-authored-by: Marsel <marsel.taipov@kubient.com>
Co-authored-by: AaronColbyPrice <67345931+AaronColbyPrice@users.noreply.github.com>
Co-authored-by: Jurij Sinickij <jurij.sinickij@gmail.com>
Co-authored-by: logicad <ytsuchiya@so-netmedia.jp>
Co-authored-by: Daniel Barrigas <danielgbarrigas@gmail.com>
Co-authored-by: susyt <susan@fox.camp>
Co-authored-by: gpolaert <gpolaert@pubstack.io>
Co-authored-by: Amaury Ravanel <amaury.ravanel@gmail.com>
Co-authored-by: Vikram <vikramsinghchandel@users.noreply.github.com>
Co-authored-by: vikram <vikram.chandel@smaato.com>
Co-authored-by: Stephan <s@brosinski.com>
Co-authored-by: Adprime <64427228+Adprime@users.noreply.github.com>
Co-authored-by: ShriprasadM <shriprasad.marathe@gmail.com>
Co-authored-by: Sachin Survase <sachin.survase@pubmatic.com>
Co-authored-by: Shriprasad <shriprasad.marathe@pubmatic.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-12-170.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-12-23.nym2.appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@Guss-MacBook-Pro.local>
Co-authored-by: Jurij Sinickij <jurij.sinickij@adform.com>
Co-authored-by: Rob Hazan <robhazan@gmail.com>
Co-authored-by: GammaSSP <35954362+gammassp@users.noreply.github.com>
Co-authored-by: Easy Life <ezlife.ga@gmail.com>
Co-authored-by: smithaammassamveettil <39389834+smithaammassamveettil@users.noreply.github.com>
Co-authored-by: Viral Vala <viral.vala@pubmatic.com>
Co-authored-by: hdeodhar <35999856+hdeodhar@users.noreply.github.com>
Co-authored-by: Bill Newman <huddled.masses1650@gmail.com>
Co-authored-by: Daniel Lawrence <Aether963@gmail.com>
Co-authored-by: rtuschkany <35923908+rtuschkany@users.noreply.github.com>
Co-authored-by: Alexey Elymanov <strangeqargo@gmail.com>
Co-authored-by: Alexey Elymanov <elymanov@betweenx.com>
Co-authored-by: invibes <51820283+invibes@users.noreply.github.com>
Co-authored-by: aurel.vasile <vaurels@yahoo.com>
Co-authored-by: ucfunnel <39581136+ucfunnel@users.noreply.github.com>
Co-authored-by: Krushmedia <71434282+Krushmedia@users.noreply.github.com>
Co-authored-by: Kushneryk Pavel <levelup.kpi@gmail.com>
Co-authored-by: Kushneryk Pavlo <pavel.k@smartyads.com>
Co-authored-by: user <support@smartyads.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@appnexus.com>
Co-authored-by: Gus Carreon <gcarreongutierrez@vpn-10-75-10-44.nym2.appnexus.com>
Co-authored-by: Dan Bogdan <43830380+EMXDigital@users.noreply.github.com>
Co-authored-by: Rakesh Balakrishnan <Rakesh.Balakrishnan@emxdigital.com>
Co-authored-by: Dan Bogdan <daniel.bogdan@emxdigital.com>
Co-authored-by: AcuityAdsIntegrations <72594990+AcuityAdsIntegrations@users.noreply.github.com>
Co-authored-by: Winston <wiston@yieldmo.com>
Co-authored-by: redaguermas <redaguermas@gmail.com>
Co-authored-by: Reda Guermas <reda.guermas@nobid.io>
Co-authored-by: Nick Jacob <nickbjacob@gmail.com>
Co-authored-by: Aparna Rao <pr.aparna@gmail.com>
Co-authored-by: silvermob <73727464+silvermob@users.noreply.github.com>
Co-authored-by: Anton Nikityuk <antony.sq@gmail.com>
Co-authored-by: Sergio <sergio.anru@gmail.com>
StarWindMoonCloud pushed a commit to ParticleMedia/prebid-server that referenced this pull request Jun 5, 2024
prebid#96)

* Update blocking_creatives.csv for smaato, pubnative, ix, mobilefuse, verve

Added the reason in the sheet : https://docs.google.com/spreadsheets/d/1yMkCPGW73MvmWpcqjGht-sYFy5JzjGgyDxbLj_ZqJCE/edit?userstoinvite=nithya.rajasekar@iopex.com&sharingaction=manageaccess&role=writer#gid=348519078

* Update blocking_creatives.csv

Removed the duplicates as suggested by Qili

* Update blocking_creatives.csv

Checked for all duplicates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants