ES2423313T3 - Método y medio para el rastreo remoto de la interacción de un usuario con una página web - Google Patents

Método y medio para el rastreo remoto de la interacción de un usuario con una página web Download PDF

Info

Publication number
ES2423313T3
ES2423313T3 ES09747080T ES09747080T ES2423313T3 ES 2423313 T3 ES2423313 T3 ES 2423313T3 ES 09747080 T ES09747080 T ES 09747080T ES 09747080 T ES09747080 T ES 09747080T ES 2423313 T3 ES2423313 T3 ES 2423313T3
Authority
ES
Spain
Prior art keywords
tracking
server
web page
user
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES09747080T
Other languages
English (en)
Inventor
Alexei R. White
Andre D. Charland
David C. Johnson
Mitchell A. Cohen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Foresee Results Inc
Original Assignee
Foresee Results Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Foresee Results Inc filed Critical Foresee Results Inc
Application granted granted Critical
Publication of ES2423313T3 publication Critical patent/ES2423313T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Método implementado por ordenador para el rastreo remoto de la interacción del usuario con una página web, que comprende: solicitar una página web de un servidor de web que incluye un código de rastreo; recibir la página web de servidor de web; ejecutar el código de rastreo para solicitar un script de rastreo de un servidor de rastreo; recibir el script de rastreo; añadir el script de rastreo recibido a la página web y ejecutar el script de rastreo; capturar datos de interacción del usuario durante la navegación por la página web mediante instrucciones en el script de rastreo; y transmitir y almacenar periódicamente los datos de interacción del usuario al servidor de rastreo.

Description

Método y medio para el rastreo remoto de la interacción de un usuario con una página web.
Reivindicación de prioridad
La presente solicitud reivindica prioridad de conformidad con 35 U.S.C. § 119 sobre la Solicitud Provisional estadounidense con Número de Serie 61/124,392, presentada el 15 de abril de 2008.
Antecedentes de la invención
Las presentes invenciones hacen referencia en general a sistemas y métodos para monitorizar la interacción de un usuario con un ordenador remoto. De manera más específica, las presentes invenciones hacen referencia a sistemas y métodos para el rastreo y reproducción de la interacción de un usuario con un ordenador o página web remotos.
Resulta deseable para las compañías enfocadas a los negocios on-line, tal como funciona la operativa de páginas web relacionadas con negocios a través de internet, poder observar y/o recoger y analizar la interacción de ciertos usuarios con sus páginas web. Se conoce en el arte software comercial para recoger y analizar un resumen de aspectos de la interacción de un usuario con páginas web. Sin embargo, tales herramientas conocidas no permiten de manera habitual la recolección o el análisis de detalles de las interacciones de un usuario individual con una página web, tales como, por ejemplo, cómo un usuario individual completa un formulario en una página web, o con qué partes de una página web un usuario interacciona más fácilmente, o cómo un usuario navega de un elemento de una página web a otro.
Se conoce en el arte, un software para recoger y analizar de forma remota ciertos detalles adicionales de las interacciones de un usuario individual con una página web. Sin embargo, tal software conocido requiere, habitualmente, que el servidor o el proveedor del servicio recoja los detalles de la interacción del usuario y también proporcione la página web al ordenador del usuario. Tales configuraciones aumentan la carga de procesamiento en el servidor de la página web y limita la habilidad de un tercer proveedor del servicio, tal como un proveedor del servicio de análisis de la interacción de un usuario, de poder recoger los datos de la interacción del usuario del servidor principal.
Como resultado de dichas limitaciones, sería deseable proporcionar sistemas y métodos que proporcionen rastreo y reproducción remota de la interacción de un usuario con una página web que permita el hospedaje (hosting) y el servicio de la página web mediante un proveedor de servicios, y recoger y repetir/reproducir la interacción del usuario con la página web de un usuario proporcionada por un proveedor de servicios distinto, utilizando ordenadores distintos del servicio que ofrece el hospedaje y que sirve la página web al usuario.
La patente US 2006/123340 A1 hace referencia a la monitorización o rastreo de las interacciones de los usuarios en una página web que incluye complementos o plug-ins procedentes de un tercero. De acuerdo con la solicitud estadounidense, una baliza web incorporada en una página web se envía a un ordenador cliente para causar que el ordenador cliente genere peticiones al servidor que recoge los datos. Información adicional, tal como la hora, la fecha o alguna información de identificación puede ser enviada junto con la petición. Adicionalmente, también se rastrean las interacciones de los usuarios en referencia a los plug-ins. Finalmente, se generan capas de informes para proporcionar un visualizador gráfico del comportamiento de un usuario con respecto al contenido proporcionado por el plug-in.
La patente US 2008/040473 A1 hace referencia al rastreo de la interacción de un usuario con una aplicación de web interactiva asociada con una página web. El método proporciona elementos de HTML modificados para llamar a un servidor de rastreo. El método permite el rastreo también de elementos HTML ejecutados de forma dinámica en una aplicación web interactiva. La determinación de los elementos HTML a ser modificados es realizada por un administrador, y se coloca un archivo de inclusión en una página web para modificar un elemento en particular en la página web.
La patente US 6,877,007 B1 revela un método y un sistema para el rastreo de la interacción de un usuario con un recurso suministrado por un ordenador servidor. Cuando un usuario solicita una página web de un servidor para su visualización utilizando un navegador, el usuario es redirigido a un servidor de rastreo. El servidor de rastreo envía la página web solicitada, con un script incorporado al ordenador del usuario junto con un programa de aplicación que puede grabar la interacción del usuario con la página web. A medida que el usuario interactúa con la página web, las entradas realizadas por el usuario, tales como movimientos del ratón, la pulsación de los botones, el mecanografiado, etc. son transmitidos de vuelta al servidor de rastreo por el programa de aplicación. La sesión grabada se recupera más tarde desde el servidor de rastreo para su reproducción, en base a los datos de entrada del usuario, el recurso rastreado puede ser modificado, de tal manera que se hace más accesible al usuario o más fácil de navegar.
Resumen de la invención Es un objeto de la presente invención proporcionar sistemas y métodos para el rastreo remoto de la interacción de usuarios con una página web que aborda algunas de las limitaciones del arte previo.
Otro objeto de la presente invención consiste en proporcionar sistemas y métodos para la reproducción de la interacción de un usuario con una página web que aborda algunas de las limitaciones del arte previo.
Es un objeto adicional de la invención proporcionar un medio legible por un ordenador y un método implementado por ordenador del rastreo remoto y reproducción de la interacción de un usuario con una página web, que proporcione una transmisión entre dominios de los datos de interacción de los usuarios a un ordenador de rastreo diferente del ordenador servidor que aloja la página web.
Incluso un objeto adicional de la presente invención consisten en proporcionar un medio legible por ordenador y un método implementado por ordenador para el rastreo remoto de la interacción de un usuario con una página web u otro recurso multimedia que proporcione una transmisión entre dominios en tiempo real de los datos de la interacción de un usuario a un ordenador de rastreo, y la reproducción en tiempo real de los datos de la interacción de un usuario en uno o más ordenadores en un entorno colaborativo.
De acuerdo a un modo de realización de la presente invención, se proporciona un medio legible por ordenador, que comprende instrucciones ejecutables para solicitar una página web de un servidor web, solicitar un script de rastreo de un servidor de rastreo, recibir la página web y hacer un script de rastreo y ejecutar el script de rastreo, para capturar, procesar y almacenar los datos de la interacción de un usuario durante su navegación por la página web, y para transmitir periódicamente los datos de la interacción del usuario mediante una solicitud de script dinámico o técnicas de transmisión y compresión disponibles habitualmente, y para almacenar los datos de la interacción del usuario en un servidor de rastreo o de reproducción.
De acuerdo con otro modo de realización, se proporciona un medio legible por ordenador, que comprende instrucciones ejecutables para identificar elementos de una página web, definir receptores para cada elemento, grabar la interacción del usuario con la página web como datos de interacción de usuarios utilizando los receptores, procesar y almacenar los datos en un almacenamiento de navegador web, paquetizar los datos y codificar los datos paquetizados como una solicitud de script dinámico, y transmitir la solicitud de script dinámico a un servidor de rastreo.
De acuerdo con un modo de realización adicional de la invención, se proporciona un método implementado por ordenador para reproducir la interacción de un usuario con una página web, que comprende una solicitud de reproducción de una grabación del rastreo de un servidor de rastreo, solicitar la página web de un servidor de web, recibir la página web y solicitar un script de rastreo del servidor de rastreo, solicitar y recibir periódicamente los datos de la interacción del usuario del servidor de rastreo mediante una petición de script dinámico, recrear una visualización de la interacción de los datos de interacción del usuario, y reproducir la visualización de la interacción en la página web.
De acuerdo con un modo de realización adicional de la invención, se proporciona un método implementado por ordenador para reproducir la interacción de un usuario con una página web, que comprende solicitar la reproducción de un archivo de vídeo mediante la solicitud de un script de reproducción del servidor, y construir el archivo de vídeo mediante la solicitud del script de reproducción del servidor, recibir y ejecutar el script de reproducción, solicitar y recibir periódicamente los datos de la interacción del usuario del servidor de rastreo o reproducción a través de aplicaciones de transmisión y compresión de datos disponibles habitualmente, recrear una visualización de la interacción, tal como una película de los datos de la interacción del usuario, y reproducir la visualización de la interacción utilizando aplicaciones de reproducción de vídeo disponibles habitualmente, tales como Windows Media Player o QuickTime. Estos objetos se resuelven de una manera ventajosa básicamente aplicando las características establecidas en las reivindicaciones independientes 1 y 7.
Ventajas adicionales de la presente invención resultarán aparentes al considerar los dibujos en conjunto con la descripción detallada.
Breve descripción de las figuras
El sistema y método de la presente invención será descrito a continuación en referencia a las figuras de los dibujos adjuntos, en los que:
La Figura 1 ilustra un entorno operativo en red a modo de ejemplo, para implementar un modo de realización de la presente invención.
La Figura 2 ilustra un ejemplo de la arquitectura del ordenador de un usuario configurado según un modo de realización de la invención.
La Figura 3 ilustra un ejemplo de arquitectura de un ordenador servidor de web configurado según un modo de realización de la invención.
La figura 4 ilustra un ejemplo de la arquitectura de un ordenador servidor de rastreo configurado según un modo de realización de la invención.
La Figura 5 ilustra una serie de operaciones de procesamiento asociadas con un modo de realización de la presente invención.
La Figura 6 ilustra una serie de operaciones de procesamiento implementadas por el ordenador de un usuario asociadas a un modo de realización de la invención.
La Figura 7 ilustra una serie de operaciones de procesamiento asociadas con un modo de realización de la reproducción de la invención.
Referencias numéricas similares hacen referencia a partes correspondientes por todas las diferentes vistas de los dibujos.
Descripción detallada de la invención
La Figura 1 ilustra un ejemplo de entorno operativo en red en el que los modos de realización de la presente invención pueden implementarse. El entorno en red incluye un ordenador del usuario 10 conectado a una red de comunicaciones 50, que puede incluir, por ejemplo, uno o más de lo siguiente: una red de área local (LAN), red de área amplia (WAN), World Wide Web (WWW), Internet, de tal manera que el ordenador del usuario 10 pueda comunicarse con otros ordenadores conectados de forma similar a la red 50. Otros ordenadores conectados a la red 50 pueden incluir un servidor de web 20, un servidor de rastreo 30, y un ordenador de análisis 40, cada uno de los cuales puede comunicarse con cualquier otro ordenador conectado a la red 50. El ordenador del usuario 10 incluye componentes informáticos habituales conocidos en el arte, para transmitir y recibir datos a o desde otros ordenadores conectados al ordenador del usuario 10 a través de la red 50.
De manera similar, el servidor web 20 incluye componentes informáticos habituales conocidos en el arte para servir páginas web a otros ordenadores a través de la red 50. En particular, el servidor web 20 se conecta a un repositorio de almacenamiento de la página web 22 que almacena uno o más recursos de páginas web 24. El repositorio de almacenamiento de la página web 22 puede incluir un dispositivo de almacenamiento de datos convencional, tal como un disco duro o una memoria de estado sólido ubicada con, y conectada directamente a, el servidor de web 20, o puede incluir un equipo de almacenamiento de datos remoto conectado al servidor de web 20. La página web 24 puede incluir un documento único, tal como un documento de hipertexto escrito habitualmente en un lenguaje de marcas, tal como HTML o XML, o puede incluir múltiples documentos tales como un sitio web de paginación múltiple, al cual puede acceder un ordenador del usuario 10 conectado al servidor de web 20 a través de la red 50. La página web 24 puede también incluir uno o más scripts o comandos para la ejecución de operaciones expresadas en uno o más lenguajes de programación, tales como por ejemplo Javascript. Tales scripts pueden inluirse en la página web 24 cuando se sirve a otros ordenadores mediante el servidor de web 20.
El servidor de rastreo 30 incluye componentes informáticos habituales conocidos en el arte, para enviar y recibir datos a y desde otros ordenadores conectados a la red 50. En particular, el servidor de rastreo 30 se encuentra conectado a un repositorio de almacenamiento de rastreo 32. El repositorio de almacenamiento de rastreo 32 puede constar de un dispositivo de almacenamiento de datos convencional, tal como un disco duro o una memoria de estado sólido, ubicado con, y conectado directamente a, el servidor de rastreo 30, o puede constar de un servicio de almacenamiento de datos remoto conectado al servidor de rastreo 30, tal como una base de datos.
El repositorio de almacenamiento de rastreo 32 almacena un script 34 que puede expresarse en un lenguaje de comandos o de programación de script conocido, tal como Javascript por ejemplo, y puede incluir instrucciones ejecutables del ordenador para grabar y transmitir datos de interacción relacionados con la interacción de un usuario con una página web, tal como se describe en mayor detalle en referencia a las Figuras 2-6. En algunos modos de realización, el script puede incluir una llamada a una función de una o más aplicaciones que puede utilizarse para comunicar los datos de interacción a través de la red 50. Por ejemplo, una o más aplicaciones que se encuentran de manera habitual, tal como Adobe Flash, puede utilizarse para comprimir y transmitir los datos (por ejemplo, en el formato de mensaje de acción (formato “AMF”, por sus siglas en inglés)).
El repositorio de almacenamiento de rastreo 32, puede además almacenar uno o más registros de rastreo 36, incluyendo dichos datos de interacción, que pueden recibirse desde o transmitirse a uno o más ordenadores conectados al servidor de rastreo 30 a través de la red 50, tal como un ordenador del usuario 10 o un ordenador de análisis 40, por ejemplo.
Se podrá apreciar de lo expuesto anteriormente que el servidor de rastreo 30 y el almacenamiento de rastreo 32 pueden construirse de muchas maneras (no se muestran). Por ejemplo, estos recursos pueden estar construidos a partir de plataformas múltiples, físicamente en remoto, autónomas, con funciones que pueden distribuirse a través
de tales recursos o pueden integrarse en una o más “plataformas únicas” configuradas para realizar las diversas
funciones diferentes que se requieren, según se describe en más detalle en la presente patente (por ejemplo, a través de una partición o de una asignación lógica).
Más aún, se entenderá además que el servidor 30 y el almacenamiento 32 pueden desempeñar una variedad de funcionalidades. Por ejemplo, el servidor 30 y el almacenamiento 32 pueden recibir información del rastreo en referencia a la interacción de un usuario con una página web, tal como se describe en más detalle en la presente patente. Sin embargo, el servidor 30 y el almacenamiento 32 pueden también realizar otras funciones tales como la reproducción de los datos de interacción en el almacenamiento 30 en respuesta a una petición de reproducción.
Por ejemplo, un analista de sistemas puede desear visualizar interacciones de los usuarios en un ordenador de análisis 40 en base a los datos de rastreo almacenados en el almacenamiento 32. En este caso, el servidor de rastreo 30 puede actuar como un “servidor de reproducción” y recoger los registros de rastreo del almacenamiento 32 y reproducirlos para su visualización en el ordenador de análisis 40. Por tanto, el servidor de rastreo 30 y el
almacenamiento de rastreo 32 pueden denominarse, en algunas ocasiones en la presente patente, como “servidor de reproducción” 30 o “almacenamiento de producción” 32, dependiendo de la función que desempeñen.
Adicionalmente, se debe entender que el servidor 30 y el almacenamiento 32 pueden desempeñar funciones dobles, desempeñando tanto la función de reproducción como la de rastreo, según sea necesario. Sin embargo, otros pueden operar como básicamente servidores dedicados que realizan funciones de reproducción o de almacenamiento (no se muestran).
De forma similar al ordenador del usuario 10, el ordenador de análisis 40 puede incluir componentes informáticos habituales para transmitir y recibir datos a y desde otros ordenadores conectados, al ordenador de análisis 40 a través de la red 50.
La Figura 2 ilustra un ejemplo de arquitectura de ordenador para un ordenador del usuario 10 configurado de acuerdo con un modo de realización de la presente invención. De acuerdo con un modo de realización de la invención, el ordenador de análisis 40 según se ha descrito anteriormente puede, además, estar configurado de forma similar al ejemplo de arquitectura del ordenador del usuario 10, tal como se ilustra en la Figura 2. El ordenador 10 puede incluir componentes informáticos, incluyendo una unidad de procesamiento central 102 y dispositivos de entrada y salida de datos 104, que están enlazados mediante un bus 108. Los dispositivos de entrada/salida 104 pueden comprender un teclado, ratón, pantalla táctil, monitor, impresora, y similares, por ejemplo. Una interfaz de red 106 se encuentra también conectada al bus 108. La interfaz de red 106 proporciona conectividad a una red 50, de tal manera que la red 50 a modo de ejemplo descrita anteriormente, permitiendo por tanto que el ordenador 100 opere en un entorno en red. También conectado a un bus 108, se encuentra una memoria legible por ordenador 110. La memoria 110 almacena instrucciones ejecutables para implementar algunas o todas las funciones de la invención. La memoria legible por ordenador 110 puede constar de cualquier medio o dispositivo legible por ordenador disponible al que el ordenador 100 pueda acceder.
En un modo de realización de la invención, uno o más de los siguientes módulos de programa y archivos de datos pueden ser almacenados en la memoria 110 del ordenador 10: un módulo del sistema operativo 112, un módulo de navegador 114 y un módulo de script de rastreo 116.
El módulo del sistema operativo 112 puede ser adecuado para controlar la operación de un ordenador del usuario o de análisis en red, y en particular puede incluir instrucciones para manejar diversos servicios del sistema, tales como servicios de ficheros o para realizar tareas dependientes de hardware. El módulo de sistema operativo 112 puede además comprender instrucciones para una operación informática estándar, que incluyen recibir datos de entrada de los dispositivos de entrada tales como un teclado o un ratón, y para mostrar datos de salida en un formato gráfico en un monitor, por ejemplo.
El módulo de navegador 114 puede incluir instrucciones para navegar por las páginas web proporcionadas por un servidor de web u otra fuente, tal como instrucciones para la solicitud y recibir una página web de un servidor de web y mostrar la página web en un dispositivo visualizador, tal como un monitor. El módulo del navegador web 114 además incluye instrucciones para recibir datos de entrada de la interacción de un usuario con una página web, por ejemplo de dispositivos de entrada de datos como un teclado y un ratón por ejemplo, y para transmitir tales datos de entrada a un servidor de web. El módulo del navegador 114 puede además comprender instrucciones para ejecutar comandos de procesamiento que se encuentran comprendidos en páginas web u otros archivos tales como scripts.
El módulo de script de rastreo 116 puede incluir instrucciones para grabar la entrada de datos de interacción por parte de un usuario en el proceso de interactuar con una página web, tal como los movimientos del ratón, desplazamiento, clics y entradas del teclado, por ejemplo. En un modo de realización de la invención, el módulo de script de rastreo 116 puede incluir además instrucciones para el procesamiento de tales datos de interacción, y para transmitir los datos de interacción procesados a un servidor de rastreo remoto 30, por ejemplo a través de la red 50.
En algunos modos de realización, el módulo de script de rastreo 116 puede incluir instrucciones para recibir datos de interacción de un servidor de reproducción remoto 30, y para recrear y mostrar una visualización de interacción de los datos de interacción recibidos (por ejemplo, utilizando ciertas aplicaciones multimedia conocidas, tales como Windows Media Player, QuickTime, Adobe Flash, etc.). Tales ejemplos de instrucciones asociadas con el módulo de script de rastreo 116 se describen en mayor detalle a continuación en referencia a las Figuras 5-7.
Los módulos de programa descritos anteriormente incorporan instrucciones para implementar operaciones de procesamiento asociadas con la invención. Diversos modos de realización de las operaciones de procesamiento de los módulos de programa descritos anteriormente se describen a continuación en referencia a las Figuras 5-7. Los módulos almacenados en la memoria 110 son ejemplos de módulos, y pueden incluirse módulos adicionales. Debe señalarse que las funciones de los presentes módulos pueden combinarse. Además, una función de un módulo no necesita ser realizada en una única máquina, en vez de ello la función puede distribuirse a través de una red a uno o más ordenadores si se desea, por ejemplo. Son las funciones de la invención lo que es significativo, no dónde se lleven a cabo o la manera específica en la que se realizan.
La Figura 3 ilustra un ejemplo de arquitectura de ordenador para un servidor de web 20, tal como se ilustra en el sistema informático de la Figura 1, configurado de acuerdo con un modo de realización de la invención. El ordenador 20, puede incluir componentes habituales conocidos en el arte, que incluyen una unidad de procesamiento central 202 y dispositivos de entrada y salida de datos 204, que se encuentran enlazados mediante un bus 208. Los dispositivos de entrada y salida 204 pueden comprender un teclado, un ratón, pantalla táctil, monitor, impresora, y similares, por ejemplo. Un interfaz de red 206 se encuentra también conectado al bus 208. Una interfaz de red 206 proporciona conectividad a una red 50, tal como la red 50 a modo de ejemplo descrita anteriormente, permitiendo de ese modo que el ordenador 20 opere en un entorno de en red. El servidor de web 20 además comprende un repositorio de almacenamiento de una página web 22 capaz de almacenar uno o más recursos de páginas web. El repositorio de almacenamiento de la página web 22 puede comprender un dispositivo de almacenamiento de datos convencional, tal como un disco duro o una memoria de estado sólido ubicada con, y conectada a, el servidor de web 20 por ejemplo mediante un bus 208 como se muestra en la Figura 3, o puede de manera alternativa comprender un servicio de almacenamiento de datos remoto conectado de forma que se pueda acceder a un servidor de web 20. También conectado al bus 208 se encuentra una memoria legible por ordenador 210. La memoria 210 almacena instrucciones ejecutables para implementar las funciones de la invención. La memoria legible por ordenador 210 puede comprender cualquier medio o dispositivo legible por ordenador al que el ordenador pueda acceder 20.
En un modo de realización de la invención, uno o más de los siguientes módulos y archivos de datos de programa pueden ser almacenados en la memoria 210 del ordenador servidor de web 20: un módulo del sistema operativo 212, un módulo del servidor de web 214, un módulo de código de etiqueta de rastreo 216 y un módulo de almacenamiento de la página web 218. Otras aplicaciones tales como un reproductor multimedia, una aplicación de flash player o de compresión y transmisión, pueden incluirse en el sistema operativo 212 o en el módulo de servidor web 214, o instalarse como un módulo autónomo, si se desea (no se muestra).
De manera similar al módulo 112 descrito anteriormente, el módulo de sistema operativo 212 puede incluir instrucciones para gestionar diversos servicios de sistema para el ordenador servidor de web 20, tales como servicios de ficheros o para realizar tareas dependientes de hardware. El módulo del sistema operativo 212 puede además incluir instrucciones para una operación informática estándar, que incluye recibir datos de entrada desde dispositivos de entrada de datos tales como un teclado o ratón, y para mostrar la salida de datos en un formato gráfico en un monitor, por ejemplo.
El módulo de servidor web 214 incluye instrucciones para servir páginas web solicitadas por otro ordenador, tales como instrucciones para recibir una petición para una página web de un ordenador usuario, que accede a la página web, y que sirve la página web al ordenador del usuario que la solicita, por ejemplo. El módulo servidor de web 214 puede además incluir instrucciones para recibir entrada de datos de la interacción de un usuario con una página web, procesando dicha entrada de datos, y sirviendo contenido adicional de la página web a un ordenador del usuario en respuesta.
En un modo de realización, el módulo de código de etiqueta de rastreo 216 puede ser almacenado como un submódulo del módulo del servidor de web 214, e incluye instrucciones para solicitar un script de rastreo desde un servidor de rastreo 30. El módulo de código de etiqueta de rastreo puede incluir además, instrucciones adicionales para añadir o adjuntar instrucciones para solicitar un script de rastreo desde el servidor de rastreo 30 a una o más páginas web antes de que se sirvan a ordenadores de usuario.
El módulo de almacenamiento de página web 218 incluye instrucciones para acceder al repositorio de almacenamiento de página web 22, tal como por ejemplo para acceder y recuperar páginas web almacenadas y/u otros recursos almacenados, en respuesta a solicitudes de tales páginas web y/o recursos desde ordenadores de usuario, por ejemplo.
La Figura 4 ilustra un ejemplo de arquitectura de ordenador para un ordenador servidor de rastreo 30, tal como se ilustra en el sistema informático de la Figura 1, configurado de acuerdo con un modo de realización de la invención. El ordenador 30 puede incluir componentes habituales conocidos en el arte, que incluyen una unidad de procesamiento central 302 y dispositivos de entrada/salida de datos 304, que se encuentran enlazados mediante un bus 308. Los dispositivos de entrada/salida de datos 304 pueden incluir un teclado, un ratón, pantalla táctil, monitor, impresora, y similares, por ejemplo. Un interfaz de red 306 se encuentra también conectado al bus 308. La interfaz de red 306 proporciona conectividad a una red 50, tal como el ejemplo de red 50 descrita anteriormente, permitiendo de ese modo que el ordenador 30 opere en un entorno en red. El servidor de rastreo 30 además comprende un repositorio de almacenamiento de rastreo 32 capaz de almacenar uno o más scripts de rastreo y/o recursos de grabación de rastreo, por ejemplo. El repositorio de almacenamiento de rastreo 32 puede incluir uno o más dispositivos de almacenamiento de datos convencionales, tales como un disco duro, memoria óptica o de estado sólido ubicada con, y conectada directamente a, el servidor de web 30 tal como mediante un bus 308 como se muestra en la Figura 4, o puede de manera alternativa incluir un equipo de almacenamiento de datos remoto conectado de forma accesible al servidor de web 30. También conectado a un bus 308 se encuentra una memoria legible por ordenador 310. La memoria 310 almacena instrucciones ejecutables para implementar funciones de la invención. La memoria legible por ordenador 310 puede incluir cualquier medio o dispositivo legible por ordenador disponible al que el ordenador 30 pueda acceder.
En un modo de realización de la invención, uno o más de los siguientes módulos de programa y ficheros de datos pueden almacenarse en la memoria 310 del ordenador servidor de rastreo 30: un módulo del sistema operativo 314, un módulo de grabación de rastreo 316, y un módulo de reproducción de rastreo 318.
De forma similar al módulo 112 descrito anteriormente, el módulo del sistema operativo 312 puede incluir instrucciones para manejar diversos servicios de sistemas para el servidor de rastreo 30, tal como servicios de ficheros, o para realizar ciertas tareas que dependen de aplicaciones o hardware. El módulo de sistema operático 312 puede además incluir instrucciones para una operación informática estándar, que incluye recibir datos de entrada desde dispositivos de entrada de datos tales como un teclado o ratón, y para mostrar datos de salida en un formato gráfico en un monitor, por ejemplo.
El módulo servidor de rastreo 314 incluye instrucciones para recibir una solicitud para un script de rastreo desde un ordenador del usuario, que accede al script de rastreo, y que transmite un script de rastreo al ordenador del usuario. En un modo de realización, el script de rastreo u otro código de rastreo adecuado, puede ser almacenado en un repositorio de almacenamiento de rastreo 32. De manera adicional, el módulo servidor de rastreo 314 incluye instrucciones para acceder al repositorio de almacenamiento de rastreo 32 para recuperar el script de rastreo u otro código de rastreo adecuado.
Como se muestra en la Figura 4, el módulo servidor de rastreo 314 puede además incluir el módulo servidro de rastreo 316 como un sub-módulo o una aplicación integrada. El módulo de grabación del rastreo 316 incluye instrucciones para recibir los datos de interacción del usuario transmitidos por un ordenador del usuario, y para grabar tales datos como uno o más registros de rastreo o estructuras de datos. En un modo de realización, tales registros de rastreo pueden ser almacenados en el repositorio de almacenamiento de rastreo 32, por ejemplo. En otros modos de realización, el módulo de grabación de rastreo 316 puede incluir instrucciones para analizar los datos de interacción de usuario recibido desde un ordenador del usuario.
El módulo servidor de rastreo 314 puede además también incluir un módulo de reproducción de rastreo 318 como un sub-módulo o aplicación integrada. El módulo de reproducción de rastreo 318 incluye instrucciones para recibir una solicitud para reproducir uno o más registros de rastreo desde un ordenador de análisis, que accede a uno o más registros de rastreo, como por ejemplo desde el repositorio de almacenamiento de rastreo 32, y para transmitir datos de interacción de usuario grabados al ordenador de análisis 40. En un modo de realización, el módulo de reproducción de rastreo 318 puede incluir adicionalmente instrucciones para procesar y/o transformar datos de interacción del usuario recuperados de uno o más registros de rastreo, previamente a transmitir los datos al ordenador de análisis.
Por ejemplo, en algunos modos de realización, el módulo de reproducción de rastreo 318 puede incluir código o rutinas que faciliten la reproducción de datos de interacción capturados. Puede además incluir la habilidad para crear
video o “películas” a partir de los datos de interacción. Por ejemplo, tales datos de interacción pueden combinarse, modificarse, extrapolarse o de otro modo “atados entre sí” como se conoce en el arte, para generar una representación de video de la interacción del usuario con la página web. Un video de ese tipo puede ser reproducido posteriormente utilizando reproductores de video conocidos disponibles de manera habitual, tales como Windows Media Player o QuickTime en un ordenador del usuario.
El módulo de reproducción de rastreo 318 puede además incluir código o rutinas que mejoran la calidad o la integridad de la experiencia de reproducción. Por ejemplo, los datos capturados por el módulo de grabación 316 pueden encontrarse en diferentes formatos y/o pueden ser capturados con metadatos limitados o información de fondo. Esto puede limitar la calidad y/o habilidad para reproducir de manera consistente o precisa los datos de la sesión del usuario. El módulo de reproducción de rastreo 318 puede incluir rutinas que normalizan los diferentes formatos de datos recibidos por el módulo 316, para permitir una reproducción consistente o precisa, y puede además incluir ciertas rutinas “proxy” para recoger información para facilitar y mejorar aún más la experiencia de reproducción.
Tales funciones de normalización pueden incluir, pero no se limitan a: reescribir la URL de la imagen para señalar la localización correcta de una imagen; se eliminan o se enmascaran llamadas de escritura de documentos; las solicitudes de AJAX se reescriben para utilizar solicitudes del tipo AJAX personalizado más que las solicitudes de HTTP del navegador nativo; los errores de JavaScript que se conoce causan errores se reescriben utilizando heurística; los componentes de un tercero conocidos tales como JQuery se suplantan con versiones personalizadas que funcionan mejor en el entorno de reproducción, etc.
Las rutinas proxy pueden recuperar cierta información tal como, entorno, contenido, fondo, controlador u otra
información de la página web relacionada, tal como el modelo de objetos del documento “DOM” (por sus siglas en inglés, la información de “características adicionales”), no relacionada con la interacción del usuario. Esta información puede no haber sido capturada junto con la interacción del usuario debido al tamaño de la información, en base a la naturaleza relativamente estática de la información, debido a la información ya existente en el almacenamiento de rastreo 32, debido a la codificación específica del script de rastreo, o en base a otros factores.
Durante el funcionamiento, tales rutinas proxy pueden buscar información de las características adicionales de diversas fuentes tales como Internet u otras ubicaciones de red para facilitar la reproducción de los datos de
interacción del usuario. A esta característica se le puede denominar como “proxy remoto”. En algunos modos de
realización, tales datos de características adicionales pueden obtenerse automáticamente después de los datos de interacción del usuario asociados se transmitan al almacenamiento de rastreo 32. En otros modos de realización, tales datos de características adicionales pueden obtenerse cuando la reproducción de los datos de interacción de ese usuario se solicita (o un poco antes, en base a la reproducción esperada para evitar una latencia excesiva del sistema).
En algunos modos de realización, los datos de características adicionales pueden haber sido capturados en el momento en que los datos de la interacción del usuario fueron capturados. En este caso, esta información puede ser recuperada del almacenamiento de rastreo 32 cuando la reproducción se solicita. A esta característica se le denomina cono “proxy local”. En otros modos de realización, la información de algunas características adicionales puede ser capturada con los datos de la interacción del usuario, mientras que otras no. En este caso, las rutinas proxy en el módulo de reproducción de rastreo 318 pueden primero consultar el almacenamiento 32 para los datos de características adicionales. Si no está presente en el almacenamiento 32, la información puede ser solicitada automáticamente tal como se ha descrito anteriormente (es decir, empezando con un proxy local y continuar con un proxy remoto, si fuera necesario (o si se desea)).
La Figura 5 ilustra una serie de operaciones de procesamiento que pueden ser implementadas por el sistema ilustrado en la Figura 1, y los ejemplos de ordenadores ilustrados en las Figuras 2-4, de acuerdo con una realización de la invención. En la primera operación de procesamiento 510 de la Figura 5, un usuario solicita una página web 24 de un servidor de web 20. En un modo de realización de la invención, el usuario solicita la página web 24 utilizando una aplicación del navegador, que se ejecuta en el ordenador del usuario 10, tal como un módulo del navegador 114 en el ordenador 10, que comunica la solicitud de la página web 24 al servidor de web 20 mediante la red 50, de acuerdo a métodos conocidos. En un modo de realización, el servidor de web 20 almacena un código de etiqueta de rastreo 216 que puede incorporarse en el código de marcado de la página web 24, como almacenado en el repositorio de almacenamiento de la página web 22, o de manera alternativa puede ser almacenado en cualquier otro sitio y es accesible para un servidor de web 20. El código de etiqueta de rastreo 216 incluye instrucciones ejecutables para un navegador, tal como el módulo navegador de la web del usuario 114, para solicitar un archivo de un servidor de rastreo 30.
En un modo de realización de ese tipo, cuando el servidor de web 20 recibe la solicitud de una página web 24 desde el módulo navegador 114 en el ordenador del usuario 10, el código de etiqueta de rastreo 216 puede ser incorporado en la página web 24 antes de que sea enviado al ordenador del usuario 10. En un modo de realización en particular,
el código de etiqueta de rastreo 216 puede comprender una etiqueta <script src=”……”> que incluye instrucciones
ejecutables para que un navegador solicite un fichero script de la ubicación de una fuente en particular, tal como un archivo de JavaScript de un localizador de recursos uniforme (URL, por sus siglas en inglés), o una dirección de protocolo de Internet (IP, por sus siglas en inglés). Sin embargo, cualquier otro script adecuado estructura de comando puede utilizarse, si se desea.
En la segunda operación de procesamiento 512 de la Figura 5, el usuario recibe la página web 24 con un código de etiqueta de rastreo 216 desde el servidor de web 20. La operación de procesamiento 512 puede ser implementada utilizando el módulo de navegador del usuario 114 en el ordenador del usuario 10 para recibir la página web 24 que puede servirse utilizando el módulo de servidor de web 214. La página web 24 puede ser transmitida entre el servidor de web 20 y el ordenador del usuario 10 mediante la red 50, de acuerdo con métodos conocidos.
A continuación, a la etapa de procesamiento 514, el navegador del usuario solicita el script de rastreo 34 del servidor de rastreo 30. La operación de procesamiento 514 puede ser implementado utilizando el módulo del navegador del usuario 114 en el ordenador del usuario 10, que comunica la solicitud para el script de rastreo 34 del ordenador del usuario 10 hacia el servidor de rastreo 30, de acuerdo con métodos conocidos. En un modo de realización, el código de etiqueta de rastreo 216 incorporado en la página web 24 según se recibe desde el servidor de web 20, incluye instrucciones ejecutables por el módulo del navegador 114 para solicitar el script de rastreo 34 desde el servidor de rastreo 30.
En un modo de realización preferente, la solicitud del script de rastreo 34 desde el servidor de rastreo 30, según la operación 514, se realiza de forma automática por parte del navegador del usuario, tal como por ejemplo el módulo de navegador 114, y es sustancialmente transparente para la persona usuaria del ordenador usuario 10. En un modo de realización alternativo, el script de rastreo 34 puede ser almacenado separado del servidor de rastreo 30, por ejemplo en otro ordenador o repositorio del almacenamiento al que se puede acceder mediante el servidor de rastreo 34 desde el ordenador del usuario 10. De acuerdo con un modo de realización adicional alternativo, el script de rastreo 34 puede ser almacenado en un ordenador diferente, y el servidor de web 20 puede solicitar y recibir el script de rastreo 34 del ordenador diferente en lugar del servidor de rastreo 30.
En la siguiente operación de procesamiento 516 de la Figura 5, el navegador del usuario recibe el script de rastreo 34 del servidor de rastreo 30, y ejecuta el script de rastreo 34. La operación de procesamiento 516 puede ser implementada utilizando el módulo de navegador del usuario 114 que se ejecuta en el ordenador del usuario 10, el cual puede recibir el script de rastreo 34 del servidor de rastreo 30 mediante la red 50, de acuerdo con métodos conocidos. De manera preferente, pueden ejecutarse instrucciones ejecutables en el script de rastreo 34, según se reciben por parte del navegador en el ordenador del usuario 10, mediante cualquier aplicación de navegador estándar que se ejecute en el ordenador del usuario 10, tal como se representa en el módulo de navegador 114. Un ejemplo de aplicaciones de navegador habituales pueden incluir Internet Explorer ® de Microsoft Corporation de Redmond WA, Firefox ® de Mozilla Corporation de Mountain View, CA, Safari (™) de Apple Inc. de Cupertino, CA, y Opera (™) de Opera Software de San Diego, CA, por ejemplo. En un modo de realización, las instrucciones ejecutables incluidas en el script de rastreo 34, pueden ser implementadas mediante un sub-módulo, tal como un módulo de script 116 que se ejecuta dentro del módulo de navegador 114.
En un modo de realización, al recibir el script de rastreo 34, el módulo de navegador 114 puede añadir el script de rastreo 34 a la página web 24 anexionando las instrucciones ejecutables u otro código en el script de rastreo 34 en la parte superior del código del lenguaje de marcas de la página web 24. El script de rastreo 34 puede también anexarse a la página web 24 adjuntándolo a la página web 24 o referenciando el fichero script de rastreo 34 en el código de lenguaje de marcas de la página web 24, y entonces ejecutar el script de rastreo junto con la página web
24. En modos de realización alternos, el script de rastreo 34 puede ser almacenado de manera independiente de la página web 24 mediante el módulo de navegador 114, y puede ejecutarse mediante el módulo de navegador 114, o el sub-módulo del script de rastreo 116 independientemente de la ejecución (o presentación) de la página web 24, aunque dicha ejecución independiente puede tener lugar de manera simultánea.
De acuerdo con un modo de realización adicional de la invención, el script de rastreo 34 incluye instrucciones ejecutables que pueden ser ejecutadas por una aplicación de navegador para capturar y procesar los datos de interacción del usuario generados por la interacción del usuario con una página web, y para transmitir tales datos de interacción del usuario al servidor de rastreo 30. Detalles de las operaciones de procesamiento asociadas con tales instrucciones ejecutables de acuerdo con un modo de realización se describen a continuación en referencia a la Figura 6.
Los ejemplos de datos de la interacción del usuario que pueden ser capturados, procesados y transmitidos de acuerdo con las instrucciones en el script de rastreo 34 pueden incluir, pero no se limitan a: movimientos y selecciones de un usuario (como por ejemplo clics de ratón) de un dispositivo de señalización tal como un ratón o un touchpad o panel táctil, desplazamiento, entrada de texto o selección de menús, botones, casillas de verificación o checkboxes, campos de contraseña, campos de tablas o SELECCIONAR, datos relacionados con la terminación de formularios o recuadros de consulta que incluyen valores iniciales de campos de texto o de formulario, que pueden incluir coordinadas de píxeles de tales campos de formularios, y navegación (tales como desplazamiento o clics de los enlaces) mientras que un usuario interactúa con una página web 24, por ejemplo. De manera adicional, uno o más de: la dirección de red, ubicación, URL o identidad del servidor de la página web 24 por la que navega el usuario, el tipo y versión de la aplicación del navegador y el software del sistema operativo que el usuario está utilizando, y las dimensiones de la ventana de visualización del navegador del usuario, pueden también incorporarse en los datos de interacción del usuario que son capturados, procesados y transmitidos.
De acuerdo con un modo de realización adicional, las interacciones del usuario con elementos dinámicos que pueden incluirse en la página web 24, como por ejemplo interacciones con elementos rich AJAX (que implican DHTML y JavaScript), elementos de Adobe Flash™, u otros elementos dinámicos que pueden ser parte de la página web 24 pueden ser también capturados como datos de interacción de usuario. Tales datos pueden clasificarse como los datos de las características adicionales anteriores en conexión con la Figura 4.
En un modo de realización alternativo de la invención, dirigido a rastrear la interacción del usuario con video o con
aplicaciones multimedia dinámicas, tales como Adobe Flash™ y aplicaciones Adobe Flex™ o películas, la operación de procesamiento 510 puede incluir una solicitud de usuario para una aplicación Flash™ o Flex™ o una página web que comprende una aplicación de ese tipo de un servidor de web 20. A continuación de tal solicitud de usuario, el usuario puede recibir una aplicación Flash™ o Flex™ o película (como por ejemplo de un archivo .swf) del servidor web 20 que incluye una porción de código de rastreo, análogo a un script de rastreo 34 referenciado en las operaciones de procesamiento 512 y 514. Una porción de código de rastreo de ese tipo de una aplicación Flash™ o Flex™ de la película recibida por el ordenador del usuario incluye instrucciones para rastrear la interacción de un usuario con la aplicación o la película, tal como se describe anteriormente en referencia al script de rastreo 34, lo que puede ser ejecutado por el navegador del usuario, o una aplicación adicional, tal como una aplicación plug-in de Flash™ en el ordenador del usuario, por ejemplo.
En la siguiente operación de procesamiento 518 de la Figura 5, el navegador captura, procesa y almacena datos de interacción del usuario durante la navegación de una página web 24. La operación de procesamiento 518 puede ser implementada utilizando el módulo de navegador 114 en el ordenador del usuario 10, que puede ejecutar instrucciones en el script de rastreo 34 para capturar, procesar y almacenar diversos tipos de datos de interacción de usuario, tal como los ejemplos de tipos de datos de interacción de usuario descritos anteriormente, generados mientras el usuario navega e interactúa con la página web 24. La captura, el procesamiento y el almacenamiento de los datos de interacción de usuario generado mientras un usuario navega por la página web 24 puede lograrse por cualquier método adecuado como por ejemplo los que son bien conocidos en el arte.
En un modo de realización preferente, las instrucciones en el script de rastreo 34 para capturar, procesar y almacenar los datos de interacción de usuario durante la navegación de un usuario de la página web 24 pueden ser ejecutadas por una aplicación de navegador estándar, y optimizadas para utilizar características estándar y conjuntos de instrucciones comúnmente o universalmente soportadas por aplicaciones estándar de navegador de la industria. Además, los datos de interacción de usuario procesados pueden almacenarse en la memoria caché de la aplicación del navegador, como por ejemplo en el módulo de navegador 114 del ordenador del usuario 10. En un ejemplo de realización, el script de rastreo 34 puede comprender instrucciones utilizando JavaScript, que se ejecutan mediante el módulo de navegador 114 para capturar, procesar y guardar en caché los datos de interacción de usuario mientras el usuario navega por la página web 24.
En algunos modos de realización, el proceso de captura puede implicar la captura de suficientes datos para recrear el sitio web tal como lo ve realmente el usuario. Por ejemplo, si existiera un anuncio especial, promoción, panel emergente u otra animación presente en el sitio, puede resultar deseable capturar esa información para recrearla por completo. Una manera de lograrlo es capturando un modelo de objetos del documento (DOM) que describe la propia página web. El DOM puede serializarse (por ejemplo, convertirse en una cadena de texto) y posteriormente transmitirse tal como se describe a continuación en conexión con la etapa 520. En algunos modos de realización, para evitar transmitir la página web al completo repetidamente, el DOM puede comprimirse utilizando un algoritmo de cálculo de clave o ser representado por una estructura de datos más corta (por ejemplo, una estructura de datos de 32 bit) y ser comparado con otros DOM que se hayan grabado previamente. En el caso en que el DOM haya sido grabado previamente, es necesario transmitirlo de nuevo, y un indicador hacia la versión grabada previamente puede ser utilizado en su lugar.
En un modo de realización alternativo de la invención, dirigido a rastrear una interacción de usuario con aplicaciones multimedia dinámicas, tales como aplicaciones o películas de Adobe Flash™ y Adobe Flex™, la operación de procesamiento 518 puede comprender que el navegador del usuario o una aplicación adicional (tal como una aplicación plug-in de Flash™), capture y procese los datos de interacción del usuario durante la interacción del usuario con una aplicación o película de Flash™ o Flex™, por ejemplo.
En la operación de procesamiento 520, el navegador del usuario transmite periódicamente datos de la interacción del usuario en caché al servidor de rastreo 30, mediante la solicitud del script. La operación de procesamiento 520 puede ser implementada utilizando el módulo de navegador 114 en el ordenador del usuario 10, que puede transmitir periódicamente datos de la interacción del usuario en caché a través de la red 50 al servidor de rastreo 30 mediante una solicitud de script.
Una solicitud de transmisión de ese tipo puede ser iniciada por el navegador en base a criterios predefinidos, o puede ser lanzada por un determinado comportamiento del usuario. Por ejemplo, si el número de maniobras de navegación con una determinada página web excede un determinado umbral, o si el número de páginas web visitadas excede un determinado número, las páginas web del usuario pueden ser transmitidas y grabadas. En algunos modos de realización donde un evento de activación tiene lugar, el navegador del usuario puede ser instruido para grabar los datos de interacción en lugar de inmediatamente transmitir los datos, de manera que puedan recogerse posteriormente en el futuro.
En un modo de realización de la invención, los datos pueden transmitirse al servidor 30 en un formato comprimido utilizando aplicaciones de transmisión y compresión disponibles habitualmente. Por ejemplo, en un modo de realización, esta actuación puede incluir el uso del software ADOBE Flash. Utilizando esta aproximación, los datos de interacción almacenados pueden ser convertidos a un formato FLASH (matriz de bytes AS3 a través de ExternalInterface) y comprimidos utilizando GZIP. Esta información puede entonces ser transmitida al servidor de rastreo 30 utilizando un Formato de Mensaje de Acción (AMF). Desde una capa alta, esto puede verse como convertir los datos de interacción del usuario en una película Flash y transmitirlo como tal al servidor 30.
En otro modo de realización de la invención, la transmisión de los datos de interacción del usuario almacenados desde el módulo del navegador 114 hacia el servidor de rastreo 30, puede lograrse utilizando una solicitud de script dinámico entre dominios (a la cual se le puede denominar también como una solicitud de programación de script de sitio cruzado). Esta configuración puede ser utilizada en casos en los que la aproximación técnica o aplicación de compresión y transmisión descrita anteriormente no resulte factible. Utilizando la aproximación del dominio cruzado, las instrucciones ejecutables en el script de rastreo 34 incluyen instrucciones para solicitar periódicamente un fichero script del ordenador de rastreo 30, durante la interacción del usuario con la página web 24. Las interacciones del usuario se envían junto con la solicitud de script. En ambos casos de la transmisión explicada anteriormente, si los datos no se enviaran, un indicador de error se devuelve al solicitante y los datos se enviarán nuevamente en un instante posterior.
Mientras se ejecutan tales instrucciones, los datos de interacción del usuario almacenados durante la operación 518 mientras el usuario navega por la página web 24, pueden incorporarse periódicamente en una solicitud de script, y transmitirse entonces al servidor de rastreo 30 como parte de una solicitud de script dinámica. De acuerdo con la funcionalidad estandarizada soportada por aplicaciones de navegadores habituales en la industria, ejemplificados por el módulo del navegador 114, una solicitud de script dinámica de ese tipo puede ser transmitida a través de dominios al servidor de rastreo 30, incluso aunque el servidor de rastreo 30 puede no estar ubicado habitualmente en el mismo dominio de red o sitio que el servidor de web 20. De tal manera, los datos de interacción del usuario capturados mientras se navega la página web 24 recibidos del servidor de web 30, ubicados en un primer dominio en la red 50, pueden ser un dominio cruzado transmitido periódicamente al servidor de rastreo 30 que puede estar ubicado en un segundo dominio en la red 50.
En un modo de realización, la página web 24 puede incluir contenido dinámico que puede, de manera habitual, cambiarse periódicamente de tal manera que si la página web 24 fuera recibida desde el servidor de web 20 en un instante posterior, el contenido de al menos una parte de la página web 24 puede cambiarse. En un modo de realización de ese tipo, una o más partes de la página web 24, que contienen contenido dinámico susceptible de ser cambiado a lo largo del tiempo, pueden también transmitirse al servidor de rastreo 30 junto con datos de interacción del usuario de acuerdo a una operación de procesamiento 520. Una o más partes del código de marcado de la página web 24, tal como el código HTML y/o XML, correspondiente a dicho contenido dinámico que cambia periódicamente puede ser transmitido al servidor de rastreo 30, mientras que los elementos estáticos de la página web 24 tales como imágenes estáticas u otros contenidos estáticos no se transmiten al servidor de rastreo 30, para reducir la cantidad de información que se requiere para ser transferida por la solicitud de script dinámico. Tal información puede ser obtenida por las rutinas del proxy o aplicaciones descritas en más detalle en la presente patente.
En otro modo de realización, información adicional relacionada con el contenido y la estructura de la página web 24, como por ejemplo DOM, puede ser transmitida al servidor de rastreo 30 junto con datos de interacción del usuario en caché como parte de la operación 520, tales como una copia de los elementos de JavaScript de la página web 24, coordenadas de píxeles de uno o más elementos de la página web 24, o una lista de formularios y campos de formularios y sus tipos y atributos, por ejemplo.
En un modo de realización alternativo de la invención, dirigido a rastrear la interacción de un usuario con
aplicaciones multimedia dinámicas, tales como aplicaciones o películas de Adobe Flash™ y Adobe Flex™, la
operación de procesamiento 520 puede comprender que el navegador transmita datos de interacción del usuario al servidor de rastreo 30 a través de una aplicación de navegador adicional, tal como un plu-in de Flash™, por ejemplo. En un modo de realización de este tipo, los datos de interacción pueden ser transmitidos al servidor de rastreo 30 en tiempo real, o pueden almacenarse en el navegador o en una aplicación adicional para su transmisión en diferido y/o paquetizada al servidor de rastreo 30. En un modo de realización de ese tipo, la siguiente operación de procesamiento puede incluir que el servidor de rastreo 30 almacene los datos de interacción del usuario recibidos del navegador del usuario, sustancialmente análogo a la operación de procesamiento 522 como se describe a continuación.
En la última operación de procesamiento 522 de la Figura 5, el servidor de rastreo 30 puede almacenar datos de interacción del usuario recibidos periódicamente del navegador del usuario. La operación de procesamiento 522 puede ser implementada utilizando el módulo de grabación de rastreo 316 del ordenador servidor de rastreo 30, que puede almacenar datos de interacción del usuario periódicamente desde el navegador del ordenador del usuario 10. En un modo de realización, dichos datos de interacción del usuario recibidos periódicamente pueden ser almacenados de forma persistente y recuperable en un repositorio de almacenamiento de rastreo 32, como registro de rastreo 36 (u otra estructura de datos), de acuerdo con cualquier método conocido adecuado, como por ejemplo mediante el uso de una base de datos, en donde el registro de rastreo 36 puede ser almacenado en uno o más registros de bases de datos accesibles, por ejemplo.
Los datos de interacción del usuario almacenados como registros de rastreo pueden, de manera alternativa, ser almacenados en un ordenador independiente o repositorio de almacenamiento al que pueda acceder el servidor de rastreo 30. En modos de realización en los que se transmite información adicional aparte de los datos de interacción de usuario, tal como contenido dinámico de la página web 24, u otros datos relacionados con el contenido o la estructura de la página web 24, al servidor de rastreo 30, dicha información adicional puede también ser almacenada por el servidor de rastreo en la operación de procesamiento 522, y puede ser almacenada como parte de un registro de rastreo 36 que incluye datos de interacción del usuario, o de manera alternativa puede estar almacenada en un registro independiente de tales datos de interacción del usuario.
De acuerdo con un modo de realización adicional, en un caso en que un usuario finalice una sesión de navegación o interacción con una página web 24, antes de que toda la interacción del usuario con la página web 24 haya sido capturada, procesada y transmitida al servidor de rastreo 30, el script de rastreo 34 puede comprender adicionalmente instrucciones para guardar cualquier dato restante de interacción del usuario en caché en una memoria de almacenamiento fuera de línea del navegador, y guardar la información que identifica la sesión de navegación del usuario de la que los datos de interacción del usuario fueron capturados. Tal memoria de almacenamiento fuera de línea del navegador puede estar comprendida en el módulo del navegador 114 del ordenador del usuario 10, o de manera alternativa, puede estar comprendido en la memoria 110 del ordenador del usuario 10.
En un modo de realización de ese tipo, el script de rastreo 34 puede comprender además instrucciones para transmitir cualquier dato de interacción del usuario restante de ese tipo guardado en el almacenamiento fuera de línea del navegador al servidor de rastreo 30, si el usuario visita posteriormente otra página web, y transmitir la información que identifica la sesión de navegación del usuario guardada con otros datos de interacción de la misma sesión de navegación para su almacenamiento en el servidor de rastreo 30.
En aún otro modo de realización, los datos de interacción del usuario recibidos por el servidor de rastreo 30 pueden estar sujetos al análisis de datos y/o de procesamiento antes o después de ser almacenados como un registro de rastreo 36. Los análisis de datos pueden incluir el cálculo de determinada analítica que puede incluir, pero no limitarse a: calcular la distancia recorrida por el ratón de un usuario en la página web 24, calcular el ratio de finalización y/o el tiempo empleado por el usuario en un formulario de una página web 24, calcular la cantidad acumulada de tiempo que el ratón de un usuario empleó en diversas partes de una página web 24, y compilar una representación visual de la interacción del usuario con la página web 24, por ejemplo. Esto puede incluir además rastrear qué partes de la página web fueron visibles para un usuario en qué momentos.
El procesamiento de datos puede incluir, por ejemplo, formateando los datos de interacción del usuario para el almacenamiento y/o la compresión de los datos de interacción del usuario. En dichos modos de realización, los resultados de tales análisis y/o procesamiento de datos pueden ser almacenados como parte de o en asociación con el registro de rastreo 36, o de manera alternativa, puede ser almacenado independiente del registro de rastreo 36. En un modo de realización en particular, una representación visual de una gráfica en gradientes de color de la interacción del usuario, en donde se representa gráficamente el conjunto de la interacción de un usuario (o múltiples usuarios) con la página web 24 como regiones coloreadas superpuestas en la página web 24, donde cada región corresponde a las concentraciones relativas de los movimientos del ratón del usuario y/o clics en las partes subyacentes de la página web 24, puede compilarse a partir de los datos de interacción del usuario recibidos por el servidor de rastreo 30. De acuerdo con aún otro modo de realización adicional, dicho análisis de datos y/o procesamiento de datos puede ser realizado en un ordenador independiente del servidor de rastreo 30, tal como un servidor de procesamiento, por ejemplo, que puede conectarse al servidor de rastreo 30 para enviar y recibir los datos de interacción del usuario, de una manera tal como mediante la red 50.
La Figura 6 ilustra una serie de operaciones de procesamiento que puede ser implementada por el módulo de navegador 114 del ordenador del usuario 10 ilustrado en la Figura 2, de acuerdo con un modo de realización de la invención. Más particularmente, el script de rastreo 34 que puede ser recibido por el ordenador del usuario 10 del servidor de web 20, junto con o como parte de la página web 24, puede incluir instrucciones que son ejecutables por el módulo de navegador 114 para ejecutar las operaciones de procesamiento de la Figura 6. La operación de procesamiento 610 de la Figura 6 identifica los elementos de la página web 24 recibidos del servidor de web 20. En un modo de realización, básicamente todos los elementos de la página web 24 que son visibles para un usuario que navega por una página web 24, pueden ser identificados como parte de la operación 610. En otro modo de realización, un sub-conjunto de elementos de la página web 24 puede seleccionarse para su identificación, de acuerdo con la operación de procesamiento 610. Cualquier método adecuado conocido en el arte, puede ser utilizado para identificar cualquier elemento relevante de la página web 24, tal como, pero no limitado a cualquier método de DOM-crawling conocido adecuado, por ejemplo. Ejemplos de elementos del sitio web que pueden ser identificados de acuerdo a la operación de procesamiento 610 pueden incluir, pero no se limitan a: gráficos, texto, hiperenlaces, campos de formularios, campos SELECCIONAR, campos de contraseña, casillas de verificación, botones, tablas, objetos dinámicos y estáticos integrados, y cursor/ratón u otras rutas de la posición del puntero, por ejemplo.
La siguiente operación de procesamiento 612 de la Figura 6 es definir receptores u otros disparadores basados en eventos para cada elemento de la página web identificado en la operación 610 anterior. En un modo de realización de la invención, los receptores pueden implementarse de acuerdo a cualquier método conocido adecuado en el arte de la monitorización de cambios en estados y/o valores de los elementos indexados de la página web 24 que tiene lugar mientras un usuario se encuentra navegando por un sitio web 24. En un modo de realización preferente, tales receptores se implementan de acuerdo con características estándar y/o conjuntos de instrucciones soportadas habitualmente por aplicaciones de navegadores habituales, tales como Internet Explorer® de Microsoft Corporation de Redmond, WA, Firefox ® de Mozilla Corporation de Mountain View, CA, Safari™ de Apple Inc. de Cupertino, CA, y Opera ™ de Opera Software de San Diego, CA, por ejemplo.
La siguiente operación de procesamiento 614 de la Figura 6 graba la interacción de un usuario con una página web 24, como datos de interacción, utilizando receptores definidos en la operación 612 anterior. En un modo de realización de la invención, a medida que un usuario interactúa con la página web 24, como por ejemplo navegando
o utilizando de otro modo la página web 24 mostrada en el ordenador del usuario 10, los datos detectados por receptores definidos pueden ser grabados como datos de interacción del usuario por el módulo de navegador 114.
Los datos de interacción pueden ser grabados en un búfer del módulo de navegador 114. Dicho búfer puede ser implementado como cookies, almacenamiento DOM, o cualquier otra configuración del búfer adecuada conocida en el arte. Cuando los datos de interacción se transmiten al servidor 30, una respuesta puede enviarse de vuelta al navegador, de tal manera que únicamente la parte de los datos de interacción confirmada como recibida por el servidor 30 se elimina o se sobre-escribe. Si no se confirma que ciertos datos de interacción se han recibido apropiadamente, se enviarán nuevamente en un instante posterior. Este hecho mejora la probabilidad de que sustancialmente todos los datos se reciben de manera adecuada en el servidor, asegurando que cualquier reproducción de los datos reflejará de forma precisa la experiencia del usuario.
Deberá entenderse que tales datos de interacción pueden grabarse de manera continua, a medida que la interacción del usuario con una página web 24 avanza en el tiempo, y que tales datos de interacción pueden ser grabados en un búfer adecuado dentro del módulo de navegador 114 de manera continua. Un búfer de un navegador adecuado puede permitir que los datos de interacción sean leídos del búfer al mismo tiempo que los datos de interacción adicionales pueden continuar siendo grabados en el búfer, tal como se conoce bien en el arte.
En un ejemplo de realización, un búfer adecuado dentro del módulo de navegador 114, puede ser implementado utilizando una matriz de JavaScript o una cadena de JavaScript, por ejemplo.
La siguiente operación de procesamiento 616 de la Figura 6 es procesar los datos de interacción y almacenarlos en un almacenamiento del navegador. En un modo de realización preferente, los datos de interacción grabados previamente en un búfer en el módulo de navegador 114 durante la operación 614, pueden ser procesados para reducir la cantidad total de datos de interacción retenidos mientras se mantiene una representación básicamente precisa de la interacción del usuario con el sitio web 24, y los datos de interacción retenidos resultantes pueden ser almacenados en un caché de memoria dentro del módulo de navegador 114.
De acuerdo a un modo de realización, los datos de interacción pueden ser procesados de acuerdo a cualquier método o métodos conocidos en el arte para reducir la cantidad de datos de interacción retenidos mientras se mantiene una representación sustancialmente precisa de la interacción, incluyendo, pero sin limitarse a: eliminar datos que hacen referencia a eventos redundantes, comprimir datos que hacen referencia a eventos sustancialmente similares (como por ejemplo mediante codificación de longitud de cadenas o Run Length Encoding (RLE), u otras técnicas por ejemplo), y datos recurrentes de estrangulamiento tales como datos de localización de trazado del ratón/cursor/puntero a una tasa de datos seleccionada, por ejemplo. Los datos de interacción retenidos resultantes de un procesamiento de datos de ese tipo pueden ser almacenados en una memoria caché de un navegador estándar utilizado para almacenar otros tipos de datos relacionados con la navegación del usuario y tal como se encuentran soportados por aplicaciones de navegador estándar conocidos en el arte.
La siguiente operación de procesamiento 618 de la Figura 6 paquetiza datos de interacción almacenados para su transmisión. Los datos de interacción almacenados pueden ser divididos o paquetizados en uno o más paquetes de datos de interacción utilizando cualquier técnica o método conocido en el arte. En un modo de realización, los datos de interacción almacenados en un caché de la memoria dentro del módulo de navegador 114 puede ser dividido o paquetizado en uno o más paquetes de datos de interacción en básicamente el orden en que fueron grabados durante la interacción del usuario con la página web 24.
Por ejemplo, tales datos de interacción pueden dividirse en uno o más paquetes de datos, cada uno de ellos de un tamaño adecuado para su transmisión como una solicitud AMF comprimida. En algunos modos de realización, tales paquetes de datos pueden estar dispuestos de tal manera que puedan ser transmitidos como un contenido de flujo de datos. En aún otros modos de realización, los datos de interacción almacenados pueden dividirse o paquetizarse en uno o más paquetes de datos de interacción, cada uno de ellos de un tamaño adecuado para su transmisión como una solicitud de script dinámico mediante la aplicación del navegador en particular que se está ejecutando en un ordenador del usuario 10.
A continuación, en la etapa 619, si una o más aplicaciones de transmisión y compresión de datos disponibles habitualmente se encuentran presentes en el ordenador 10, tales datos de interacción pueden comprimirse en la etapa 620 utilizando esas aplicaciones. Por ejemplo, en un modo de realización, éste puede incluir el uso del software ADOBE Flash u otra aplicación de transmisión y compresión adecuada. Utilizando esta aproximación, los datos de interacción almacenados y paquetizados pueden convertirse a un formato FLASH (matriz de bytes AS3 a través de ExternalInterface) y comprimidos utilizando GZIP. En la etapa 622, esta información puede entonces ser transmitida al servidor de rastreo 30 utilizando un formato de mensaje AMF. En algunos modos de realización, el servidor de rastreo 30 puede ser un servidor que utilice BlazeDS o AMFPHP.
En otros modos de realización, en los que las aplicaciones de transmisión y compresión adecuadas no se encuentran presente en el ordenador 10 en la etapa 619, tales datos de interacción almacenados pueden ser paquetizados en uno o más paquetes de datos, cada uno de ellos de un tamaño sustancialmente estándar adecuados para su transmisión como una solicitud de script dinámico por aplicaciones habituales de navegador conocidas comúnmente, tales como Internet Explorer® de Microsoft Corporation de Redmond, WA, Firefox ® de Mozilla Corporation de Mountain View, CA, Safari™ de Apple Inc. de Cupertino, CA, y Opera ™ de Opera Software de San Diego, CA, por ejemplo.
Con esta aproximación alterna, la operación de procesamiento 621 codifica un paquete de datos de interacción como una solicitud de script dinámico. El paquete de datos de interacción puede ser codificado como un objeto de script mediante cualquier medio de codificación conocido adecuado, y un servidor de rastreo que identifica el URL 30 a medida que la ubicación del objeto de script puede ser añadido para definir una solicitud de script dinámico. De esa manera, el paquete de datos de interacción puede ser incorporado en una solicitud de script dinámico al servidor de rastreo 30. El método de codificación utilizado para codificar el paquete de datos de interacción, y el formato de la solicitud de script dinámico creado en la operación 621, puede ser soportado de manera preferente mediante aplicaciones de un navegador estándar, y el proceso de codificación se implementa de manera preferente mediante un módulo de navegador 114 que se ejecuta en un ordenador del usuario 10.
La última operación de procesamiento 623 de la Figura 6 transmite la petición de script dinámico al servidor de rastreo 30. Aplicaciones de un navegador estándar pueden permitir que la petición de script dinámico creado en la operación 620, y que incorpora el paquete de datos de interacción, pueda ser transmitida al servidor de rastreo 30 incluso aunque el servidor de rastreo 30 pueda estar ubicado, habitualmente, en el mismo dominio de red que el servidor de web 20 desde el que la página web 24 se sirvió al ordenador del usuario 10. Aunque la transmisión de datos mediante una aplicación de un navegador a través de dominios podría no estar soportada de forma habitual debido a políticas de programación de script entre dominios (o sitios cruzados) incluidas en todas las aplicaciones de navegador estándar conocidas en el arte, la transmisión de los datos de interacción del usuario mediante una solicitud de script dinámico entre dominios permite la transmisión de los datos de interacción del usuario, mediante la aplicación de un navegador, a un servidor de rastreo 30 que no se encuentra ubicado en el mismo dominio de red que el servidor de web 20.
En un modo de realización alternativo, un paquete de datos de interacción puede ser codificado como una solicitud dinámica para un archivo de imagen oculto en la operación de procesamiento 621, más que una solicitud de script dinámico. En tal caso, el servidor de rastreo 30 puede ser establecido como la fuente de ubicación o URL para el archivo de imagen solicitado. En un modo de realización de ese tipo, la operación de procesamiento 623 comprendería entonces transmitir la solicitud de imagen dinámica al servidor de rastreo 30 como una solicitud de imagen dinámica entre dominios.
En un modo de realización adicional alternativo de la invención dirigido a rastrear la interacción del usuario con una página web 24 y reproducir la interacción del usuario en tiempo real para mostrarla a uno o más usuarios diferentes en un entorno colaborativo, las operaciones de procesamiento 618 y 620 pueden incluir codificar los datos de la interacción del usuario como un flujo de datos en tiempo real para su transmisión al servidor de rastreo 30 utilizando métodos de transferencia de datos asíncrona con COMET, Adobe Flash™ o solicitudes HTTP “Get”.
En un modo de realización tal, la operación de procesamiento 622 puede comprender transmitir los datos de interacción del usuario codificados al servidor de rastreo 30 en tiempo real tales como mediante transmisión de datos utilizando métodos con comet o Adobe Flash. Al recibir los datos de interacción transmitidos por el servidor de rastreo 30, los datos de interacción en tiempo real pueden ser reproducidos en tiempo real desde el servidor de rastreo 30 a uno o más ordenadores diferentes, de tal manera que la interacción del usuario grabada con la página web 24 se muestra en los otros ordenadores, permitiendo la colaboración. Un modo de realización de ese tipo puede ser particularmente apropiado para aplicaciones en las que uno o más usuarios colaboradores deseen ver la interacción de un único usuario con la página web 24, por ejemplo para ayudar al usuario a completar una operación en la página web 24 por ejemplo, o para aplicaciones colaboradoras en las que dos o más usuarios desean visualizar su interacción mutua con una página web 24 de forma simultánea en tiempo real, por ejemplo para colaborar en un juego en la página web 24 por ejemplo. De manera opcional, en un modo de realización de ese tipo, las instrucciones ejecutables para el rastreo colaborativo y la reproducción de la interacción del usuario con una página web, tal como se ha descrito anteriormente, pueden proporcionarse o exponerse como una interfaz de programación de aplicación (API, por sus siglas en inglés), para su integración en aplicaciones existentes, tales como aplicaciones web y/o páginas web, por ejemplo, para proporcionar la grabación, transmisión y reproducción de datos de interacción del usuario para fines de colaboración entre dos o más usuarios.
La Figura 7 ilustra una serie de operaciones de procesamiento que pueden ser implementadas por el sistema ilustrado en la Figura 1, y los ejemplos de ordenadores ilustrados en las Figuras 2-4, de acuerdo con un modo de realización de la invención. En la primera operación de procesamiento 710 de la Figura 7, la reproducción de solicitudes de análisis del usuario de un registro de rastreo 36 desde el servidor de reproducción 30. En un modo de realización de la invención, la reproducción de las solicitudes del usuario de análisis del registro de rastreo 36 desde el servidor de reproducción 30 utilizando una aplicación de reproductor multimedia disponible de forma habitual, tal como Windows Media Player que se ejecuta en un ordenador de análisis 40.
En otro modo de realización de la invención, el usuario de análisis puede solicitar la reproducción del registro de rastreo 36 del servidor de reproducción 30, utilizando una aplicación de navegador disponible de manera habitual que se ejecuta en un ordenador de análisis 40 para acceder a una página web de reproducción servida por el servidor de reproducción 30 y seleccionar el registro de rastreo 36 para su reproducción.
El ordenador de análisis 40 puede ser básicamente configurado de manera similar al ordenador del usuario 10 mostrado en la Figura 2, y la referencia al ordenador 10 puede ser sustituida por el ordenador de análisis 40 de aquí en adelante. Por consiguiente, el módulo de navegador 114 puede ser utilizado para implementar la operación de procesamiento 710, y para comunicar la solicitud para su reproducción del registro de rastreo 36 al servidor de rastreo 30 mediante la red 50, de acuerdo a métodos conocidos. El registro de rastreo 36 puede incluir datos de interacción del usuario grabados a partir de la interacción de un usuario mientras navega por la página web 24, y ha sido previamente transmitido al servidor de reproducción 30 tal como se ha descrito anteriormente, y almacenado como un registro de rastreo 36. El registro de rastreo 36 puede ser almacenado en cualquier medio de almacenamiento adecuado al que pueda acceder el servidor de reproducción 30, tal como el repositorio de almacenamiento de rastreo 32, por ejemplo.
Si el registro de rastreo existe en un formato multimedia, ese registro puede proporcionarse al ordenador 40 y ser reproducido como tal. Si el registro de rastreo 36 permanece como un conjunto de datos de interacción cuando la solicitud se realiza, esos datos pueden ser reproducidos y convertidos a un formato de archivo multimedia adecuado en un servidor reproducción 30, y entonces proporcionado a un ordenador de análisis 40 después de la conversión.
Por ejemplo, esto puede lograrse utilizando cualquier técnica de conversión multimedia adecuada conocida o mediante una aplicación de tipo “movie maker” que se encuentre configurada para reproducir el registro de rastreo 36 en un navegador integrado que se hospeda en el servidor de reproducción 30, como se describe más adelante en las etapas 712-722. Pueden realizarse capturas de pantalla del navegador reproduciendo los datos de interacción en intervalos seleccionados o predeterminados y pueden combinarse como se conoce en el arte para crear un archivo de video. Una vez convertido a un archivo de video, los datos de interacción pueden ser posteriormente almacenados en el servidor de reproducción 30 en dicho formato de manera que la futura conversión no se requiera. Una vez en dicho formato de video, la interacción es sustancialmente independiente del servidor de reproducción 30 y puede ser transferida libremente a dispositivos informáticos habituales para una reproducción o un análisis adicional.
En el caso en que se lleva a cabo la reproducción del navegador, la siguiente operación de procesamiento 712 de la Figura 7, el navegador de análisis puede ser redirigido a solicitar la página web original 24 del servidor de web 20 si no se encuentra disponible del servidor de rastreo 30. En la siguiente operación de procesamiento 714 de la Figura 7, el navegador recibe la página web 24 del servidor de web 30 y solicita el script de rastreo 34 del servidor de reproducción 30. La operación de procesamiento 714 corresponde sustancialmente a operaciones de procesamiento 512 y 514 como se describe en mayor detalle anteriormente en referencia a la Figura 5. El ordenador de análisis 40 puede recibir la página web 24 del servidor 30, y solicitar el script de rastreo 34 del servidor de rastreo 30 mediante la red 50, de acuerdo a métodos conocidos.
En la siguiente operación de procesamiento 716 de la Figura 7, el navegador recibe el script de rastreo 34 del servidor de rastreo 30, y ejecuta el script de rastreo 34. La operación de procesamiento 716 puede ser implementada por el módulo de navegador 114 que se ejecuta en el ordenador de análisis 40. Tal como se describe anteriormente, de manera preferente, todas las instrucciones ejecutables comprendidas en el script de rastreo 34 que se encuentran incluidas con la página web 24, a medida que son recibidas por el ordenador de análisis 40 pueden ser ejecutadas por cualquier aplicación de navegador que se ejecute en el ordenador del usuario 10, tal como se representa por el módulo de navegador 114. Los ejemplos de aplicaciones de navegador habituales pueden incluir Internet Explorer ® de Microsoft Corporation de Redmond WA, y Firefox ® de Mozilla Corporation de Mountain View, CA, Safari™ de Apple Inc. de Cupertino, CA, y Opera™ de Opera Software de San Diego, CA, por ejemplo. De acuerdo con un modo de realización de la invención, las instrucciones ejecutables comprendidas en el script de rastreo 34 pueden ser implementadas por un sub-conjunto, tal como el módulo de script de rastreo 116, que se ejecuta dentro del módulo de navegador 114 en el ordenador de análisis 40. En un modo de realización, cuando el script de rastreo 34 es ejecutado por el navegador, un parámetro almacenado en el navegador que indica que la reproducción del registro de rastreo 36 ha sido solicitada, lanza la ejecución de las instrucciones de reproducción incluidas en el script de rastreo 34.
De acuerdo con un modo de realización de la invención, el script de rastreo 34 comprende instrucciones de reproducción ejecutables que pueden ser ejecutadas por una aplicación de navegador para: solicitar los datos de interacción del usuario grabados almacenados en el registro de rastreo 36 del servidor de rastreo 30, recrear una visualización de interacción de la interacción del usuario con una página web a partir de los datos de interacción recibidos del servidor de rastreo 30, y reproducir una visualización de interacción en un ordenador de análisis 40.
En la siguiente operación de procesamiento 718 de la Figura 7, el navegador solicita y recibe periódicamente datos de interacción del servidor de rastreo 30 a través de la solicitud de script dinámico. La operación de procesamiento 718 puede ser implementada utilizando el módulo de navegador 114 en el ordenador de análisis 40, que puede solicitar y recibir periódicamente datos de interacción del servidor de rastreo 30 mediante la solicitud de script dinámico, y puede comunicarse con el servidor de rastreo a través de la red 50.
De acuerdo con un modo de realización, la solicitud de recepción de datos de interacción del servidor 30 por el módulo de navegador 114 en el ordenador de análisis 40 puede lograrse utilizando la aplicación Adobe Flash tal como se ha descrito anteriormente o, de manera alternativa, mediante una solicitud de script dinámico entre dominios, que puede también denominarse como solicitud de programación de script de sitio cruzado. De acuerdo a un modo de realización de ese tipo, las instrucciones de reproducción ejecutables comprendidas en el script de rastreo 34, recibidas con la página 24 desde el servidor 30 y ejecutadas por el módulo de navegador 114 en el ordenador de análisis 40, comprenden instrucciones para solicitar periódicamente un archivo de datos de interacción del ordenador de rastreo 30 mediante una solicitud de script dinámico, y recibir el archivo de datos de interacción desde el servidor de rastreo 30, que comprende una interacción del usuario grabada previamente con la página web 24 que fue almacenada en el registro de rastreo 36.
De acuerdo con la funcionalidad estandarizada soportada por las aplicaciones de navegador habituales en la industria, ejemplificadas por el módulo de navegador 114, se puede permitir que una solicitud de script dinámico tal sea transmitida a través de dominios al servidor de rastreo 30 y los datos de interacción resultantes recibidos del servidor de rastreo 30 pueden, habitualmente, no estar ubicados en el mismo dominio de red o sitio que el servidor de web 20, desde el que la página web 24 fue recibida por el ordenador del usuario 10.
De acuerdo con un modo de realización alternativo, el navegador en el ordenador de análisis 40 puede utilizar un dominio cruzado XMLHttpRequest (tal como el soportado para su uso en aplicaciones AJAX, por ejemplo), para solicitar y recibir datos de interacción del servidor de rastreo 30, en la operación de procesamiento de implementación 718. De manera opcional, cualquier solicitud de AJAX entre dominios puede además ser utilizada para implementar la operación de procesamiento 718.
De acuerdo a otro modo de realización, los datos de interacción solicitados y recibidos del servidor de rastreo 30 de acuerdo a la operación de procesamiento 718, puede comprender datos de interacción de usuario sustancialmente como fueron recibidos transmitidos por un ordenador del usuario 10 durante la grabación, y sustancialmente como fueron grabados como registro de rastreo 36.
De acuerdo a un modo de realización alternativo preferente, los datos de interacción solicitados y recibidos del servidor de rastreo 30 de acuerdo con la operación de procesamiento 718, pueden ser transformados o de otro modo procesados por el servidor de rastreo 30 previamente a su recepción por el navegador del ordenador de análisis 40. En un modo de realización preferente de ese tipo, el servidor de rastreo 30 puede procesar los datos de interacción del usuario almacenados como registro de rastreo 36 previamente a su transmisión al navegador del ordenador de análisis 40, para mejorar la calidad de la reproducción de los datos de interacción del usuario en el ordenador de análisis. Un procesamiento de ese tipo puede incluir uno o más de: conversión del formato de datos de interacción del usuario por ejemplo para mejorar la transmisión o visualización de los datos de interacción del usuario, una interpolación de datos de interacción del usuario discontinuos para mejorar la continuidad, por ejemplo utilizando diversos métodos conocidos (tales como métodos de interpolación basados en curvas de Bézier), para interpolar datos del movimiento del ratón/cursor/puntero para mejorar la continuidad del movimiento, por ejemplo. En un modo de realización de ese tipo en particular, los datos de interacción del usuario almacenados como registro de rastreo 36, pueden ser procesados por el servidor de rastreo 30 previamente a su recepción por el ordenador de análisis 40, convirtiendo los datos de interacción del usuario en un formato de notación de objetos JavaScript o JavaScript Object Notation (JSON, por sus siglas en inglés).
Debe señalarse que de acuerdo a aún un modo de realización adicional de la invención, el servidor de rastreo 30, del que los datos de interacción se solicitan y se reciben durante la operación de procesamiento 718, no tiene que ser el mismo ordenador servidor en el que los datos de interacción se grabaron en primer lugar cuando se recibieron del ordenador del usuario. De manera opcional, los datos de interacción del usuario pueden ser transferidos desde un primer ordenador de rastreo de grabación, a un segundo servidor de rastreo de reproducción 30, del que se solicitan dichos datos durante la operación de procesamiento 718.
En la siguiente operación de procesamiento 720 de la Figura 7, el navegador recrea una visualización de la interacción de los datos de interacción recibidos del servidor de rastreo 30. La operación de procesamiento 720 puede ser implementado utilizando el módulo de navegador 114 en un ordenador de análisis 40, que puede recrear una visualización de interacción a partir de los datos de interacción de acuerdo con cualquier método o técnica adecuada conocida. En un modo de realización preferente, una visualización de interacción de ese tipo comprende una recreación considerablemente realista y precisa de los eventos de interacción del usuario, sustancialmente según se grabaron previamente del usuario original interactuando con la página web 24 en el momento de la grabación. En un modo de realización, la visualización de interacción recreada puede ser temporalmente almacenada en una memoria búfer del navegador, como por ejemplo en un módulo de navegador 114, de manera que una primera parte de la visualización de interacción pueda ser leída del búfer al mismo tiempo que una segunda parte de la visualización recreada a partir de los datos de interacción subsiguientes recibidos periódicamente por el navegador, pueden ser escritos en el búfer, para proporcionar un flujo de datos de visualización continuo recreado a partir de las partes recibidas periódicamente de los datos de interacción recibidos del servidor de rastreo 30.
En la operación de procesamiento final 722 de la Figura 7, el navegador reproduce la visualización de la interacción en la página web 24 recreada a partir de un DOM almacenado en el servidor de rastreo 30. La operación de procesamiento 722 puede además ser implementada utilizando el módulo de navegador 114 en el ordenador de análisis 40, que puede reproducir la visualización de interacción en la página web 24 de acuerdo con un método o técnica adecuada conocida. En un modo de realización preferente, la visualización de la interacción se reproduce en la página web 24 mostrada en el ordenador de análisis 40, para visualizar a interacción del usuario con la página web 24 básicamente de manera exacta a como tuvo lugar en el momento de la grabación en el ordenador del usuario 10. De acuerdo a un modo de realización, la reproducción de la visualización de la interacción del usuario en la página web 24 mostrada en el ordenador de análisis 40, puede proporcionar características tales como pausa, rebobinado, avance rápido de la visualización de la interacción, para permitir un análisis detallado de la interacción del usuario original durante la reproducción en el ordenador de análisis 40. Un análisis de ese tipo puede utilizarse para entender la interacción de los usuarios con la página web 24.
Un modo de realización de la presente invención hace referencia a un producto de almacenamiento informático con un medio legible por ordenador que presenta un código informático en el mismo para realizar diversas operaciones implementadas por ordenador. Los medios legibles por ordenador y el código informático pueden ser aquellos diseñados y construidos especialmente para los propósitos de la presente invención, o pueden ser de un tipo bien conocidos y disponibles para los expertos en el arte del software informático. Ejemplos de medios legibles por ordenador incluyen, pero no se limitan a: medios magnéticos tales como discos duros, disquetes, y cintas magnéticas; medios ópticos tales como unidades de CD-ROM y dispositivos holográficos; medios magneto-ópticos tales como discos ópticos; y dispositivos de hardware que están especialmente configurados para almacenar y ejecutar códigos de programa, tales como circuitos integrados de aplicación específica (“ASICs”, por sus siglas en inglés), dispositivos lógicos programables (“PLDs”, por sus siglas en inglés) y dispositivos ROM y RAM. Ejemplos de código informático incluyen código de máquina, como por ejemplo el producido por un compilador, y archivos que contienen código de nivel superior que se ejecutan mediante un ordenador que utiliza un intérprete. Por ejemplo, un modo de realización de la presente invención puede ser implementado utilizando XML, JavaScript, C, C++, u otros lenguajes de script, de marcas y/o de programación y herramientas de desarrollo. Otro modo de realización de la invención puede ser implementado en circuitos cableados en lugar de, o en combinación con, instrucciones de software ejecutables por máquina.
Los ejemplos de modos de realización descritos en la presente patente no tienen la intención de ser exhaustivos o limitar el alcance de la invención a las formas precisas reveladas. Dichas formas han sido elegidas y descritas para explicar los principios de la invención y su aplicación y uso práctico para permitir que otros expertos en el arte comprendan sus contenidos.
Como resultará aparente para aquellos expertos en el arte en vista de la revelación anterior, muchos cambios y modificaciones resultan posibles en la práctica de la presente invención sin apartarse del alcance de la misma. Por consiguiente, el alcance de la invención ha de interpretarse de acuerdo con el fundamento definido por las siguientes reivindicaciones.

Claims (17)

  1. REIVINDICACIONES
    1. Método implementado por ordenador para el rastreo remoto de la interacción del usuario con una página web, que comprende: solicitar una página web de un servidor de web que incluye un código de rastreo; recibir la página web de servidor de web; ejecutar el código de rastreo para solicitar un script de rastreo de un servidor de rastreo; recibir el script de rastreo;
    añadir el script de rastreo recibido a la página web y ejecutar el script de rastreo; capturar datos de interacción del usuario durante la navegación por la página web mediante instrucciones en el script de rastreo; y
    transmitir y almacenar periódicamente los datos de interacción del usuario al servidor de rastreo.
  2. 2.
    Método implementado por ordenador según la reivindicación 1, que es un método para reproducir la interacción de un usuario con una página web, que además comprende: solicitar la reproducción de un registro de rastreo de un servidor de reproducción; recibir una página web y solicitar un código de rastreo del servidor de reproducción; solicitar y recibir periódicamente datos de interacción del usuario desde el servidor de reproducción; normalizar los datos recibidos de interacción del usuario;
    recrear una visualización de la interacción a partir de os datos de interacción del usuario; y reproducir dicha visualización de interacción en base los datos recibidos del servidor de reproducción.
  3. 3.
    Método implementado por ordenador según la reivindicación 2, en donde recrear una visualización de la interacción se basa en un modelo de objeto del documento; y/o incluye el uso de una técnica de proxy remota o local.
  4. 4.
    Método implementado por ordenador según la reivindicación 2, en donde los datos de interacción del usuario se solicitan utilizando una solicitud de script dinámico; y/o en donde recibir una página web y solicitar un código de rastreo incluye recibir y ejecutar un script de rastreo.
  5. 5.
    Método implementado por ordenador según la reivindicación 1, que es un método para la reproducción de la interacción de un usuario con una página web, que comprende: solicitar la reproducción de los datos de interacción del usuario de un servidor de reproducción;
    solicitar periódicamente datos de interacción del usuario del servidor de reproducción; crear un archivo de video en base a los datos recibidos de interacción del usuario del servidor de reproducción;
    normalizar los datos de interacción del usuario utilizados para crear el archivo de video; y reproducir el archivo de video creado con una aplicación de reproducción multimedia.
  6. 6.
    Método implementado por ordenador según la reivindicación 5, en donde crear el archivo de video incluye además recrear la página web tal como la ve el usuario; y/o en donde el archivo de video es creado en base a capturas de pantalla adquiridas durante la reproducción de los datos de interacción del usuario en el servidor de reproducción.
  7. 7.
    Un medio utilizable por ordenador que presenta instrucciones utilizables por ordenador almacenadas en el mismo para el rastreo remoto de la interacción del usuario con una página web, en donde dichas instrucciones cuando se ejecutan por el procesador, generan que el procesador:
    solicite una página web del servidor de web que incluye un código de rastreo; reciba la página web del servidor de web; ejecute el código de rastreo para solicitar un script del servidor de rastreo; reciba el script de rastreo;
    añada el script de rastreo a la página web y ejecute el script de rastreo;
    capture los datos de interacción del usuario durante la navegación por la página web mediante instrucciones en el script de rastreo; y transmitir y almacenar periódicamente los datos de interacción del usuario al servidor de rastreo.
  8. 8.
    Medio utilizable por ordenador según la reivindicación 7, que además comprende instrucciones para transmitir periódicamente los datos de interacción del usuario en formato comprimido y/o en un formato AS3.
  9. 9.
    Medio utilizable por ordenador según la reivindicación 7, en donde la captura de datos de interacción del usuario incluye capturar información relacionada con la navegación de la página web; y/o en donde el código de rastreo incluye un script de rastreo.
  10. 10.
    Medio utilizable por ordenador según la reivindicación 7, que además comprende instrucciones para: identificar elementos de una página web; definir receptores para cada uno de los elementos; grabar los datos de interacción del usuario con la página web utilizando los receptores; procesar y almacenar los datos de interacción en un almacenamiento de navegador web; y transmitir los datos de interacción como una solicitud de un script dinámico a un servidor de rastreo.
  11. 11.
    Medio utilizable por ordenador según la reivindicación 10 que además comprende instrucciones para paquetizar los datos almacenados.
  12. 12.
    Medio utilizable por ordenador según la reivindicación 11, que además comprende instrucciones para codificar los datos paquetizados como una solicitud de script dinámico; y/o para recrear una visualización de la interacción a partir de los datos recibidos del servidor de rastreo; reproducir, de manera preferente, la visualización de la interacción en un navegador alojado por el servidor
    de reproducción; y/o convertir, de manera preferente, la visualización de la interacción a un archivo de video.
  13. 13.
    Medio utilizable por ordenador según la reivindicación 7, que además comprende instrucciones para: identificar elementos de una página web; definir receptores para cada uno de los elementos; grabar los datos de interacción con la página web utilizando los receptores; procesar y almacenar los datos de interacción en un almacenamiento del navegador; y transmitir los datos de interacción a un servidor de rastreo como un archivo de Formato de mensaje de Acción o
    AMF comprimido.
  14. 14.
    Medio utilizable por ordenador según la reivindicación 13 que además comprende instrucciones Para paquetizar los datos almacenados; y/o Para codificar los datos paquetizados como una solicitud de formato de mensaje de acción o AMF.
  15. 15.
    Medio utilizable por ordenador según la reivindicación 13, que además comprende instrucciones
    para recrear una visualización de interacción a partir de los datos de interacción recibidos del servidor de rastreo; reproducir, de manera preferente, la visualización de la interacción en un navegador alojado por el servidor
    de reproducción; y/o convertir, preferentemente, la visualización de la interacción a un archivo de video.
  16. 16.
    Medio utilizable por ordenador según la reivindicación 7, en donde dichas instrucciones cuando son ejecutadas por el procesador, causan que el procesador:
    solicite la reproducción de un registro de rastreo del servidor de rastreo; solicite periódicamente los datos de interacción del servidor de reproducción; cree un archivo de video en base a los datos de interacción del servidor de reproducción; normalice los datos de interacción del usuario utilizados para crear el archivo de video y reproducir el archivo de video creado con una aplicación de reproducción multimedia.
  17. 17.
    Medio utilizable por ordenador según la reivindicación 16, que además comprende instrucciones para crear el archivo de video en base a capturas de pantalla adquiridas durante la reproducción de los datos de interacción en el servidor de reproducción.
ES09747080T 2008-04-15 2009-04-10 Método y medio para el rastreo remoto de la interacción de un usuario con una página web Active ES2423313T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12439208P 2008-04-15 2008-04-15
US124392P 2008-04-15
PCT/US2009/040194 WO2009139994A2 (en) 2008-04-15 2009-04-10 Systems and methods for remote tracking and replay of user interaction with a webpage

Publications (1)

Publication Number Publication Date
ES2423313T3 true ES2423313T3 (es) 2013-09-19

Family

ID=40849182

Family Applications (2)

Application Number Title Priority Date Filing Date
ES09747080T Active ES2423313T3 (es) 2008-04-15 2009-04-10 Método y medio para el rastreo remoto de la interacción de un usuario con una página web
ES13003350.9T Active ES2555291T3 (es) 2008-04-15 2009-04-10 Método para el seguimiento remoto y la reproducción de la interacción de un usuario con una página web

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES13003350.9T Active ES2555291T3 (es) 2008-04-15 2009-04-10 Método para el seguimiento remoto y la reproducción de la interacción de un usuario con una página web

Country Status (7)

Country Link
US (1) US9418172B2 (es)
EP (2) EP2650790B1 (es)
DK (1) DK2291745T3 (es)
ES (2) ES2423313T3 (es)
HK (1) HK1155531A1 (es)
IL (3) IL208705A (es)
WO (1) WO2009139994A2 (es)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065410B1 (en) 2004-03-31 2011-11-22 Compuware Corporation Methods and apparatus for collecting performance metrics from a web site
US8095650B1 (en) * 2007-07-30 2012-01-10 Compuware Corporation Methods and apparatus for real user monitoring including flash monitoring
US8839116B2 (en) * 2008-08-22 2014-09-16 Siemens Aktiengesellschaft User interface in an information technology (IT) system
US20100088373A1 (en) * 2008-10-06 2010-04-08 Jeremy Pinkham Method of Tracking & Targeting Internet Payloads based on Time Spent Actively Viewing
US8245030B2 (en) * 2008-12-19 2012-08-14 Nai-Yu Pai Method for authenticating online transactions using a browser
WO2010070456A2 (en) * 2008-12-19 2010-06-24 F2Ware Inc. Method and apparatus for authenticating online transactions using a browser
US8219598B1 (en) * 2009-05-11 2012-07-10 Google Inc. Cross-domain communicating using data files
CN102460428A (zh) * 2009-06-05 2012-05-16 惠普开发有限公司 用于表示与web服务的用户交互的系统和方法
US8571319B2 (en) * 2009-07-28 2013-10-29 International Business Machines Corporation Enhanced screen capture for form manipulation
US20110153435A1 (en) * 2009-09-17 2011-06-23 Lexos Media Inc. System and method of cursor-based content delivery
JP5434435B2 (ja) * 2009-09-29 2014-03-05 ブラザー工業株式会社 インターネットに接続される端末装置
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US8433733B2 (en) * 2010-01-13 2013-04-30 Vmware, Inc. Web application record-replay system and method
IL203628A (en) * 2010-01-31 2015-09-24 Verint Systems Ltd Systems and methods for decoding network traffic
US9785722B2 (en) * 2010-04-01 2017-10-10 Forsee Results, Inc. Systems and methods for remote replay of user interaction with a webpage
US20140052853A1 (en) * 2010-05-26 2014-02-20 Xavier Mestres Unmoderated Remote User Testing and Card Sorting
US11934475B2 (en) 2010-05-26 2024-03-19 Userzoom Technologies, Inc. Advanced analysis of online user experience studies
US11544135B2 (en) 2010-05-26 2023-01-03 Userzoom Technologies, Inc. Systems and methods for the analysis of user experience testing with AI acceleration
US11562013B2 (en) 2010-05-26 2023-01-24 Userzoom Technologies, Inc. Systems and methods for improvements to user experience testing
US11494793B2 (en) 2010-05-26 2022-11-08 Userzoom Technologies, Inc. Systems and methods for the generation, administration and analysis of click testing
US11068374B2 (en) 2010-05-26 2021-07-20 Userzoom Technologies, Inc. Generation, administration and analysis of user experience testing
US10691583B2 (en) 2010-05-26 2020-06-23 Userzoom Technologies, Inc. System and method for unmoderated remote user testing and card sorting
US11348148B2 (en) 2010-05-26 2022-05-31 Userzoom Technologies, Inc. Systems and methods for an intelligent sourcing engine for study participants
US8881110B2 (en) 2010-06-11 2014-11-04 Hewlett-Packard Development Company, L.P. Role-based automation scripts
US9053241B2 (en) * 2010-06-11 2015-06-09 Hewlett-Packard Development Company, L.P. Scripting application with role identification
US9400962B2 (en) 2010-10-29 2016-07-26 Fujitsu Limited Architecture for distributed, parallel crawling of interactive client-server applications
US20120109931A1 (en) * 2010-10-29 2012-05-03 Fujitsu Limited Technique for compression of state information in the crawling of interactive client-server applications
US8751930B2 (en) 2010-11-02 2014-06-10 International Business Machines Corporation Seamlessly sharing and reusing knowledge between an administrator console and user interaction
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
US8533593B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc Hierarchical display and navigation of document revision histories
US8533595B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc Hierarchical display and navigation of document revision histories
US8874525B2 (en) 2011-04-19 2014-10-28 Autodesk, Inc. Hierarchical display and navigation of document revision histories
US8533594B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc. Hierarchical display and navigation of document revision histories
US9465866B2 (en) * 2011-06-09 2016-10-11 International Business Machines Corporation Task context recovery
US8914496B1 (en) * 2011-09-12 2014-12-16 Amazon Technologies, Inc. Tracking user behavior relative to a network page
US9053319B2 (en) 2011-09-29 2015-06-09 Hewlett-Packard Development Company, L.P. Context-sensitive taint processing for application security
US8806574B2 (en) 2011-10-05 2014-08-12 Hewlett-Packard Development Company, L.P. System and method for policy conformance in a web application
CN102495869B (zh) * 2011-11-30 2013-11-20 中国航空工业集团公司第六三一研究所 高可靠航电文件系统远程浏览系统及浏览方法
US9679297B2 (en) * 2012-04-27 2017-06-13 Adobe Systems Incorporated Method and apparatus for isolating analytics logic from content creation in a rich internet application
EP2847688B1 (en) * 2012-05-10 2018-08-22 Clicktale Ltd. A method and system for monitoring and tracking browsing activity on handheld devices
US9305268B2 (en) 2012-06-12 2016-04-05 Connotate, Inc. Monitoring and replaying user behaviors on the web
US8977742B1 (en) * 2012-08-08 2015-03-10 Google Inc. Remote validation of user interactions for client-side scripting
US9904517B2 (en) * 2012-09-10 2018-02-27 Applitools Ltd. System and method for automatic modeling of an application
US9448908B2 (en) * 2012-09-10 2016-09-20 Applitools Ltd. System and method for model based session management
US9088767B2 (en) 2012-10-08 2015-07-21 International Business Machines Corporation Activities duplication via recorded video
US9594732B2 (en) * 2012-12-20 2017-03-14 Google Inc. Selectively replacing displayed content items based on user interaction
US10249007B2 (en) * 2012-12-28 2019-04-02 Facebook, Inc. Social cover feed interface
US10649607B2 (en) 2012-12-28 2020-05-12 Facebook, Inc. Re-ranking story content
US10761672B2 (en) * 2012-12-28 2020-09-01 Facebook, Inc. Socialized dash
US9438694B1 (en) 2013-01-29 2016-09-06 Amazon Technologies, Inc. Managing page-level usage data
US9577889B1 (en) 2013-01-29 2017-02-21 Amazon Technologies, Inc. Managing page-level usage data
US9398071B1 (en) * 2013-01-29 2016-07-19 Amazon Technologies, Inc. Managing page-level usage data
US9961127B2 (en) * 2013-03-15 2018-05-01 Foresee Results, Inc. System and method for capturing interaction data relating to a host application
US20140358692A1 (en) * 2013-06-03 2014-12-04 Cloudwear, Inc. Method for communicating primary and supplemental advertiser information using a server
US20140379466A1 (en) * 2013-06-20 2014-12-25 Lexos Media Ip, Llc System and method of cursor-based content delivery
US9697108B2 (en) * 2013-08-12 2017-07-04 International Business Machines Corporation System, method, and apparatus for automatic recording and replaying of application executions
US20150052256A1 (en) * 2013-08-15 2015-02-19 Unisys Corporation Transmission of network management data over an extensible scripting file format
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US11256385B2 (en) * 2013-09-19 2022-02-22 Micro Focus Llc Application menu modification recommendations
US20160209989A1 (en) * 2013-09-30 2016-07-21 Jin-Feng Luan Record and replay of operations on graphical objects
US9959255B2 (en) * 2014-01-31 2018-05-01 Yahoo Holdings, Inc. Dynamic streaming content provided by server and client-side tracking application
US10366140B2 (en) * 2014-03-26 2019-07-30 Lead Intelligence, Inc. Method for replaying user activity by rebuilding a webpage capturing content at each web event
US11263285B2 (en) * 2014-03-26 2022-03-01 Lead Intelligence, Inc. Replaying user activity by capturing content and rebuilding the webpage at each web event
WO2015195408A1 (en) * 2014-06-19 2015-12-23 Thomson Licensing Method and apparatus for detecting a state of selectable values of a web page
US10049141B2 (en) * 2014-10-10 2018-08-14 salesforce.com,inc. Declarative specification of visualization queries, display formats and bindings
US10659566B1 (en) * 2014-10-31 2020-05-19 Wells Fargo Bank, N.A. Demo recording utility
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US9766769B1 (en) 2014-12-31 2017-09-19 FullStory, Inc. Evaluation of interactions with a user interface
IL237986A0 (en) * 2015-03-26 2015-11-30 Yaron Peretz Method and system for broadcasting surfing activities
US10769351B2 (en) 2015-05-08 2020-09-08 Citrix Systems, Inc. Rendering based on a document object model
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US9996216B2 (en) * 2015-06-25 2018-06-12 medCPU, Ltd. Smart display data capturing platform for record systems
US10498842B2 (en) * 2015-07-13 2019-12-03 SessionCam Limited Methods for recording user interactions with a website
EP3323053B1 (en) * 2015-07-16 2021-10-20 Quantum Metric, Inc. Document capture using client-based delta encoding with server
US10810362B2 (en) * 2015-07-17 2020-10-20 Sap Se Page-based incident correlation for network applications
US10447761B2 (en) * 2015-07-31 2019-10-15 Page Vault Inc. Method and system for capturing web content from a web server as a set of images
US10158722B2 (en) 2015-07-31 2018-12-18 Jeffrey T Eschbach Method and systems for the scheduled capture of web content from web servers as sets of images
US20170147159A1 (en) * 2015-11-19 2017-05-25 International Business Machines Corporation Capturing and storing dynamic page state data
US10102306B2 (en) * 2016-05-03 2018-10-16 International Business Machines Corporation Patching base document object model (DOM) with DOM-differentials to generate high fidelity replay of webpage user interactions
US9807184B1 (en) 2016-06-02 2017-10-31 Tealium Inc. Configuration of content site user interaction monitoring in data networks
WO2018045312A1 (en) * 2016-09-01 2018-03-08 Foresee Results, Inc. System and computer-implemented method for in-page reporting of user feedback on a website or mobile app
US11282091B2 (en) * 2016-09-30 2022-03-22 Transitiv, Inc. Systems, methods, and devices for dynamic page feed management
US11301477B2 (en) * 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
TWI768096B (zh) * 2017-08-25 2022-06-21 瑞士商西克帕控股有限公司 光學效果層、用於產生此光學效果層的裝置及進程、及此裝置的使用方法
LT3770773T (lt) 2017-08-28 2024-03-12 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius
CN110020354B (zh) * 2017-09-30 2021-02-26 北京国双科技有限公司 点击热力图异常检测方法及装置
CN110161431B (zh) * 2018-02-12 2023-02-17 西门子公司 变频器监控数据的处理方法、装置和存储介质
US10846110B2 (en) * 2018-10-02 2020-11-24 Sap Se User interface usage measurement and user interface design using machine learning
CN109446025B (zh) * 2018-10-17 2022-08-23 北京字节跳动网络技术有限公司 一种操作行为的回放方法、装置、电子设备及可读介质
US11909100B2 (en) 2019-01-31 2024-02-20 Userzoom Technologies, Inc. Systems and methods for the analysis of user experience testing with AI acceleration
LT4075304T (lt) 2019-02-25 2023-07-25 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
US20200349820A1 (en) * 2019-04-13 2020-11-05 Michael A. Speagle Theft monitoring and identification system for self-service point of sale
US10768885B1 (en) 2019-04-23 2020-09-08 Study Social Inc. Video conference with shared whiteboard and recording
US11093119B2 (en) * 2019-07-31 2021-08-17 FullStory, Inc. User interface engagement heatmaps
US11720845B2 (en) * 2019-08-30 2023-08-08 Amplo Global Inc. Data driven systems and methods for optimization of a target business
US20210272662A1 (en) * 2020-02-27 2021-09-02 Lawrence German Application, system, and method for a computer implemented medical electronic record management system
US11790028B2 (en) 2020-12-10 2023-10-17 International Business Machines Corporation Dynamic user interface enhancement based on user interactions
US11463499B1 (en) * 2020-12-18 2022-10-04 Vr Edu Llc Storage and retrieval of virtual reality sessions state based upon participants
CN113553529A (zh) * 2021-07-26 2021-10-26 平安养老保险股份有限公司 记录网页行为方法、装置、计算机设备及存储介质
US11816175B2 (en) * 2021-12-20 2023-11-14 Content Square SAS Webpage element visibility evaluation based on position and scrolling actions
CN114422528B (zh) * 2022-01-19 2024-06-07 杭州笨马网络技术有限公司 基于桌面端和Web应用的请求数据同步的方法
US20240070630A1 (en) * 2022-08-24 2024-02-29 Truist Bank Techniques for generating transaction replays

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133834B1 (en) 1992-08-06 2006-11-07 Ferrara Ethereal Llc Product value information interchange server
US5999908A (en) 1992-08-06 1999-12-07 Abelow; Daniel H. Customer-based product design module
US6842877B2 (en) * 1998-12-18 2005-01-11 Tangis Corporation Contextual responses based on automated learning techniques
US6449636B1 (en) * 1999-09-08 2002-09-10 Nortel Networks Limited System and method for creating a dynamic data file from collected and filtered web pages
US6954783B1 (en) * 1999-11-12 2005-10-11 Bmc Software, Inc. System and method of mediating a web page
US6535909B1 (en) * 1999-11-18 2003-03-18 Contigo Software, Inc. System and method for record and playback of collaborative Web browsing session
US20010034638A1 (en) 2000-02-05 2001-10-25 John Kelley Server side processing of internet requests
EP1264261B1 (en) * 2000-03-14 2005-11-16 Speed-trap.com Ltd. Monitoring operation of and interaction with services provided over a network
WO2001086483A2 (en) * 2000-05-05 2001-11-15 Kevin Tso A system and method for providing a guided tour of a web site
US20020038388A1 (en) * 2000-09-13 2002-03-28 Netter Zvi Itzhak System and method for capture and playback of user interaction with web browser content
US20020083145A1 (en) * 2000-12-22 2002-06-27 Nortel Networks Limited Method and system for online/offline services
WO2002084507A1 (en) * 2001-04-13 2002-10-24 Netiq Corporation User-side tracking of multimedia application usage within a web page
US7370269B1 (en) * 2001-08-31 2008-05-06 Oracle International Corporation System and method for real-time annotation of a co-browsed document
US6877007B1 (en) * 2001-10-16 2005-04-05 Anna M. Hentzel Method and apparatus for tracking a user's interaction with a resource supplied by a server computer
US10205623B2 (en) * 2002-06-28 2019-02-12 Adobe Systems Incorporated Custom event and attribute generation for use in website traffic data collection
US20040054715A1 (en) * 2002-09-16 2004-03-18 Paul Cesario Capturing and replaying internet application transactions using an embedded browser
US7203901B2 (en) * 2002-11-27 2007-04-10 Microsoft Corporation Small form factor web browsing
JP4282312B2 (ja) * 2002-11-27 2009-06-17 富士通株式会社 Webサーバ、Javaサーブレットの機能を有するWebサーバ、およびコンピュータプログラム
US20040128534A1 (en) * 2002-12-18 2004-07-01 Walker Nicholas John Method and product for identifying a website visitor session by visitor e-mail address
US20040119682A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Self-correcting autonomic mouse
US7529798B2 (en) * 2003-03-18 2009-05-05 Intercall, Inc. System and method for record and playback of collaborative web browsing session
US7694223B2 (en) * 2003-06-04 2010-04-06 Sony Computer Entertainment Inc. Methods and systems for recording user actions in computer programs
US20050060655A1 (en) * 2003-09-12 2005-03-17 Useractive Distance-learning system with dynamically constructed menu that includes embedded applications
US9032096B2 (en) * 2003-12-17 2015-05-12 Cisco Technology, Inc. Reducing the impact of network latency on application performance
US7373524B2 (en) * 2004-02-24 2008-05-13 Covelight Systems, Inc. Methods, systems and computer program products for monitoring user behavior for a server application
US7584435B2 (en) * 2004-03-03 2009-09-01 Omniture, Inc. Web usage overlays for third-party web plug-in content
US7792954B2 (en) * 2004-04-02 2010-09-07 Webtrends, Inc. Systems and methods for tracking web activity
US8225195B1 (en) * 2004-12-15 2012-07-17 Amazon Technologies, Inc. Displaying links at varying levels of prominence to reveal emergent paths based on user interaction
US7770068B2 (en) * 2005-06-01 2010-08-03 Neustar, Inc. Systems and methods for website monitoring and load testing via simulation
US7360166B1 (en) * 2005-08-17 2008-04-15 Clipmarks Llc System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
US20070106692A1 (en) * 2005-11-10 2007-05-10 International Business Machines Corporation System and method for recording and replaying a session with a web server without recreating the actual session
US7941525B1 (en) * 2006-04-01 2011-05-10 ClickTale, Ltd. Method and system for monitoring an activity of a user
US8775919B2 (en) * 2006-04-25 2014-07-08 Adobe Systems Incorporated Independent actionscript analytics tools and techniques
US20080052392A1 (en) * 2006-05-18 2008-02-28 Jeff Webster System and Method for Monitoring a User's Online Activity
US9602613B2 (en) * 2006-08-03 2017-03-21 Flash Networks, Ltd Method and system for accelerating browsing sessions
US20080040473A1 (en) * 2006-08-14 2008-02-14 Microsoft Corporation Enabling web analytics for interactive web applications
EP2087425B1 (en) * 2006-10-25 2019-07-24 Dynatrace LLC Methods and apparatus for monitoring web page rendering
JP2008117093A (ja) * 2006-11-02 2008-05-22 Hitachi Ltd ユーザ操作記録・再現方法及び装置
US20080120548A1 (en) * 2006-11-22 2008-05-22 Mark Morita System And Method For Processing User Interaction Information From Multiple Media Sources
US8024400B2 (en) * 2007-09-26 2011-09-20 Oomble, Inc. Method and system for transferring content from the web to mobile devices
US7840523B2 (en) * 2007-03-09 2010-11-23 Yahoo! Inc. Method and system for time-sliced aggregation of data that monitors user interactions with a web page
US8042055B2 (en) * 2007-08-31 2011-10-18 Tealeaf Technology, Inc. Replaying captured network interactions

Also Published As

Publication number Publication date
IL244271A0 (en) 2016-04-21
WO2009139994A3 (en) 2010-01-21
US9418172B2 (en) 2016-08-16
EP2291745A2 (en) 2011-03-09
WO2009139994A2 (en) 2009-11-19
US20100095208A1 (en) 2010-04-15
IL255821A (en) 2018-02-28
IL208705A (en) 2016-03-31
EP2650790A1 (en) 2013-10-16
IL208705A0 (en) 2010-12-30
EP2291745B1 (en) 2013-07-03
IL255821B (en) 2020-01-30
HK1155531A1 (en) 2012-05-18
ES2555291T3 (es) 2015-12-30
IL244271A (en) 2017-11-30
EP2650790B1 (en) 2015-09-16
DK2291745T3 (da) 2013-08-19

Similar Documents

Publication Publication Date Title
ES2423313T3 (es) Método y medio para el rastreo remoto de la interacción de un usuario con una página web
US20190146616A1 (en) Systems And Methods For Remote Tracking And Replay Of User Interaction With A Webpage
US8140973B2 (en) Annotating and sharing content
KR20090038894A (ko) 인터렉티브 웹 어플리케이션에 대한 웹 분석을 가능하게 하는 사용자-상호작용 추적 방법 및 그 방법을 수행하기 위한 컴퓨터-판독가능 매체
US10067730B2 (en) Systems and methods for enabling replay of internet co-browsing
US20090271713A1 (en) Document collaboration by transforming and reflecting a document object model
US9026900B1 (en) Invisible overlay for dynamic annotation
JP2012518225A (ja) ドメインにわたりクッキーを処理する方法およびシステム
US9170997B2 (en) Commenting dynamic content
JP2010009516A (ja) 端末装置及びデータ処理方法
BR112013012358A2 (pt) Dispositivo para reproduzir um livro eletrônico e para manter informação, sistema de livro eletrônico, métodos para reproduzir um livro eletrônico, para produzir um livro eletrônico e para manter informação, e, mídia legível por computador não transitório
Abuqaddom et al. A measurable website usability model: Case Study University of Jordan
US11711223B1 (en) Protecting user privacy in playback of user sessions
Stapelfeldt et al. Strategies for preserving digital scholarship/humanities projects
JP6199961B2 (ja) ネットワーク・ナビゲーションを管理するためのシステムおよび方法
JP2009059091A (ja) 仮想空間提供システム、仮想空間提供サーバ、仮想空間提供方法及び仮想空間提供プログラム
Brunelle Scripts in a frame: A framework for archiving deferred representations
US10116727B2 (en) Embeddable web analytics tracking via mock environment
CN112148571B (zh) 一种网页操作过程记录与回放的方法及装置
Tang A web-based collaborative multimedia presentation document system
JP2004310771A (ja) ディジタルコンテンツの行為を再生、編集、記録するシステム及びその方法
JACOBS An Augmented Reality Museum Guide
CN115905661A (zh) 一种网页数据的自动爬取方法和装置、计算机设备和介质
CN112148571A (zh) 一种网页操作过程记录与回放的方法及装置
WO2018169662A1 (en) Systems and methods for enabling replay of internet co-browsing