siteMapPerso

cotizaciones

12/12/2023 12:14:15 PM

Changes

dist/mySiteMap.js 136(+130 -6)

src/mySiteMap.js 54(+48 -6)

Details

dist/mySiteMap.js 136(+130 -6)

diff --git a/dist/mySiteMap.js b/dist/mySiteMap.js
index 795d0fe..be582b6 100644
--- a/dist/mySiteMap.js
+++ b/dist/mySiteMap.js
@@ -7,18 +7,22 @@ require("core-js/modules/es.regexp.to-string.js");
 require("core-js/modules/es.array.includes.js");
 require("core-js/modules/es.string.includes.js");
 require("core-js/modules/es.array.slice.js");
+require("core-js/modules/es.regexp.exec.js");
+require("core-js/modules/es.string.replace.js");
+require("core-js/modules/es.regexp.constructor.js");
 require("core-js/modules/es.array.iterator.js");
 require("core-js/modules/es.string.iterator.js");
 require("core-js/modules/web.dom-collections.iterator.js");
 require("core-js/modules/web.url.js");
 require("core-js/modules/web.url-search-params.js");
-require("core-js/modules/es.regexp.exec.js");
 require("core-js/modules/es.string.match.js");
 var enviroment = "";
 var pages = [];
+console.log("dfdsf");
 esURLValida(window.location.href);
 
 //DATOS DE USUARIO
+var isAnonimus = vsm.loggedIn() === false || vsm.loggedIn() === null ? true : false;
 var email = vsm.session.email != "" ? vsm.session.email : "";
 var idUser = vsm.session.id != "" ? vsm.session.id : "";
 var firstName = vsm.session.name != "" ? vsm.session.name : "";
@@ -64,7 +68,7 @@ var globalListeners = [{
   labelName: 'TAGS',
   ItPropagation: false
 }, {
-  class: ".piece.markets.standard ul li",
+  class: "#page-header .piece.markets.standard ul li",
   labelName: 'TICKERS',
   ItPropagation: false
 }, {
@@ -139,6 +143,49 @@ var payWallListeners = [{
   ItPropagation: false
 }];
 
+//SELECTORES LogInWall
+var logInWallListeners = [{
+  class: "#appleid-signin",
+  labelName: 'Botón - Iniciar sesión con Apple',
+  ItPropagation: false
+}, {
+  class: "#facebook",
+  labelName: 'Botón - Iniciar sesión con Facebook',
+  ItPropagation: false
+}, {
+  class: "#google",
+  labelName: 'Botón - Iniciar sesión con Google',
+  ItPropagation: false
+}, {
+  class: "#vpllocallogin .localloginbtn",
+  labelName: 'Botón - Iniciá sesión con tu E-mail',
+  ItPropagation: false
+}, {
+  class: ".submit",
+  labelName: 'Botón - Iniciar sesión',
+  ItPropagation: false
+}, {
+  class: ".signup a",
+  labelName: 'Botón - Registrate',
+  ItPropagation: false
+}, {
+  class: ".forgotpassword a",
+  labelName: 'Botón - Olvidé mi contraseña',
+  ItPropagation: false
+}, {
+  class: ".terminosypolitica a:first-child",
+  labelName: 'Botón - Política de privacidad',
+  ItPropagation: false
+}, {
+  class: ".terminosypolitica a:nth-child(2)",
+  labelName: 'Botón - Terminos y condiciones',
+  ItPropagation: false
+}, {
+  class: "#vplsignup input.vsmform.submit",
+  labelName: 'Botón - Registrarme',
+  ItPropagation: false
+}];
+
 //SELECTORES Articulo
 var articleListeners = [{
   class: "nav.breadcrumb ol li a span",
@@ -185,6 +232,13 @@ var articleListeners = [{
   ItPropagation: false
 }];
 
+//SELECTORES LANDING DÓLAR
+var landingDolarListeners = [{
+  class: ".dolar .markets table tr",
+  labelName: 'dolares',
+  ItPropagation: false
+}];
+
 //Interacciones
 var homeInteractions = {
   name: "Home"
@@ -192,8 +246,33 @@ var homeInteractions = {
 var payWallInteractions = {
   name: PayWallIteractionName()
 };
+var logInWallInteractions = {
+  name: "LogInWall"
+};
+var landingDolarInteractions = {
+  name: "Landing Dólar"
+};
+var mercadosOnlineInteractions = {
+  name: SalesforceInteractions.CatalogObjectInteractionName.ViewCatalogObject,
+  catalogObject: {
+    type: "MercadosOnline",
+    id: window.cronistaDataLayer[0].articleProperty.id,
+    attributes: {
+      url: window.location.href,
+      name: SalesforceInteractions.cashDom(".section-header-title a").text()
+    },
+    relatedCatalogObjects: {
+      TipoDeCotizacion: SalesforceInteractions.DisplayUtils.pageElementLoaded("html").then(function (ele) {
+        return [window.cronistaDataLayer[0].articleProperty.category.toUpperCase()];
+      })
+    }
+  }
+};
 var home = new PageType("Home", "cronista.com", homeInteractions, homeListeners, false);
 var payWall = new PageType("PayWall", "cronista.com/suscripciones", payWallInteractions, payWallListeners, false);
+var logInWall = new PageType("LogInWall", "cronista.com/ingresa", logInWallInteractions, logInWallListeners, false);
+var landingDolar = new PageType("Landing Dólar", "cronista.com/MercadosOnline/dolar.html", landingDolarInteractions, landingDolarListeners, false);
+var mercadosOnline = new PageType("Mercados Online", "cronista.com/MercadosOnline", mercadosOnlineInteractions, mercadosOnlineInteractions, false);
 if (document.querySelector("#pagecontent .news") || document.querySelector("#pagecontent .news-minisite") || document.querySelector("#pagecontent .news-es") || document.querySelector("#pagecontent .news-mx")) {
   var metaTag = document.querySelector('meta[property="og:image"]');
   var interaction = {
@@ -213,6 +292,17 @@ if (document.querySelector("#pagecontent .news") || document.querySelector("#pag
         authorName: window.cronistaDataLayer[0].articleProperty.authorName,
         canonicalUrl: window.cronistaDataLayer[0].articleProperty.canonica,
         accessCondition: window.cronistaDataLayer[0].articleProperty.conditionsOfAccess
+      },
+      relatedCatalogObjects: {
+        Category: SalesforceInteractions.DisplayUtils.pageElementLoaded("html").then(function (ele) {
+          return [window.cronistaDataLayer[0].articleProperty.category.toUpperCase()];
+        }),
+        Autores: SalesforceInteractions.DisplayUtils.pageElementLoaded("html").then(function (ele) {
+          return [window.cronistaDataLayer[0].articleProperty.authorName.toUpperCase()];
+        }),
+        CondicionDeAcceso: SalesforceInteractions.DisplayUtils.pageElementLoaded("html").then(function (ele) {
+          return [window.cronistaDataLayer[0].articleProperty.conditionsOfAccess.toUpperCase()];
+        })
       }
     }
   };
@@ -220,11 +310,13 @@ if (document.querySelector("#pagecontent .news") || document.querySelector("#pag
   pages.push(article);
 }
 
-//[home, payWall, article]
+//[home, payWall, article, logInWall, landingDolar, mercadosOnline]
 function Pages() {
-  pages.push(home, payWall);
+  pages.push(home, payWall, logInWall, landingDolar, mercadosOnline);
   return pages;
 }
+
+//MATCH PAGE
 function PageType(name, myUrl, interaction, myEvents, isArticle) {
   this.name = name;
   this.isMatch = function () {
@@ -239,12 +331,27 @@ function PageType(name, myUrl, interaction, myEvents, isArticle) {
       isMatch = true;
     } else {
       isMatch = url === "".concat(enviroment).concat(myUrl) ? true : false;
+      if (name == "Mercados Online" && validarParteDeURL(url, "MercadosOnline")) {
+        isMatch = true;
+        console.log("La URL contiene la parte especificada.");
+      }
     }
     return isMatch;
   };
   this.interaction = interaction;
   this.listeners = GenerateListeners(name, myEvents);
 }
+function validarParteDeURL(url, parte) {
+  // Escapar caracteres especiales en la parte de la URL para usar en la expresión regular
+  var parteEscapada = parte.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+
+  // Crear una expresión regular con la parte de la URL
+  var regex = new RegExp(parteEscapada);
+
+  // Verificar si la URL contiene la parte especificada
+  console.log(regex.test(url));
+  return regex.test(url);
+}
 function GlobalActions(actionEvent) {
   url = window.location.href;
   if (email) {
@@ -258,6 +365,7 @@ function GlobalActions(actionEvent) {
     actionEvent.user.attributes.name = firstName;
     actionEvent.user.attributes.lastName = lastName;
     actionEvent.user.attributes.date = dateTime;
+    actionEvent.user.attributes.isAnonimus = isAnonimus;
     actionEvent.user.identities.userIdCms = idUser;
   }
   return actionEvent;
@@ -336,17 +444,33 @@ function ReadGlobalEvents(event, listeners) {
   if (listeners.labelName == 'Breadcrumb') {
     dataName = listeners.labelName + ": " + nameTarget;
   }
+  if (listeners.labelName == 'Botón - Iniciar sesión') {
+    var emailAnonimus = SalesforceInteractions.cashDom(".input.username .username").val();
+    email = emailAnonimus;
+  }
+  if (listeners.labelName == 'Botón - Registrarme') {
+    var _emailAnonimus = SalesforceInteractions.cashDom(".vsmemail input").val();
+    var userNameRegister = SalesforceInteractions.cashDom(".vsmusername input").val();
+    firstName = userNameRegister;
+    email = _emailAnonimus;
+  }
+  if (listeners.labelName == 'dolares') {
+    dataName = "Cotización dólar: " + SalesforceInteractions.cashDom(event.currentTarget.querySelector(".name")).text();
+  }
   if (isSend) {
     SalesforceInteractions.sendEvent({
       interaction: {
-        name: dataName,
+        name: dataName
+      },
+      user: {
         attributes: {
           userIdCms: idUser,
           name: firstName,
           lastName: firstName,
           isSuscriber: isSuscriber,
           emailAddress: email,
-          continueUrl: url
+          continueUrl: url,
+          isAnonimus: isAnonimus
         }
       }
     });

src/mySiteMap.js 54(+48 -6)

diff --git a/src/mySiteMap.js b/src/mySiteMap.js
index f47919d..da8bc02 100644
--- a/src/mySiteMap.js
+++ b/src/mySiteMap.js
@@ -30,7 +30,7 @@ let globalListeners = [
     { class: ".session.with-avatar", labelName: 'Botón MENU mi perfil', ItPropagation: true },
     { class: ".session-options li:nth-child(2) a", labelName: 'Botón MI PERFIL', ItPropagation: true },
     { class: "#main-menu ul li a", labelName: 'TAGS', ItPropagation: false },
-    { class: ".piece.markets.standard ul li", labelName: 'TICKERS', ItPropagation: false },
+    { class: "#page-header .piece.markets.standard ul li", labelName: 'TICKERS', ItPropagation: false },
     { class: ".mitem.pwa-signed-in.session-box", labelName: 'Botón MENU mi perfil (MOBILE)', ItPropagation: true },
     { class: ".mitem.pwa-signed-in.session-box .session-options li:nth-child(2) a", labelName: 'Botón MI PERFIL (MOBILE)', ItPropagation: true },
     { class: ".pwa-footer-fixed-bar .mitem.dolar", labelName: 'Botón MENU Dólar (MOBILE)', ItPropagation: false },
@@ -86,6 +86,11 @@ let articleListeners = [
     { class: `.b-member-black .button-wrapper`, labelName: 'Botón/Caja: Invertí en periodismo de calidad', ItPropagation: false },
 ]
 
+//SELECTORES LANDING DÓLAR
+let landingDolarListeners = [
+    { class: ".dolar .markets table tr", labelName: 'dolares', ItPropagation: false }
+]
+
 //Interacciones
 let homeInteractions = {
     name: "Home"
@@ -99,9 +104,34 @@ let logInWallInteractions = {
     name: "LogInWall"
 }
 
+let landingDolarInteractions = {
+    name: "Landing Dólar"
+}
+
+let mercadosOnlineInteractions = {
+    name: SalesforceInteractions.CatalogObjectInteractionName.ViewCatalogObject,
+    catalogObject: {
+        type: "MercadosOnline",
+        id: window.cronistaDataLayer[0].articleProperty.id,
+        attributes: {
+            url: window.location.href,
+            name: SalesforceInteractions.cashDom(".section-header-title a").text(),
+        },
+        relatedCatalogObjects: {
+            TipoDeCotizacion: SalesforceInteractions.DisplayUtils.pageElementLoaded(
+                "html",
+            ).then((ele) => {
+                return [window.cronistaDataLayer[0].articleProperty.category.toUpperCase()]
+            }),
+        },
+    },
+}
+
 const home = new PageType("Home", "cronista.com", homeInteractions, homeListeners, false);
 const payWall = new PageType("PayWall", "cronista.com/suscripciones", payWallInteractions, payWallListeners, false);
 const logInWall = new PageType("LogInWall", "cronista.com/ingresa", logInWallInteractions, logInWallListeners, false);
+const landingDolar = new PageType("Landing Dólar", "cronista.com/MercadosOnline/dolar.html", landingDolarInteractions, landingDolarListeners, false);
+const mercadosOnline = new PageType("Mercados Online", "cronista.com/MercadosOnline", mercadosOnlineInteractions, mercadosOnlineInteractions, false);
 
 
 if (document.querySelector("#pagecontent .news") || document.querySelector("#pagecontent .news-minisite") || document.querySelector("#pagecontent .news-es") || document.querySelector("#pagecontent .news-mx")) {
@@ -148,12 +178,13 @@ if (document.querySelector("#pagecontent .news") || document.querySelector("#pag
     pages.push(article)
 }
 
-//[home, payWall, article, logInWall]
+//[home, payWall, article, logInWall, landingDolar, mercadosOnline]
 function Pages() {
-    pages.push(home, payWall, logInWall)
+    pages.push(home, payWall, logInWall, landingDolar, mercadosOnline)
     return pages
 }
 
+//MATCH PAGE
 function PageType(name, myUrl, interaction, myEvents, isArticle) {
     this.name = name;
     this.isMatch = () => {
@@ -168,6 +199,9 @@ function PageType(name, myUrl, interaction, myEvents, isArticle) {
             isMatch = true
         } else {
             isMatch = (url === `${enviroment}${myUrl}` ? true : false);
+            if (name == "Mercados Online" && validarParteDeURL(url, "MercadosOnline")) {
+                isMatch = true
+            }
         }
 
         return isMatch;
@@ -176,6 +210,12 @@ function PageType(name, myUrl, interaction, myEvents, isArticle) {
     this.listeners = GenerateListeners(name, myEvents);
 }
 
+function validarParteDeURL(url, parte) {
+    const parteEscapada = parte.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+    const regex = new RegExp(parteEscapada);
+    return regex.test(url);
+}
+
 function GlobalActions(actionEvent) {
     url = window.location.href
     if (email) {
@@ -296,6 +336,10 @@ function ReadGlobalEvents(event, listeners) {
         email = emailAnonimus
     }
 
+    if (listeners.labelName == 'dolares') {
+        dataName = "Cotización dólar: " + SalesforceInteractions.cashDom(event.currentTarget.querySelector(".name")).text()
+    }
+
     if (isSend) {
         SalesforceInteractions.sendEvent({
             interaction: {
@@ -362,7 +406,6 @@ function esURLValida(url) {
     enviroment = regex[0]
 }
 
-
 SalesforceInteractions.init({
     cookieDomain: "cronista.com",
 }).then(() => {
@@ -383,5 +426,4 @@ SalesforceInteractions.init({
         pageTypes: Pages()
     };
     SalesforceInteractions.initSitemap(sitemapConfig);
-});
-
+});
\ No newline at end of file