Skip to content

Commit

Permalink
pass referer to ortb request (prebid#9475)
Browse files Browse the repository at this point in the history
Co-authored-by: Anthony Lin <anthony.lin@33across.com>
  • Loading branch information
2 people authored and JacobKlein26 committed Feb 8, 2023
1 parent 6f41097 commit cee9e0f
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 22 deletions.
17 changes: 13 additions & 4 deletions modules/33acrossBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,8 @@ function buildRequests(bidRequests, bidderRequest) {
ttxSettings,
gdprConsent,
uspConsent,
pageUrl
pageUrl,
referer
} = _buildRequestParams(bidRequests, bidderRequest);

const groupedRequests = _buildRequestGroups(ttxSettings, bidRequests);
Expand All @@ -181,6 +182,7 @@ function buildRequests(bidRequests, bidderRequest) {
gdprConsent,
uspConsent,
pageUrl,
referer,
ttxSettings
})
)
Expand All @@ -199,15 +201,18 @@ function _buildRequestParams(bidRequests, bidderRequest) {

const uspConsent = bidderRequest && bidderRequest.uspConsent;

const pageUrl = bidderRequest?.refererInfo?.page
const pageUrl = bidderRequest?.refererInfo?.page;

const referer = bidderRequest?.refererInfo?.ref;

adapterState.uniqueSiteIds = bidRequests.map(req => req.params.siteId).filter(uniques);

return {
ttxSettings,
gdprConsent,
uspConsent,
pageUrl
pageUrl,
referer
}
}

Expand Down Expand Up @@ -241,7 +246,7 @@ function _getMRAKey(bidRequest) {
}

// Infer the necessary data from valid bid for a minimal ttxRequest and create HTTP request
function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageUrl, ttxSettings }) {
function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageUrl, referer, ttxSettings }) {
const ttxRequest = {};
const firstBidRequest = bidRequests[0];
const { siteId, test } = firstBidRequest.params;
Expand All @@ -262,6 +267,10 @@ function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageU
ttxRequest.site.page = pageUrl;
}

if (referer) {
ttxRequest.site.ref = referer;
}

ttxRequest.id = firstBidRequest.auctionId;

if (gdprConsent.consentString) {
Expand Down
69 changes: 51 additions & 18 deletions test/spec/modules/33acrossBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,14 @@ describe('33acrossBidAdapter:', function () {
return this;
};

this.withReferer = referer => {
Object.assign(ttxRequest.site, {
ref: referer
});

return this;
};

this.withSchain = schain => {
Object.assign(ttxRequest, {
source: {
Expand Down Expand Up @@ -1187,26 +1195,51 @@ describe('33acrossBidAdapter:', function () {
});
});

context('when referer value is available', function() {
it('returns corresponding server requests with site.page set', function() {
const bidderRequest = {
refererInfo: {
page: 'http://foo.com/bar'
}
};
context('when refererInfo values are available', function() {
context('when refererInfo.page is defined', function() {
it('returns corresponding server requests with site.page set', function() {
const bidderRequest = {
refererInfo: {
page: 'http://foo.com/bar'
}
};

const ttxRequest = new TtxRequestBuilder()
.withBanner()
.withProduct()
.withPageUrl('http://foo.com/bar')
.build();
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
const ttxRequest = new TtxRequestBuilder()
.withBanner()
.withProduct()
.withPageUrl('http://foo.com/bar')
.build();
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();

const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);

validateBuiltServerRequest(builtServerRequest, serverRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
});

context('when refererInfo.ref is defined', function() {
it('returns corresponding server requests with site.ref set', function() {
const bidderRequest = {
refererInfo: {
ref: 'google.com'
}
};

const ttxRequest = new TtxRequestBuilder()
.withBanner()
.withProduct()
.withReferer('google.com')
.build();
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();

const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);

validateBuiltServerRequest(builtServerRequest, serverRequest);
});
});
});

Expand Down Expand Up @@ -1246,7 +1279,7 @@ describe('33acrossBidAdapter:', function () {
});

context('when referer value is not available', function() {
it('returns corresponding server requests without site.page set', function() {
it('returns corresponding server requests without site.page and site.ref set', function() {
const bidderRequest = {
refererInfo: {}
};
Expand Down

0 comments on commit cee9e0f

Please sign in to comment.