This PR merges bidder-specific imp first party data into the applicable bidder request. After merging the imps are revalidated. If there is a validation error, it is considered a fatal error which means the auction is halted and the error is reported back to the client.
While attempting to implement merge and validation error handling, I noticed that several preexisting errors captured in
cleanOpenRTBRequests are actually swallowed and never reported to the client. Consequently, this also effects errors from failed imp FPD merges. In order to ensure imp FPD merge errors are made known to the client while avoiding a large general error handling refactor, I created an imp FPD merge error type with a fatal severity and detect when it occurs so I can halt the auction and send the error to the client.
Implements #2335
This PR merges bidder-specific imp first party data into the applicable bidder request. After merging the imps are revalidated. If there is a validation error, it is considered a fatal error which means the auction is halted and the error is reported back to the client.
While attempting to implement merge and validation error handling, I noticed that several preexisting errors captured in
cleanOpenRTBRequests
are actually swallowed and never reported to the client. Consequently, this also effects errors from failed imp FPD merges. In order to ensure imp FPD merge errors are made known to the client while avoiding a large general error handling refactor, I created an imp FPD merge error type with a fatal severity and detect when it occurs so I can halt the auction and send the error to the client.