Complemento de Adobe: getPageLoadTime

IMPORTANTE

Adobe Consulting proporciona este complemento por cortesía para ayudarle a sacar el máximo partido a Adobe Analytics. El Servicio de atención al cliente de Adobe no ofrece asistencia técnica con este complemento, incluida la instalación o solución de problemas. Si necesita ayuda con este complemento, póngase en contacto con el administrador de cuentas de su organización. Ellos podrán organizar una reunión con un consultor para ayudarle.

El complemento getPageLoadTime utiliza el objeto de rendimiento JavaScript para permitirle medir el tiempo que tarda una página en cargarse por completo. Adobe recomienda utilizar este complemento si desea medir cuánto tardan las páginas en cargarse.

NOTA/ADVERTENCIA: Si está actualizando este complemento desde una versión anterior, lo más probable es que también tenga que cambiar el código que llama a esta función. Compruebe la implementación y realice pruebas exhaustivas antes de implementarla en producción

Instalación del complemento con el editor de código personalizado

Si no desea utilizar la extensión del complemento, puede utilizar el editor de código personalizado.

  1. Inicie sesión en la Recopilación de datos de Adobe Experience Platform con sus credenciales de Adobe ID.
  2. Haga clic en la propiedad deseada.
  3. Vaya a la pestaña Extensiones y, a continuación, haga clic en el botón Configurar en la extensión de Adobe Analytics.
  4. Expanda Configurar seguimiento con el código personalizado, que muestra el botón Abrir editor.
  5. Abra el editor de código personalizado y pegue el código del complemento que se proporciona a continuación en la ventana de edición.
  6. Guarde y publique los cambios en la extensión de Analytics.

Instalación del complemento con AppMeasurement

Copie y pegue el siguiente código en cualquier parte del archivo AppMeasurement después de crear una instancia del objeto de seguimiento de Analytics (con s_gi). Conservar los comentarios y los números de versión del código en la implementación ayuda a Adobe a solucionar cualquier posible problema.

/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: getPageLoadTime v3.0 */
!function(){let e=globalThis.window||this;e.getPageLoadTime=function(t){let i=function(){if(e.s_c_il){for(let t in e.s_c_il)if("s_c"===e.s_c_il[t]._c)return e.s_c_il[t]}}();function n(){var i=performance.timing;i.loadEventEnd>0&&(clearInterval(e.pi),""===e.cookieRead("s_plt")&&e.cookieWrite("s_plt",function e(t,i){if(t>=0&&i>=0)return t-i<6e4&&t-i>=0?parseFloat((t-i)/1e3).toFixed(2):60}(i.loadEventEnd,i.navigationStart)+","+t)),e.ptc=i.loadEventEnd}if(i&&(i.contextData.getPageLoadTime="3.1"),t=t||i&&i.pageName||document.location.href,e.cookieWrite=e.cookieWrite||function(t,i,n){if("string"==typeof t){if(g=function(){var t=e.location.hostname,i=e.location.hostname.split(".").length-1;if(t&&!/^[0-9.]+$/.test(t)){i=2<i?i:2;var n=t.lastIndexOf(".");if(0<=n){for(;0<=n&&1<i;)n=t.lastIndexOf(".",n-1),i--;n=0<n?t.substring(n):t}}return n}(),i=void 0!==i?""+i:"",n||""===i){if(""===i&&(n=-60),"number"==typeof n){var o=new Date;o.setTime(o.getTime()+6e4*n)}else o=n}return!!t&&(document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(i)+"; path=/;"+(n?" expires="+o.toUTCString()+";":"")+(g?" domain="+g+";":""),"undefined"!=typeof cookieRead)&&cookieRead(t)===i}},e.cookieRead=e.cookieRead||function(e){if("string"!=typeof e)return"";e=encodeURIComponent(e);var t=" "+document.cookie,i=t.indexOf(" "+e+"="),n=0>i?i:t.indexOf(";",i);return(e=0>i?"":decodeURIComponent(t.substring(i+2+e.length,0>n?t.length:n)))?e:""},e.p_fo=e.p_fo||function(t){return e.__fo||(e.__fo={}),!e.__fo[t]&&(e.__fo[t]={},!0)},performance&&e.p_fo("performance")){var o=performance;o.clearResourceTimings(),""!==e.cookieRead("s_plt")&&(o.timing.loadEventEnd>0&&clearInterval(e.pi),this._pltLoadTime=e.cookieRead("s_plt").split(",")[0],this._pltPreviousPage=e.cookieRead("s_plt").split(",")[1],e.cookieWrite("s_plt","")),0===o.timing.loadEventEnd?e.pi=setInterval(function(){n()},250):o.timing.loadEventEnd>0&&(e.ptc?e.ptc===o.timing.loadEventEnd&&1===o.getEntries().length&&(e.pwp=setInterval(function(){var i;(i=performance).getEntries().length>0&&(e.ppfe===i.getEntries().length?clearInterval(e.pwp):e.ppfe=i.getEntries().length),""===e.cookieRead("s_plt")&&e.cookieWrite("s_plt",((i.getEntries()[i.getEntries().length-1].responseEnd-i.getEntries()[0].startTime)/1e3).toFixed(2)+","+t)},500)):n())}},e.getPageLoadTime.getVersion=function(){return{plugin:"getPageLoadTime",version:"3.0"}}}();
/******************************************** END CODE TO DEPLOY ********************************************/

Uso del complemento

La función getPercentPageViewed utiliza los argumentos siguientes:

  • pv (opcional, cadena): dimensión con la que se correlaciona el tiempo de carga de la página. Este valor debe ser igual a un valor que identifique la propia página. Cuando no se establece, el valor predeterminado de este argumento es la variable pageName de Adobe AppMeasurement (es decir, s.pageName) o la dirección URL cuando no se establece s.pageName

Llamar a esta función no devuelve nada; en su lugar, establece las siguientes variables:

  • window._pltPreviousPage: el valor de la página anterior (es decir, lo que se pasó al argumento pv)
  • window._pltLoadTime: tiempo, en segundos, que tardó la página anterior en cargarse

El complemento getPageLoadTime crea una cookie de origen:

  • s_plt: tiempo, en segundos, que tardó la página anterior en cargarse También contiene el valor de lo que se pasó al argumento pv. Caduca al final de la sesión del explorador.

Ejemplo

// 1. Run the getPageLoadTime function if the pageName variable is set
// 2. Set prop10 to the load time of the previous page
// 3. Set eVar10 to the name of the previous page
// 4. Set event100 to the load time (in seconds) of the previous page. A numeric event is required to capture this value.
// You can then use event100 in calculated metrics to obtain the average page load time per page.
if(s.pageName) getPageLoadTime();
if(window._pltPreviousPage)
{
  s.prop10 = window._pltLoadTime;
  s.eVar10 = window._pltPreviousPage
  s.events = "event100=" + window._pltLoadTime;
}

Historial de versiones

3.0 (6 de diciembre de 2022)

  • Reescritura completa del complemento para que sea independiente de la solución. Por ejemplo, ahora es compatible con el SDK web de AEP
  • Crea las variables _pltPreviousPage y _pltLoadTime en el objeto de ventana (en lugar de en el objeto s de AppMeasurement)
  • Elimina la necesidad de la cookie s_pltp: ahora todo está almacenado únicamente en la cookie s_plt
  • Incluye la función getVersion para ayudar en la resolución de problemas

2.0.1 (26 de marzo de 2021)

  • Se ha corregido un problema por el que el plug-in no establecía correctamente los valores en el objeto s.

2.0 (19 de marzo de 2021)

  • Se ha añadido el número de versión como datos de contexto.

1.0 (22 de mayo de 2018)

  • Versión inicial.

En esta página