Skip to content

Instantly share code, notes, and snippets.

@idettman
Created May 12, 2021 06:24
Show Gist options
  • Select an option

  • Save idettman/ea172b41db7f6fe40d1f963ab43467f1 to your computer and use it in GitHub Desktop.

Select an option

Save idettman/ea172b41db7f6fe40d1f963ab43467f1 to your computer and use it in GitHub Desktop.
prebid global method mergeConfig
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