Skip to content

Commit 0c2376f

Browse files
screencore-devmdusmanalvi
authored andcommitted
Screencore Bid Adapter : initial release (prebid#13833)
* Screencore prebid adapter * rearrange code * use lowercase screncore bidder code * fix tests * update tests * trigger CI
1 parent fd9a0f7 commit 0c2376f

File tree

3 files changed

+906
-0
lines changed

3 files changed

+906
-0
lines changed

modules/screencoreBidAdapter.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import { registerBidder } from '../src/adapters/bidderFactory.js';
2+
import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
3+
import { getStorageManager } from '../src/storageManager.js';
4+
import {
5+
createBuildRequestsFn,
6+
createInterpretResponseFn,
7+
createUserSyncGetter,
8+
isBidRequestValid,
9+
} from '../libraries/vidazooUtils/bidderUtils.js';
10+
11+
const BIDDER_CODE = 'screencore';
12+
const GVLID = 1473;
13+
const BIDDER_VERSION = '1.0.0';
14+
const REGION_SUBDOMAIN_SUFFIX = {
15+
EU: 'taqeu',
16+
US: 'taqus',
17+
APAC: 'taqapac',
18+
};
19+
20+
/**
21+
* Get subdomain URL suffix by region
22+
* @return {string}
23+
*/
24+
function getRegionSubdomainSuffix() {
25+
try {
26+
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
27+
const region = timezone.split('/')[0];
28+
29+
switch (region) {
30+
case 'Asia':
31+
case 'Australia':
32+
case 'Antarctica':
33+
case 'Pacific':
34+
case 'Indian':
35+
return REGION_SUBDOMAIN_SUFFIX['APAC'];
36+
case 'Europe':
37+
case 'Africa':
38+
case 'Atlantic':
39+
case 'Arctic':
40+
return REGION_SUBDOMAIN_SUFFIX['EU'];
41+
case 'America':
42+
return REGION_SUBDOMAIN_SUFFIX['US'];
43+
default:
44+
return REGION_SUBDOMAIN_SUFFIX['EU'];
45+
}
46+
} catch (err) {
47+
return REGION_SUBDOMAIN_SUFFIX['EU'];
48+
}
49+
}
50+
51+
export const storage = getStorageManager({ bidderCode: BIDDER_CODE });
52+
53+
export function createDomain() {
54+
const subDomain = getRegionSubdomainSuffix();
55+
56+
return `https://${subDomain}.screencore.io`;
57+
}
58+
59+
const buildRequests = createBuildRequestsFn(createDomain, null, storage, BIDDER_CODE, BIDDER_VERSION, false);
60+
61+
const interpretResponse = createInterpretResponseFn(BIDDER_CODE, false);
62+
63+
const getUserSyncs = createUserSyncGetter({
64+
iframeSyncUrl: 'https://cs.screencore.io/api/sync/iframe',
65+
imageSyncUrl: 'https://cs.screencore.io/api/sync/image',
66+
});
67+
68+
export const spec = {
69+
code: BIDDER_CODE,
70+
version: BIDDER_VERSION,
71+
gvlid: GVLID,
72+
supportedMediaTypes: [BANNER, VIDEO, NATIVE],
73+
isBidRequestValid,
74+
buildRequests,
75+
interpretResponse,
76+
getUserSyncs,
77+
};
78+
79+
registerBidder(spec);

modules/screencoreBidAdapter.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Overview
2+
3+
**Module Name:** Screencore Bidder Adapter
4+
5+
**Module Type:** Bidder Adapter
6+
7+
**Maintainer:** connect@screencore.io
8+
9+
# Description
10+
11+
Module that connects to Screencore's Open RTB demand sources.
12+
13+
# Test Parameters
14+
```js
15+
var adUnits = [
16+
{
17+
code: 'test-ad',
18+
sizes: [[300, 250]],
19+
bids: [
20+
{
21+
bidder: 'Screencore',
22+
params: {
23+
cId: '562524b21b1c1f08117fc7f9',
24+
pId: '59ac17c192832d0011283fe3',
25+
bidFloor: 0.0001,
26+
ext: {
27+
param1: 'loremipsum',
28+
param2: 'dolorsitamet'
29+
},
30+
placementId: 'testBanner'
31+
}
32+
}
33+
]
34+
}
35+
];
36+
```

0 commit comments

Comments
 (0)