Skip to content

Commit 3391e86

Browse files
pm-azhar-mullaAzhar
and
Azhar
authored
PubMatic Analytics Adapter: add logging for "advertiser domain" (#7888)
* Changed net revenue to True * Logging adomain in logger * Handled with different variable names * Changed string in double quotes to single quotes Co-authored-by: Azhar <[email protected]>
1 parent aae47b4 commit 3391e86

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

modules/pubmaticAnalyticsAdapter.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,21 @@ function getAdapterNameForAlias(aliasName) {
200200
return adapterManager.aliasRegistry[aliasName] || aliasName;
201201
}
202202

203+
function getAdDomain(bidResponse) {
204+
if (bidResponse.meta && bidResponse.meta.advertiserDomains) {
205+
let adomain = bidResponse.meta.advertiserDomains[0]
206+
if (adomain) {
207+
try {
208+
let hostname = (new URL(adomain));
209+
return hostname.hostname.replace('www.', '');
210+
} catch (e) {
211+
logWarn(LOG_PRE_FIX + 'Adomain URL (Not a proper URL):', adomain);
212+
return adomain.replace('www.', '');
213+
}
214+
}
215+
}
216+
}
217+
203218
function gatherPartnerBidsForAdUnitForLogger(adUnit, adUnitId, highestBid) {
204219
highestBid = (highestBid && highestBid.length > 0) ? highestBid[0] : null;
205220
return Object.keys(adUnit.bids).reduce(function(partnerBids, bidId) {
@@ -218,6 +233,7 @@ function gatherPartnerBidsForAdUnitForLogger(adUnit, adUnitId, highestBid) {
218233
'dc': bid.bidResponse ? (bid.bidResponse.dealChannel || EMPTY_STRING) : EMPTY_STRING,
219234
'l1': bid.bidResponse ? bid.clientLatencyTimeMs : 0,
220235
'l2': 0,
236+
'adv': bid.bidResponse ? getAdDomain(bid.bidResponse) || undefined : undefined,
221237
'ss': (s2sBidders.indexOf(bid.bidder) > -1) ? 1 : 0,
222238
't': (bid.status == ERROR && bid.error.code == TIMEOUT_ERROR) ? 1 : 0,
223239
'wb': (highestBid && highestBid.requestId === bid.bidId ? 1 : 0),

test/spec/modules/pubmaticAnalyticsAdapter_spec.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ const BID2 = Object.assign({}, BID, {
9595
'hb_pb': '1.500',
9696
'hb_size': '728x90',
9797
'hb_source': 'server'
98+
},
99+
meta: {
100+
advertiserDomains: ['example.com']
98101
}
99102
});
100103

@@ -382,6 +385,7 @@ describe('pubmatic analytics adapter', function () {
382385
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
383386
expect(data.s[1].ps[0].dc).to.equal('PMP');
384387
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
388+
expect(data.s[1].ps[0].adv).to.equal('example.com');
385389
expect(data.s[1].ps[0].l1).to.equal(3214);
386390
expect(data.s[1].ps[0].l2).to.equal(0);
387391
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -651,6 +655,7 @@ describe('pubmatic analytics adapter', function () {
651655
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
652656
expect(data.s[1].ps[0].dc).to.equal('PMP');
653657
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
658+
expect(data.s[1].ps[0].adv).to.equal('example.com');
654659
expect(data.s[1].ps[0].l1).to.equal(3214);
655660
expect(data.s[1].ps[0].l2).to.equal(0);
656661
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -708,6 +713,7 @@ describe('pubmatic analytics adapter', function () {
708713
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
709714
expect(data.s[1].ps[0].dc).to.equal('PMP');
710715
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
716+
expect(data.s[1].ps[0].adv).to.equal('example.com');
711717
expect(data.s[1].ps[0].l1).to.equal(3214);
712718
expect(data.s[1].ps[0].l2).to.equal(0);
713719
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -754,6 +760,7 @@ describe('pubmatic analytics adapter', function () {
754760
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
755761
expect(data.s[1].ps[0].dc).to.equal('PMP');
756762
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
763+
expect(data.s[1].ps[0].adv).to.equal('example.com');
757764
expect(data.s[1].ps[0].l1).to.equal(3214);
758765
expect(data.s[1].ps[0].l2).to.equal(0);
759766
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -771,9 +778,10 @@ describe('pubmatic analytics adapter', function () {
771778
expect(data.kgpv).to.equal('*');
772779
});
773780

774-
it('Logger: regexPattern in bid.bidResponse', function() {
781+
it('Logger: regexPattern in bid.bidResponse and url in adomain', function() {
775782
const BID2_COPY = utils.deepClone(BID2);
776783
BID2_COPY.regexPattern = '*';
784+
BID2_COPY.meta.advertiserDomains = ['https://www.example.com/abc/223']
777785
events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
778786
events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
779787
events.emit(BID_REQUESTED, MOCK.BID_REQUESTED);
@@ -808,6 +816,7 @@ describe('pubmatic analytics adapter', function () {
808816
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
809817
expect(data.s[1].ps[0].dc).to.equal('PMP');
810818
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
819+
expect(data.s[1].ps[0].adv).to.equal('example.com');
811820
expect(data.s[1].ps[0].l1).to.equal(3214);
812821
expect(data.s[1].ps[0].l2).to.equal(0);
813822
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -859,6 +868,7 @@ describe('pubmatic analytics adapter', function () {
859868
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
860869
expect(data.s[1].ps[0].dc).to.equal('PMP');
861870
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
871+
expect(data.s[1].ps[0].adv).to.equal('example.com');
862872
expect(data.s[1].ps[0].l1).to.equal(3214);
863873
expect(data.s[1].ps[0].l2).to.equal(0);
864874
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -912,6 +922,7 @@ describe('pubmatic analytics adapter', function () {
912922
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
913923
expect(data.s[1].ps[0].dc).to.equal('PMP');
914924
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
925+
expect(data.s[1].ps[0].adv).to.equal('example.com');
915926
expect(data.s[1].ps[0].l1).to.equal(3214);
916927
expect(data.s[1].ps[0].l2).to.equal(0);
917928
expect(data.s[1].ps[0].ss).to.equal(1);
@@ -1011,6 +1022,7 @@ describe('pubmatic analytics adapter', function () {
10111022
expect(data.s[1].ps[0].di).to.equal('the-deal-id');
10121023
expect(data.s[1].ps[0].dc).to.equal('PMP');
10131024
expect(data.s[1].ps[0].mi).to.equal('matched-impression');
1025+
expect(data.s[1].ps[0].adv).to.equal('example.com');
10141026
expect(data.s[1].ps[0].l1).to.equal(3214);
10151027
expect(data.s[1].ps[0].l2).to.equal(0);
10161028
expect(data.s[1].ps[0].ss).to.equal(1);

0 commit comments

Comments
 (0)