ES2966525T3 - Mapeo de entidades a cuentas - Google Patents
Mapeo de entidades a cuentas Download PDFInfo
- Publication number
- ES2966525T3 ES2966525T3 ES18890683T ES18890683T ES2966525T3 ES 2966525 T3 ES2966525 T3 ES 2966525T3 ES 18890683 T ES18890683 T ES 18890683T ES 18890683 T ES18890683 T ES 18890683T ES 2966525 T3 ES2966525 T3 ES 2966525T3
- Authority
- ES
- Spain
- Prior art keywords
- mappings
- mapping
- events
- confidence value
- address
- 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
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 214
- 230000000694 effects Effects 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 75
- 239000006185 dispersion Substances 0.000 claims description 16
- 230000002123 temporal effect Effects 0.000 claims description 12
- 230000000007 visual effect Effects 0.000 claims description 4
- 230000002085 persistent effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 35
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 235000014510 cooky Nutrition 0.000 description 12
- 238000003860 storage Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002772 conduction electron Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000007790 scraping Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000009958 sewing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/69—Types of network addresses using geographic information, e.g. room number
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Computer Hardware Design (AREA)
- Entrepreneurship & Innovation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Multimedia (AREA)
- Algebra (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
Asignación de entidades anónimas de Internet a cuentas conocidas. En una realización, los eventos, que representan la actividad en línea y que comprenden direcciones IP, se reciben de una pluralidad de fuentes. Los subconjuntos de eventos se agregan en asignaciones que asocian la dirección IP, compartida por el subconjunto, con una cuenta. Cada mapeo está asociado con estadísticas sobre los eventos. Se calcula un valor de confianza para cada asignación en función de las estadísticas y se selecciona un subconjunto final de asignaciones en función de los valores de confianza. Posteriormente, cuando se recibe una solicitud con una dirección IP, se busca la dirección IP solicitada en el subconjunto final de asignaciones y se devuelve una indicación de la cuenta asociada con la dirección IP solicitada en respuesta a la solicitud. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Mapeo de entidades a cuentas
Referencia cruzada a solicitudes relacionadas
Esta solicitud reivindica prioridad de la solicitud de patente Provisional de EE.UU. no. 62/609,753, presentada el 22 de diciembre de 2017.
Antecedentes
Campo de la invención
La invención se refiere a la desanonimización de direcciones del Protocolo de Internet anónimas.
Descripción de la técnica relacionada
Un problema significativo y bien conocido que surge en el contexto de las comunicaciones por Internet es la capacidad de los usuarios de Internet para permanecer virtualmente anónimos. Aunque este anonimato es presumiblemente bueno para la libertad de expresión, es malo para los negocios. Por ejemplo, a menos que un visitante de un sitio web decida identificarse de manera precisa, un operador del sitio web puede saber poco o nada sobre la identidad de ese visitante.
En la mayoría de los casos, todo lo que el operador del sitio web sabrá sobre el visitante es una dirección del Protocolo de Internet (IP) usada por el dispositivo de navegación del visitante, un dominio del visitante (por ejemplo, un dominio con el que está asociada la dirección IP), y/o, si está disponible, una o más "cookies" (datos almacenados en el dispositivo del usuario por un sitio web durante una visita a ese sitio web). Esta información generalmente no es suficiente para iniciar el contacto con el visitante, por ejemplo, para comercializar un producto o servicio al visitante.
En contraste, en una tienda física, un comerciante puede acercarse físicamente a los visitantes para iniciar inmediatamente el contacto con ese visitante, por ejemplo, para comenzar a comercializar un producto o servicio. Por lo tanto, Internet, aunque conveniente para el marketing y el comercio, presenta un problema para los comerciantes cuyos visitantes permanecen anónimos. Este es un problema que simplemente no existe en el contexto físico.
Por consiguiente, se necesita una solución para traspasar el singular manto de anonimato que Internet ofrece a los visitantes. Preferiblemente, una solución de este tipo permitiría a los comerciantes determinar información de contacto para visitantes de Internet de otro modo anónimos. Una solución de este tipo podría ser especialmente ventajosa para métodos de comercialización predictivos, tales como los descritos en la Patente de EE.UU n° 2013/0204663, presentada el 7 de febrero de 2013.
El documento US 2016/142272 A1 describe técnicas para transformar información sobre visitas únicas a un sitio web o interacciones con una aplicación móvil por un único individuo en diferentes dispositivos en datos analíticos unificados que representan estas visitas. Uno o más modelos de costura de visitante se pueden usar para cuantificar visitas únicas como pertenecientes a la misma persona con un cierto nivel de confianza. Además de mantener registros separados para cada visita única, se genera un registro unificado, que representa una combinación de las visitas únicas de la misma persona. Se pueden realizar diversos análisis en los registros únicos y unificados. Los registros unificados se favorecen sobre los registros de datos separados donde el modelo de costura correspondiente al registro unificado proporciona una certeza que cumple o excede un nivel de confianza especificado por el usuario. El modelo de costura de visitante usado para la analítica se considera no vinculante porque se pueden emplear diferentes modelos o ninguno en absoluto, dependiendo de las preferencias del usuario.
El documento US 2016/239868 A1 describe sistemas y métodos para asociar una pluralidad de dispositivos habilitados para Internet con un perfil de usuario común para dirigir contenido o publicidad de Internet. Un método incluye: recibir, de una pluralidad de dispositivos habilitados para Internet, una pluralidad de solicitudes para contenido electrónico o publicidad; extraer, de cada una de la pluralidad de solicitudes, una dirección IP de origen y un identificador único asociado con el dispositivo habilitado para Internet respectivo; identificar cada posible par de dispositivos desde los cuales se recibieron solicitudes; calcular para cada posible par de dispositivos una probabilidad de que el par de dispositivos sean propiedad u operados por un usuario común; y solicitar a un usuario que confirme una característica de una sesión de navegación previa o que inicie sesión en una cuenta asociada con el usuario común basándose en una comparación de la probabilidad calculada con uno o más umbrales.
En el documento US 2017/364931 A1 un sistema de generación de modelos distribuidos incluye un nodo principal que estima conjuntos de parámetros para un modelo de clasificación de temas (TC). Los conjuntos de parámetros estimados se cargan en una cola. Múltiples nodos de entrenamiento descargan los conjuntos de parámetros estimados de la fila para entrenar modelos TC asociados. Los nodos de entrenamiento generan valores de rendimiento del modelo para los modelos TC entrenados y envían los valores de rendimiento del modelo de regreso al nodo principal. El nodo principal usa los valores de rendimiento del modelo y los conjuntos de parámetros asociados para estimar conjuntos de parámetros del modelo de TC adicionales. El nodo principal estima nuevos conjuntos de parámetros hasta que se obtiene un valor de rendimiento del modelo deseado. El nodo principal puede usar una optimización Bayesiana para estimar más eficientemente los conjuntos de parámetros y puede distribuir las altas demandas de procesamiento de las operaciones de entrenamiento y pruebas del modelo a los nodos de entrenamiento.
Compendio
La invención comprende un método para desanonimizar direcciones del Protocolo de Internet anónimas según la reivindicación 1, un sistema para desanonimizar direcciones del Protocolo de Internet anónimas según la reivindicación 18 y un medio legible por ordenador no transitorio según la reivindicación 19.
Las realizaciones ventajosas se establecen en las reivindicaciones dependientes. El alcance de la invención se define por las reivindicaciones adjuntas.
Breve descripción de los dibujos
Los detalles de la presente descripción, tanto en cuanto a su estructura como a su funcionamiento, pueden deducirse en parte mediante el estudio de los dibujos adjuntos, en los que los números de referencia similares se refieren a partes similares, y en los que:
La FIG. 1 ilustra una infraestructura de ejemplo, en la que uno o más de los procesos descritos en la presente memoria, pueden implementarse, según una realización;
La FIG. 2 ilustra un sistema de procesamiento de ejemplo, mediante el cual uno o más de los procesos descritos en la presente memoria, pueden ejecutarse, según una realización;
La FIG. 3 ilustra un proceso para mapear entidades anónimas con cuentas conocidas, según una realización;
Las FIGS. 4A y 4B ilustran un proceso para determinar un valor de confianza del origen para una pluralidad de orígenes;
La FIG. 5 ilustra las interacciones entre diversas estructuras de datos en un ejemplo de implementación del proceso ilustrado en la FIG. 3, según una realización; y
La FIG. 6 ilustra las interacciones entre diversas estructuras de datos en una implementación de ejemplo de un servicio web, según una realización.
Descripción Detallada
En una realización, se describen sistemas, métodos y medios legibles por ordenador no transitorios para mapear entidades anónimas (por ejemplo, dirección IP, dominio, cookie y/o dispositivo) a cuentas conocidas (por ejemplo, empresas). Después de leer esta descripción, resultará evidente para un experto en la técnica cómo implementar la invención en diversas realizaciones alternativas y aplicaciones alternativas. Sin embargo, aunque se describirán diversas realizaciones de la presente invención en la presente memoria, se entiende que estas realizaciones se presentan solo a modo de ejemplo y no de limitación. Como tal, no debe interpretarse que esta descripción detallada de diversas realizaciones alternativas limita el alcance o la amplitud de la presente descripción como se expone en las reivindicaciones adjuntas.
1. Descripción general del sistema
1.1. Infraestructura
La FIG. 1 ilustra una infraestructura de ejemplo en la que puede operar un sistema que mapea entidades anónimas (por ejemplo, dirección IP, dominio, cookie y/o dispositivo) a cuentas conocidas (por ejemplo, empresas), según una realización. La infraestructura puede comprender una plataforma 110 (por ejemplo, uno o más dispositivos servidor) que aloja y/o ejecuta una o más de las diversas funciones, procesos, métodos y/o módulos de software descritos en la presente memoria. La plataforma 110 puede comprender servidores dedicados, o en su lugar puede comprender instancias en la nube, que utilizan recursos compartidos de uno o más servidores. Estos servidores o instancias en la nube pueden estar colocados y/o distribuidos geográficamente. La plataforma 110 también puede comprender o estar comunicativamente conectada a una aplicación 112 de servidor y/o una o más bases de datos 114. Además, la plataforma 110 puede estar comunicativamente conectada a uno o más sistemas 130 de usuario a través de una o más redes 120. La plataforma 110 también puede estar comunicativamente conectada a uno o más sistemas 140 externos (por ejemplo, orígenes de datos, sitios web, servicios web, otras plataformas, etc.) a través de una o más redes 120.
La(s) red(es) 120 puede comprender Internet, y la plataforma 110 puede comunicarse con el(los) sistema(s) 130 de usuario y el(los) sistema(s) 140 externo(s) a través de Internet usando protocolos de transmisión estándar, tales como el Protocolo de Transferencia de Hipertexto (HTTP), HTTP Seguro (HTTPS), Protocolo de Transferencia de Archivos (FTP), FTP Seguro (FTPS), FTP SSH (SFTP), y similares, así como protocolos patentados. Aunque se ilustra que la plataforma 110 está conectada a varios sistemas a través de un único conjunto de red(es) 120, debe entenderse que la plataforma 110 puede conectarse a los diversos sistemas a través de diferentes conjuntos de una o más redes. Por ejemplo, la plataforma 110 puede conectarse a un subconjunto de sistemas 130 de usuario y/o sistemas 140 externos a través de Internet, pero puede conectarse a uno o más sistemas 130 de usuario y/o sistemas 140 externos a través de una intranet. Además, aunque solo se ilustran unos pocos sistemas 130 de usuario y sistemas 140 externos, una aplicación 112 de servidor y un conjunto de base(s) de datos 114, debe entenderse que la infraestructura puede comprender cualquier número de sistemas de usuario, sistemas externos, aplicaciones de servidor y bases de datos.
El(Los) sistema(s) 130 de usuario pueden comprender cualquier tipo o tipos de dispositivos informáticos capaces de comunicación por cable y/o inalámbrica, incluyendo, sin limitación, ordenadores de sobremesa, ordenadores portátiles, tabletas, teléfonos inteligentes u otros teléfonos móviles, servidores, consolas de juegos, televisiones, descodificadores, quioscos electrónicos, terminales de punto de venta, cajeros automáticos y similares.
La plataforma 110 puede comprender servidores web que alojan uno o más sitios web y/o servicios web. En realizaciones en las que se proporciona un sitio web, el sitio web puede comprender una o más interfaces de usuario, incluyendo, por ejemplo, páginas web generadas en Lenguaje de Marcado de Hipertexto (HTML) u otro lenguaje. La plataforma 110 transmite o sirve a estas interfaces de usuario en respuesta a las solicitudes del(de los) sistema(s) 130 de usuario. En algunas realizaciones, estas interfaces de usuario pueden servirse en forma de un asistente, en cuyo caso dos o más interfaces de usuario pueden servirse de manera secuencial, y una o más de las interfaces de usuario secuenciales pueden depender de una interacción del usuario o sistema de usuario con una o más interfaces de usuario precedentes. Las solicitudes a la plataforma 110 y las respuestas de la plataforma 110, incluyendo las interfaces de usuario, pueden comunicarse a través de la(s) red(s) 120, que pueden incluir Internet, usando protocolos de comunicación estándar (por ejemplo, HTTP, HTTPS, etc.). Estas interfaces de usuario o páginas web pueden comprender una combinación de contenido y elementos, tales como texto, imágenes, vídeos, animaciones, referencias (por ejemplo, hipervínculos), marcos, entradas (por ejemplo, cuadros de texto, áreas de texto, casillas de verificación, botones de opción, menús desplegables, botones, formularios, etc.), scripts (por ejemplo, JavaScript) y/o similares, incluyendo elementos que comprenden o derivan de datos almacenados en una o más bases de datos (por ejemplo, base(s) de datos 114) que son accesibles local y/o remotamente a la plataforma 110. La plataforma 110 también puede responder a otras solicitudes del(los) sistema(s) 130 de usuario.
La plataforma 110 puede comprender además, estar comunicativamente acoplada con, o tener acceso de otro modo a una o más base(s) de datos 114. Por ejemplo, la plataforma 110 puede comprender uno o más servidores de bases de datos que gestionan una o más bases de datos 114. Un sistema 130 de usuario o aplicación 112 de servidor que se ejecuta en la plataforma 110 puede enviar datos (por ejemplo, datos de usuario, datos de formulario, etc.) para almacenarse en la(s) base(s) de datos 114, y/o solicitar acceso a los datos almacenados en la(s) base(s) de datos 114. Se puede utilizar cualquier base de datos adecuada, incluyendo, sin limitación, MySQL™, Oracle™, IBM™, Microsoft SQL™, Sybase™, Access™, y similares, incluyendo instancias de bases de datos en la nube y bases de datos patentadas. Los datos pueden enviarse a la plataforma 110, por ejemplo, usando la bien conocida solicitud POST soportada por HTTP, a través de FTP, etc. Estos datos, así como otras solicitudes, pueden ser manejados, por ejemplo, por tecnología web del lado del servidor, tal como un servlet u otro módulo de software (por ejemplo, la aplicación 112 de servidor), ejecutado por la plataforma 110.
En realizaciones en las que se proporciona un servicio web, la plataforma 110 puede recibir solicitudes de sistema(s) 140 externo(s), y proporcionar respuestas en Notación de Objetos Javascript (JSON), Lenguaje de Marcado Extensible (XML), y/o cualquier otro formato adecuado o deseado. En tales realizaciones, la plataforma 110 puede proporcionar una interfaz de programación de aplicaciones (API) que define la manera en la que el(los) sistema(s) 130 de usuario y/o el(los) sistema(s) 140 externos pueden interactuar con el servicio web. Por lo tanto, el(los) sistema(s) 130 de usuario y/o el(los) sistema(s) 140 externo(s) (que pueden ser ellos mismos servidores), pueden definir sus propias interfaces de usuario, y confiar en el servicio web para implementar o proporcionar de otro modo los procesos, métodos, funcionalidad, almacenamiento y/o similares de backend, descritos en la presente memoria. Por ejemplo, en tal realización, una aplicación 132 de cliente que se ejecuta en uno o más sistema(s) 130 de usuario puede interactuar con la aplicación 112 de servidor que se ejecuta en la plataforma 110 para ejecutar una o más o una parte de una o más de las diversas funciones, procesos, métodos y/o módulos de software descritos en la presente memoria. La aplicación 132 de cliente puede ser "ligera", en cuyo caso el procesamiento se lleva a cabo principalmente en el lado del servidor por la aplicación 112 de servidor en la plataforma 110. Un ejemplo básico de una aplicación de cliente ligera es una aplicación de navegador, que simplemente solicita, recibe y presenta páginas web en el (los) sistema(s) 130 de usuario, mientras que la aplicación de servidor en la plataforma 110 es responsable de generar las páginas web y gestionar las funciones de base de datos. Alternativamente, la aplicación 132 de cliente puede ser "pesada", en cuyo caso el procesamiento se lleva a cabo principalmente en el lado del cliente por el(los) sistema(s) 130 de usuario. Debe entenderse que la aplicación 132 de cliente puede realizar una cantidad de procesamiento, en relación con la aplicación 112 de servidor en la plataforma 110, en cualquier punto a lo largo de este espectro entre "ligera" y "pesada", dependiendo de los objetivos de diseño de la implementación particular. En cualquier caso, la aplicación descrita en la presente memoria, que puede residir completamente en cualquiera de la plataforma 110 (por ejemplo, en cuyo caso la aplicación 112 realiza todo el procesamiento) o el(los) sistema(s) 130 de usuario (por ejemplo, en cuyo caso la aplicación 132 realiza todo el procesamiento) o distribuirse entre la plataforma 110 y el(los) sistema(s) 130 de usuario (por ejemplo, en cuyo caso la aplicación 112 de servidor y la aplicación 132 de cliente realizan ambas el procesamiento), puede comprender uno o más módulos de software ejecutables que implementan uno o más de los procesos, métodos o funciones de la aplicación o aplicaciones descritas en la presente memoria.
1.2. Ejemplo de dispositivo de procesamiento
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de sistema 200 por cable o inalámbrico que puede usarse en conexión con diversas realizaciones descritas en la presente memoria. Por ejemplo, el sistema 200 puede usarse como o junto con uno o más de los mecanismos, procesos, métodos o funciones (por ejemplo, para almacenar y/o ejecutar la aplicación o uno o más módulos de software de la aplicación) descritos en la presente memoria, y puede representar componentes de la plataforma 110, sistema(s) 130 de usuario, sistema(s) 140 externo(s), y/u otros dispositivos de procesamiento descritos en la presente memoria. El sistema 200 puede ser un servidor o cualquier ordenador personal convencional, o cualquier otro dispositivo habilitado por procesador que sea capaz de comunicación de datos por cable o inalámbrica. También se pueden usar otros sistemas y/o arquitecturas de ordenador, como será evidente para los expertos en la técnica.
El sistema 200 incluye preferiblemente uno o más procesadores, tales como el procesador 210. Pueden proporcionarse procesadores adicionales, tales como un procesador auxiliar para gestionar la entrada/salida, un procesador auxiliar para realizar operaciones matemáticas de coma flotante, un microprocesador de propósito especial que tiene una arquitectura adecuada para la ejecución rápida de algoritmos de procesamiento de señal (por ejemplo, procesador de señal digital), un procesador esclavo subordinado al sistema de procesamiento principal (por ejemplo, procesador de backend), un microprocesador o controlador adicional para sistemas de procesador doble o múltiple, o un coprocesador. Tales procesadores auxiliares pueden ser procesadores discretos o pueden estar integrados con el procesador 210. Los ejemplos de procesadores que se pueden usar con el sistema 200 incluyen, sin limitación, el procesador Pentium®, el procesador Core i7® y el procesador Xeon®, todos los cuales están disponibles en Intel Corporation de Santa Clara, California.
El procesador 210 está conectado preferiblemente a un bus 205 de comunicaciones. El bus 205 de comunicaciones puede incluir un canal de datos para facilitar la transferencia de información entre el almacenamiento y otros componentes periféricos del sistema 200. Además, el bus 205 de comunicaciones puede proporcionar un conjunto de señales usadas para la comunicación con el procesador 210, incluyendo un bus de datos, un bus de direcciones y un bus de control (no mostrados). El bus 205 de comunicaciones puede comprender cualquier arquitectura de bus estándar o no estándar tal como, por ejemplo, arquitecturas de bus compatibles con la arquitectura estándar de la industria (ISA), arquitectura estándar de la industria extendida (EISA), arquitectura de microcanales (MCA), bus local de interconexión de componentes periféricos (PCI), o normas promulgadas por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) que incluyen el bus de interfaz de propósito general (GPIB) IEEE 488, IEEE 696/S-100, y similares.
El sistema 200 incluye preferiblemente una memoria 215 principal y también puede incluir una memoria 220 secundaria. La memoria 215 principal proporciona almacenamiento de instrucciones y datos para programas que se ejecutan en el procesador 210, tal como una o más de las funciones y/o módulos de la aplicación analizados en la presente memoria. Debe entenderse que los programas almacenados en la memoria y ejecutados por el procesador 210 pueden escribirse y/o compilarse según cualquier lenguaje adecuado, incluyendo, sin limitación, C/C++, Java, JavaScript, Perl, Visual Basic, .NET y similares. La memoria 215 principal es típicamente una memoria basada en semiconductores tal como una memoria de acceso aleatorio dinámica (DRAM) y/o una memoria de acceso aleatorio estática (SRAM). Otros tipos de memoria basada en semiconductores incluyen, por ejemplo, memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria de acceso aleatorio dinámica Rambus (RDRAM), memoria de acceso aleatorio ferroeléctrica (FRAM) y similares, incluyendo memoria de solo lectura (ROM).
La memoria 220 secundaria puede incluir opcionalmente una memoria 225 interna y/o un medio 230 extraíble. El medio 230 extraíble se lee y/o se escribe en cualquier manera bien conocida. El medio 230 de almacenamiento extraíble puede ser, por ejemplo, una unidad de cinta magnética, una unidad de disco compacto (CD), una unidad de disco versátil digital (DVD), otra unidad óptica, una unidad de memoria flash, y similares.
El medio 230 de almacenamiento extraíble es un medio legible por ordenador no transitorio que tiene almacenado en el mismo código ejecutable por ordenador (por ejemplo, módulos de software descritos) y/o datos. El software de ordenador o los datos almacenados en el medio 230 de almacenamiento extraíble se leen en el sistema 200 para su ejecución por el procesador 210.
En realizaciones alternativas, la memoria 220 secundaria puede incluir otros medios similares para permitir que se carguen programas informáticos u otros datos o instrucciones en el sistema 200. Tales medios pueden incluir, por ejemplo, un medio 245 de almacenamiento externo y una interfaz 240 de comunicación, que permite que el software y los datos se transfieran desde el medio 245 de almacenamiento externo al sistema 200. Los ejemplos de medio 245 de almacenamiento externo pueden incluir una unidad de disco duro externa, una unidad óptica externa, una unidad magnetoóptica externa y similares. Otros ejemplos de memoria 220 secundaria pueden incluir memoria basada en semiconductores tal como memoria programable de solo lectura (PROM), memoria de solo lectura programable y borrable (EPROM), memoria de solo lectura borrable eléctricamente (EEPROM), o memoria flash (memoria orientada a bloques similar a EEPROM).
Como se mencionó anteriormente, el sistema 200 puede incluir una interfaz 240 de comunicación. La interfaz 240 de comunicación permite que el software y los datos se transfieran entre el sistema 200 y dispositivos externos (por ejemplo, impresoras), redes u otras orígenes de información. Por ejemplo, el software informático o el código ejecutable pueden transferirse al sistema 200 desde un servidor de red a través de la interfaz 240 de comunicación. Los ejemplos de la interfaz 240 de comunicación incluyen un adaptador de red integrado, una tarjeta de interfaz de red (NIC), una tarjeta de red de la Asociación Internacional de tarjetas de memoria de ordenadores personales (PCMCIA), un adaptador de red de bus de tarjetas, un adaptador de red inalámbrico, un adaptador de red de bus serie universal (USB), un módem, una tarjeta de interfaz de red (NIC), una tarjeta de datos inalámbrica, un puerto de comunicaciones, una interfaz de infrarrojos, un fire-wire IEEE 1394, o cualquier otro dispositivo capaz de interconectar el sistema 200 con una red u otro dispositivo informático. La interfaz 240 de comunicación implementa preferiblemente estándares de protocolo promulgados en la industria, tales como estándares Ethernet IEEE 802, canal de fibra, línea de abonado digital (DSL), línea de abonado digital asíncrona (ADSL), relé de trama, modo de transferencia asíncrona (ATM), red de servicios digitales integrados (ISDN), servicios de comunicaciones personales (PCS), protocolo de control de transmisión/Protocolo de Internet (TCP/IP), Protocolo de Internet de línea serie/protocolo punto a punto (SLIP/PPP), y así sucesivamente, pero también puede implementar protocolos de interfaz personalizados o no estándar.
El software y los datos transferidos a través de la interfaz 240 de comunicación están generalmente en forma de señales 255 de comunicación eléctrica. Estas señales 255 pueden proporcionarse a la interfaz 240 de comunicación a través de un canal 250 de comunicación. En una realización, el canal 250 de comunicación puede ser una red por cable o inalámbrica, o cualquier variedad de otros enlaces de comunicación. El canal 250 de comunicación transporta señales 255 y puede implementarse usando una variedad de medios de comunicación por cable o inalámbricos que incluyen alambre o cable, fibra óptica, línea telefónica convencional, enlace de teléfono celular, enlace de comunicación de datos inalámbrica, enlace de radiofrecuencia ("RF"), o enlace de infrarrojos, solo por nombrar algunos.
El código ejecutable por ordenador (es decir, programas de ordenador, tales como la aplicación descrita, o módulos de software) se almacena en la memoria 215 principal y/o la memoria 220 secundaria. Los programas informáticos también pueden recibirse a través de la interfaz 240 de comunicación y almacenarse en la memoria 215 principal y/o la memoria 220 secundaria. Tales programas informáticos, cuando se ejecutan, permiten que el sistema 200 realice las diversas funciones de las realizaciones descritas como se describe en otra parte de la presente memoria.
En esta descripción, el término "medio legible por ordenador" se usa para referirse a cualquier medio de almacenamiento legible por ordenador no transitorio usado para proporcionar código ejecutable por ordenador (por ejemplo, software y programas informáticos) al sistema 200. Los ejemplos de tales medios incluyen la memoria 215 principal, la memoria 220 secundaria (incluyendo la memoria 225 interna, el medio 230 extraíble y el medio 245 de almacenamiento externo), y cualquier dispositivo periférico acoplado comunicativamente con la interfaz 240 de comunicación (incluyendo un servidor de información de red u otro dispositivo de red). Estos medios no transitorios legibles por ordenador son medios para proporcionar código ejecutable, instrucciones de programación y software al sistema 200.
En una realización que se implementa usando software, el software puede almacenarse en un medio legible por ordenador y cargarse en el sistema 200 por medio del medio 230 extraíble, la interfaz 235 de E/S, o la interfaz 240 de comunicación. En tal realización, el software se carga en el sistema 200 en forma de señales 255 de comunicación eléctrica. El software, cuando es ejecutado por el procesador 210, preferiblemente hace que el procesador 210 realice las características y funciones descritas en otra parte de la presente memoria.
En una realización, la interfaz 235 de E/S proporciona una interfaz entre uno o más componentes del sistema 200 y uno o más dispositivos de entrada y/o salida. Los dispositivos de entrada de ejemplo incluyen, sin limitación, teclados, pantallas táctiles u otros dispositivos sensibles al tacto, dispositivos de detección biométrica, ratones de ordenador, bolas de seguimiento, dispositivos de señalización basados en lápiz, y similares. Los ejemplos de dispositivos de salida incluyen, sin limitación, tubos de rayos catódicos (CRT), pantallas de plasma, pantallas de diodos emisores de luz (LED), pantallas de cristal líquido (LCD), impresoras, pantallas fluorescentes de vacío (VFD), pantallas de electrones emisores de conducción superficial (SED), pantallas de emisión de campo (FED), y similares.
El sistema 200 también puede incluir componentes de comunicación inalámbrica opcionales que facilitan la comunicación inalámbrica a través de una red de voz y/o una red de datos. Los componentes de comunicación inalámbrica pueden comprender un sistema 270 de antena, un sistema 265 de radio y un sistema 260 de banda base. En el sistema 200, las señales de RF se transmiten y reciben sobre el aire por el sistema 270 de antena bajo la gestión del sistema 265 de radio.
En una realización, el sistema 270 de antena puede comprender una o más antenas y uno o más multiplexores (no mostrados) que realizan una función de conmutación para proporcionar al sistema 270 de antena rutas de señal de transmisión y recepción. En la ruta de recepción, las señales de RF recibidas pueden acoplarse desde un multiplexor a un amplificador de bajo ruido (no mostrado) que amplifica la señal de RF recibida y envía la señal amplificada al sistema 265 de radio.
En una realización alternativa, el sistema 265 de radio puede comprender una o más radios que están configurados para comunicarse a través de varias frecuencias. En una realización, el sistema 265 de radio puede combinar un demodulador (no mostrado) y un modulador (no mostrado) en un circuito integrado (IC). El demodulador y el modulador también pueden ser componentes separados. En la ruta de entrada, el demodulador retira la señal portadora de RF dejando una señal de audio de recepción de banda base, que se envía desde el sistema 265 de radio al sistema 260 de banda base.
Si la señal recibida contiene información de audio, entonces el sistema 260 de banda base decodifica la señal y la convierte en una señal analógica. Luego la señal se amplifica y se envía a un altavoz. El sistema 260 de banda base también recibe señales de audio analógicas desde un micrófono. Estas señales de audio analógicas se convierten en señales digitales y se codifican mediante el sistema 260 de banda base. El sistema 260 de banda base también codifica las señales digitales para su transmisión y genera una señal de audio de transmisión de banda base que se enruta a la parte moduladora del sistema 265 de radio. El modulador mezcla la señal de audio de transmisión de banda base con una señal portadora de RF, generando una señal de transmisión de RF que se enruta al sistema 270 de antena y puede pasar a través de un amplificador de potencia (no mostrado). El amplificador de potencia amplifica la señal de transmisión de RF y la enruta al sistema 270 de antena, donde la señal se conmuta al puerto de antena para su transmisión.
El sistema 260 de banda base también está acoplado comunicativamente con el procesador 210, que puede ser una unidad de procesamiento central (CPU). El procesador 210 tiene acceso a las áreas 215 y 220 de almacenamiento de datos. El procesador 210 está configurado preferiblemente para ejecutar instrucciones (es decir, programas informáticos, tales como la aplicación o módulos de software descritos) que pueden almacenarse en la memoria 215 principal o en la memoria 220 secundaria. Los programas informáticos también pueden recibirse del procesador 260 de banda base y almacenarse en la memoria 210 principal o en la memoria 220 secundaria, o ejecutarse tras la recepción. Tales programas informáticos, cuando se ejecutan, permiten que el sistema 200 realice las diversas funciones de las realizaciones descritas. Por ejemplo, las áreas 215 o 220 de almacenamiento de datos pueden incluir diversos módulos de software.
1.3. Ejemplos de estructuras de datos
El término "entidad" puede usarse en la presente memoria para referirse a datos que están asociados con un visitante o contacto a lo largo de una actividad. Por ejemplo, una entidad puede incluir, sin limitación, una dirección IP usada por un dispositivo del visitante o contacto (por ejemplo, un sistema 130 de usuario) para comunicaciones en línea, un nombre de dominio (por ejemplo, para un sitio web y/o dominio de correo electrónico) asociado con un visitante o contacto durante las comunicaciones en línea, y/o una cookie que se ha almacenado en un dispositivo del visitante durante la navegación. Tales datos pueden estar permanentemente, semipermanentemente, o temporalmente asociados con el visitante o contacto, y típicamente no identificarán de manera única al visitante o contacto. Por ejemplo, una dirección IP puede ser una dirección IP estática que siempre está asociada con un dispositivo del visitante particular, o una dirección IP dinámica que puede asignarse temporalmente a un dispositivo y luego reasignarse posteriormente por un proveedor de servicios de Internet (ISP) a un dispositivo diferente. Además, un visitante particular puede utilizar múltiples direcciones IP (por ejemplo, una dirección IP mientras el visitante está en el trabajo y otra dirección IP mientras el visitante está en casa). De manera similar, un nombre de dominio puede estar asociado con múltiples visitantes o contactos, y un visitante o contacto puede estar asociado con múltiples nombres de dominio. Como otro ejemplo, un visitante puede estar asociado con múltiples cookies a la vez y a lo largo del tiempo, y cada cookie puede existir solo durante un tiempo limitado en el dispositivo del visitante antes de ser borrada (por ejemplo, manualmente por un usuario del dispositivo, automáticamente después de un período de caducidad o tras la terminación de una sesión, etc.).
El término "evento" se puede usar en la presente memoria para referirse a cualquier actividad de cualquier origen. Las actividades pueden incluir, sin limitación, acceder a una página web de un sitio web, rellenar un formulario en línea, comprar un producto a través de un sitio de comercio electrónico, contactar a un comerciante o vendedor (por ejemplo, a través de un formulario en línea, mensaje de correo electrónico (email), chat de mensajería instantánea, texto de servicio de mensajes cortos (SMS), mensaje de servicio de mensajería multimedia (MMS), etc.), y/o cualquier otra interacción en línea. Las actividades también podrían incluir actividades fuera de línea, tales como asistir a una feria comercial o seminario, llamar a un centro de llamadas de servicio al cliente, hacer una compra fuera de línea, y/o similares. los orígenes pueden incluir, sin limitación, un sitio web, una plataforma de automatización de marketing (MAP), un origen de seguimiento de cookies, datos de proveedores y/o similares. Como un ejemplo, un visitante a un sitio web puede rellenar un formulario en línea dentro de una página web del sitio web, y esta actividad puede comunicarse a la aplicación, junto con una entidad que representa al visitante (por ejemplo, la dirección IP usada por el dispositivo del visitante para comunicarse con el sitio web, un nombre de dominio asociado con el ISP o empresa del visitante, una cadena que representa el contenido parcial o total de una cookie de rastreo almacenada en el dispositivo del visitante, etc.), como un evento.
Un evento puede implementarse como una estructura de datos (por ejemplo, vector, lista enlazada, matriz, cadena delimitada, etc.) que comprende una representación de la entidad (por ejemplo, dirección IP, dominio y/o cookie) que representa al visitante y una marca de tiempo que representa la hora en la que se produjo la actividad. Debe entenderse que esta estructura de datos también podría comprender cualquier dato adicional, que pueda ayudar a mapear el visitante a una cuenta, identificar o categorizar la actividad, y/o similares. Por ejemplo, cada estructura de datos del evento también podría comprender una representación de la actividad, información del origen que indica el origen del evento y/o actividad, y/o similares. Además, el evento puede comprender información específica del visitante, si, por ejemplo, el visitante envió un formulario o se conectó a su cuenta durante una visita. En tal caso, el origen puede incorporar información específica del usuario, introducida en el formulario o adquirida de un perfil del usuario asociado con la cuenta de inicio de sesión, en la información del evento registrada para el evento.
El término "mapeo" se puede usar en la presente memoria para referirse a cada asociación entre una entidad y una cuenta (por ejemplo, nombre de la empresa u otro identificador de la empresa). Cada mapeo indica que hay al menos alguna razón para creer que la entidad ha sido usada por la cuenta asociada en el pasado, y por lo tanto, que la actividad actual o futura de esa entidad puede representar actividad en línea por esa cuenta. Un mapeo puede implementarse como una estructura de datos que comprende una representación de la entidad (por ejemplo, dirección IP, dominio y/o cookie) y un identificador de cuenta. Debe entenderse que esta estructura de datos también podría comprender cualquier dato adicional, incluyendo un intervalo, retardo, dispersión, intensidad, ponderación del origen, solapamiento y/o confianza.
En una realización, cada estructura de datos de mapeo comprende o está asociada con un valor de intervalo. El valor de intervalo representa un período de tiempo durante el cual el mapeo respectivo estuvo activo. Por ejemplo, si el mapeo se derivó de tres eventos que ocurrieron el 1 de enero de 2017, el 3 de marzo de 2017 y el 4 de noviembre de 2017, el valor de intervalo puede calcularse como el número de días entre el primer y el último evento (es decir, del 1 de enero de 2017 al 4 de noviembre de 2017, o trescientos siete días). Debe entenderse que el valor de intervalo puede calcularse y representarse según cualquier nivel de granularidad (por ejemplo, número de días, horas, minutos, segundos, milisegundos, etc.), pero, por simplicidad, se medirá en días en la presente descripción.
En una realización, cada estructura de datos de mapeo comprende o está asociada con un valor de retardo. El valor de retardo representa un período de tiempo desde que el mapeo respectivo estuvo activo por última vez. Por ejemplo, si el 1 de enero de 2018 no ha ocurrido ningún evento para un mapeo desde el 4 de noviembre de 2017, el valor de retardo puede calcularse como el número de días entre el 4 de noviembre de 2017 y el 1 de enero de 2018 (es decir, cincuenta y ocho días). Debe entenderse que el valor de retardo puede calcularse y representarse según cualquier nivel de granularidad (por ejemplo, número de días, horas, minutos, segundos, milisegundos, etc.), pero, por simplicidad, se medirá en días en la presente descripción.
En una realización, cada estructura de datos de mapeo comprende o está asociada con un valor de dispersión. El valor de dispersión representa un periodo de tiempo que indica la frecuencia con la que el mapeo estuvo activo sobre su valor de intervalo. Por ejemplo, si el mapeo se derivó de tres o más eventos que ocurrieron el 1 de enero de 2017, el 3 de marzo de 2017 y el 4 de noviembre de 2017, el valor de dispersión puede ser de tres días. Debe entenderse que el valor de dispersión puede ser calculado y representado según cualquier nivel de granularidad (por ejemplo, número de días durante los cuales ocurrieron los eventos, o duración total de los eventos en días, horas, minutos, segundos, milisegundos, etc.), pero, por simplicidad, se medirá en días en la presente descripción.
En una realización, cada estructura de datos de mapeo comprende o está asociada con un valor de intensidad. El valor de intensidad representa la frecuencia con la que el mapeo estuvo activo sobre su valor de intervalo. Por ejemplo, si el mapeo se derivó de un evento que ocurrió el 1 de enero de 2017, dos eventos que ocurrieron el 3 de marzo de 2017 y tres eventos que ocurrieron el 4 de noviembre de 2017, el valor de intensidad puede ser seis, dado que hubo seis eventos. En particular, el valor de intensidad es diferente del valor de dispersión dado que indica el número de eventos, en lugar del número de días (por ejemplo, pueden ocurrir múltiples eventos en un día) u otra cantidad de tiempo. Debe entenderse que, en el caso de que el valor de dispersión sea un número de días, el valor de intensidad puede ser igual o superior al valor de dispersión, pero nunca debe ser menor que el valor de dispersión.
En una realización, cada estructura de datos de mapeo comprende o está asociada con una ponderación del origen. La ponderación del origen representa una exactitud relativa del origen u origen (orígenes) de los eventos, a partir de los cuales se derivó el mapeo respectivo. El cálculo de la ponderación del origen se describe en otra parte de la presente memoria.
En una realización, cada estructura de datos de mapeo comprende o está asociada con un valor de solape. El valor de solape representa el número de orígenes que corroboran el mapeo respectivo. Por ejemplo, si el mapeo se derivó de eventos que se recibieron de tres orígenes diferentes o el mapeo corresponde a otros mapeos derivados de otras dos orígenes diferentes, el valor de solape sería tres orígenes totales (o dos orígenes de corroboración).
En una realización, cada estructura de datos de mapeo comprende o se asocia con un valor de confianza que se ha calculado basándose en uno o más factores (por ejemplo, el intervalo, retardo, dispersión, intensidad, ponderación del origen y/o estadísticas de solape), como se describe en otra parte de la presente memoria. En este contexto, el valor de confianza para un mapeo particular representa una medida de confianza de que un visitante o contacto, que ha usado, está usando o usará la entidad respectiva, está asociado con la cuenta respectiva. El valor de confianza se describirá principalmente en la presente memoria como un valor decimal entre cero y uno. Sin embargo, debe entenderse que el intervalo de posibles valores de confianza puede convertirse fácilmente en cualquier intervalo deseado de valores, con modificaciones correspondientes a cualquier cálculo descrito que se base en el valor de confianza.
El término "grupo de eventos" se usa en la presente memoria para referirse a una estructura de datos en la que se almacenan todas las estructuras de datos del eventos sin procesar. Por ejemplo, siempre que se reciba un evento desde un origen, una representación del evento puede almacenarse en el grupo de eventos como la estructura de datos del evento descrita. Cada estructura de datos del evento puede comprender, por ejemplo, una marca de tiempo (por ejemplo, que indica la fecha y/o la hora en la que ocurrió la actividad, subyacente al evento), la entidad (por ejemplo, dirección IP, sitio web y/o dominio de correo electrónico, y/o cookie), el origen desde la que se recibió el evento y/o en el que ocurrió el evento, un hash de una dirección de correo electrónico asociada con el evento (si lo hay), un nombre de empresa (si lo hay), una ubicación geográfica (basada en una entrada de usuario durante la actividad subyacente o un perfil de usuario si el usuario inició sesión en una cuenta para la actividad), y/o la ubicación IP geográfica si la entidad incluye una dirección IP (es decir, cada dirección IP puede estar asociada con un país, dado que diferentes bloques IP se asignan a diferentes países). Cada estructura de datos del eventos también podría comprender información adicional (por ejemplo, información relevante de una entrada de usuario o perfil de usuario), tal como la ciudad, estado, código postal, coordenadas del sistema de posicionamiento global (GPS) (por ejemplo, latitud, longitud y/o elevación), y/o similares. Antes de la entrada en el grupo de eventos, uno o más campos de cada estructura de datos del evento pueden normalizarse, como se describe en otra parte de la presente memoria.
Dado que cada evento individual se almacena individualmente en el grupo de eventos y el número de eventos que se recopilan generalmente será extremadamente grande, el grupo de eventos será correspondientemente grande. Por lo tanto, para procesar los eventos en un estado más condensado, la aplicación puede utilizar un "grupo de mapeo". Específicamente, el término "grupo de mapeo" se usa en la presente memoria para referirse a una estructura de datos que agrega eventos, almacenados en el grupo de eventos, para formar mapeos.
2. Descripción general del proceso
Las realizaciones de procesos para mapear entidades anónimas a cuentas conocidas se describirán ahora en detalle. Debe entenderse que los procesos descritos pueden estar incorporados en uno o más módulos de software que son ejecutados por uno o más procesadores de hardware, por ejemplo, como la aplicación descrita en la presente memoria (por ejemplo, la aplicación 112 de servidor, la aplicación 132 de cliente, y/o una aplicación distribuida que comprende tanto la aplicación 112 de servidor como la aplicación 132 de cliente), que puede ser ejecutada completamente por el(los) procesador(es) de la plataforma 110, totalmente por el(los) procesador(es) del(los) sistema(s) 130 de usuario, o puede ser distribuida a través de la plataforma 110 y el(los) sistema(s) 130 de usuario de manera que algunas partes o módulos de la aplicación son ejecutados por la plataforma 110 y otra partes o módulos de la aplicación son ejecutados por el(los) sistema(s) 130 de usuario. El proceso descrito puede implementarse como instrucciones representadas en código fuente, código objeto y/o código máquina. Estas instrucciones pueden ser ejecutadas directamente por el(los) procesador(es) de hardware, o alternativamente, pueden ser ejecutadas por una máquina virtual que opera entre el código objeto y los procesadores de hardware. Además, la aplicación descrita puede construirse sobre o interconectarse con uno o más sistemas existentes.
Alternativamente, los procesos descritos pueden implementarse como un componente de hardware (por ejemplo, procesador de propósito general, circuito integrado (IC), circuito integrado de aplicación específica (ASIC), procesador de señal digital (DSP), matriz de puertas programables en campo (FPGA) u otro dispositivo lógico programable, puerta discreta o lógica de transistor, etc.), combinación de componentes de hardware, o combinación de componentes de hardware y software. Para ilustrar claramente la intercambiabilidad de hardware y software, en la presente memoria se describen varios componentes, bloques, módulos, circuitos y etapas ilustrativos en términos generales de su funcionalidad. Si tal funcionalidad se implementa como hardware o software depende de la aplicación particular y las limitaciones de diseño impuestas sobre el sistema global. Los expertos pueden implementar la funcionalidad descrita de diversas maneras para cada aplicación particular, pero tales decisiones de implementación no deben interpretarse como una desviación del alcance de la invención tal como se define en las reivindicaciones adjuntas. Además, la agrupación de funciones dentro de un componente, bloque, módulo, circuito o etapa es para facilitar su descripción. Las funciones o etapas específicas se pueden mover de un componente, bloque, módulo, circuito o etapa a otro sin apartarse de la invención como se define en las reivindicaciones adjuntas.
La FIG. 3 ilustra un proceso 300 para mapear entidades anónimas con cuentas conocidas, según una realización. Aunque el proceso 300 se ilustra con una cierta disposición y orden de etapas, el proceso 300 puede implementarse con menos, más o diferentes etapas y una disposición y/u orden diferente de etapas.
2.1. Recopilación en el grupo de eventos
En la etapa 310, la aplicación recibe eventos de uno o más orígenes (por ejemplo, sistemas 140 externos y/u orígenes internos en la plataforma 110) y los recopila en un grupo de eventos. Como se describe en otro lugar en la presente memoria, cada evento puede recibirse como una estructura de datos que comprende al menos una entidad y una marca de tiempo. Cada evento puede almacenarse en una estructura de datos dentro del grupo de eventos, y puede comprender la entidad (por ejemplo, dirección IP, dominio y/o cookie), la marca de tiempo, un identificador del origen del evento, y, opcionalmente, información adicional (por ejemplo, una ubicación IP geográfica asociada con una dirección IP en la entidad, un nombre de empresa o usuario, etc.).
En particular, los datos del evento sin procesar pueden ser ruidosos. Por lo tanto, en una realización, los datos del evento se normalizan a medida que se introducen en el grupo de eventos o después de que se han introducido en el grupo de eventos. Por ejemplo, la normalización se puede realizar en las ubicaciones IP geográficas (por ejemplo, convertir todas las variaciones del mismo nombre de país en un solo nombre de país canónico usando técnicas de nomenclatura y/o gramática), los nombres de empresa o cuenta (por ejemplo, convertir todas las variaciones del mismo nombre de empresa o cuenta en un solo nombre canónico usando técnicas de nomenclatura y/o gramática), los nombres de dominio (por ejemplo, descartar cualquier parte del nombre de dominio que precede al nombre de dominio de segundo nivel) y/u otros campos. Se puede usar la adaptación difusa para identificar variaciones de estos valores de campo. La normalización puede realizarse a través de campos en todas las entradas en el grupo de eventos para maximizar el proceso de agregación subsiguiente.
Como un ejemplo de normalización, uno o más alias de un dominio principal (por ejemplo, abc.com es un alias de abc.go.com) pueden detectarse en los datos del evento entrante y normalizarse al dominio principal antes de la entrada en el grupo de eventos. Ventajosamente, esto evita que el mismo dominio se analice como dominios diferentes. En una realización, un conjunto de alias puede construirse usando una o más (incluyendo todas) de las siguientes técnicas (por ejemplo, implementadas por la aplicación):
(1) Enviar una solicitud a un primer dominio (por ejemplo, abc.com) para ver si se redirige a un segundo dominio (por ejemplo, abc.go.com). Si la solicitud al primer dominio se redirige al segundo dominio, el primer dominio es un alias del segundo dominio (por ejemplo, abc.com es un alias de abc.go.com).
(2) Recuperar la dirección IP del sistema de nombres de dominio (DNS) para un dominio (por ejemplo, usando una búsqueda de DNS), y construir un conjunto de dominios asociados a la dirección IP recuperada (por ejemplo, usando una búsqueda de IP inversa, de manera que DNS IP => conjunto de dominios). Una vez que se ha construido el conjunto de dominios, la aplicación puede enviar una solicitud a cada dominio en el conjunto de dominios, y comprobar la similitud entre las páginas web devueltas (por ejemplo, basándose en el estilo).
Por ejemplo, si el conjunto de dominios para la dirección IP 1.1.1.1 es [a.com, b.com, c.com], se pueden recuperar las páginas web en a.com, b.com y c.com, y se pueden comparar los estilos de esas páginas web recuperadas. Si los estilos son idénticos o similares, la aplicación puede determinar que el conjunto de dominios [a.com, b.com, c.com] es un conjunto de alias y seleccionar uno de los dominios del conjunto de dominios para que actúe como dominio principal. Por ejemplo, la aplicación puede seleccionar aleatoriamente a.com como el dominio principal, y normalizar todos los datos del evento futuros al dominio principal modificando cualquier dato del evento asociado con los dominios de alias b.com y c.com para asociarse con el dominio principal a.com (cualquier dato del evento asociado con a.com permanecerá asociado con a.com).
(3) Construir un conjunto de dominios (por ejemplo, vistos en los datos del evento) basándose en sus distancias de cadena entre sí, enviar una solicitud a cada dominio en el conjunto de dominios, y comprobar la similitud entre las páginas web devueltas (por ejemplo, estilo base don). La igualación de similitud puede ser igual o diferente a la igualación de similitud en la técnica (2) anterior. Por ejemplo, la aplicación puede identificar JonBakery.com, JonBakes.com y JonBaker.com como un conjunto de dominios, que representan alias potenciales entre sí, basándose en la distancia de cadena entre los nombres de dominio. Las páginas web en JonBakery.com, JonBakes.com y JonBaker.com pueden recuperarse, y los estilos de esas páginas web recuperadas pueden compararse. Si los estilos son idénticos o similares, la aplicación puede determinar que el conjunto de dominios [JonBakery.com, JonBakes.com, and JonBaker.com] es un conjunto de alias y seleccionar uno de los dominios del conjunto de dominios para que actúe como dominio principal. Por ejemplo, la aplicación puede seleccionar aleatoriamente JonBaker.com como el dominio principal, y normalizar todos los datos del evento futuros al dominio principal modificando cualquier dato del evento asociado con los dominios de alias JonBakery.com.com y JonBakes.com para asociarse con el dominio principal JonBaker.com (cualquier dato del evento asociado con JonBaker.com permanecerá asociado JonBaker.com).
Los conjuntos de dominios, determinados para ser alias usando las técnicas (1), (2), y/o (3) anteriores, pueden combinarse en un solo conjunto de dominios de alias. A continuación, en una realización, los conjuntos combinados de dominios de alias con números irrazonablemente altos de dominios en los mismos (por ejemplo, conjuntos que comprenden un número de dominios que exceden un valor umbral predeterminado) se filtran de los datos del evento recopilados. Específicamente, los datos del eventos asociados con cualquier dominio en cualquier conjunto filtrado de dominios pueden excluirse del grupo de eventos. Esto se debe a que grandes conjuntos de dominios de alias son indicativos de redirección por vendedores de dominio, servicios de alojamiento, plataformas de redes sociales y/o similares, en lugar de asociación con una cuenta válida.
Además, los datos del eventos pueden filtrarse basándose en uno o más criterios diferentes. Por ejemplo, los datos del eventos asociados con una dirección IP dentro de intervalos de direcciones IP asociadas con proveedores de servicios web (por ejemplo, Amazon™, Google™, Microsoft™, etc.) pueden excluirse del grupo de eventos. Como otro ejemplo, los datos del evento, asociados con una entidad desde la cual se han detectado patrones de actividad de tipo robot (bot), pueden excluirse del grupo de eventos. Los patrones de actividad de tipo robot pueden comprender un número irrazonablemente alto de solicitudes, comportamiento de rastreo de web (web-scraping), eventos periódicos, y/o similares.
2.2. Agregación en mapeos
En la etapa 320, la aplicación agrega eventos, almacenados en el grupo de eventos, en un grupo de mapeo. Para facilitar la comprensión, esta etapa se describirá usando un ejemplo concreto, no limitativo. Supongamos que el grupo de eventos comprende las entradas representadas en la Tabla 1 siguiente. En particular, no todos los campos de las entradas se muestran necesariamente en las tablas incluidas, y las entradas en estas tablas solo representan una pequeña fracción de las entradas que existirían en un grupo real y solo para una única entidad. Las entradas de una implementación real pueden comprender más, menos, o diferentes campos y/o diferentes representaciones de valores de campo que las mostradas en las tablas.
Tabla 1
En este ejemplo, dos eventos, que asocian la dirección IP 1.1.1.1 con un dominio de xyz.com, se han recibido desde Origen! (por ejemplo, un proveedor de datos), dos eventos, que asocian la misma dirección IP con un dominio de abc.com, desde Origen2 (por ejemplo, directamente desde un sitio web, por ejemplo, reportando un inicio de sesión), y ocho eventos, que asocian la misma dirección IP con abc.com, se han recibido desde Origen3 (por ejemplo, una plataforma de automatización de marketing). El 3 de febrero de 2017, estos doce eventos del grupo de eventos pueden condensarse en dos entradas en el grupo de mapeo, como se muestra en la Tabla 2 a continuación.
Tabla 2
Como se ilustra en la Tabla 2, todos los eventos individuales, almacenados en el grupo de eventos, se hacen coincidir con otros eventos con una entidad coincidente, y se agregan en una única entrada en el grupo de mapeo que asocia la dirección IP con un nombre de cuenta. En una realización, el nombre de cuenta puede derivarse del nombre de dominio (por ejemplo, "XYZ" de "xyz.com" y "ABC" de "abc.com"). Las estadísticas (por ejemplo, valor de intervalo, valor de retardo, valor de dispersión, valor de intensidad y valor de solape) se calculan para cada conjunto de eventos agregados y se incluyen en la entrada en el grupo de mapeo. En este caso, dos entradas con la dirección IP 1.1.1.1 y el mismo nombre de dominio "xyz.com" se han combinado en una única entrada con un valor de intervalo de veintiún días, un valor de retardo de catorce días, un valor de dispersión de dos días, un valor de intensidad de dos días, un valor de solapamiento de un origen y una lista que comprende un identificador de ese un origen. De manera similar, diez entradas con la misma dirección IP, pero un nombre de dominio diferente "abc.com" se han combinado en una única entrada con un valor de intervalo de treinta y dos días, un valor de retardo de un día, un valor de dispersión de nueve días, un valor de intensidad a menudo días, un solapamiento de dos orígenes, y una lista que comprende un identificador para cada una de esos dos orígenes. Además, el nombre de dominio "xyz.com" se ha asociado con la empresa XYZ con un nombre de empresa normalizado de "XYZ", y el nombre de dominio "abc.com" se ha asociado con la empresa ABC con un nombre de empresa normalizado de "ABC".
2.3. Cálculo de confianza para cada mapeo
En la etapa 330, la aplicación calcula valores de confianza para cada mapeo en el grupo de mapeo. En una realización, un valor de confianza global para cada mapeo se calcula basándose en una pluralidad de confianzas diferentes. Por ejemplo, el valor de confianza puede ser una combinación de una confianza temporal, una confianza estadística y/o una confianza del origen, que se calculan cada una basándose en la información agregada dentro de cada mapeo.
2.3.1. Confianza temporal
La confianza temporal para un mapeo particular se puede calcular usando la Ecuación 1 a continuación:
en donde el intervalo es el valor de intervalo asociado con el mapeo, y el retardo es el valor de retardo asociado con el mapeo.
La ecuación 1 produce una curva sigmoidea, basándose en el razonamiento de que los mapeos con valores de intervalo más altos deben decrecer a una velocidad más baja que los mapeos con valores de intervalo más bajos. Sin embargo, al mismo tiempo, los mapeos con valores de intervalo bajos deben capturarse. Por ejemplo, si un mapeo particular estuvo activo ayer y solo ayer, tendrá un valor de confianza temporal alto (por ejemplo, 0,3), dado que es nuevo, pero ese valor de confianza temporal caerá rápidamente si no está activo de nuevo en el futuro. Por el contrario, un mapeo competidor que no ha estado activo durante el mes pasado, pero que estuvo activo durante todo un año antes del mes pasado tendrá un valor de confianza temporal aún más alto (por ejemplo, 0,8), de manera que excederá el nuevo mapeo, aunque fugaz, en términos de sus respectivos valores de confianza.
2.3.2. Confianza estadística
La confianza estadística se puede calcular usando la Ecuación 2 a continuación:
ponderación¡ntens¡dad *lo g 1000( intensidad ) ponderac¡ónd¡spers¡ón [Ecuación
(dispersión) 2 ]
en donde la intensidad es el valor de intensidad asociado con el mapeo, en donde la dispersión es el valor de dispersión asociado con el mapeo, en donde ponderación<intensidad>+ ponderación<dispersión>= 1,0, y en donde, en una realización, ponderación<intensidad>= ponderación<dispersión>= 0,5.
La Ecuación 2 usa funciones logarítmicas para recompensar estadísticas tales como intensidad y dispersión. En la práctica, la mayoría de los mapeos pueden tener valores bajos para estas estadísticas. Por lo tanto, aquellas correlaciones con valores más altos para estas estadísticas se distinguen y "recompensan" en términos de sus respectivos valores de confianza.
2.3.3. Confianza del origen
La confianza del origen para un mapeo particular se puede calcular usando la Ecuación 3 a continuación, que esencialmente resta la probabilidad de que cada origen, que suministró el(los) evento(s) de los que se derivó el mapeo, sea incorrecta:
<1 - f f lC l>-C0nfianza_0rigen<j ) [Ecuación 3]>
en donde S es el valor de solape para el mapeo, y la confianza_origen es un valor de confianza, entre cero y uno, que está asociado con cada origen (por ejemplo, un valor de confianza global para cada origen basándose en la fiabilidad o precisión pasada del origen) de la que se recibieron eventos, usados para derivar el mapeo.
La confianza del origen puede ser una variable importante en el valor de confianza global. Aunque algunos orígenes pueden suministrar datos confiables basándose en una metodología fiable, otros orígenes pueden ser increíblemente ruidosos (por ejemplo, muchos datos inexactos mezclados con datos exactos). En una realización, el valor de confianza_origen para un origen particular se puede determinar basándose en la suposición de que, si N orígenes separados están de acuerdo en un mapeo, entonces el mapeo es verdadero. N debe ser al menos dos, y preferiblemente más de tres.
Las FIGs. 4A y 4B ilustran un proceso 400 de ejemplo para determinar un valor de confianza del origen para cada origen de eventos, según una realización. Aunque el proceso 400 se ilustra con una cierta disposición y orden de etapas, el proceso 400 puede implementarse con menos, más o diferentes etapas y una disposición y/u orden diferentes de etapas.
En la etapa 410, para evaluar la exactitud de un origen particular, la aplicación puede construir un conjunto de mapeos "verdaderos" creando un grupo de mapeos a partir del grupo de mapeo que se basan en al menos N (por ejemplo, tres) orígenes. En una realización, el origen que se va a evaluar puede excluirse de este grupo. En una realización de este tipo, la etapa 410 puede ocurrir después del bloque 420 de decisión, de manera que se crea un nuevo grupo de mapeos "verdaderos" cada vez que se evalúa un origen. En cualquier caso, estos mapeos seleccionados representan un "conjunto verdadero", es decir, un subconjunto de mapos que se supone que son verdaderos.
En la etapa 420, la aplicación determina si quedan orígenes por considerar. Debe entenderse que todos los orígenes, a partir de los cuales se obtienen los eventos, pueden evaluarse según el proceso 400. Si queda por considerar al menos un origen (es decir, "SÍ" en la etapa 420), el siguiente origen se selecciona como el origen actual, y el proceso 400 pasa a la etapa 430. De lo contrario, si no quedan orígenes por considerar (es decir, "NO" en la etapa 420), finaliza el proceso 400.
En la etapa 430, el solapamiento o intersección se determina entre los mapeos, derivados del origen actual que se está evaluando, y el conjunto verdadero de mapeos. Esta intersección de mapeos se ilustra en la FIG.
4B, según una realización.
En la etapa 440, la aplicación usa esta intersección para determinar una medida de confianza para el origen actual que se está evaluando, basándose en cuántos mapeos verdaderos y/o cuántos mapeos no verdaderos se han derivado del origen actual que se está evaluando. En otras palabras, se supone que un mapeo, derivado del origen actual, que coincide con un mapeo en el conjunto verdadero (por ejemplo, mapeo tanto en la entidad como en la cuenta) es un mapeo verdadero derivado del origen actual. La medida determinada se puede usar entonces como, o para derivar, una confianza del origen (es decir, valor de confianza_origen en la Ecuación 3) para el origen actual que se está evaluando. Por ejemplo, la confianza del origen puede ser una relación (por ejemplo, porcentaje) del número de mapeos "verdaderos" en el solapamiento con el número total de mapeos derivados del origen actual. Después de que se ha determinado la confianza del origen para el origen actual, el proceso 400 vuelve a la etapa 420 para evaluar el siguiente origen, si lo hay, o bien finaliza.
2.3.4. Confianza global
La confianza global para un mapeo particular puede calcularse, basándose en cada una de la confianza temporal, confianza estadística y confianza del origen para ese mapeo, usando la Ecuación 4 a continuación:
<ponderación 1( c o n / origen + ( 1 - C07l/orlgen>)confesiadistica )<[Ecuación>
+ ponderación2 (con/'emporal) 4 ]
en donde el conf<temporal>es la confianza temporal calculada, conf<estadística>es la confianza estadística calculada, y conf<origen>es la confianza del origen calculada, en donde ponderacióni ponderación<2>= 1,0, y en donde, en una realización, ponderacióni = 0,7 y ponderación<2>= 0,3.
2.4. Filtrar y limpiar los mapeos
En la etapa 340, los mapeos, con sus valores de confianza calculados, pueden filtrarse y limpiarse o corregirse. En una realización, la etapa 340 comprende filtrado ISP y/o limpieza de ubicación.
2.4.1. Filtrado ISP
Normalmente, si una entidad incluye una dirección IP que pertenece a un ISP (por ejemplo, que asigna dinámicamente direcciones IP a diferentes clientes), puede haber muchos mapeos contradictorios para esa misma entidad. Por lo tanto, en una realización, la aplicación filtra los mapeos calculando la relación del valor de confianza para el mapeo con el valor de confianza máximo para una entidad particular con la suma de todos los valores de confianza para todos los mapeos para esa entidad particular, y luego comparando esta relación con un umbral. Por ejemplo, esta comparación puede representarse como la Ecuación 5 a continuación:
jtiq,x [confianza entidad )
[ E c u a c i ó n
5 ]
> 0.5 (1 — m ax( confianza entidad ))
Por lo tanto, por ejemplo, si el valor de confianza máximo es 0,5, entonces ese valor de confianza necesitaría representar el 25 % de los valores de confianza acumulativos para ser considerado un mapeo válido. Si el valor de confianza máximo fuera 0,1, tendría que representar el 45 % de los valores de confianza acumulativos. Este umbral filtra los mapeos en conflicto en casos en los que ningún mapeo individual se destaca claramente en términos de su valor de confianza.
En una realización, sum(confianza<entidad>) puede representar una suma de todos los valores de confianza distintos, en lugar de todos los valores de confianza, para evitar el exceso de recuento. Específicamente, dos o más mapeos para la misma entidad pueden terminar teniendo los mismos valores de confianza. En este caso, dividir por la suma de todos los valores de confianza distintos, en lugar de la suma de todos los valores de confianza (es decir, incluyendo los valores de confianza distintos y los valores de confianza idénticos), puede hacer que el filtro de ISP sea más conservador. Alternativamente, sum(confianza<entidad>) puede representar la suma de todos los valores de confianza, independientemente de la distinción.
En una realización, si la Ecuación 5 no se satisface, todos los mapeos asociados con esa entidad particular pueden filtrarse (por ejemplo, descartarse o ignorarse). De lo contrario, si se satisface la Ecuación 5, el mapeo que tiene el valor de confianza máximo para la entidad puede mantenerse, mientras que todos los otros mapeos asociados con la entidad pueden filtrarse. Esencialmente, la Ecuación 5 garantiza que los mapeos con confianzas inferiores necesitan un mayor porcentaje del valor de confianza total para evitar ser descartadas, mientras que los mapeos con confianzas superiores permanecerán a menos que compitan contra un número no razonable de mapeos para la misma entidad.
2.4.2. Limpieza de la ubicación
Dado que los intervalos de direcciones IP están asociados con ciertos países, si una entidad incluye una dirección IP, esta dirección IP puede usarse para determinar el país asociado u otra información geográfica. La aplicación puede usar esta información geográfica para corregir o limpiar mapeos. Por ejemplo, un evento puede asociar una actividad en línea (por ejemplo, visita al sitio web) a un contacto para una cuenta (por ejemplo, basándose en un inicio de sesión en el sitio web). En este caso, si el contacto es incorrecto, el mapeo será incorrecto. Además, si el contacto es empleado por una empresa con diferentes sucursales (por ejemplo, una empresa multinacional, una empresa de consultoría, etc.), el contacto puede estar realizando una actividad relacionada con una sucursal, mientras que se vincula esa actividad con otra sucursal (por ejemplo, la sucursal en la que se emplea el contacto).
En una realización, la aplicación aborda estos problemas determinando qué parte de los eventos para una cuenta particular, de un origen particular, provienen de un país diferente. Específicamente, la aplicación puede recopilar estadísticas en el nivel de cuenta, en lugar de por dirección IP, para determinar si la cuenta se ha enlazado correctamente o no. Como ejemplo, si miles de direcciones IP se han mapeado previamente a una cuenta para "ABC, U.S.A." en los Estados Unidos, se puede suponer que la mayoría de las nuevas direcciones IP, recibidas en nuevos eventos, también deberían originarse en los Estados Unidos.
En una realización, la aplicación puede corregir, limpiar o filtrar mapeos como sigue:
(1) Si las direcciones IP en la mayoría de los nuevos eventos están asociadas con un país diferente del país en un mapeo existente, cambiar el país en el mapeo existente al nuevo país diferente;
(2) Si la cuenta en un mapeo representa una gran empresa con oficinas multinacionales y las direcciones IP en eventos están asociadas con una pluralidad de diferentes países, sin que ningún país tenga una clara mayoría, dividir el mapeo en una pluralidad de mapeos, con un mapeo para cada uno de la pluralidad de países o para cada uno de los principales países (por ejemplo, y descartar mapeos para países con un número relativamente trivial de eventos); y/o
(3) Si las direcciones IP en nuevos eventos están asociadas con un país diferente del país en un mapeo existente, pero el valor de confianza del origen y/o mapeo es bajo, no cambiar el mapeo existente y no crear un nuevo mapeo para los nuevos eventos (es decir, descartar, ignorar, o de otra modo filtrar los nuevos eventos).
2.4.3. Comprobación de dominios válidos
En una realización, uno de los campos clave usados para identificar una cuenta es el dominio. Debido al ruido en los datos del evento, algunos mapeos pueden mapear un dominio no válido y/o defectuoso con una cuenta. Por lo tanto, en una realización, la aplicación puede validar uno o más dominios en los mapeos enviando una solicitud a cada dominio. Por ejemplo, la aplicación puede validar el nombre de dominio en cada mapeo asociado con un valor de confianza bajo (por ejemplo, un valor de confianza por debajo de un valor umbral predeterminado) enviando una solicitud a cada nombre de dominio en los mapeos de confianza baja. Si la solicitud a un dominio asociado con un mapeo particular se redirige a un sitio que no es indicativo de una cuenta válida (por ejemplo, un vendedor de dominio, servicio de alojamiento, plataforma de medios sociales, etc.) y/o la solicitud da como resultado un error o alguna otra razón para creer que el mapeo es probablemente defectuoso, el mapeo puede descartarse o excluirse como no válido.
2.5. Selección de mapeo
En la etapa 350, para cada entidad, la aplicación selecciona, de los mapeos que se filtraron y limpiaron en la etapa 340, el mapeo restante con el valor de confianza más alto determinado en la etapa 330. En una realización, la aplicación puede seleccionar un mapeo solo si su valor de confianza excede un umbral mínimo. Por ejemplo, en algunos casos, la aplicación puede descartar todos los mapeos para una entidad particular, incluyendo el mapeo con el valor de confianza más alto, si ninguno de los mapeos tiene un valor de confianza por encima de un cierto valor umbral mínimo.
En una realización, el umbral mínimo puede depender del contexto particular en el que se van a usar los mapeos. Por ejemplo, algunos contextos o usuarios de la plataforma 110 pueden requerir un mayor nivel de confianza para los mapeos, en cuyo caso el umbral mínimo puede establecerse más alto. Otros contextos o usuarios pueden no requerir un nivel de confianza tan alto, en cuyo caso el umbral mínimo puede establecerse más bajo o eliminarse por completo.
En una realización, la salida del proceso 300 es un gráfico, lista, tabla u otra representación de cada mapeo restante entre entidades y cuentas. Debe entenderse que esta representación solo incluirá los mapeos que quedan después del filtrado y la limpieza en la etapa 340 y la selección y/o el umbral en la etapa 350. La representación puede almacenarse y/o transmitirse como una estructura de datos, visualizada en una interfaz gráfica de usuario, usada como una entrada en otra aplicación (por ejemplo, a través de una API), y/o similares. En una realización, la representación es una base de datos de los mapeos finales que está indexada por entidad. El índice de entidad puede ser un índice primario, único, de manera que una entidad individual nunca se mapea a más de una cuenta.
Además, en una realización, cada uno de los mapeos finales puede estar vinculado, por la cuenta representada en el mapeo, a la información de contacto para la cuenta. Por ejemplo, el identificador de cuenta en el mapeo puede usarse (por ejemplo, como un índice para una base de datos) para recuperar información de contacto asociada con ese identificador de cuenta.
Por lo tanto, por ejemplo, un usuario puede contemplar actividad en línea, en el sitio web del usuario, desde una dirección IP particular. El usuario puede iniciar una consulta de los mapeos finales, a través de la aplicación, usando la dirección IP como criterios de búsqueda, y la aplicación puede devolver responsablemente un nombre de cuenta (por ejemplo, nombre de empresa) y la información de contacto asociada para esa cuenta al usuario. Ventajosamente, esto permite que el usuario contacte con un visitante de Internet, que de otra modo no habría sido posible contactar debido al anonimato inherente de Internet.
Este proceso de búsqueda también podría automatizarse. Por ejemplo, un operador de sitio web podría desarrollar software de terceros que usa una API de la aplicación para consultar automáticamente los mapeos finales para cada dirección IP vista en la actividad en línea en el sitio web (por ejemplo, en tiempo real, periódicamente, etc.). La aplicación puede entonces devolver automáticamente los nombres de cuenta y/o información de contacto asociada con esas direcciones IP para su procesamiento posterior por el software de terceros y/o uso por el operador del sitio web.
2.6. Implementación de ejemplo
La FIG. 5 ilustra las interacciones entre diversas estructuras de datos en una implementación de ejemplo del proceso 300, según una realización. Debe entenderse que este proceso puede implementarse mediante la aplicación descrita (por ejemplo, la aplicación 112 de servidor y/o la aplicación 132 de cliente). Aunque el proceso se ilustra con ciertas estructuras y etapas de datos, el proceso puede implementarse con menos, más o diferentes estructuras de datos y/o diferentes etapas.
Los eventos recopilados en la etapa 310 se almacenan inicialmente en la memoria intermedia 555 del grupo de eventos, antes de almacenarse en el grupo 560 de eventos. A medida que los eventos se añaden a la memoria intermedia 555 del grupo de eventos, cada uno puede tener un estado que indica que son nuevos. Además, los eventos pueden normalizarse como se describe en otra parte de la presente memoria.
En la etapa 505, los eventos en la memoria intermedia 555 del grupo de eventos se agregan en mapeos, como se describe en otra parte en la presente memoria. Estos mapeos se almacenan inicialmente en el minigrupo 565 de mapeo, para facilitar una combinación más suave en la etapa 520. Además, en la etapa 510, las entidades únicas de los eventos en la memoria intermedia 555 del grupo de eventos se almacenan en la memoria intermedia 570 de entidades modificada. La memoria intermedia 570 de entidades modificadas puede dividirse por la fecha de los eventos. A medida que los eventos en la memoria intermedia del grupo de eventos se agregan en mapeos, sus estados pueden cambiarse para indicar que se están agregando y/o el tiempo que se han agregado (por ejemplo, para evitar el procesamiento redundante).
En la etapa 515, los mapeos almacenados en el grupo 575 de mapeo existentes se dividen en las entidades almacenadas en la memoria intermedia 570 de entidades modificadas para producir un grupo 580 de mapeo dividido. Esto puede implicar clasificar el grupo 575 de mapeo basándose en las entidades en las mapeos, o extraer las mapeos para solo aquellas entidades almacenadas en la memoria intermedia 570 de entidades modificadas.
En la etapa 520, el minigrupo 565 de mapeo se combina con el grupo 580 de mapeo dividido para producir el grupo 585 de mapeo modificado. Esta combinación puede comprender, para cada mapeo que está presente tanto en el minigrupo 565 de mapeo como en el grupo 580 de mapeo dividido, calcular los valores estadísticos combinados y el nuevo valor de confianza, como se describe en otra parte en la presente memoria, y agregar una nueva entrada para el mapeo, con los valores estadísticos combinados y el valor de confianza, al grupo 585 de mapeo modificado. Para facilitar los cálculos de los valores estadísticos y de confianza, los grupos pueden dividirse tanto en cuenta (por ejemplo, nombre de la empresa) como en dominio. Los mapeos que solo están presentes en el minigrupo 565 de mapeo pueden añadirse simplemente al grupo 585 de mapeo modificado con sus valores estadísticos y de confianza respectivos.
En la etapa 525, el grupo 575 de mapeo se actualiza con las entradas en el grupo 585 de mapeo modificado. Por ejemplo, las entradas en el grupo 585 de mapeo modificado pueden sobrescribir cualquier entrada correspondiente en el grupo 575 de mapeo. Además, en la etapa 530, los eventos en la memoria intermedia 555 del grupo de eventos, que se agregaron en la etapa 505 (por ejemplo, aquellos cuyos estados indican que se estaban agregando), se vacían en el grupo 560 de eventos.
Debe entenderse que esta implementación del proceso 300 se puede realizar periódicamente a medida que se añaden nuevos eventos a la memoria intermedia 555 del grupo de eventos (por ejemplo, a intervalos de tiempo específicos, cuando la memoria intermedia 555 del grupo de eventos alcanza un tamaño predeterminado, etc.). Además, en una realización, todas las modificaciones en el grupo 575 de mapeo y/o el grupo 560 de eventos pueden registrarse (por ejemplo, por fecha y datos) para fines de auditoría y/o para restaurar o revertir el grupo 575 de mapeo y/o el grupo 560 de eventos a un estado anterior si es necesario.
2.7. Servicio web de ejemplo
Como se analizó en otra parte de la presente memoria, la plataforma 110 puede implementar un servicio web, por ejemplo, como parte de la aplicación 112 de servidor. La FIG. 6 ilustra las interacciones entre diversas estructuras de datos en una implementación de ejemplo de un servicio web, según una realización. Aunque el proceso se ilustra con ciertas estructuras y etapas de datos, el proceso puede implementarse con menos, más o diferentes estructuras de datos y/o diferentes etapas.
Como se ilustra, la plataforma 110 puede comprender un servidor web 680, que da servicio a una interfaz gráfica de usuario, que comprende una interfaz 690 de usuario para interactuar con una cola 682 de consultas, y una interfaz 695 de usuario para enviar consultas. Los usuarios pueden tener acceso a una o ambas interfaces 690 y 695 de usuario, basándose en sus permisos. Por ejemplo, un usuario administrativo puede tener acceso a la interfaz 690 de usuario para gestionar la cola de consultas presentadas por los clientes, y una pluralidad de usuarios de cliente puede tener acceso a la interfaz 695 de usuario para enviar consultas.
En la etapa 605, un usuario de la interfaz 690 de usuario puede enviar una solicitud de información con respecto a la cola 682 (por ejemplo, para ver todas las consultas en la cola 682). La solicitud se envía al servidor web 680 (por ejemplo, a través de la(s) red(s) 120), y, en respuesta, el servidor web 680 consulta la cola 686 en la etapa 610. En respuesta a la consulta, se devuelve una representación de la cola 682 al servidor web 680 en la etapa 615. El servidor web 680 analiza entonces la representación de la cola 682 para generar una representación procesable de la cola 682, y devuelve la representación procesable de la cola 682 a la interfaz 690 de usuario para presentación visual al usuario (por ejemplo, en una pantalla del sistema 130 de usuario del usuario).
En la etapa 625, un usuario 695 de la interfaz de usuario puede enviar una consulta. La consulta puede comprender una entidad, un nombre de cuenta y/o cualquier otro campo indexable de los mapeos en el grupo 575 de mapeo. Por ejemplo, un usuario que ha notado actividad incrementada de una dirección IP particular puede desear vincular esa dirección IP anónima de otro modo a una compañía específica, para que el usuario entonces pueda contactar con esa compañía directamente (por ejemplo, para fines de marketing o ventas). Por consiguiente, el usuario puede enviar una consulta, a través de la interfaz 695 de usuario, para un nombre de empresa que se ha mapeado a la dirección IP de otro modo anónima. La consulta se envía al servidor web 680 (por ejemplo, a través de la(s) red(s) 120). El servidor web 680 puede validar la consulta (por ejemplo, para garantizar que satisface los requisitos de formato, requisitos de información, etc.), y comprobar si la consulta ya existe o no en la cola 682. Si la consulta no puede validarse, el servidor web 680 puede devolver un mensaje de error a la interfaz 695 de usuario. De lo contrario, si la consulta se valida y no está ya presente en la cola 682, el servidor web 680 añade la consulta a la cola 682 en la etapa 630. Si la consulta ya está presente en la cola 682, el servidor web 680 puede descartar la consulta. Alternativamente, el servidor web 680 podría añadir todas las consultas validadas a la cola 682, independientemente de si son o no redundantes. Debe entenderse que, cuando el servidor web 680 añade una consulta a la cola 682, puede analizar la consulta desde la interfaz 695 de usuario, y construir una consulta en un nuevo formato que se añadirá a la cola 682.
En la etapa 636, se proporciona una consulta al inicio de la cola 682 al ejecutor 684 de consultas. El canal 684 de consultas puede comprender un módulo de software que convierte la consulta en una consulta en un grupo 575 de mapeo. Por lo tanto, en la etapa 640, el ejecutor 684 de consultas consulta el grupo 575 de mapeo, y recibe el resultado de la consulta en la etapa 645. En la etapa 650, el ejecutor 684 de consultas almacena el resultado de la consulta en los resultados 686, que pueden comprender una memoria caché local de la plataforma 110. Los resultados de las consultas pueden almacenarse en los resultados 686 en JSON o en cualquier otro formato adecuado.
En la etapa 655, un usuario 695 de la interfaz de usuario puede enviar una solicitud para los resultados de una consulta previa (por ejemplo, enviada en la etapa 625). La solicitud se envía al servidor web 680 (por ejemplo, a través de la(s) red(s) 120), y, en respuesta, el servidor web 680 consulta los resultados 686 en la etapa 660. En respuesta a la consulta, los resultados de la consulta (si los hay) se devuelven al servidor web 680 en la etapa 665. El servidor web 680 analiza entonces los resultados para generar una representación procesable de los resultados, y devuelve la representación procesable de los resultados a la interfaz 695 de usuario para presentación visual al usuario (por ejemplo, en una pantalla del sistema 130 de usuario del usuario). El servidor web 680 puede construir la representación representable de resultados usando plantillas almacenadas para informes.
En una realización alternativa o adicional, puede existir una API para su uso de una manera similar a la interfaz 695 de usuario. Por ejemplo, una aplicación puede enviar consultas a través de la API (por ejemplo, similar a la etapa 625) y recibir resultados a esas consultas en respuesta (por ejemplo, similar a la etapa 670). De esta manera, se puede usar software de terceros (por ejemplo, ejecutado por un sistema 140 externo) para automatizar el proceso de consulta para diversos usuarios de la plataforma 110.
La descripción anterior de las realizaciones descritas se proporciona para permitir que cualquier experto en la técnica realice o use la invención. Diversas modificaciones a estas realizaciones serán fácilmente evidentes para los expertos en la técnica, y los principios generales descritos en la presente memoria se pueden aplicar siempre que estén abarcados por el alcance de la invención como se define en las reivindicaciones adjuntas. Por lo tanto, debe entenderse que la descripción y los dibujos presentados en la presente memoria representan una realización preferida de la invención y, por lo tanto, son representativos del objeto de la presente invención que se contempla ampliamente en la presente invención. Además, se entiende que el alcance de la presente invención abarca completamente otras implementaciones que pueden resultar obvias para los expertos en la técnica y que el alcance de la presente invención se define en las reivindicaciones adjuntas.
Claims (19)
1. Un método para desanonimizar los visitantes o contactos en línea mediante mapeo de las direcciones del Protocolo de Internet, IP, anónimas a cuentas conocidas, comprendiendo el método usar al menos un procesador de hardware de una plataforma de servidor para:
recibir una pluralidad de eventos de una pluralidad de orígenes, en donde cada uno de la pluralidad de eventos representa una actividad en línea y comprende una dirección IP e información del evento;
agregar subconjuntos de la pluralidad de eventos en una pluralidad de mapeos, en donde cada uno de la pluralidad de mapeos asocia la dirección IP, compartida por un subconjunto de la pluralidad de eventos, con una cuenta, y está asociada con una pluralidad de estadísticas con respecto al subconjunto de eventos; para cada uno de la pluralidad de mapeos, calcular un valor de confianza para el mapeo basándose en la pluralidad de estadísticas asociadas, en donde el valor de confianza para un mapeo particular representa una medida de confianza que un visitante o contacto, que ha usado, está usando o usará la dirección IP respectiva a través de una actividad en línea, está asociado con una cuenta respectiva, en donde calcular un valor de confianza para cada mapeo basándose en la pluralidad de estadísticas asociadas comprende
calcular un valor de confianza temporal, que indica una temporización de eventos de los que se derivó el mapeo,
calcular un valor de confianza estadístico, que indica una frecuencia de los eventos de los que se derivó el mapeo,
calcular un valor de confianza del origen, que indica una precisión de una o más de la pluralidad de orígenes de las que se recibieron los eventos, de los que se derivó el mapeo, y
calcular el valor de confianza basándose en el valor de confianza temporal, el valor de confianza estadístico y el valor de confianza del origen;
seleccionar un subconjunto final de la pluralidad de mapeos basándose en los valores de confianza para la pluralidad de mapeos, en donde un mapeo se selecciona solo si su valor de confianza excede un umbral mínimo predeterminado; y
responder a una o más solicitudes, que comprenden una dirección IP solicitada, buscando el subconjunto final de mapeos para la dirección IP solicitada, y devolver una indicación de una cuenta asociada con la dirección IP solicitada en el subconjunto final de mapeos y la información de contacto asociada para esa cuenta que permite contactar al visitante o contacto.
2. El método de la reivindicación 1, que comprende además usar el al menos un procesador de hardware para normalizar la información del evento a través de la pluralidad de eventos.
3. El método de la reivindicación 1, en donde la información del evento para cada uno de la pluralidad de eventos comprende un nombre de dominio.
4. El método de la reivindicación 1, en donde, para cada uno de la pluralidad de eventos, la información del evento comprende una región geográfica asociada con la dirección IP del evento.
5. El método de la reivindicación 1, en donde cada cuenta comprende un nombre de empresa.
6. El método de la reivindicación 1, en donde seleccionar un subconjunto final de la pluralidad de mapeos basándose en los valores de confianza para la pluralidad de mapeos comprende, para al menos un conjunto de dos o más mapeos que asocian cada uno una misma dirección IP con diferentes cuentas: determinar uno de los dos o más mapeos con un valor de confianza máximo entre los dos o más mapeos; calcular una suma de los valores de confianza para los dos o más mapeos;
calcular una relación entre el valor de confianza máximo y la suma de los valores de confianza; y cuando la relación no excede un umbral, excluir los dos o más mapeos del subconjunto final de mapeos. 7. El método de la reivindicación 6, en donde el umbral comprende un valor constante multiplicado por la diferencia entre uno y el valor de confianza máximo.
8. El método de la reivindicación 1, en donde la pluralidad de estadísticas comprende un intervalo y un retardo, en donde el intervalo indica un período de tiempo durante el cual ocurrieron los eventos, a partir del cual se derivó el mapeo, en donde el retardo indica un período de tiempo desde que ocurrió un evento más reciente, a partir del cual se derivó el mapeo, y en donde el valor de confianza temporal se calcula como:
lO 33 (in tervalo) —lO £ ¡g ( retardo )
9. El método de la reivindicación 1, en donde la pluralidad de estadísticas comprende una dispersión y una intensidad, en donde la dispersión indica un número de periodos de tiempo en los que ocurrieron los eventos, de los que se derivó el mapeo, en donde la intensidad indica un número de eventos de los que se derivó el mapeo, y en donde el valor de confianza estadística se calcula como:
<ponderaciónintens¡dad>* log imo (<intensidad ) ponderación dísperslúrl* ÍO 01OO (dispersión),>
en donde la ponderación<intensidad>y la ponderación<dispersión>son valores constantes que suman uno.
10. El método de la reivindicación 9, en donde ponderación<intensidad>y ponderación<dispersión>son iguales a 0,5.
11. El método de la reivindicación 1, en donde el valor de confianza del origen se calcula como:
1 - 01 (1 - conf¡anza_origen<;),
en donde cada confianza_origen<s>representa un valor de confianza del origen para uno de los uno o más orígenes de los que se recibieron los eventos, de los que se derivó el mapeo.
12. El método de la reivindicación 11, que comprende además usar al menos un procesador de hardware, para cada uno de la pluralidad de orígenes, para calcular el valor de confianza del origen para el origen mediante: identificar un conjunto verdadero de mapeos que se derivaron cada uno de ellos de eventos de al menos N de la pluralidad de orígenes, en donde N es mayor o igual a dos;
identificar un solapamiento entre un conjunto de mapeos del origen, que se derivaron de eventos recibidos del origen, y el conjunto verdadero de mapeos; y
calcular el valor de confianza del origen para el origen basándose en el solapamiento identificado entre el conjunto de mapeos del origen y el conjunto verdadero de mapeos.
13. El método de la reivindicación 1, en donde el valor de confianza se calcula como:
<ponderación, (>COTlf origen ( 1<->C O T lf origen '>COnf'M J ¥<ponderación 2 ( C O Í l ^ J ,>
en donde conf<origen>es el valor de confianza del origen, conf<estadística>es el valor de confianza estadística, conf<temporal>es el valor de confianza temporal, y en donde la ponderacióni y la ponderación<2>son valores constantes que suman uno.
14. El método de la reivindicación 13, en donde la ponderacióni es igual a 0,7, y en donde la ponderación<2>es igual a 0,3.
15. El método de la reivindicación 1, que comprende además usar el al menos un procesador de hardware para, después de que se reciba un nuevo conjunto de eventos de uno o más orígenes:
agregar subconjuntos del nuevo conjunto de eventos en un nuevo conjunto de mapeos;
extraer una parte del subconjunto final de mapeos que incluyan direcciones IP en el nuevo conjunto de eventos; combinar el nuevo conjunto de mapeos con la parte extraída del subconjunto final de mapeos mediante, para cada mapeo en el conjunto combinado de mapeos, calcular de nuevo la pluralidad de estadísticas y el valor de confianza para el mapeo; y
actualizar el subconjunto final de mapeos con el conjunto combinado de mapeos.
16. El método de la reivindicación 15, en donde cada uno de la pluralidad de eventos se almacena en un grupo de eventos persistentes, y en donde el nuevo conjunto de eventos no se almacena en el grupo de eventos persistentes hasta después de que se haya actualizado el subconjunto final de mapeos.
17. El método de la reivindicación 1, que comprende además usar el al menos un procesador de hardware para:
generar una interfaz gráfica de usuario que comprende una o más entradas para recibir una solicitud de usuario que comprende una dirección IP solicitada;
en respuesta a la recepción de la solicitud del usuario, añadir una consulta, que representa la solicitud, a una cola de consultas;
posteriormente, cuando la consulta llega al principio de la cola, consultar el subconjunto final de la pluralidad de mapeos basándose en la consulta; y,
después de recibir un resultado de la consulta, generar una interfaz gráfica de usuario que comprende una representación visual del resultado de la consulta.
18. Un sistema para desanonimizar direcciones del Protocolo de Internet anónimas, comprendiendo el sistema: al menos un procesador de hardware; y
uno o más módulos de software que, cuando se ejecutan por el al menos un procesador de hardware, hacen que el al menos un procesador de hardware realice el método según la reivindicación 1.
19. Un medio legible por ordenador no transitorio que tiene instrucciones almacenadas en el mismo, en donde las instrucciones, cuando se ejecutan por un procesador, hacen que el procesador:
realice el método según la reivindicación 1.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762609753P | 2017-12-22 | 2017-12-22 | |
PCT/US2018/065155 WO2019125858A1 (en) | 2017-12-22 | 2018-12-12 | Mapping entities to accounts |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2966525T3 true ES2966525T3 (es) | 2024-04-22 |
Family
ID=66950792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES18890683T Active ES2966525T3 (es) | 2017-12-22 | 2018-12-12 | Mapeo de entidades a cuentas |
Country Status (12)
Country | Link |
---|---|
US (4) | US10536427B2 (es) |
EP (2) | EP4280144A3 (es) |
JP (2) | JP7068478B2 (es) |
CN (2) | CN113515394A (es) |
CA (1) | CA3085902C (es) |
DK (1) | DK3729255T3 (es) |
ES (1) | ES2966525T3 (es) |
FI (1) | FI3729255T3 (es) |
IL (1) | IL275549B (es) |
PL (1) | PL3729255T3 (es) |
PT (1) | PT3729255T (es) |
WO (1) | WO2019125858A1 (es) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10565229B2 (en) | 2018-05-24 | 2020-02-18 | People.ai, Inc. | Systems and methods for matching electronic activities directly to record objects of systems of record |
US11463441B2 (en) | 2018-05-24 | 2022-10-04 | People.ai, Inc. | Systems and methods for managing the generation or deletion of record objects based on electronic activities and communication policies |
US11924297B2 (en) | 2018-05-24 | 2024-03-05 | People.ai, Inc. | Systems and methods for generating a filtered data set |
US10999295B2 (en) * | 2019-03-20 | 2021-05-04 | Verint Systems Ltd. | System and method for de-anonymizing actions and messages on networks |
IL272861B2 (en) * | 2020-02-23 | 2024-03-01 | Cognyte Tech Israel Ltd | System and Method for Cryptocurrency Networks |
WO2022006135A1 (en) | 2020-06-29 | 2022-01-06 | 6Sense Insights, Inc. | Artificial intelligence for keyword recommendation |
CN116745745A (zh) * | 2021-01-14 | 2023-09-12 | 霍尼韦尔国际公司 | 上下文发现系统和方法 |
US20220284451A1 (en) * | 2021-03-04 | 2022-09-08 | Walmart Apollo, Llc | Methods and apparatus for electronic mapping of customer data |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108245B1 (en) * | 1999-09-17 | 2012-01-31 | Cox Communications, Inc. | Method and system for web user profiling and selective content delivery |
US6839680B1 (en) * | 1999-09-30 | 2005-01-04 | Fujitsu Limited | Internet profiling |
US6745150B1 (en) * | 2000-09-25 | 2004-06-01 | Group 1 Software, Inc. | Time series analysis and forecasting program |
US7818206B2 (en) * | 2001-10-29 | 2010-10-19 | Teradata Us, Inc. | System and method for profiling different users having a common computer identifier |
US7594121B2 (en) * | 2004-01-22 | 2009-09-22 | Sony Corporation | Methods and apparatus for determining an identity of a user |
US20050192863A1 (en) * | 2004-02-26 | 2005-09-01 | Krishna Mohan | Web site vistor incentive program in conjunction with promotion of anonymously identifying a user and/or a group |
WO2006081680A1 (en) * | 2005-02-07 | 2006-08-10 | Adzilla, Inc. | Method and system of targeting content |
US7809781B1 (en) * | 2005-04-29 | 2010-10-05 | Hewlett-Packard Development Company, L.P. | Determining a time point corresponding to change in data values based on fitting with respect to plural aggregate value sets |
EP2171601A4 (en) * | 2007-06-07 | 2012-05-23 | Knotice Ltd | PLATFORM FOR COMMUNICATING VIA MULTIPLE COMMUNICATION CHANNELS |
US7870227B2 (en) * | 2007-07-31 | 2011-01-11 | Yahoo! Inc. | System and method for merging internet protocol address to location data from multiple sources |
EP2351310B1 (en) * | 2008-10-27 | 2018-10-10 | Telecom Italia S.p.A. | Method and system for profiling data traffic in telecommunications networks |
US20110029398A1 (en) * | 2009-07-31 | 2011-02-03 | Wesley John Boudville | Geo name service for validated locations and occupants and URLs |
US9389980B2 (en) * | 2009-11-30 | 2016-07-12 | Red Hat, Inc. | Detecting events in cloud computing environments and performing actions upon occurrence of the events |
GB201001041D0 (en) * | 2010-01-22 | 2010-03-10 | Causata Ltd | A method of storing and analysing data produced from interactions between external agents and a system |
US8566956B2 (en) * | 2010-06-23 | 2013-10-22 | Salesforce.Com, Inc. | Monitoring and reporting of data access behavior of authorized database users |
GB2484268A (en) * | 2010-09-16 | 2012-04-11 | Uniloc Usa Inc | Psychographic profiling of users of computing devices |
US9336380B2 (en) * | 2010-12-15 | 2016-05-10 | Microsoft Technology Licensing Llc | Applying activity actions to frequent activities |
AU2012271280A1 (en) * | 2011-06-16 | 2014-02-06 | Radiumone, Inc. | Building a social graph with sharing activity between users of the open web |
US20130054433A1 (en) * | 2011-08-25 | 2013-02-28 | T-Mobile Usa, Inc. | Multi-Factor Identity Fingerprinting with User Behavior |
US9824199B2 (en) * | 2011-08-25 | 2017-11-21 | T-Mobile Usa, Inc. | Multi-factor profile and security fingerprint analysis |
US8869241B2 (en) * | 2011-09-24 | 2014-10-21 | Elwha Llc | Network acquired behavioral fingerprint for authentication |
US9621404B2 (en) * | 2011-09-24 | 2017-04-11 | Elwha Llc | Behavioral fingerprinting with social networking |
US8521594B1 (en) * | 2011-10-18 | 2013-08-27 | Google Inc. | Directed content to anonymized users |
US9202227B2 (en) | 2012-02-07 | 2015-12-01 | 6 Sense Insights, Inc. | Sales prediction systems and methods |
US10616782B2 (en) * | 2012-03-29 | 2020-04-07 | Mgage, Llc | Cross-channel user tracking systems, methods and devices |
US9003025B2 (en) * | 2012-07-05 | 2015-04-07 | International Business Machines Corporation | User identification using multifaceted footprints |
US10089639B2 (en) * | 2013-01-23 | 2018-10-02 | [24]7.ai, Inc. | Method and apparatus for building a user profile, for personalization using interaction data, and for generating, identifying, and capturing user data across interactions using unique user identification |
US9015313B2 (en) * | 2013-03-14 | 2015-04-21 | Google Inc. | Providing actionable content to a computing device based on user actions |
EP2972867A4 (en) * | 2013-03-14 | 2017-03-01 | Bandura, LLC | Internet protocol threat prevention |
US9438615B2 (en) * | 2013-09-09 | 2016-09-06 | BitSight Technologies, Inc. | Security risk management |
US10187482B2 (en) * | 2014-05-21 | 2019-01-22 | Oath (Americas) Inc. | Systems and methods for matching online users across devices |
US10043035B2 (en) * | 2013-11-01 | 2018-08-07 | Anonos Inc. | Systems and methods for enhancing data protection by anonosizing structured and unstructured data and incorporating machine learning and artificial intelligence in classical and quantum computing environments |
GB2526152A (en) * | 2014-05-16 | 2015-11-18 | Vodafone Ip Licensing Ltd | Controlling a server |
US20160055546A1 (en) * | 2014-08-21 | 2016-02-25 | Oracle International Corporation | Managing progressive statistical ids |
US20180365710A1 (en) * | 2014-09-26 | 2018-12-20 | Bombora, Inc. | Website interest detector |
US20170364931A1 (en) * | 2014-09-26 | 2017-12-21 | Bombora, Inc. | Distributed model optimizer for content consumption |
US10091312B1 (en) * | 2014-10-14 | 2018-10-02 | The 41St Parameter, Inc. | Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups |
EP3213232A1 (en) * | 2014-10-30 | 2017-09-06 | Pearson Education, Inc. | Content database generation |
US9660880B2 (en) * | 2014-11-19 | 2017-05-23 | Adobe Systems Incorporated | Non-committal visitor stitching |
US10026097B2 (en) | 2015-02-18 | 2018-07-17 | Oath (Americas) Inc. | Systems and methods for inferring matches and logging-in of online users across devices |
US9838839B2 (en) * | 2015-06-05 | 2017-12-05 | Apple Inc. | Repackaging media content data with anonymous identifiers |
US10068027B2 (en) * | 2015-07-22 | 2018-09-04 | Google Llc | Systems and methods for selecting content based on linked devices |
US11182720B2 (en) * | 2016-02-16 | 2021-11-23 | BitSight Technologies, Inc. | Relationships among technology assets and services and the entities responsible for them |
US10496263B2 (en) * | 2017-01-03 | 2019-12-03 | Jpmorgan Chase Bank, N.A. | De-anonymization of website visitor identity |
US10984452B2 (en) * | 2017-07-13 | 2021-04-20 | International Business Machines Corporation | User/group servicing based on deep network analysis |
US10885090B2 (en) * | 2018-09-06 | 2021-01-05 | Verizon Media Inc. | Computerized system and method for interest profile generation and digital content dissemination based therefrom |
-
2018
- 2018-12-12 CN CN202110555240.8A patent/CN113515394A/zh active Pending
- 2018-12-12 CN CN201880082934.0A patent/CN111512288B/zh active Active
- 2018-12-12 PL PL18890683.8T patent/PL3729255T3/pl unknown
- 2018-12-12 JP JP2020542804A patent/JP7068478B2/ja active Active
- 2018-12-12 EP EP23199719.8A patent/EP4280144A3/en active Pending
- 2018-12-12 US US16/218,317 patent/US10536427B2/en active Active
- 2018-12-12 CA CA3085902A patent/CA3085902C/en active Active
- 2018-12-12 PT PT188906838T patent/PT3729255T/pt unknown
- 2018-12-12 EP EP18890683.8A patent/EP3729255B1/en active Active
- 2018-12-12 ES ES18890683T patent/ES2966525T3/es active Active
- 2018-12-12 WO PCT/US2018/065155 patent/WO2019125858A1/en unknown
- 2018-12-12 DK DK18890683.8T patent/DK3729255T3/da active
- 2018-12-12 FI FIEP18890683.8T patent/FI3729255T3/fi active
-
2020
- 2020-01-07 US US16/736,545 patent/US10873560B2/en active Active
- 2020-06-21 IL IL275549A patent/IL275549B/en active IP Right Grant
- 2020-12-18 US US17/127,624 patent/US11283761B2/en active Active
-
2021
- 2021-11-05 JP JP2021180904A patent/JP7105356B2/ja active Active
-
2022
- 2022-03-21 US US17/700,167 patent/US11588782B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
PT3729255T (pt) | 2024-01-03 |
EP3729255A4 (en) | 2021-01-13 |
IL275549A (en) | 2020-08-31 |
EP4280144A3 (en) | 2024-01-10 |
DK3729255T3 (da) | 2024-01-02 |
CN111512288A (zh) | 2020-08-07 |
US20210105249A1 (en) | 2021-04-08 |
CN111512288B (zh) | 2021-05-14 |
JP2022031685A (ja) | 2022-02-22 |
US11588782B2 (en) | 2023-02-21 |
WO2019125858A1 (en) | 2019-06-27 |
JP7068478B2 (ja) | 2022-05-16 |
EP3729255A1 (en) | 2020-10-28 |
PL3729255T3 (pl) | 2024-03-11 |
US10873560B2 (en) | 2020-12-22 |
CA3085902C (en) | 2021-02-16 |
EP4280144A2 (en) | 2023-11-22 |
US10536427B2 (en) | 2020-01-14 |
JP2021508897A (ja) | 2021-03-11 |
IL275549B (en) | 2021-03-25 |
US20220217115A1 (en) | 2022-07-07 |
US11283761B2 (en) | 2022-03-22 |
JP7105356B2 (ja) | 2022-07-22 |
CA3085902A1 (en) | 2019-06-27 |
US20190199677A1 (en) | 2019-06-27 |
US20200145368A1 (en) | 2020-05-07 |
EP3729255B1 (en) | 2023-09-27 |
CN113515394A (zh) | 2021-10-19 |
FI3729255T3 (fi) | 2023-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2966525T3 (es) | Mapeo de entidades a cuentas | |
US9924336B2 (en) | Location ranking using social graph information | |
US9959321B2 (en) | Ranking search results by social relevancy | |
US9439033B2 (en) | Systems and methods for using spatial and temporal analysis to associate data sources with mobile devices | |
US9553878B2 (en) | People directory with social privacy and contact association features | |
US20230180214A1 (en) | Mapping Entities to Accounts for De-Anonymization of Online Activity |