\r\n
\r\nWith insights into consumers’ interactions with competitors and other websites, as well as purchase drivers, retailers can identify growth opportunities for their business. They can then best direct their marketing investments to drive conversions and loyalty while minimizing costs.
— Danielle Michaely, CRO and Co-Founder, Konnecto
\r\n","imageSrcset":{"src":"https://assets1.risnews.com/styles/max_width_480/s3/2022-09/shutterstock_2116582439.jpg?itok=oxNo2KZB 480w, https://assets1.risnews.com/styles/max_width_640/s3/2022-09/shutterstock_2116582439.jpg?itok=iyL4ULZK 640w, https://assets1.risnews.com/styles/max_width_800/s3/2022-09/shutterstock_2116582439.jpg?itok=4O_eYwyf 800w","sizes":"(min-width: 1300px) 375px, (min-width: 920px) 28vw, (min-width: 720px) 50vw, 100vw"},"imageCaption":null,"imagePosition":"right","imageAdvertisement":false,"imageSize":"large","imageLink":"","imageExpandable":null,"fullSizeImage":{"id":47471,"alt":"measuring e-commerce success","width":960,"url":"https://assets1.risnews.com/styles/max_width_800/s3/2022-09/shutterstock_2116582439.jpg?itok=4O_eYwyf","height":540}},{"id":35192,"bundle":"topic_content","heading":"More Like This","terms":[{"id":22,"name":"E-Commerce"}],"items":[{"id":24127,"bundle":"article","title":"Anthropologie Marries Digital and In-Person Shopping With QR Code-Powered Pinterest Showhouse","url":"/anthropologie-marries-digital-and-person-shopping-qr-code-powered-pinterest-showhouse","summary":"Retailer Anthropologie is bringing Pinterest to life via a new in-store shopping experience, launched in collaboration with the social media platform. ","teaserImage":{"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/2023-10/pinterest-x-anthropologie.png?h=c71d0c67&itok=sxn3pRDG","width":960,"height":540,"alt":"Anthropologie"}},{"id":24121,"bundle":"article","title":"Levi’s End-to-End Supply Chain Investments Support Inventory Demand and Global DTC Focus","url":"/levis-end-end-supply-chain-investments-support-inventory-demand-and-global-dtc-focus","summary":"Learn how a change enabled by Levi’s recent ERP upgrade simplifies the retailer’s global ways of working with suppliers in line with industry standards.","teaserImage":{"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/2023-10/levis_1.jpg?h=508231ee&itok=CYB7yx-J","width":480,"height":270,"alt":"Levi's"}},{"id":24093,"bundle":"article","title":"TikTok Shop: Influencer Marketing Driving New Social Commerce Initiative","url":"/tiktok-shop-influencer-marketing-driving-new-social-commerce-initiative","summary":"TikTok is reshaping the world of social commerce, introducing shoppable content to its platform and leveraging the power of influencer marketing. ","teaserImage":{"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/2023-09/tiktok_shop.jpg?h=b3660f0d&itok=oiUIDRCu","width":960,"height":640,"alt":"TikTok shop"}}]}]}}; const country = "HK"; const language = "en, *"; const SITE_LANGUAGE = "en"; const siteName = "RIS News"; const userRoles = ["anonymous"]; const userUid = 0; const indexName = "risnews"; window.dataLayer = window.dataLayer || []; const data = {}; data.entityTaxonomy = {}; const contentTypes = [ "article", "blog", "bulletin", "embed_page", "landing_page", "event", "image", "page", "product", "whitepaper", "video", "tags", ]; if ( routeInfo && "bundle" in routeInfo && contentTypes.includes(routeInfo["bundle"]) ) { data.entityBundle = routeInfo.bundle; data.entityTitle = `${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 toxonomy 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); } })();