forked from prebid/Prebid.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgravitoIdSystem.js
64 lines (57 loc) · 1.51 KB
/
gravitoIdSystem.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/**
* This module adds gravitompId to the User ID module
* The {@link module:modules/userId} module is required
* @module modules/gravitoIdSystem
* @requires module:modules/userId
*/
import { submodule } from '../src/hook.js';
import {getStorageManager} from '../src/storageManager.js';
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
const MODULE_NAME = 'gravitompId';
export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
export const cookieKey = 'gravitompId';
export const gravitoIdSystemSubmodule = {
/**
* used to link submodule with config
* @type {string}
*/
name: MODULE_NAME,
/**
* performs action to obtain id
* @function
* @returns { {id: {gravitompId: string}} | undefined }
*/
getId: function() {
const newId = storage.getCookie(cookieKey);
if (!newId) {
return undefined;
}
const result = {
gravitompId: newId
}
return {id: result};
},
/**
* decode the stored id value for passing to bid requests
* @function
* @param { {gravitompId: string} } value
* @returns { {gravitompId: {string} } | undefined }
*/
decode: function(value) {
if (value && typeof value === 'object') {
var result = {};
if (value.gravitompId) {
result = value.gravitompId
}
return {gravitompId: result};
}
return undefined;
},
eids: {
'gravitompId': {
source: 'gravito.net',
atype: 1
},
}
}
submodule('userId', gravitoIdSystemSubmodule);