","showSummary":null,"url":"/sps-commerce-acquires-toolbox-solutions","date":"2016-01-06T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Business Analytics","url":"/business-analytics"},{"name":"Data & Analytics","url":"/data-analytics"},{"name":"Downstream Data","url":"/downstream-data"},{"name":"Mobile Technology","url":"/mobile-technology"},{"name":"Sales & Marketing","url":"/sales-and-marketing"}],"attachedFiles":[]},{"title":"EY Enters into Strategic Alliance Agreement with SAS ","id":8822,"bundle":"article","summary":"EY and SAS aim to help organizations improve returns with advanced analytics services.","showSummary":null,"url":"/ey-enters-strategic-alliance-agreement-sas","date":"2015-12-16T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Data & Analytics","url":"/data-analytics"},{"name":"Downstream Data","url":"/downstream-data"},{"name":"Sales & Marketing","url":"/sales-and-marketing"},{"name":"IT Integration","url":"/it-integration"}],"attachedFiles":[]},{"title":"The CG Manufacturer's Guide to Optimizing and Selling the Perfect Store","id":8831,"bundle":"whitepaper","url":"/cg-manufacturers-guide-optimizing-and-selling-perfect-store","date":"2015-12-14T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"summary":"Your guide and best practices for effectively optimizing and selling a Perfect Store in todays crowded retail environment.","body":"
In today’s crowded retail landscape, flawless retail execution is no longer enough. CG companies need to have the right information and tools to effectively do more, know more and sell more than competitors – across every retail channel, in every store, on every day.
","alternateLabel":null,"teaserImage":{"id":2056,"url":"https://assets1.consumergoods.com/styles/secondary_articles_short/s3/cgt_StayinFront_ewp_1215_teaser.jpg?itok=HHHsF0hn","width":196,"alt":"","height":216},"sponsored":false,"businessTopic":[],"company":[],"contentType":[]}]},"title":"Downstream Data","contentParagraphs":null,"sections":null}; const country = "US"; const language = null; const SITE_LANGUAGE = "en"; const siteName = "Consumer Goods Technology"; const userRoles = ["anonymous"]; const userUid = 0; const indexName = "CG"; const title = "Downstream Data | Consumer Goods Technology"; window.dataLayer = window.dataLayer || []; const data = {}; data.entityTaxonomy = {}; const contentTypes = [ "article", "blog", "bulletin", "embed_page", "landing_page", "event", "image", "page", "product", "whitepaper", "video", "tags", "author_profile", "buyers_guide_listing" ]; if ( routeInfo && "bundle" in routeInfo && contentTypes.includes(routeInfo["bundle"]) ) { data.entityBundle = routeInfo.bundle; data.entityTitle = title || `${routeInfo.title} | ${siteName}`; data.entityId = routeInfo.id; data.entityName = routeInfo.author?.uname; data.entityCreated = routeInfo.created; data.sponsored = routeInfo.sponsored; data.sponsor = routeInfo.sponsoringCompany; data.entityType = "node"; data.entityLangcode = SITE_LANGUAGE; data.siteName = siteName; data.drupalLanguage = language; data.drupalCountry = country; data.userRoles = userRoles; data.userUid = userUid; data.entityTaxonomyKeys = {}; data.entityTaxonomyHierarchies = {}; data.parentNaicsCode = {}; data.isPro = false; data.algoliaIndexName = indexName; // Add taxonomy data const taxonomies = { businessTopic: "business_topic", contentType: "content_type", company: "company", marketSegment: "market_segment", }; const getHierarchy = (term, terms = []) => { terms.push({ id: term.id, name: term.name }); if (term.parentTerm != null) { getHierarchy(term.parentTerm, terms); } return terms; }; const getTerms = (term, useApiId = false) => { return { id: useApiId ? term.apiId : term.id, name: term.name }; }; const getKeys = (term) => { return { id: term.id, name: term.apiId }; }; Object.entries(taxonomies).forEach(([key, item]) => { terms = routeInfo[key]; if (terms && terms.length > 0) { data["entityTaxonomy"][item] = terms.map((term) => getTerms(term, key === "company") ); if (key !== "company") { data["entityTaxonomyKeys"][item] = terms.map(getKeys); termGroups = []; terms.forEach((term, termInd) => { termGroups[termInd] = getHierarchy(term); }); data["entityTaxonomyHierarchies"][item] = termGroups; } } }); data["entityTaxonomy"]["tags"] = routeInfo["topics"] || []; // Primary Topic is either the business topic or the top tag. if (routeInfo["businessTopic"]?.length > 0) { data["entityPrimaryTopic"] = routeInfo["businessTopic"][0]["name"]; } else { if (routeInfo["topics"]?.length > 0) { data["entityPrimaryTopic"] = routeInfo["topics"][0]["name"]; } } // Primary and secondary entityNaicsCodes come from the MarketSegment if (routeInfo.marketSegment?.length > 0) { data.entityNaicsCode = {}; data["entityNaicsCode"]["id"] = routeInfo["marketSegment"][0]["id"]; data["entityNaicsCode"]["name"] = routeInfo["marketSegment"][0]["naicsCode"]; if (routeInfo["marketSegment"][0]["parentTerm"] != null) { data["parentNaicsCode"]["id"] = routeInfo["marketSegment"][0]["parentTerm"]["id"]; data["parentNaicsCode"]["name"] = routeInfo["marketSegment"][0]["parentTerm"]["naicsCode"]; } } else { data.entityNaicsCode = []; } if (routeInfo.taggedPro) { data.isPro = routeInfo.taggedPro; } window.dataLayer.push(data); } else if (routeInfo && "vid" in routeInfo) { data.entityBundle = "tags"; data.entityTitle = routeInfo.name; data.entityId = routeInfo.id; data.entityName = routeInfo.author?.uname; data.entityCreated = routeInfo.created; data.entityType = "taxonomy_term"; data.entityLangcode = SITE_LANGUAGE; data.siteName = siteName; data.sponsored = routeInfo.sponsored; data.sponsor = routeInfo.sponsoringCompany; data.drupalLanguage = language; data.drupalCountry = country; data.userRoles = userRoles; data.userUid = userUid; data.algoliaIndexName = indexName; data["entityTaxonomy"]["tags"] = { id: routeInfo["id"], name: routeInfo["name"], }; window.dataLayer.push(data); } })();