Skip to content
This repository was archived by the owner on Mar 12, 2025. It is now read-only.

Commit d3f4d28

Browse files
AlessandroDGjsnellbaker
AlessandroDG
authored andcommitted
Rvr 2369 Refactor events handling (prebid#3683)
* Rvr 2369 Refactor events handling (#9) * RVR-2177 - Refactor events handling * RVR-2087 - Inject pbjsGlobalVariable into rivraddon * RVR-2087 - update adapterManager dependency * RVR-2087 - Add ADD_AD_UNITS to Prebid.JS trackable events * RVR-2369 - Update package-lock.json * Rvr 2369 prevent duplicate events (#10) ## Type of change - [x] Refactoring (no functional changes, no api changes) ## Description of change Refactor rivrAnalyticsAdapter.js events handling. ## History * RVR-2087 - update adapterManager dependency * RVR-2369 - Update package-lock.json * RVR-2369 - Revert changes in main Analytics adapter It will be handled in a separate PR * RVR-2369 - Use relative import paths Needed for prebid#3435
1 parent 9b0fd37 commit d3f4d28

File tree

2 files changed

+19
-68
lines changed

2 files changed

+19
-68
lines changed

modules/rivrAnalyticsAdapter.js

+5-21
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,15 @@
11
import {ajax} from '../src/ajax';
22
import adapter from '../src/AnalyticsAdapter';
3-
import CONSTANTS from '../src/constants.json';
43
import adapterManager from '../src/adapterManager';
54
import * as utils from '../src/utils';
65

76
const analyticsType = 'endpoint';
87

98
let rivrAnalytics = Object.assign(adapter({analyticsType}), {
109
track({ eventType, args }) {
11-
if (!window.rivraddon || !window.rivraddon.analytics || !window.rivraddon.analytics.getContext()) {
12-
return;
13-
}
14-
utils.logInfo(`ARGUMENTS FOR TYPE: ============= ${eventType}`, args);
15-
let handler = null;
16-
switch (eventType) {
17-
case CONSTANTS.EVENTS.AUCTION_INIT:
18-
handler = window.rivraddon.analytics.trackAuctionInit;
19-
break;
20-
case CONSTANTS.EVENTS.AUCTION_END:
21-
handler = window.rivraddon.analytics.trackAuctionEnd;
22-
break;
23-
case CONSTANTS.EVENTS.BID_WON:
24-
handler = window.rivraddon.analytics.trackBidWon;
25-
break;
26-
}
27-
if (handler) {
28-
handler(args)
10+
if (window.rivraddon && window.rivraddon.analytics && window.rivraddon.analytics.getContext() && window.rivraddon.analytics.trackPbjsEvent) {
11+
utils.logInfo(`ARGUMENTS FOR TYPE: ============= ${eventType}`, args);
12+
window.rivraddon.analytics.trackPbjsEvent({ eventType, args });
2913
}
3014
}
3115
});
@@ -36,7 +20,7 @@ rivrAnalytics.originEnableAnalytics = rivrAnalytics.enableAnalytics;
3620
// override enableAnalytics so we can get access to the config passed in from the page
3721
rivrAnalytics.enableAnalytics = (config) => {
3822
if (window.rivraddon && window.rivraddon.analytics) {
39-
window.rivraddon.analytics.enableAnalytics(config, {utils, ajax});
23+
window.rivraddon.analytics.enableAnalytics(config, {utils, ajax, pbjsGlobalVariable: $$PREBID_GLOBAL$$});
4024
rivrAnalytics.originEnableAnalytics(config);
4125
}
4226
};
@@ -46,4 +30,4 @@ adapterManager.registerAnalyticsAdapter({
4630
code: 'rivr'
4731
});
4832

49-
export default rivrAnalytics
33+
export default rivrAnalytics;

test/spec/modules/rivrAnalyticsAdapter_spec.js

+14-47
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ describe('RIVR Analytics adapter', () => {
3535
let sandbox;
3636
let ajaxStub;
3737
let rivraddonsEnableAnalyticsStub;
38-
let rivraddonsTrackAuctionInitStub;
39-
let rivraddonsTrackAuctionEndStub;
40-
let rivraddonsTrackBidWonStub;
38+
let rivraddonsTrackPbjsEventStub;
4139
let timer;
4240

4341
before(() => {
@@ -46,9 +44,7 @@ describe('RIVR Analytics adapter', () => {
4644
analytics: {
4745
enableAnalytics: () => {},
4846
getContext: () => { return MOCK_RIVRADDON_CONTEXT; },
49-
trackAuctionInit: () => {},
50-
trackAuctionEnd: () => {},
51-
trackBidWon: () => {},
47+
trackPbjsEvent: () => {},
5248
}
5349
};
5450
rivraddonsEnableAnalyticsStub = sandbox.stub(window.rivraddon.analytics, 'enableAnalytics');
@@ -98,61 +94,32 @@ describe('RIVR Analytics adapter', () => {
9894

9995
it('Firing an event when rivraddon context is not defined it should do nothing', () => {
10096
let rivraddonsGetContextStub = sandbox.stub(window.rivraddon.analytics, 'getContext');
101-
rivraddonsTrackAuctionInitStub = sandbox.stub(window.rivraddon.analytics, 'trackAuctionInit');
97+
rivraddonsTrackPbjsEventStub = sandbox.stub(window.rivraddon.analytics, 'trackPbjsEvent');
10298

103-
expect(rivraddonsTrackAuctionInitStub.callCount).to.be.equal(0);
99+
expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(0);
104100

105101
events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {auctionId: EMITTED_AUCTION_ID, config: {}, timeout: 3000});
106102

107-
expect(rivraddonsTrackAuctionInitStub.callCount).to.be.equal(0);
103+
expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(0);
108104

109105
window.rivraddon.analytics.getContext.restore();
110-
window.rivraddon.analytics.trackAuctionInit.restore();
106+
window.rivraddon.analytics.trackPbjsEvent.restore();
111107
});
112108

113-
it('Firing AUCTION_INIT should call rivraddon trackAuctionInit passing the parameters', () => {
114-
rivraddonsTrackAuctionInitStub = sandbox.stub(window.rivraddon.analytics, 'trackAuctionInit');
109+
it('Firing AUCTION_INIT should call rivraddon trackPbjsEvent passing the parameters', () => {
110+
rivraddonsTrackPbjsEventStub = sandbox.stub(window.rivraddon.analytics, 'trackPbjsEvent');
115111

116-
expect(rivraddonsTrackAuctionInitStub.callCount).to.be.equal(0);
112+
expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(0);
117113

118114
events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {auctionId: EMITTED_AUCTION_ID, config: {}, timeout: 3000});
119115

120-
expect(rivraddonsTrackAuctionInitStub.callCount).to.be.equal(1);
116+
expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(1);
121117

122-
const firstArgument = rivraddonsTrackAuctionInitStub.getCall(0).args[0];
123-
expect(firstArgument.auctionId).to.be.equal(EMITTED_AUCTION_ID);
118+
const firstArgument = rivraddonsTrackPbjsEventStub.getCall(0).args[0];
119+
expect(firstArgument.eventType).to.be.equal(CONSTANTS.EVENTS.AUCTION_INIT);
120+
expect(firstArgument.args.auctionId).to.be.equal(EMITTED_AUCTION_ID);
124121

125-
window.rivraddon.analytics.trackAuctionInit.restore();
126-
});
127-
128-
it('Firing AUCTION_END should call rivraddon trackAuctionEnd passing the parameters', () => {
129-
rivraddonsTrackAuctionEndStub = sandbox.stub(window.rivraddon.analytics, 'trackAuctionEnd');
130-
131-
expect(rivraddonsTrackAuctionEndStub.callCount).to.be.equal(0);
132-
133-
events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId: EMITTED_AUCTION_ID});
134-
135-
expect(rivraddonsTrackAuctionEndStub.callCount).to.be.equal(1);
136-
137-
const firstArgument = rivraddonsTrackAuctionEndStub.getCall(0).args[0];
138-
expect(firstArgument.auctionId).to.be.equal(EMITTED_AUCTION_ID);
139-
140-
window.rivraddon.analytics.trackAuctionEnd.restore();
141-
});
142-
143-
it('Firing BID_WON should call rivraddon trackBidWon passing the parameters', () => {
144-
rivraddonsTrackBidWonStub = sandbox.stub(window.rivraddon.analytics, 'trackBidWon');
145-
146-
expect(rivraddonsTrackBidWonStub.callCount).to.be.equal(0);
147-
148-
events.emit(CONSTANTS.EVENTS.BID_WON, {auctionId: EMITTED_AUCTION_ID});
149-
150-
expect(rivraddonsTrackBidWonStub.callCount).to.be.equal(1);
151-
152-
const firstArgument = rivraddonsTrackBidWonStub.getCall(0).args[0];
153-
expect(firstArgument.auctionId).to.be.equal(EMITTED_AUCTION_ID);
154-
155-
window.rivraddon.analytics.trackBidWon.restore();
122+
window.rivraddon.analytics.trackPbjsEvent.restore();
156123
});
157124

158125
const BANNER_AD_UNITS_MOCK = [

0 commit comments

Comments
 (0)