Skip to content
Open
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
2 changes: 1 addition & 1 deletion .github/workflows/issue_tracker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@f717b5ecd4534d3c4df4ce9b5c1c2214f0f7cd06
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.ISSUE_APP_ID }}
private_key: ${{ secrets.ISSUE_APP_PEM }}
Expand Down
61 changes: 46 additions & 15 deletions modules/pixfutureBidAdapter.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {getStorageManager} from '../src/storageManager.js';
import {BANNER} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
import {find, includes} from '../src/polyfill.js';
import { registerBidder } from '../src/adapters/bidderFactory.js';
import { getStorageManager } from '../src/storageManager.js';
import { BANNER } from '../src/mediaTypes.js';
import { config } from '../src/config.js';
import { find, includes } from '../src/polyfill.js';
import {
convertCamelToUnderscore,
deepAccess,
Expand All @@ -13,14 +13,17 @@ import {
isPlainObject,
transformBidderParamKeywords
} from '../src/utils.js';
import {auctionManager} from '../src/auctionManager.js';
import {hasPurpose1Consent} from '../src/utils/gpdr.js';
import { auctionManager } from '../src/auctionManager.js';

const SOURCE = 'pbjs';
const storageManager = getStorageManager({bidderCode: 'pixfuture'});
const USER_PARAMS = ['age', 'externalUid', 'segments', 'gender', 'dnt', 'language'];
let pixID = '';
const GVLID = 839;

export const spec = {
code: 'pixfuture',
gvlid: GVLID,
hostname: 'https://gosrv.pixfuture.com',

getHostname() {
Expand All @@ -41,6 +44,10 @@ export const spec = {
const tags = validBidRequests.map(bidToTag);
const hostname = this.getHostname();
return validBidRequests.map((bidRequest) => {
if (bidRequest.params.pix_id) {
pixID = bidRequest.params.pix_id
}

let referer = '';
if (bidderRequest && bidderRequest.refererInfo) {
referer = bidderRequest.refererInfo.page || '';
Expand Down Expand Up @@ -123,7 +130,7 @@ export const spec = {
const ret = {
url: `${hostname}/pixservices`,
method: 'POST',
options: {withCredentials: false},
options: {withCredentials: true},
data: {
v: $$PREBID_GLOBAL$$.version,
pageUrl: referer,
Expand Down Expand Up @@ -162,15 +169,39 @@ export const spec = {

return bids;
},
getUserSyncs: function (syncOptions, bid, gdprConsent) {
var pixid = '';
if (typeof bid[0] === 'undefined' || bid[0] === null) { pixid = '0'; } else { pixid = bid[0].body.pix_id; }
if (syncOptions.iframeEnabled && hasPurpose1Consent(gdprConsent)) {
return [{
getUserSyncs: function (syncOptions, bid, gdprConsent, uspConsent) {
const syncs = [];

let syncurl = 'pixid=' + pixID;
let gdpr = (gdprConsent && gdprConsent.gdprApplies) ? 1 : 0;
let consent = gdprConsent ? encodeURIComponent(gdprConsent.consentString || '') : '';

// Attaching GDPR Consent Params in UserSync url
syncurl += '&gdprconcent=' + gdpr + '&adsync=' + consent;

// CCPA
if (uspConsent) {
syncurl += '&us_privacy=' + encodeURIComponent(uspConsent);
}

// coppa compliance
if (config.getConfig('coppa') === true) {
syncurl += '&coppa=1';
}

if (syncOptions.iframeEnabled) {
syncs.push({
type: 'iframe',
url: 'https://gosrv.pixfuture.com/cookiesync?adsync=' + gdprConsent.consentString + '&pixid=' + pixid + '&gdprconcent=' + gdprConsent.gdprApplies
}];
url: 'https://gosrv.pixfuture.com/cookiesync?f=b&' + syncurl
});
} else {
syncs.push({
type: 'image',
url: 'https://gosrv.pixfuture.com/cookiesync?f=i&' + syncurl
});
}

return syncs;
}
};

Expand Down