• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

125
Views
¿Hay alguna manera de obtener texto interno de varios elementos en una lista para calcular el promedio de una variable personalizada en GTM?

El sitio web que estoy raspando tiene una lista de tiempos de espera que cambian regularmente. Me gustaría tener una variable js personalizada en Google Tag Manager si es posible que pueda usar para impulsar el promedio de estos valores cuando el evento se activa en Google Analytics. Tengo un código en R que funciona para obtenerlo cada hora, pero se me pide que lo extraiga como una dimensión personalizada con cada evento. Me pregunto si hay una manera de hacer algo similar en js. Aquí está el código R:

 er_times <- ("url") %>% read_html() %>% html_nodes(xpath="//div[@class='time-info--right']/text()") er_times <- as_list(er_times)

Eso me da una lista del texto interno de todos los elementos de la clase 'time-info--right' que contiene los tiempos y luego tengo un script que limpia los datos y toma el promedio de los tiempos de espera.

Entonces, estoy buscando obtener una lista o un tipo de datos similar en js donde pueda manipularlo, convertirlo a int, tomar un promedio y usarlo como una variable personalizada en GTM. Hasta ahora he probado:

 Var wait_times = document.evaluate('/html/body/div[2]/div/main/div[2]/div/div[1]/div[2]/div[3]/div[1]/div[2]/div[1]/div[2]', document, null, XPathResult.ANY_TYPE, null);

Y

 document.querySelectorAll(".time-info--right").innerText

que tanto me dio indefinido.

 document.querySelectorAll(".time-info--right").innerText

me da el primer elemento que necesito solamente.

No tengo experiencia con js, así que si alguien pudiera decirme si esto es posible, ¡sería genial! ¡Gracias!

about 3 years ago · Santiago Gelvez
1 answers
Answer question

0

Algo como esto debería funcionar en GTM (sin usar construcciones de ES6+). El punto clave es que document.querySelectorAll devuelve una lista de nodos. No puede simplemente acceder a la propiedad de texto de esa lista, debe iterar a través de ella usando un iterador de algún tipo como un bucle for o forEach para acceder a la propiedad de texto de cada nodo individual.

 getTimes = function() { var timeArray = []; var times = document.querySelectorAll('.class-for-your-times'); times.forEach(time => { var numberTime = parseInt(time.innerText); timeArray.push(numberTime); }); return timeArray }
about 3 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error