Created
May 12, 2021 06:24
-
-
Save idettman/ea172b41db7f6fe40d1f963ab43467f1 to your computer and use it in GitHub Desktop.
prebid global method mergeConfig
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function mergeConfig(config) { | |
| // exit on invalid config | |
| if (!config) return; | |
| // default behavior is override using new values except for ortb2 which appends to certain array props | |
| const existingConfig = utils.getConfig() || {}; | |
| if (config.ortb2) { | |
| const existingOrtb2 = existingConfig.ortb2 || { user: { data: [] } }; | |
| if (config.ortb2.site) { | |
| // check is ortb2.site.keywords is being set | |
| if (Array.isArray(config.ortb2.site.keywords)) { | |
| const existingOrtb2SiteKeywords = (existingOrtb2.site || { site: { keywords: [] } }).keywords || []; | |
| // add new site keywords to existing site keywords | |
| existingOrtb2.site.keywords = existingOrtb2SiteKeywords.concat(config.ortb2.site.keywords); | |
| } | |
| // check if ortb2.site.content is being set | |
| if (config.ortb2.site.content) { | |
| // check is ortb2.site.conent.data is being set | |
| if (Array.isArray.config.ortb2.site.content.data) { | |
| const existingOrtb2SiteContentData = existingOrtb2Site.site.content.data || []; | |
| // add new site content data to existing site content data | |
| existingOrtb2.site.content.data = existingOrtb2SiteContentData.concat(config.ortb2.site.content.data); | |
| } | |
| } | |
| if (config.ortb2.user) { | |
| // check if ortb2.user.keywords is being set | |
| if (Array.isArray(config.ortb2.user.keywords)) { | |
| const existingOrtbUserKeywords = existingOrtb2.user.keywords || []; | |
| // add new user keywords to existing user keywords | |
| existingOrtb2.user.keywords = existingOrtbUserKeywords.concat(config.ortb2.user.keywords); | |
| } | |
| // check if ortb2.user.data is being set | |
| if (Array.isArray(config.ortb2.user.data)) { | |
| const existingOrtb2UserData = existingOrtb2.user.data || []; | |
| // add new user data to exsitng user data | |
| existingOrtb2.user.data = existingOrtb2UserData.concat(config.user.data)); | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment