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

Core & PBS Adapter: support eventtrackers, and normalize burl / ext.prebid.events.win into it #12711

Merged
merged 10 commits into from
Feb 19, 2025
Prev Previous commit
Next Next commit
more cleanup
  • Loading branch information
dgirardi committed Jan 30, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 3acd495e9a96b6ce864de5be4ce7dab912ad1d66
2 changes: 1 addition & 1 deletion libraries/pbsExtensions/processors/eventTrackers.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {EVENT_TYPE_IMPRESSION, EVENT_TYPE_WIN, TRACKER_METHOD_IMG} from '../../../src/eventTrackers.js';

export function addWinTrackers(bidResponse, bid) {
export function addEventTrackers(bidResponse, bid) {
bidResponse.eventtrackers = bidResponse.eventtrackers || [];
[
[bid.burl, EVENT_TYPE_IMPRESSION], // core used to fire burl directly, but only for bids coming from PBS
4 changes: 2 additions & 2 deletions libraries/pbsExtensions/processors/pbs.js
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ import {setImpBidParams} from './params.js';
import {setImpAdUnitCode} from './adUnitCode.js';
import {setRequestExtPrebid, setRequestExtPrebidChannel} from './requestExtPrebid.js';
import {setBidResponseVideoCache} from './video.js';
import {addWinTrackers} from "./eventTrackers.js";
import {addEventTrackers} from "./eventTrackers.js";

export const PBS_PROCESSORS = {
[REQUEST]: {
@@ -77,7 +77,7 @@ export const PBS_PROCESSORS = {
},
pbsWinTrackers: {
// converts "legacy" burl and ext.prebid.events.win into eventtrackers
fn: addWinTrackers
fn: addEventTrackers
},
},
[RESPONSE]: {
8 changes: 4 additions & 4 deletions test/spec/ortbConverter/pbsExtensions/trackers_spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {EVENT_TYPE_IMPRESSION, EVENT_TYPE_WIN, TRACKER_METHOD_IMG} from '../../../../src/eventTrackers.js';
import {addWinTrackers} from '../../../../libraries/pbsExtensions/processors/eventTrackers.js';
import {addEventTrackers} from '../../../../libraries/pbsExtensions/processors/eventTrackers.js';

describe('PBS event trackers', () => {
let bidResponse;
@@ -32,18 +32,18 @@ describe('PBS event trackers', () => {
}

it(`should add ${t}`, () => {
addWinTrackers(bidResponse, bid);
addEventTrackers(bidResponse, bid);
expect(getTracker()).to.exist;
});
it(`should append ${t}`, () => {
bidResponse.eventtrackers = [{method: 123, event: 321, url: 'other-tracker'}];
addWinTrackers(bidResponse, bid);
addEventTrackers(bidResponse, bid);
expect(getTracker()).to.exist;
expect(bidResponse.eventtrackers.length).to.eql(2);
});
it('should NOT add a duplicate tracker', () => {
bidResponse.eventtrackers = [{method: TRACKER_METHOD_IMG, event: type, url: 'tracker'}];
addWinTrackers(bidResponse, bid);
addEventTrackers(bidResponse, bid);
expect(getTracker()).to.exist;
expect(bidResponse.eventtrackers.length).to.eql(1);
})
10 changes: 6 additions & 4 deletions test/spec/unit/pbjs_api_spec.js
Original file line number Diff line number Diff line change
@@ -1381,17 +1381,19 @@ describe('Unit: Prebid Module', function () {
});
});

it('fires billing url if present on s2s bid', function () {
const burl = 'http://www.example.com/burl';
it('fires impression trackers if present', function () {
const url = 'http://www.example.com/burl';
pushBidResponseToAuction({
ad: '<div>ad</div>',
source: 's2s',
burl
eventtrackers: [
{event: 1, method: 1, url}
]
});

return renderAd(doc, bidId).then(() => {
sinon.assert.calledOnce(triggerPixelStub);
sinon.assert.calledWith(triggerPixelStub, burl);
sinon.assert.calledWith(triggerPixelStub, url);
});
});