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

Rubicon Bid Adapter: Remove digitrust references #5798

Merged
merged 1 commit into from
Oct 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 0 additions & 55 deletions modules/rubiconBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,6 @@ config.getConfig('rubicon', config => {
});

const GVLID = 52;
const DIGITRUST_PROP_NAMES = {
FASTLANE: {
id: 'dt.id',
keyv: 'dt.keyv',
pref: 'dt.pref'
},
PREBID_SERVER: {
id: 'id',
keyv: 'keyv'
}
};

var sizeMap = {
1: '468x60',
Expand Down Expand Up @@ -230,11 +219,6 @@ export const spec = {

addVideoParameters(data, bidRequest);

const digiTrust = _getDigiTrustQueryParams(bidRequest, 'PREBID_SERVER');
if (digiTrust) {
utils.deepSetValue(data, 'user.ext.digitrust', digiTrust);
}

if (bidderRequest.gdprConsent) {
// note - gdprApplies & consentString may be undefined in certain use-cases for consentManagement module
let gdprApplies;
Expand Down Expand Up @@ -405,9 +389,6 @@ export const spec = {
'tpid_tdid',
'tpid_liveintent.com',
'tg_v.LIseg',
'dt.id',
'dt.keyv',
'dt.pref',
'rf',
'p_geo.latitude',
'p_geo.longitude',
Expand Down Expand Up @@ -613,10 +594,6 @@ export const spec = {
data['tg_i.dfp_ad_unit_code'] = gamAdUnit.replace(/^\/+/, '');
}

// digitrust properties
const digitrustParams = _getDigiTrustQueryParams(bidRequest, 'FASTLANE');
Object.assign(data, digitrustParams);

if (config.getConfig('coppa') === true) {
data['coppa'] = 1;
}
Expand Down Expand Up @@ -848,38 +825,6 @@ function _getScreenResolution() {
return [window.screen.width, window.screen.height].join('x');
}

function _getDigiTrustQueryParams(bidRequest = {}, endpointName) {
if (!endpointName || !DIGITRUST_PROP_NAMES[endpointName]) {
return null;
}
const propNames = DIGITRUST_PROP_NAMES[endpointName];

function getDigiTrustId() {
const bidRequestDigitrust = utils.deepAccess(bidRequest, 'userId.digitrustid.data');
if (bidRequestDigitrust) {
return bidRequestDigitrust;
}

let digiTrustUser = (window.DigiTrust && (config.getConfig('digiTrustId') || window.DigiTrust.getUser({member: 'T9QSFKPDN9'})));
return (digiTrustUser && digiTrustUser.success && digiTrustUser.identity) || null;
}

let digiTrustId = getDigiTrustId();
// Verify there is an ID and this user has not opted out
if (!digiTrustId || (digiTrustId.privacy && digiTrustId.privacy.optout)) {
return null;
}

const digiTrustQueryParams = {
[propNames.id]: digiTrustId.id,
[propNames.keyv]: digiTrustId.keyv
};
if (propNames.pref) {
digiTrustQueryParams[propNames.pref] = 0;
}
return digiTrustQueryParams;
}

/**
* @param {BidRequest} bidRequest
* @param bidderRequest
Expand Down
227 changes: 0 additions & 227 deletions test/spec/modules/rubiconBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -701,233 +701,6 @@ describe('the rubicon adapter', function () {
expect(data['rp_floor']).to.equal('2');
});

it('should send digitrust params', function () {
window.DigiTrust = {
getUser: function () {
}
};
sandbox.stub(window.DigiTrust, 'getUser').callsFake(() =>
({
success: true,
identity: {
privacy: {optout: false},
id: 'testId',
keyv: 'testKeyV'
}
})
);

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let expectedQuery = {
'dt.id': 'testId',
'dt.keyv': 'testKeyV',
'dt.pref': '0'
};

// test that all values above are both present and correct
Object.keys(expectedQuery).forEach(key => {
let value = expectedQuery[key];
expect(data[key]).to.equal(value);
});

delete window.DigiTrust;
});

it('should not send digitrust params when DigiTrust not loaded', function () {
let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let undefinedKeys = ['dt.id', 'dt.keyv'];

// Test that none of the DigiTrust keys are part of the query
undefinedKeys.forEach(key => {
expect(typeof data[key]).to.equal('undefined');
});
});

it('should not send digitrust params due to optout', function () {
window.DigiTrust = {
getUser: function () {
}
};
sandbox.stub(window.DigiTrust, 'getUser').callsFake(() =>
({
success: true,
identity: {
privacy: {optout: true},
id: 'testId',
keyv: 'testKeyV'
}
})
);

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let undefinedKeys = ['dt.id', 'dt.keyv'];

// Test that none of the DigiTrust keys are part of the query
undefinedKeys.forEach(key => {
expect(typeof data[key]).to.equal('undefined');
});

delete window.DigiTrust;
});

it('should not send digitrust params due to failure', function () {
window.DigiTrust = {
getUser: function () {
}
};
sandbox.stub(window.DigiTrust, 'getUser').callsFake(() =>
({
success: false,
identity: {
privacy: {optout: false},
id: 'testId',
keyv: 'testKeyV'
}
})
);

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let undefinedKeys = ['dt.id', 'dt.keyv'];

// Test that none of the DigiTrust keys are part of the query
undefinedKeys.forEach(key => {
expect(typeof data[key]).to.equal('undefined');
});

delete window.DigiTrust;
});

describe('digiTrustId config', function () {
beforeEach(function () {
window.DigiTrust = {
getUser: sandbox.spy()
};
});

afterEach(function () {
delete window.DigiTrust;
});

it('should send digiTrustId config params', function () {
sandbox.stub(config, 'getConfig').callsFake((key) => {
var config = {
digiTrustId: {
success: true,
identity: {
privacy: {optout: false},
id: 'testId',
keyv: 'testKeyV'
}
}
};
return config[key];
});

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let expectedQuery = {
'dt.id': 'testId',
'dt.keyv': 'testKeyV'
};

// test that all values above are both present and correct
Object.keys(expectedQuery).forEach(key => {
let value = expectedQuery[key];
expect(data[key]).to.equal(value);
});

// should not have called DigiTrust.getUser()
expect(window.DigiTrust.getUser.notCalled).to.equal(true);
});

it('should not send digiTrustId config params due to optout', function () {
sandbox.stub(config, 'getConfig').callsFake((key) => {
var config = {
digiTrustId: {
success: true,
identity: {
privacy: {optout: true},
id: 'testId',
keyv: 'testKeyV'
}
}
}
return config[key];
});

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let undefinedKeys = ['dt.id', 'dt.keyv'];

// Test that none of the DigiTrust keys are part of the query
undefinedKeys.forEach(key => {
expect(typeof data[key]).to.equal('undefined');
});

// should not have called DigiTrust.getUser()
expect(window.DigiTrust.getUser.notCalled).to.equal(true);
});

it('should not send digiTrustId config params due to failure', function () {
sandbox.stub(config, 'getConfig').callsFake((key) => {
var config = {
digiTrustId: {
success: false,
identity: {
privacy: {optout: false},
id: 'testId',
keyv: 'testKeyV'
}
}
}
return config[key];
});

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let undefinedKeys = ['dt.id', 'dt.keyv'];

// Test that none of the DigiTrust keys are part of the query
undefinedKeys.forEach(key => {
expect(typeof data[key]).to.equal('undefined');
});

// should not have called DigiTrust.getUser()
expect(window.DigiTrust.getUser.notCalled).to.equal(true);
});

it('should not send digiTrustId config params if they do not exist', function () {
sandbox.stub(config, 'getConfig').callsFake((key) => {
var config = {};
return config[key];
});

let [request] = spec.buildRequests(bidderRequest.bids, bidderRequest);
let data = parseQuery(request.data);

let undefinedKeys = ['dt.id', 'dt.keyv'];

// Test that none of the DigiTrust keys are part of the query
undefinedKeys.forEach(key => {
expect(typeof data[key]).to.equal('undefined');
});

// should have called DigiTrust.getUser() once
expect(window.DigiTrust.getUser.calledOnce).to.equal(true);
});
});

describe('GDPR consent config', function () {
it('should send "gdpr" and "gdpr_consent", when gdprConsent defines consentString and gdprApplies', function () {
createGdprBidderRequest(true);
Expand Down