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

Rubicon: Remove pchain support #4166

Merged

Conversation

AntoxaAntoxic
Copy link
Contributor

No description provided.

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, e3c1c0e

rubicon

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:176:	appendTrackerToUrl			87.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:192:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:204:	updateRequestTo26			92.3%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:229:	MakeRequests				79.9%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:537:	createImpsToExtMap			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:556:	prepareImpsToExtMap			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:575:	splitMultiFormatImp			61.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:612:	resolveBidFloor				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:620:	updateImpRpTarget			77.8%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:707:	extractDfpAdUnitCode			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:717:	isNotKeyPathError			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:721:	addStringAttribute			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:725:	addStringArrayAttribute			0.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:729:	updateUserRpTargetWithFpdAttributes	70.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:759:	updateExtWithIabAttribute		100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:768:	populateFirstPartyDataAttributes	92.9%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:796:	isStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:806:	isBoolArray				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:816:	convertToStringArray			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:827:	rawJSONToMap				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:835:	mapFromRawJSON				80.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:844:	getSegmentIdsToCopy			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:864:	contains				75.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:873:	isVideo					100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:882:	isFullyPopulatedVideo			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:887:	resolveNativeObject			88.2%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:919:	setImpNative				82.4%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:948:	MakeBids				92.2%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1048:	mapImpIdToCpmOverride			90.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1066:	resolveAdm				87.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1081:	cmpOverrideFromBidRequest		100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1090:	updateBidExtWithMetaNetworkId		82.4%
total:									(statements)				83.7%

@bsardo bsardo added the adapter label Jan 22, 2025
@bsardo bsardo changed the title Rubicon Adapter: remove pchain support Rubicon: Remove pchain support Jan 24, 2025
@bsardo bsardo self-assigned this Feb 11, 2025
Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, c445b25

rubicon

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:176:	appendTrackerToUrl			87.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:192:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:204:	updateRequestTo26			92.3%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:229:	MakeRequests				80.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:530:	createImpsToExtMap			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:549:	prepareImpsToExtMap			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:568:	splitMultiFormatImp			61.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:605:	resolveBidFloor				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:613:	updateImpRpTarget			77.8%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:700:	extractDfpAdUnitCode			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:710:	isNotKeyPathError			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:714:	addStringAttribute			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:718:	addStringArrayAttribute			0.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:722:	updateUserRpTargetWithFpdAttributes	70.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:752:	updateExtWithIabAttribute		100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:761:	populateFirstPartyDataAttributes	92.9%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:789:	isStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:799:	isBoolArray				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:809:	convertToStringArray			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:820:	rawJSONToMap				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:828:	mapFromRawJSON				80.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:837:	getSegmentIdsToCopy			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:857:	contains				75.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:866:	isVideo					100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:875:	isFullyPopulatedVideo			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:880:	resolveNativeObject			88.2%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:912:	setImpNative				82.4%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:941:	MakeBids				92.2%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1041:	mapImpIdToCpmOverride			90.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1059:	resolveAdm				87.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1074:	cmpOverrideFromBidRequest		100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1083:	updateBidExtWithMetaNetworkId		82.4%
total:									(statements)				83.8%

Copy link

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, 10a1285

rubicon

Refer here for heat map coverage report

github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:176:	appendTrackerToUrl			87.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:192:	Builder					100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:204:	updateRequestTo26			92.3%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:229:	MakeRequests				80.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:530:	createImpsToExtMap			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:549:	prepareImpsToExtMap			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:568:	splitMultiFormatImp			61.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:605:	resolveBidFloor				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:613:	updateImpRpTarget			77.8%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:700:	extractDfpAdUnitCode			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:710:	isNotKeyPathError			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:714:	addStringAttribute			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:718:	addStringArrayAttribute			0.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:722:	updateUserRpTargetWithFpdAttributes	70.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:752:	updateExtWithIabAttribute		100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:761:	populateFirstPartyDataAttributes	92.9%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:789:	isStringArray				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:799:	isBoolArray				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:809:	convertToStringArray			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:820:	rawJSONToMap				100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:828:	mapFromRawJSON				80.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:837:	getSegmentIdsToCopy			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:857:	contains				75.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:866:	isVideo					100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:875:	isFullyPopulatedVideo			100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:880:	resolveNativeObject			88.2%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:912:	setImpNative				82.4%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:941:	MakeBids				92.2%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1041:	mapImpIdToCpmOverride			90.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1059:	resolveAdm				87.5%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1074:	cmpOverrideFromBidRequest		100.0%
github.com/prebid/prebid-server/v3/adapters/rubicon/rubicon.go:1083:	updateBidExtWithMetaNetworkId		82.4%
total:									(statements)				83.8%


sourceCopyExt.SChain = sourceCopy.SChain
sourceCopy.SChain = nil
if request.Source != nil && request.Source.SChain != nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider the following test case:

    {
        desc: "3) non-nil source, pchain = \"\", nil SChain",
        in: testInput{
            request: &openrtb2.BidRequest{
                Source: &openrtb2.Source{TID: "someSourceTID"},
            },
            pChain: "",
        },
    },

The && operator will prevent the request.Source to get copied to rubiconRequest.Source causing a loss of information that request.Source might be carrying, like the request.Source.TID field set to "someSourceTID" in our example. Is this the desired behavior?

If not, 4 of the 6 scenarios considered below, fail because of this logic.

func TestFunc(t *testing.T) {
	type testInput struct {
		request *openrtb2.BidRequest
		pChain  string
	}
	testCases := []struct {
		desc string
		in   testInput
	}{
		{
			desc: "1) nil Source, pchain = \"\"",
			in: testInput{
				request: &openrtb2.BidRequest{},
				pChain:  "",
			},
		},
		{
			desc: "2) nil Source, pchain = \"pchain\"",

			in: testInput{
				request: &openrtb2.BidRequest{},
				pChain:  "pchain",
			},
		},
		{
			desc: "3) non-nil source, pchain = \"\", nil SChain",
			in: testInput{
				request: &openrtb2.BidRequest{
					Source: &openrtb2.Source{TID: "someSourceTID"},
				},
				pChain: "",
			},
		},
		{
			desc: "4) non-nil Source, pchain = \"\", non-nil SChain",
			in: testInput{
				request: &openrtb2.BidRequest{
					Source: &openrtb2.Source{
						TID: "someSourceTID",
						SChain: &openrtb2.SupplyChain{
							Complete: 0,
						},
					},
				},
				pChain: "",
			},
		},
		{
			desc: "5) non-nil Source, pchain = \"pchain\", nil SChain",
			in: testInput{
				request: &openrtb2.BidRequest{
					Source: &openrtb2.Source{TID: "someSourceTID"},
				},
				pChain: "pchain",
			},
		},
		{
			desc: "6) non-nil Source, pchain = \"pchain\", non-nil SChain",
			in: testInput{
				request: &openrtb2.BidRequest{
					Source: &openrtb2.Source{
						TID: "someSourceTID",
						SChain: &openrtb2.SupplyChain{
							Complete: 0,
						},
					},
				},
				pChain: "pchain",
			},
		},
	}

	for _, tc := range testCases {
		beforeResult := &openrtb2.BidRequest{}
		afterResult := &openrtb2.BidRequest{}

		before(tc.in.request, beforeResult, tc.in.pChain)
		after(tc.in.request, afterResult, tc.in.pChain)

		assert.Equal(t, beforeResult, afterResult, tc.desc)
	}
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The only reason to change the source is having a schain field, otherwise we don't even need to make a copy of the source

I don't see any information loss since the rubiconRequest is a copy of request and the source is kept unchanged

Copy link
Contributor

@guscarreon guscarreon left a comment

Choose a reason for hiding this comment

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

LGTM

@bsardo bsardo merged commit 532586a into prebid:master Feb 19, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants