11import {
22 buildUrl ,
3- deepAccess , getBidIdParameter ,
3+ deepAccess , generateUUID , getBidIdParameter ,
44 getValue ,
55 isArray ,
66 isPlainObject ,
@@ -10,6 +10,7 @@ import {
1010} from '../src/utils.js' ;
1111import { getRefererInfo } from '../src/refererDetection.js' ;
1212import { registerBidder } from '../src/adapters/bidderFactory.js' ;
13+ import { getStorageManager } from '../src/storageManager.js' ;
1314import { config } from '../src/config.js' ;
1415import { getAllOrtbKeywords } from '../libraries/keywords/keywords.js' ;
1516
@@ -21,9 +22,11 @@ import {getAllOrtbKeywords} from '../libraries/keywords/keywords.js';
2122
2223const BIDDER_CODE = 'beop' ;
2324const ENDPOINT_URL = 'https://hb.beop.io/bid' ;
25+ const COOKIE_NAME = 'beopid' ;
2426const TCF_VENDOR_ID = 666 ;
2527
2628const validIdRegExp = / ^ [ 0 - 9 a - f A - F ] { 24 } $ /
29+ const storage = getStorageManager ( { bidderCode : BIDDER_CODE } ) ;
2730
2831export const spec = {
2932 code : BIDDER_CODE ,
@@ -64,6 +67,19 @@ export const spec = {
6467 const kwdsFromRequest = firstSlot . kwds ;
6568 let keywords = getAllOrtbKeywords ( bidderRequest . ortb2 , kwdsFromRequest ) ;
6669
70+ let beopid = '' ;
71+ if ( storage . cookiesAreEnabled ) {
72+ beopid = storage . getCookie ( COOKIE_NAME , undefined ) ;
73+ if ( ! beopid ) {
74+ beopid = generateUUID ( ) ;
75+ let expirationDate = new Date ( ) ;
76+ expirationDate . setTime ( expirationDate . getTime ( ) + 86400 * 183 * 1000 ) ;
77+ storage . setCookie ( COOKIE_NAME , beopid , expirationDate . toUTCString ( ) ) ;
78+ }
79+ } else {
80+ storage . setCookie ( COOKIE_NAME , '' , 0 ) ;
81+ }
82+
6783 const payloadObject = {
6884 at : new Date ( ) . toString ( ) ,
6985 nid : firstSlot . nid ,
@@ -74,6 +90,7 @@ export const spec = {
7490 lang : ( window . navigator . language || window . navigator . languages [ 0 ] ) ,
7591 kwds : keywords ,
7692 dbg : false ,
93+ fg : beopid ,
7794 slts : slots ,
7895 is_amp : deepAccess ( bidderRequest , 'referrerInfo.isAmp' ) ,
7996 gdpr_applies : gdpr ? gdpr . gdprApplies : false ,
0 commit comments