From c84149da5797263f4517b807f4436ede719af034 Mon Sep 17 00:00:00 2001 From: Kelvin Chappell Date: Fri, 15 Feb 2019 15:14:12 +0000 Subject: [PATCH] Add buyer data to analytics where it's available Assuming that bid response has buyer data in format specified in https://github.com/prebid/Prebid.js/issues/3115 --- modules/guAnalyticsAdapter.js | 19 +++++++++++++++---- test/spec/modules/guAnalyticsAdapter_spec.js | 13 +++++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/modules/guAnalyticsAdapter.js b/modules/guAnalyticsAdapter.js index 327537b59ad..a6c38d007dc 100644 --- a/modules/guAnalyticsAdapter.js +++ b/modules/guAnalyticsAdapter.js @@ -9,7 +9,7 @@ import {ajax} from 'src/ajax'; * Update whenever you want to make sure you're sending the right version of analytics. * This is useful when some browsers are using old code and some new, for example. */ -const VERSION = 4; +const VERSION = 5; const analyticsType = 'endpoint'; const SENDALL_ON = {}; @@ -135,9 +135,20 @@ function trackBidResponse(args) { setSafely(event, 'sz', args.size); setSafely(event, 'ttr', args.timeToRespond); setSafely(event, 'lid', args.dealId); - setSafely(event, 'dsp', args.dspId); - setSafely(event, 'adv', args.advertiserId); - setSafely(event, 'add', args.advertiserDomain); + + if (args.meta) { + setSafely(event, 'bri', args.meta.brandId); + setSafely(event, 'brn', args.meta.brandName); + } + + // transitioning from old fields to new + const dspId = args.meta && args.meta.networkId ? args.meta.networkId : args.dspId; + setSafely(event, 'dsp', dspId); + const buyerId = args.meta && args.meta.buyerId ? args.meta.buyerId : args.advertiserId; + setSafely(event, 'adv', buyerId); + const clickUrl = args.meta && args.meta.clickUrl ? args.meta.clickUrl : args.advertiserDomain; + setSafely(event, 'add', clickUrl); + return [event]; } return null; diff --git a/test/spec/modules/guAnalyticsAdapter_spec.js b/test/spec/modules/guAnalyticsAdapter_spec.js index 55f069dd869..6943e175404 100644 --- a/test/spec/modules/guAnalyticsAdapter_spec.js +++ b/test/spec/modules/guAnalyticsAdapter_spec.js @@ -136,9 +136,16 @@ describe('Gu analytics adapter', () => { timeToRespond: 443, size: '300x250', dealId: 'd12345', + meta: { + networkId: 57, + buyerId: 36069, + brandId: 101, + brandName: 'biscuit', + clickUrl: 'blackrock.com' + }, dspId: 57, advertiserId: 36069, - advertiserDomain: 'blackrock.com', + advertiserDomain: 'blackrock.com' }; before(() => { @@ -237,6 +244,8 @@ describe('Gu analytics adapter', () => { adv: 36069, dsp: 57, add: 'blackrock.com', + bri: 101, + brn: 'biscuit' }); }); @@ -318,7 +327,7 @@ describe('Gu analytics adapter', () => { it('should have a version number', () => { events.emit(CONSTANTS.EVENTS.BID_WON, BIDWONEXAMPLE); const payload = JSON.parse(ajaxStub.firstCall.args); - expect(payload.v).to.be.equal(4); + expect(payload.v).to.be.equal(5); }); it('should ignore responses sent with bid won event', () => {