siteMapPerso

datafactor

11/7/2023 7:50:47 PM

Changes

dataFactor.js 91(+91 -0)

mySiteMap.js 201(+99 -102)

Details

dataFactor.js 91(+91 -0)

diff --git a/dataFactor.js b/dataFactor.js
new file mode 100644
index 0000000..1a0cbfd
--- /dev/null
+++ b/dataFactor.js
@@ -0,0 +1,91 @@
+const enviroment = 'https://dev.';
+//DATOS DE USUARIO
+const email = vsm.session.email != "" ? vsm.session.email : "";
+const idUser = vsm.session.id != "" ? vsm.session.id : "";
+const userName = vsm.session.title != "" ? vsm.session.title : "";
+const isSuscriber = site.session.isSuscriber() && site.session != undefined ? "Suscriptor" : "Usuario";
+let dateTime = new Date();
+dateTime = `${dateTime.getDate()}/${dateTime.getMonth()}/${dateTime.getFullYear()} - hora ${dateTime.getHours()}:${dateTime.getMinutes()}`
+
+
+let main = document.querySelector('.main-container');
+let block = main.querySelectorAll('div.block');
+let isMatch = false
+let url = ""
+//SELECTORES DE LA Genericos
+const ulOptions = document.querySelector('.session-options');
+const ItemsList = ulOptions.querySelectorAll('li');
+const perfil = ItemsList[1].querySelector('a');
+
+let listenersHome = [
+    `.${block[0].className} h2.title`,
+    `.${block[1].className} h2.title`,
+    `.locked a`,
+    `.columnists .items article.item`
+]
+let interactionHome = {
+    name: "es mi nombre"
+}
+
+function GenerateContentZones(names, selectors) {
+    let ContentZones = [];
+    if (names.length === selectors.length) {
+        let size = names.length
+        for (let i = 0; i < size; i++) {
+            let ContentZone = {
+                name: names[i],
+                selector: selectors[i]
+            }
+            ContentZones.push(ContentZone)
+        }
+    }
+    return ContentZones;
+}
+
+function GenerateListeners(elements) {
+    let listeners = [];
+    if (elements.length > 0) {
+        for (let i = 0; i < elements.length; i++) {
+            let myEvents = SalesforceInteractions.listener("click", `${elements[i]}`, (e) => {
+                SalesforceInteractions.sendEvent({
+                    interaction: {
+                        name: "Botón " + SalesforceInteractions.cashDom(e.target).text(),
+                        attributes: {
+                            userIdCms: idUser,
+                            name: userName,
+                            lastName: userName,
+                            isSuscriber: isSuscriber,
+                            emailAddress: email,
+                            continueUrl: url
+                        },
+                    },
+                });
+            })
+            listeners.push(myEvents)
+        }
+    }
+    return listeners;
+}
+
+function PageType(name, myUrl, interaction, listeners) {
+    this.name = name;
+    this.interaction = interaction;
+    this.isMatch = () => {
+        let url = window.location.href;
+        if (url.includes('?') || url.includes('/')) {
+            url = url.slice(0, window.location.href.lastIndexOf('?'));
+        }
+        isMatch = (url === `${enviroment}${myUrl}` ? true : false);
+
+
+        return isMatch;
+    };
+    this.listeners = GenerateListeners(listeners);
+}
+const home = new PageType("Home", "cronista.com", interactionHome, listenersHome);
+
+function Pages() {
+    return [home]
+}
+
+export { Pages }

mySiteMap.js 201(+99 -102)

diff --git a/mySiteMap.js b/mySiteMap.js
index 8c79ba5..1fda6fd 100644
--- a/mySiteMap.js
+++ b/mySiteMap.js
@@ -1,26 +1,105 @@
-SalesforceInteractions.init({
-    cookieDomain: "cronista.com",
-}).then(() => {
+import { Pages } from ".Content%20Builder\Personalization\Scripts\dataFactor.js";
+
+const enviroment = 'https://dev.';
+//DATOS DE USUARIO
+const email = vsm.session.email != "" ? vsm.session.email : "";
+const idUser = vsm.session.id != "" ? vsm.session.id : "";
+const userName = vsm.session.title != "" ? vsm.session.title : "";
+const isSuscriber = site.session.isSuscriber() && site.session != undefined ? "Suscriptor" : "Usuario";
+let dateTime = new Date();
+dateTime = `${dateTime.getDate()}/${dateTime.getMonth()}/${dateTime.getFullYear()} - hora ${dateTime.getHours()}:${dateTime.getMinutes()}`
+
+
+let main = document.querySelector('.main-container');
+let block = main.querySelectorAll('div.block');
+let isMatch = false
+let url = ""
+//SELECTORES DE LA Genericos
+const ulOptions = document.querySelector('.session-options');
+const ItemsList = ulOptions.querySelectorAll('li');
+const perfil = ItemsList[1].querySelector('a');
+
+let globalZones = [
+    { name: "Header", selector: '#page-header' },
+    { name: "Footer", selector: '#page-footer' },
+]
+
+let listenersHome = [
+    `.${block[0].className} h2.title`,
+    `.${block[1].className} h2.title`,
+    `.locked a`,
+    `.columnists .items article.item`
+]
+let interactionHome = {
+    name: "Home"
+}
 
-    const enviroment = 'https://qa';
-    let dateTime = new Date();
-    dateTime = `${dateTime.getDate()}/${dateTime.getMonth()}/${dateTime.getFullYear()} - hora ${dateTime.getHours()}:${dateTime.getMinutes()}`
+function GenerateContentZones(names, selectors) {
+    let ContentZones = [];
+    if (names.length === selectors.length) {
+        let size = names.length
+        for (let i = 0; i < size; i++) {
+            let ContentZone = {
+                name: names[i],
+                selector: selectors[i]
+            }
+            ContentZones.push(ContentZone)
+        }
+    }
+    return ContentZones;
+}
+
+function GenerateListeners(elements) {
+    let listeners = [];
+    if (elements.length > 0) {
+        for (let i = 0; i < elements.length; i++) {
+            let myEvents = SalesforceInteractions.listener("click", `${elements[i]}`, (e) => {
+                console.log(e.target)
+                SalesforceInteractions.sendEvent({
+                    interaction: {
+                        name: "Botón " + SalesforceInteractions.cashDom(e.target).text(),
+                        attributes: {
+                            userIdCms: idUser,
+                            name: userName,
+                            lastName: userName,
+                            isSuscriber: isSuscriber,
+                            emailAddress: email,
+                            continueUrl: url
+                        },
+                    },
+                });
+            })
+            listeners.push(myEvents)
+        }
+    }
+    return listeners;
+}
 
-    //DATOS DE USUARIO
-    const email = vsm.session.email != "" ? vsm.session.email : "";
-    const idUser = vsm.session.id != "" ? vsm.session.id : "";
-    const userName = vsm.session.title != "" ? vsm.session.title : "";
-    const isSuscriber = site.session.isSuscriber() && site.session != undefined ? "Suscriptor" : "Usuario";
+function PageType(name, myUrl, interaction, listeners) {
+    this.name = name;
+    this.interaction = interaction;
+    this.isMatch = () => {
+        let url = window.location.href;
+        if (url.includes('?') || url.includes('/')) {
+            url = url.slice(0, window.location.href.lastIndexOf('?'));
+        }
+        isMatch = (url === `${enviroment}${myUrl}` ? true : false);
 
 
-    let main = document.querySelector('.main-container');
-    let block = main.querySelectorAll('div.block');
-    let isMatch = false
-    let url = ""
-    //SELECTORES DE LA Genericos
-    const ulOptions = document.querySelector('.session-options');
-    const ItemsList = ulOptions.querySelectorAll('li');
-    const perfil = ItemsList[1].querySelector('a');
+        return isMatch;
+    };
+    this.listeners = GenerateListeners(listeners);
+}
+const home = new PageType("Home", "cronista.com", interactionHome, listenersHome);
+
+function Pages() {
+    return [home]
+}
+
+
+SalesforceInteractions.init({
+    cookieDomain: "cronista.com",
+}).then(() => {
 
     const sitemapConfig = {
         global: {
@@ -174,89 +253,7 @@ SalesforceInteractions.init({
                 name: "Default Page",
             }
         },
-        pageTypes: [
-            {
-                name: "Page Home",
-                isMatch: () => {
-                    let url = window.location.href;
-                    if (url.includes('?') || url.includes('/')) {
-                        url = url.slice(0, window.location.href.lastIndexOf('?'));
-                    }
-                    isMatch = (url === `${enviroment}.cronista.com` ? true : false);
-
-
-                    return isMatch;
-                },
-                interaction: {
-                    action: "Ingresa a la home",
-                    name: () => {
-                        let url = new URL(window.location.href);
-                        url = url.searchParams.get("utm_source");
-                        if (url) {
-                            return "Home-UTM: " + url;
-                        }
-                        else {
-                            return "Page Home";
-                        }
-                    },
-                    attributes: {
-                        userIdCms: idUser,
-                        name: userName,
-                        isSuscriber: isSuscriber,
-                        emailAddress: email,
-                    },
-                },
-                listeners: [
-                    SalesforceInteractions.listener("click", `.${block[0].className} h2.title`, (e) => {
-                        console.log(SalesforceInteractions.cashDom(e.target).text())
-                        SalesforceInteractions.sendEvent({
-                            interaction: {
-                                name: "Article: " + SalesforceInteractions.cashDom(e.target).text(),
-                            },
-                            user: {
-                                identities: {
-                                    emailAddress: email
-                                },
-                                attributes: {
-                                    name: userName
-                                }
-                            }
-                        });
-                    }),
-                    SalesforceInteractions.listener("click", `.${block[1].className} h2.title`, (e) => {
-                        console.log(SalesforceInteractions.cashDom(e.target).text())
-                        SalesforceInteractions.sendEvent({
-                            interaction: {
-                                name: "Article from home: " + SalesforceInteractions.cashDom(e.target).text(),
-                            },
-                            user: {
-                                identities: {
-                                    emailAddress: email
-                                },
-                                attributes: {
-                                    name: userName
-                                }
-                            }
-                        });
-                    }),
-                    SalesforceInteractions.listener("click", `.locked a`, (e) => {
-                        console.log(SalesforceInteractions.cashDom(e.target).text())
-                        SalesforceInteractions.sendEvent({
-                            interaction: {
-                                name: "Article Member from home: " + SalesforceInteractions.cashDom(e.target).text(),
-                            },
-                        });
-                    }),
-                    SalesforceInteractions.listener("click", `.columnists .items article.item`, (e) => {
-                        SalesforceInteractions.sendEvent({
-                            interaction: {
-                                name: "Columnists: " + SalesforceInteractions.cashDom(e.target).text(),
-                            },
-                        });
-                    }),
-                ]
-            }
-        ]
+        pageTypes: Pages()
     };
     SalesforceInteractions.initSitemap(sitemapConfig);
 });
\ No newline at end of file