DE102017130229A1 - Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung - Google Patents

Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung Download PDF

Info

Publication number
DE102017130229A1
DE102017130229A1 DE102017130229.8A DE102017130229A DE102017130229A1 DE 102017130229 A1 DE102017130229 A1 DE 102017130229A1 DE 102017130229 A DE102017130229 A DE 102017130229A DE 102017130229 A1 DE102017130229 A1 DE 102017130229A1
Authority
DE
Germany
Prior art keywords
event
server
coordination
coordination server
mapping
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.)
Pending
Application number
DE102017130229.8A
Other languages
English (en)
Inventor
Ryan Elmquist
Lianxiao Qiu
Rahul Oak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE102017130229A1 publication Critical patent/DE102017130229A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/065Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving logical or physical relationship, e.g. grouping and hierarchies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Systeme und Verfahren, die verwendet werden können, um inhaltsnetzwerkübergreifende Ereigniszuordnung bereitzustellen, werden bereitgestellt. Ein Verfahren beinhaltet das Empfangen, durch einen Koordinationsserver, einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Geräten durchgeführt wird. Das Verfahren beinhaltet das Ermitteln, durch den Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist.

Description

  • HINTERGRUND
  • Der Datenaustausch zwischen mehreren Computersystemen, die durch mehrere verschiedene Parteien kontrolliert werden, kann zu komplexen Zeitschienen führen. Manche Anwendungen versuchen, Korrelationen zwischen Datenereignissen zu identifizieren, ohne in Besitz aller Ereignisdaten zu sein. Dies kann zu widersprüchlichen Ansichten des Ereignisverlaufs führen und eine Nichtzustimmung bezüglich der Zuordnung oder Auswirkung verursachen. Frühere Versuche, diese Nichtzustimmung zu beheben, erforderten übermäßigen Datenaustausch und waren im Allgemeinen mit zusätzlicher Netzwerknutzung verbunden, was unerwünschte Latenz und Verzögerung zum Datenaustausch hinzufügte.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Ein veranschaulichendes Verfahren für das Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung beinhaltet das Empfangen, durch einen ersten Koordinationsserver, einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über ein der mehrere Benutzergeräte durchgeführt wird. Das Verfahren beinhaltet das Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen einer Vielzahl von Bestätigungsmeldungen für mehrere Ereignisse, einschließlich des ersten Ereignisses. Das Verfahren beinhaltet ferner das Senden, durch den ersten Koordinationsserver, von Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist.
  • In einigen Implementierungen beinhaltet das Verfahren ferner das Empfangen, durch den ersten Koordinationsserver, einer Angabe der Zustimmung oder einer Angabe der Nichtzustimmung für die Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver.
  • In einigen Implementierungen beinhaltet das Verfahren ferner das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, wobei das Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne Zugreifen, durch den Zuordnungsserver, auf die mehreren Bestätigungsmeldungen durchgeführt wird.
  • In einigen Implementierungen beinhaltet das Verfahren das Empfangen, durch den Zuordnungsserver, einer Benachrichtigung des zweiten Ereignisses und das Senden, durch den Zuordnungsserver, der Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver. In einigen Implementierungen beinhaltet das Verfahren das Empfangen, durch den Zuordnungsserver, der Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver und das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, auf Basis der Daten, die das erste Ereignis beschreiben. In einigen Implementierungen beinhaltet das Verfahren das Senden, durch den Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist, und das Senden der Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
  • In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses beinhalten.
  • In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen der mehreren Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln.
  • In einigen Implementierungen beinhaltet das Verfahren das Durchsuchen der mehreren Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, durch Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist.
  • In einigen Implementierungen beinhaltet das Verfahren das Senden, durch den Zuordnungsserver, der Ereigniszuordnungsanfrage für das zweite Ereignis zu einem zweiten Koordinationsserver und das Empfangen, durch den Zuordnungsserver, von Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver. In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem zweiten Koordinationsserver verbunden ist, auf Basis der Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist. In einigen Implementierungen beinhaltet das Verfahren das Senden, durch den Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, und das Senden, durch den Zuordnungsserver, der Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist.
  • In einigen Implementierungen beinhaltet das Verfahren das Aktualisieren, durch den ersten Koordinationsserver, der Zuordnungsmetriken des ersten Koordinationsservers, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver. In einigen Implementierungen beinhaltet das Verfahren das Aktualisieren, durch den zweiten Koordinationsserver, der Zuordnungsmetriken des zweiten Koordinationsservers, um anzugeben, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Nichtzustimmung vom Zuordnungsserver.
  • In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis Ereignissen zuordenbar ist, die mit den Daten verbunden sind, die das Ereignis beschreiben, das mit dem zweiten Zuordnungsserver verbunden ist, durch Ermitteln, ob ein Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem zweiten Koordinationsserver verbunden ist, zeitlich einem Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den Zeitstempel beinhalten, der mit dem Ereignis verbunden ist, der mit dem zweiten Koordinationsserver verbunden ist.
  • Ein veranschaulichendes System für das Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung beinhaltet einen ersten Koordinationsserver, der eine Verarbeitungsschaltung beinhaltet. Die Verarbeitungsschaltung ist konfiguriert, eine Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver zu empfangen, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines von mehreren Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über ein der mehrere Benutzergeräte durchgeführt wird. Die Verarbeitungsschaltung ist konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, indem sie mehrere Bestätigungsmeldungen für mehrere Ereignisse zu durchsuchen, die das erste Ereignis beinhalten, und Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver zu senden in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist. Ferner ist die Verarbeitungsschaltung so konfiguriert, dass sie eine Angabe der Zustimmung oder einer Angabe der Nichtzustimmung zu der Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver empfängt.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen der mehreren Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, die mehreren Bestätigungsmeldungen mit einer Kennung zu durchsuchen, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, durch Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, Zuordnungsmetriken des ersten Koordinationsservers zu aktualisieren, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver.
  • Ein weiteres veranschaulichendes System für das Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung beinhaltet einen Zuordnungsserver, der eine Verarbeitungsschaltung beinhaltet. Die Verarbeitungsschaltung ist konfiguriert, eine Benachrichtigung eines zweites Ereignisses zu empfangen, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines der mehreren Benutzergeräte nach einem ersten Ereignis durchgeführt wird, das mit einem ersten Koordinationsserver verbunden ist, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der mehreren Benutzergeräte durchgeführt wird. Die Verarbeitungsschaltung ist konfiguriert, eine Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver zu senden. In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver zu empfangen, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, und eine Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln zu senden, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist. Die Verarbeitungsschaltung ist konfiguriert, eine Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln zu senden, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne dass der Zuordnungsserver auf mehrere Bestätigungsmeldungen zugreift, die durch den ersten Koordinationsserver gespeichert werden, wobei die Koordinationsmeldungen Informationen über Ereignisse beinhalten, die mit dem ersten Koordinationsserver verbunden sind, einschließlich dem ersten Ereignis.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses beinhalten.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, die Ereigniszuordnungsanfrage für das zweite Ereignis zu einem zweiten Koordinationsserver zu senden und Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver zu empfangen. Das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, kann eine andere Online-Aktivität sein, die durch den Benutzer über eines der mehreren Benutzergeräte vor dem zweiten Ereignis durchgeführt wird. Die Verarbeitungsschaltung kann konfiguriert sein, zu ermitteln, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem zweiten Koordinationsserver verbunden ist, und die Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln zu senden, dass das mit dem zweiten Koordinationsserver verbundene Ereignis dem zweiten Ereignis nicht zuordenbar ist.
  • In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob ein erster Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein dritter Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem Koordinationsserver verbunden ist, zeitlich einem zweiten Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den dritten Zeitstempel beinhalten.
  • In einigen Implementierungen veranlassen die Angabe der Zustimmung und die Angabe der Nichtzustimmung den ersten Koordinationsserver, Zuordnungsmetriken des ersten Koordinationsserver so zu aktualisieren, dass sie angeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist oder nicht zuordenbar ist.
  • Nachfolgend finden sich ausführlichere Beschreibungen verschiedener Konzepte, die sich auf Verfahren, Vorrichtungen und Systeme und deren Implementierungen beziehen. Die verschiedenen Konzepte, die vorstehend vorgestellt wurden und nachstehend ausführlicher erörtert werden, können in vielfältiger Weise implementiert werden, da die beschriebenen Konzepte nicht auf eine bestimmte Art und Weise der Implementierung beschränkt sind.
  • Figurenliste
  • Die oben genannten und damit zusammenhängende Objekte, Funktionen und Vorteile dieser vorliegenden Offenbarung werden durch Bezugnahme auf die folgende detaillierte Beschreibung in Verbindung mit den begleitenden Figuren besser verständlich, wobei gilt:
    • 1A zeigt ein Blockdiagramm, das Server veranschaulicht, die netzwerkübergreifende Ereigniszuordnung durchführen können, gemäß einer veranschaulichenden Implementierung;
    • 1B zeigt ein Blockdiagramm, das ein exemplarisches Computergerät veranschaulicht, das für die Verwendung in den verschiedenen hierin beschriebenen Implementierungen geeignet ist, gemäß einer veranschaulichenden Implementierung;
    • 2 zeigt ein Ablaufdiagramm für ein Verfahren korrelierender Ereignisse für die Zuordnung zu Servern von 1A, gemäß einer veranschaulichenden Implementierung;
    • 3 zeigt ein Ablaufdiagramm für ein Verfahren der Bestätigung der Zuordnung eines zweiten Ereignisses zu einem Vorgängerereignis mit den Servern von 1A, gemäß einer veranschaulichenden Implementierung;
    • 4 zeigt ein Ablaufdiagramm für ein Verfahren für das Zuordnen von Ereignissen mehrerer Koordinationsserver, gemäß einer veranschaulichenden Implementierung.
  • Zur Vereinfachung sind in den jeweiligen Figuren ggf. nicht alle Komponenten beschriftet. Die Zeichnungen sollen nicht maßstabsgetreu sein. Ähnliche Referenznummern und Kennzeichnungen in den verschiedenen Figuren weisen auf ähnliche Elemente hin.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Allgemein bezugnehmend auf die FIGUREN werden verschiedene veranschaulichende Systeme und Verfahren für das Ermitteln der Zuordnung zwischen Ereignissen, die über verschiedene Inhaltsnetzwerke erfolgen, gemäß verschiedenen Implementierungen dargestellt. Wie hierin beschrieben, können ein Zuordnungsserver und einer oder mehrere Koordinationsserver konfiguriert sein, die Zuordnung verschiedener Ereignisse durchzuführen. Die Ereignisse können Online-Interaktionen sein, die ein Benutzer mit Online-Ressourcen über verschiedene Benutzergeräte durchführen kann. Die hierin beschriebenen Systeme und Verfahren können die effiziente Echtzeitzuordnung von Ereignissen mit verbesserter Datensicherheit erreichen.
  • Der Zuordnungsserver, wie hierin beschrieben, kann ein Server sein, der konfiguriert ist, die Zuordnung zwischen verschiedenen Online-Aktivitäten durchzuführen, die ein Benutzer durchführen kann. Die Koordinationsserver können ein Server sein, der konfiguriert ist, Angaben der Online-Aktivität des Benutzers zu empfangen, die Online-Aktivität des Benutzers zu speichern und mit dem Zuordnungsserver zu kommunizieren, um die Zuordnung zwischen Aktivitäten zu ermitteln. Wenn ein Inhaltsanbieter mehrere Koordinationsserver verwendet (z. B. ein Inhaltsanbieter stellt Inhalte über mehrere Online-Inhalt-Verteilungsnetzwerke bereit), kann ein Benutzer mit den Inhaltselementen der Koordinationsserver interagieren, bevor er eine Konversion durchführt. Jeder Koordinationsserver kann die Konversion zu Ereignissen zuordnen, die mit den jeweiligen Koordinationsservern verbunden sind. Dies kann jedoch ein Fehler sein, da nur ein Ereignis von einem der Koordinationsserver die Zuordnung für eine Konversion empfangen sollte, nicht beide, da nur eine Konversion erfolgt ist. Diesbezüglich kann der Zuordnungsserver konfiguriert sein, die Duplizierung der Konversionszuordnung über die hierin näher beschriebenen Systeme und Verfahren zu korrigieren.
  • In einigen der hierin beschriebenen Systeme wird auf ein erstes Ereignis und ein zweites Ereignis Bezug genommen. Das erste Ereignis kann eine Online-Aktivität sein, wie z. B. eine Interaktion mit einem Inhaltselement, das über ein Online-Inhalt-Verteilungsnetzwerk bereitgestellt wird (z. B. durch Anzeigen und/oder Durchklicken einer Inhaltselement-Impression), die von einem Benutzer über ein Benutzergerät durchgeführt werden kann, z. B. ein Mobiltelefon oder eine Personalcomputer. Der Koordinationsserver kann Daten für das erste Ereignis oder jedwede Anzahl von Ereignissen, die dem ersten Ereignis ähnlich sind, empfangen und speichern. Ein nachfolgendes Ereignis, hierin gemäß einigen Implementierungen als zweites Ereignis bezeichnet, kann eine andere Benutzeraktivität sein, die durch den Benutzer mit einem Benutzergerät durchgeführt wird, die nach dem ersten Ereignis erfolgt. In einigen Implementierungen ist das zweite Ereignis eine Konversion. Eine Konversion kann das Herunterladen und/oder Installieren einer Benutzeranwendung, Durchführen eines Kaufs einer Ware und/oder Dienstleistung, Ansehen eines Videos, Abonnieren eines Servers usw. beinhalten. Über die hierin beschriebenen Verfahren kann die Zuordnung zwischen den ersten und zweiten Ereignissen ermittelt werden.
  • Datensicherheit kann durch die hierin beschriebenen Systeme und Verfahren durch Beschränkungen verbessert werden, die bei Daten auferlegt werden, die zwischen dem Koordinationsserver und dem Zuordnungsserver ausgetauscht werden. Um die Ereigniszuordnung zu ermitteln, kann zum Beispiel die gesamte Online-Aktivität eines Benutzers durch den Zuordnungsserver zusammengestellt und die Zuordnung zwischen Ereignissen durch den Zuordnungsserver auf Basis des aggregierten Datensatzes ermittelt werden. Das Aggregieren der Ereignisdaten kann für den Datenschutz unerwünscht sein. Stattdessen können die hierin beschriebenen Koordinationsserver dem Zuordnungsserver nur ausreichende Informationen über das erste Ereignis bereitstellen, sodass der Zuordnungsserver die Zuordnung bestätigen oder ablehnen kann, ohne Daten in Verbindung mit allen Ereignissen des Benutzers von einem Koordinationsserver zu erhalten, oder sogar ohne alle Informationen über das erste Ereignis vom Koordinationsserver zu erhalten. Außerdem wird Netzwerkbandbreite gespart, indem der Austausch zuordenbarer Ereignisse über die beschränkte Kommunikation zwischen Zuordnungsserver und dem Koordinationsserver beschränkt wird, statt große Sätze von Benutzerereignisdaten zu übermitteln.
  • Im Allgemeinen können die hierin beschriebenen Verfahren das Empfangen, durch den Koordinationsserver, von Daten für das erste Ereignis und eine Anfrage für die Zuordnung eines zweiten Ereignisses, das nach dem ersten Ereignis erfolgt, vom Zuordnungsserver beinhalten. In Reaktion auf das Empfangen der Anfrage für die Zuordnung des zweiten Ereignisses kann der Koordinationsserver das erste Ereignis durch Durchführen einer Suche bei gespeicherten Ereignisdaten durchführen. Die gespeicherten Ereignisdaten können jedwede Anzahl von Benutzerereignissen sowie Daten beinhalten, die sich auf das erste Ereignis beziehen.
  • Der Koordinationsserver kann ein zuordenbares Ereignis aus dem gespeicherten Ereignis (dem ersten Ereignis) identifizieren. Der Koordinationsserver kann eine Beschreibung des ersten Ereignisses an den Zuordnungsserver zurückgeben. In einigen Implementierungen identifizieren die mehreren Koordinationsserver zuordenbare Ereignisse und stellen dem Zuordnungsserver die zuordenbaren Ereignisse bereit. Der Zuordnungsserver kann die Zuordnungen, die von den Koordinationsservern vorgeschlagen werden, auf Basis der Beschreibungen der Ereignisse entweder bestätigen oder ablehnen. Der Zuordnungsserver kann eine Angabe der Zustimmung oder Nichtzustimmung an jeden der Koordinationsserver senden.
  • In einigen hierin beschriebenen Implementierungen können mehrere Koordinationsserver Angaben von Online-Benutzeraktivitäten über verschiedene Inhaltsnetzwerke empfangen. Ein Inhaltsanbieter, der Inhaltselemente für einen Benutzer über zwei verschiedene Inhaltsnetzwerke bereitstellt, kann wissen wollen, wie ein Benutzer mit seinen Inhaltselementen über beide Inhaltselemente interagiert. Ein erster Koordinationsserver kann Angaben der Benutzeraktivität mit Inhaltselementen empfangen, die mit dem ersten Inhaltsnetzwerk verbunden sind, während ein zweiter Koordinationsserver Angaben der Benutzeraktivität mit Inhaltselementen empfangen kann, die mit dem zweiten Inhaltsnetzwerk verbunden sind.
  • Der Zuordnungsserver kann von einem zweiten Ereignis Kenntnis erlangen, das vom Benutzer durchgeführt wird. Dieses Ereignis kann eine Konversion sein, die ein Benutzer nach Anzeigen von oder Interagieren mit Inhalt des ersten Inhaltsnetzwerks und Inhalt des zweiten Netzwerks hält. Beide Koordinationsserver können ermitteln, dass sie die Konversion verursacht haben, und können Konversionsmetriken in ihren jeweiligen Benutzeroberflächen anzeigen, die die Konversion berücksichtigen. Da jedoch nur eine Konversion erfolgt ist, sind die von den Koordinationsservern gemeldeten Konversionen Duplikate und sollten tatsächlich nur einem Ereignis zugeordnet werden, das mit einem der Koordinationsserver verbunden ist.
  • Um diese Duplizierung zu korrigieren, kann der Zuordnungsserver Anfragen für die Zuordnung zu den zwei Koordinationsservern senden und im Gegenzug potenziell zuordenbare Ereignisse von den Koordinationsservern empfangen. Auf Basis dieser potenziell zuordenbaren Ereignisse kann der Zuordnungsserver ermitteln, ob das Konversionsereignis der mit dem ersten Koordinationsserver verbundenen Online-Benutzeraktivität oder der mit dem zweiten Koordinationsserver verbundenen Online-Benutzeraktivität zuordenbar ist. In einigen Implementierungen senden der erste und der zweite Koordinationsserver Informationen bezüglich der jeweiligen Online-Benutzerinteraktionen an den Zuordnungsserver. Diese Informationen können die Zeitstempel beinhalten, zu denen die Interaktionen erfolgt sind. Der Zuordnungsserver kann auf Basis der Zeitstempel nur eine der Online-Benutzeraktionen als der Konversion zuordenbar auswählen. Der Zuordnungsserver kann nur das Ereignis, das zeitlich am nächsten erfolgt, einem Zeitstempel der Konversion zuordnen.
  • Der Zuordnungsserver kann eine Bestätigung oder eine Zurückweisung der Zuordnung an den ersten und zweiten Koordinationsserver senden. Wenn der Zuordnungsserver zum Beispiel ermittelt, dass die Online-Ereignisaktivität, die vom ersten Koordinationsserver durchgeführt wird, die Zuordnung empfangen sollte, kann der Zuordnungsserver eine Benachrichtigung der Zuordnung an den Koordinationsserver und eine Benachrichtigung der Nicht-Zuordnung an den zweiten Koordinationsserver senden. Diesbezüglich können beide Koordinationsserver die Datenmetriken, die sie speichern und/oder einem Benutzer präsentieren, genauer aktualisieren. Der erste Koordinationsserver kann in Reaktion auf das Empfangen einer Benachrichtigung der Zuordnung vom Zuordnungsserver ermitteln (oder behaupten), dass die Benutzerinteraktion, die mit dem Koordinationsserver verbunden ist, der Konversion zuordenbar ist. Der zweite Koordinationsserver kann jedoch auf Basis der Angabe der Nicht-Zuordnung ermitteln, dass die Benutzerinteraktion, die mit dem zweiten Koordinationsserver verbunden ist, nicht als die Konversion veranlassend gezählt wird.
  • In einigen Ausführungsformen kann jeder Koordinationsserver ein Dashboard beinhalten, das es dem Inhaltsanbieter ermöglicht, Metriken anzuzeigen, die mit der Benutzeraktivität verbunden sind. Jedes Dashboard kann es einem Inhaltsanbieter ermöglichen, die Deduplizierung von Ereignissen über die hierin beschriebenen Systeme und Verfahren für die netzwerkübergreifende Ereigniszuordnung zu aktivieren oder zu deaktivieren. Ähnlich kann der Zuordnungsserver ein Dashboard beinhalten, das es einem Inhaltsanbieter ermöglicht, Metriken anzuzeigen, die mit der Benutzeraktivität verbunden sind, wobei die Benutzeraktivität, mit einem oder mehreren Koordinationsservern verbunden ist. Diesbezüglich können die Koordinationsserver Dashboards beinhalten, die Benutzeraktivität melden, die von jedem jeweiligen Koordinationsserver empfangen wird. Die Aktivierung von Deduplizierung kann den Koordinationsserver veranlassen, am Zuordnungsverfahren teilzunehmen, das durch den Zuordnungsserver ermöglicht wird. Die Deaktivierung der Deduplizierung kann den Koordinationsserver veranlassen, jegliche Anfragen oder Benachrichtigungen zu ignorieren, die vom Zuordnungsserver empfangen werden.
  • Für Situationen, in denen die hier erörterten Systeme Informationen über Benutzer sammeln oder Informationen über Benutzer nutzen können, wird den Benutzern ggf. die Möglichkeit gegeben, zu steuern, ob Programme oder Funktionen Benutzerinformationen sammeln (z. B. Informationen über die sozialen Netzwerkdaten eines Benutzers, soziale Aktionen oder Aktivitäten, Beruf, die Vorlieben eines Benutzers oder einen aktuellen Standort eines Benutzers), oder zu steuern, ob oder wie Inhalte vom Inhaltsserver empfangen werden, die für den Benutzer relevanter sein können. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, sodass bestimmte Informationen über den Benutzer entfernt werden. So kann beispielsweise die Identität eines Benutzers so behandelt werden, dass sich für den Benutzer keine identifizierenden Informationen ermitteln lassen, oder ein geografischer Standort eines Benutzers kann beim Empfangen von Standortinformationen verallgemeinert werden (beispielsweise auf eine Stadt, eine Postleitzahl oder ein Bundesland), sodass sich ein genauer Standort eines Benutzers nicht ermitteln lässt. Auf diese Weise kann der Benutzer die Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und von einem Inhaltsserver verwendet werden.
  • Wie hier unter Bezugnahme auf 1A ersichtlich, wird ein Blockdiagramm dargestellt, das eine exemplarische Computerumgebung 100 für das Durchführen der Ereigniszuordnung veranschaulicht, gemäß einer veranschaulichenden Implementierung. Die Computerumgebung 100 ist so dargestellt, dass sie ein Netzwerk 110 (z. B. das Internet) beinhaltet, über das das Client-Gerät 120 konfiguriert werden kann, um mit anderen über das Netzwerk verbundenen Computersystemen, wie z. B. Servern, die Ressourcen für die Client-Geräte 120 bereitstellen, zu kommunizieren. Bei den Ressourcen kann es sich um E-Mails, Webseiten, Streaming von Medien und Anwendungsunterstützung handeln.
  • 1A ist so dargestellt, dass sie einen Anwendungs-Backend-Server 130, einen Ereignisserver 140, einen Zuordnungsserver 150 und einen Koordinationsserver 160 beinhaltet. Die Server können über das Netzwerk 110, über ein getrenntes privates Netzwerk oder Backplane (nicht dargestellt) oder über direkte Verknüpfungen kommunizieren. Die Server können von unabhängigen Parteien betrieben werden, sie können von denselben Parteien betrieben werden und/oder sie können konsolidiert sein. Einige Server können Daten für die Verwendung bei der Funktionalität des Servers verwalten, z. B. ist Koordinationsserver 160 in Kommunikation mit Datenspeicher 190 dargestellt.
  • Die Client-Geräte 120, der Anwendungs-Backend-Server 130, der Ereignisserver 140, der Zuordnungsserver 150 und/oder der Koordinationsserver 160 können konfiguriert sein, verschiedene Verfahren (z. B. die Verfahren wie in Bezug auf 2-3 beschrieben) über eine oder mehrere Verarbeitungsschaltungen durchzuführen. 1B stellt, wie hierin unter weiterer Bezugnahme beschrieben, ein Blockdiagramm bereit, das ein exemplarisches Computergerät 101 mit einer Verarbeitungsschaltung (z. B. einem Prozessor und Speicher) veranschaulicht, das für die Verwendung als Client-Gerät 120 und/oder für die Konfiguration als Anwendungs-Backend-Server 130, Ereignisserver 140, Zuordnungsserver 150 und/oder Koordinationsserver 160 geeignet ist, wie in Bezug auf 1A und an anderen Stellen hierin näher beschrieben. 1B veranschaulicht außerdem das Netzwerk 110, das die Kommunikation zwischen verschiedenen Knoten ermöglicht, z. B. die Kommunikation zwischen den Client-Geräten 120 und Servern, wie z. B. dem Anwendungs-Backend-Server 130 und/oder dem Ereignisserver 140.
  • Wie unter weiterer Bezugnahme auf 1A ersichtlich, können die Client-Geräte 120 ein Computersystem oder prozessorbasiertes Gerät beinhalten, das, wie dargestellt, Anwendungen ausführt, Ausgaben für Benutzer präsentiert und Eingaben vom Benutzer empfängt. Das Client-Gerät 120 kann jedwede Art von Computergerät beinhalten, wie zum Beispiel Desktopcomputer, Laptops oder Notepads, Mobilgeräte wie Tablets oder elektronische Pads, persönliche digitale Assistenten oder Smartphones, Videospielgeräte, Fernseher oder Fernsehzusatzgeräte (auch „Set-Top Box“ genannt), einen Kiosk, gehostete virtuelle Desktops oder beliebige andere Geräte dieser Art, die in der Lage sind, Informationen über das Netzwerk 110 auszutauschen. Das Client-Gerät 120 kann konfiguriert sein, Informationen mit anderen Computergeräten von 1A über das Netzwerk 110 auszutauschen.
  • Das Client-Gerät 120 kann zum Beispiel konfiguriert sein, Informationen über das Netzwerk 110 mithilfe von Protokollen gemäß den Open Systems Interconnection (OSI)-Schichten auszutauschen, z. B. mithilfe eines OSI Schicht-4-Transportprotokolls, wie z. B. das User Datagram Protocol (UDP), das Transmission Control Protocol (TCP) oder das Stream Control Transmission Protocol (SCTP), das über ein OSI Schicht-3-Netzwerkprotokoll wie das Internet Protocol (IP), z. B. IPv4 oder IPv6, geschichtet wird. In einigen Implementierungen beinhaltet das Client-Gerät 120 ein oder mehrere Hardware-Elemente, die die Dateneingabe und Datenpräsentation ermöglichen, z. B. eine Tastatur, eine Anzeige, einen Berührungsbildschirm, ein Mikrofon, einen Lautsprecher und/oder ein haptisches Rückmeldegerät. In einigen Implementierungen beinhaltet das Client-Gerät 120 Tasten, z. B. funktionsspezifische Tasten (z. B. Audiogerät-Lautstärkeregler für Lauter-, Leiser- und Stummschalten usw.) und/oder funktionsagnostische Tasten (z. B. Softtasten, denen spezifische Funktionalität auf Softwareebene zugewiesen werden kann). In einigen Implementierungen beinhaltet das Client-Gerät 120 einen oder mehrere Sensoren, die in der Lage sind, die Bewegung des Client-Geräts 120 selbst zu erkennen, z. B. einen Beschleunigungssensor, ein Gyroskop und/oder einen Kippsensor.
  • Ein Beschleunigungssensor kann einachsig oder mehrachsig aufgebaut sein. In einigen Implementierungen beinhaltet das Client-Gerät 120 eine Inertialmesseinheit (IMU). In einigen Implementierungen wird das Client-Gerät 120 mithilfe von Spezial-Logikschaltungen implementiert, z. B. mithilfe einer anwenderspezifisch integrierten ASIC-Schaltung. In einigen Implementierungen wird das Client-Gerät 120 mithilfe eines „System on a Chip“ (SoC)-Halbleitergeräts implementiert, das mindestens einen Prozessor- (oder Mikroprozessor-)kern beinhaltet. In einigen Implementierungen wird das Client-Gerät 120 unter Verwendung eines Universalprozessors implementiert. 1B veranschaulicht ein Computergerät 101, das sich in einigen Konfigurationen für die Verwendung als Client-Gerät 120 eignet.
  • In einigen Implementierungen führt das Endgerät 120 ein Betriebssystem aus, das die Ausführung von Softwareanwendungen auf dem Client-Gerät 120 verwaltet. In einigen Implementierungen wird das Betriebssystem mit dem Client-Gerät 120 geliefert. In einigen Implementierungen führt das Client-Gerät 120 eine Browseranwendung aus (z. B. einen Webbrowser), der in der Lage ist, Daten zu empfangen, die gemäß Hypertext-Anwendungsprotokollen formatiert sind, wie z. B. dem Hypertext Transfer Protocol (HTTP) und/oder Transport Layer Security-verschlüsseltes HTTP (HTTPS).
  • In einigen Implementierungen ermöglicht der Browser die Interaktion mit einem oder mehreren Servern über Schnittstellen, die auf dem Client-Gerät 120 in der Form von einer oder mehreren Webseiten präsentiert werden. In einigen Implementierungen wird die Browseranwendung zusammen mit dem Client-Gerät 120 geliefert. In einigen Implementierungen führt das Client-Gerät 120 eine benutzerdefinierte Anwendung aus, z. B. ein Spiel oder eine andere Anwendung, die mit Servern interagiert, z. B. einem Anwendungs-Backend-Server 130. Interaktionen zwischen der benutzerdefinierten Anwendung und dem Anwendungs-Backend-Server können Standardprotokolle wie HTTP und HTTPS verwenden, oder sie können anwendungsspezifische Protokolle verwenden, z. B. ein benutzerdefiniertes Protokoll auf der Anwendungsschicht, das über einem Protokoll auf der Transportschicht, wie z. B. UDP, TCP oder SCTP, implementiert wird. In einigen Implementierungen beinhaltet das Client-Gerät 120 ein Tool für das Erhalten und/oder Installieren zusätzlicher Anwendungen (wie z. B. der benutzerdefinierten Anwendung) auf dem Client-Gerät 120. In einigen Implementierungen wird ein benutzerdefiniertes Anweisungsset, z. B. eine Anwendungsprogrammierschnittstelle (API), durch einen oder mehrere Server unterstützt, die mit dem Client-Gerät 120 kommunizieren, und die API wird von der auf dem Client-Gerät 120 ausgeführten benutzerdefinierten Anwendung implementiert. Eine Anwendung kann eine API z. B. mithilfe einer Bibliothek/eines Software Development Kits (SDK) implementieren, die/das vom Entwickler der Anwendung bereitgestellt wird.
  • Das Client-Gerät 120 kann konfiguriert sein, mit verschiedenen Servern, wie z. B. dem Anwendungs-Backend-Server 130 und/oder dem Ereignisserver 140, zu kommunizieren (Daten auszutauschen). In einigen Implementierungen werden der eine oder die mehreren Server 130, 140, 150 und 160 mithilfe einer Spezial-Logikschaltung implementiert, z. B. einer anwenderspezifisch integrierten Schaltung (ASIC). In einigen Implementierungen werden der eine oder die mehreren Server 130, 140, 150 und 160 mithilfe eines „System on a Chip“ (SoC)-Halbleitergeräts implementiert, das mindestens einen Prozessor- (oder Mikroprozessor-)kern beinhaltet. In einigen Implementierungen werden der eine oder die mehreren Server 130, 140, 150 und 160 mithilfe eines Universalprozessors implementiert. 1B veranschaulicht ein Computergerät, das in einigen Konfigurationen für die Verwendung als der Anwendungs-Backend-Server 130, der Ereignisserver 140, der Zuordnungsserver 150 und/oder der Koordinationsserver 160 geeignet ist.
  • In 1A kann der Anwendungs-Backend-Server 130 Backend-Unterstützung für eine Anwendung bereitstellen, die auf dem Client-Gerät 120 ausgeführt wird. In einigen Implementierungen führt der Anwendungs-Backend-Server 130 einen Dienst aus, der Daten vom Client-Gerät 120 empfängt und Daten an das Client-Gerät 120 sendet. Die Anwendung, die auf dem Client-Gerät 120 ausgeführt wird, kann zum Beispiel ein Browser sein, z. B. ein Webbrowser, der Inhalte präsentiert, die vom Anwendungs-Backend-Server 130 bereitgestellt werden. Die Anwendung, die auf dem Client-Gerät 120 ausgeführt wird, kann ein Spiel sein, z. B. ein Spiel für mehrere Spieler, bei dem Spieldaten für die verschiedenen Spieler durch den Anwendungs-Backend-Server 130 gespeichert werden.
  • Die Anwendung, die auf dem Client-Gerät 120 ausgeführt wird, kann ein Transaktionsmoderator sein, z. B. eine Eintrittskarten- oder Fahrschein-Verwaltungsanwendung, ein Gutscheinabwickler oder ein Zahlungsbearbeiter, wobei einige Daten der Transaktion durch den Anwendungs-Backend-Server 130 gespeichert oder authentifiziert werden können, wobei die Anwendung, die auf dem Client-Gerät 120 ausgeführt wird, ein Dienstprogramm sein kann, wobei einige Funktionen der Anwendung durch den Anwendungs-Backend-Server 130 oder eine beliebige Art von Client-Anwendung bereitgestellt werden, der/die einen Backend-Server 130 zur Unterstützung verwendet. In einigen Implementierungen ermöglicht das Speichern der Daten entfernt vom Client-Gerät 120 die asynchrone Interaktion zwischen mehreren Benutzern oder Client-Geräten, ermöglicht die Wiederherstellung bei einem Ausfall des Client-Geräts 120 und stellt eine Schnittstelle zur Welt über das Netzwerk hinaus bereit.
  • Der Ereignisserver 140 kann, wie der Anwendungs-Backend-Server 130, serverseitige Funktionalität für eine Anwendung bereitstellen, die auf dem Client-Gerät 120 ausgeführt wird. Die Anwendung, die auf dem Client-Gerät 120 ausgeführt wird, kann konfiguriert sein, Anfragen oder Ereignisbenachrichtigungen zu erzeugen und an den Anwendungs-Backend-Server 130 und/oder einen Ereignisserver 140 zu senden. Die Anwendung kann zum Beispiel spezifische Daten vom Anwendungs-Backend-Server 130 anfordern oder den Ereignisserver 140 über eine Zustandsänderung am Client-Gerät 120 benachrichtigen. In einigen Implementierungen sind der Anwendungs-Backend-Server 130 und der Ereignisserver 140 derselbe Server oder werden von derselben Partei betrieben oder verwaltet, z. B. im selben autonomen System (AS)-Netzwerk.
  • In einigen Implementierungen sind der Anwendungs-Backend-Server 130 und der Ereignisserver 140 getrennte Server und werden, in einigen Implementierungen, von verschiedenen Parteien betrieben oder verwaltet. Das heißt, in einigen Implementierungen kann der Ereignisserver 140 von einer dritten Partei kontrolliert werden. In einigen Implementierungen kann die Anwendung, die auf dem Client-Gerät 120 ausgeführt wird, konfiguriert sein, Ereignisbenachrichtigungen zu erzeugen und an den Ereignisserver 140 zu senden für Ereignisse, wie z. B. eine Erstinstallation der Anwendung auf dem Client-Gerät 120, ein Startereignis für die Anwendung auf dem Client-Gerät 120, ein Benutzerinteraktionsereignis, wie z. B. ein Auswahlereignis auf dem Client-Gerät 120, Einlösungsereignisse, wobei die Anwendung eine begrenzte Ressource verbraucht hat (z. B. kann eine Ticketanwendung den Ereignisserver benachrichtigen, dass das Ticket für den Erhalt des Zugangs zu einer Veranstaltung oder einer Fahrt verwendet wurde), Fehlerereignisse, wie z. B. ein Anwendungsfehler am Client-Gerät 120 und so weiter. In einigen Implementierungen kann der Anwendungs-Backend-Server 130 konfiguriert sein, zu ermitteln, dass ein Ereignis erfolgt ist, und die Benachrichtigung dem Ereignisserver 140 bereitstellt. Das Client-Gerät 120 kann zum Beispiel den Backend-Server 130 benachrichtigen, der wiederum den Ereignisserver 140 benachrichtigt.
  • Der Zuordnungsserver 150 kann ein Computersystem sein, das Daten für das Korrelieren von Ereignissen und Identifizieren der Zuordnung verwaltet. Der Zuordnungsserver 150 kann konfiguriert sein, mit dem Koordinationsserver 160 zu interagieren, um Koordinationsereignisse zu identifizieren, die für Ereignisse zuordenbar sind, die durch den Ereignisserver 140 behandelt werden. In einigen Implementierungen kann der Ereignisserver 140 konfiguriert sein, mit dem Zuordnungsserver 150 zu interagieren, um Ereignissequenzen zu ermitteln, die der Zuordnung entsprechen. In einigen Implementierungen sind der Ereignisserver 140 und der Zuordnungsserver 150 derselbe Server oder werden von derselben Partei betrieben oder verwaltet, z. B. im selben autonomen System (AS)-Netzwerk. In einigen Implementierungen sind der Ereignisserver 150 und der Anwendungs-Backend-Server 140 getrennte Server und werden, in einigen Implementierungen, von verschiedenen Parteien betrieben oder verwaltet. Das heißt, in einigen Implementierungen kann der Zuordnungsserver 150 von einer Drittpartei kontrolliert werden.
  • Der Koordinationsserver 160 kann ein Computersystem sein, das für das Koordinieren von Ereignissen konfiguriert ist. In einigen Implementierungen sendet der Koordinationsserver 160 Koordinationsmeldungen an das Client-Gerät 120 und empfängt Angaben von Antworten auf die Koordinationsmeldungen. Die Koordinationsmeldungen können zum Beispiel Einladungen sein, eine Aktion durchzuführen (z. B. eine Anwendung zu installieren, auf eine Webseite zuzugreifen oder einen Kauf zu tätigen), und die Antwort kann ein Ergebnis angeben (z. B. Ausführung der installierten Anwendung, eine Anfrage, auf die Webseite zuzugreifen, oder eine Kauftransaktion). Ereignisse können eine Sequenz bilden, die in einem Folge-Ereignis kulminiert (z. B. Installation einer Anwendung), und der Zuordnungsserver 150 identifiziert Verbindungen zwischen Ereignissen, um ein oder mehrere Ereignisse für die Zuordnung in der Sequenz zu identifizieren, die mit dem Folge-Ereignis kulminiert. In einigen Implementierungen identifiziert der Zuordnungsserver 150 ein vorletztes Ereignis für die Zuordnung als direkt zum Folge-Ereignis führend. In manchen Fällen kann die Koordinationsmeldung zu einer Reihe von Ereignissen führen, an denen der Koordinationsserver 160 nicht beteiligt ist.
  • Die Koordinationsmeldung kann zum Beispiel ein Client-Gerät 120 mit einer Anwendungsinstallationsschnittstelle verbinden; der Koordinationsserver 160 kann eine Antwort empfangen, die angibt, dass das Client-Gerät 120 auf die Anwendungsinstallationsschnittstelle zugegriffen hat, aber möglicherweise keine weiteren Informationen dahingehend empfangen, ob eine Anwendung auf dem Client-Gerät 120 von der Anwendungsinstallationsschnittstelle installiert wurde. Wenn die Anwendung später auf dem Client-Gerät 120 installiert wird, kann es sein, dass das Installationsereignis der Einladung zuordenbar ist, oder es kann sein, dass ein dazwischenliegendes Ereignis (z. B. eine Einladung, die von einem anderen Koordinationsserver stammt) zugeordnet werden sollte.
  • Der Koordinationsserver 160 kann konfiguriert sein, Daten im Datenspeicher 190 zu speichern und/oder abzurufen. Die im Datenspeicher 190 gespeicherten Daten können zum Beispiel Konfigurationsdaten, Koordinationsmeldungsdaten und Statistiken für Koordinationsmeldungen beinhalten. Der Datenspeicher 190 kann mithilfe eines oder mehrerer Datenspeichergeräte implementiert werden. Das Datenspeichergerät kann ein beliebiges Speichergerät sein, das für die Speicherung computerlesbarer Daten geeignet ist. Die Datenspeichergeräte können ein Gerät mit Festspeicher oder ein Gerät zum Einlesen von Wechselspeichermedien sein. Beispiele beinhalten alle Formen von nicht flüchtigem Speicher, Medien und Speichergeräten, Halbleiterspeichergeräten (z. B. EPROM, EEPROM, SDRAM und USB-Flash-Speichergeräte), magnetische Datenträger, magneto-optische Datenträger und optische Datenträger (z. B. CD-ROM, DVD-ROM oder BLU-RAY-Discs). Exemplarische Implementierungen von geeigneten Datenspeichergeräten beinhalten Speichernetzwerk (SAN), netzgebundenen Speicher (NAS) und redundante Speicher-Arrays (z. B. RAID-Arrays). In einigen Implementierungen hostet der Datenspeicher 190 eine relationale Datenbank, z. B. mithilfe eines relationalen Datenbankverwaltungssystems (RDBMS). In einigen Implementierungen verwaltet der Datenspeicher 190 Daten, die als Dateien, z. B. als XML-Dateien, gespeichert sind.
  • Auch wenn in 1A nicht dargestellt, können mehrere Server, einschließlich der Anwendungs-Backend-Server 130, der Ereignisserver 140, der Zuordnungsserver 150 und/oder der Koordinationsserver 160, unabhängige oder gemeinsame Datenspeichergeräte, wie z. B. den veranschaulichten Datenspeicher 190, verwenden.
  • Wie hier unter Bezugnahme auf 1B ersichtlich, wird ein Blockdiagramm eines exemplarischen Computersystems 101 gemäß einer veranschaulichenden Implementierung dargestellt. Das Computersystem 101 ist für die Verwendung bei der Implementierung hierin beschriebener Computerkomponenten, in Zustimmung mit einer veranschaulichenden Implementierung, geeignet. Als allgemeiner Überblick beinhaltet das Computersystem 101 einen Prozessor 102 für die anweisungsgemäße Durchführung von Aktionen, z. B. Anweisungen, die im Zwischenspeicher 103 abgelegt werden. Das veranschaulichte exemplarische Computersystem 101 beinhaltet einen oder mehrere Prozessoren 102 und Koprozessoren 104 in Kommunikation über einen Bus 105, mit einem Hauptspeicher 106, einen Netzwerkschnittstellen-Controller 107, eine Eingabe/Ausgabe (E/A)-Schnittstelle 108 und einen Datenspeicher 109. In einigen Implementierungen kann das Computersystem 101 zusätzliche Schnittstellen oder andere Komponenten 116 beinhalten.
  • In einigen Implementierungen kann ein Prozessor 102 konfiguriert sein, Anweisungen vom Hauptspeicher 106 (oder vom Datenspeicher 109) in den Zwischenspeicher 103 zu laden. Außerdem kann der Prozessor 102 konfiguriert sein, Anweisungen aus dem Zwischenspeicher 103 in Onboard-Register zu laden und Anweisungen aus den Onboard-Registern auszuführen. In einigen Implementierungen sind Anweisungen in einem hier nicht dargestellten, schreibgeschützten Speicher (ROM) oder einem Firmware-Speicherchip (z. B. Speichern von Anweisungen für ein Basic I/O-System (BIOS)) codiert und werden von demselben eingelesen.
  • Wie dargestellt, ist der Prozessor 102 direkt mit dem Zwischenspeicher 103 verbunden. In einigen Implementierungen ist der Zwischenspeicher 103 jedoch in den Prozessor 102 integriert und/oder auf derselben Schaltung oder demselben Chip implementiert wie der Prozessor 102. Einige Implementierungen beinhalten mehrere Schichten oder Ebenen von Zwischenspeicher 103, die jeweils weiter vom Prozessor 102 entfernt sind. Einige Implementierungen beinhalten mehrere Prozessoren 102 und/oder Koprozessoren 104, die den Prozessor 102 durch Unterstützung für zusätzliche spezialisierte Anweisungen erweitern (z. B. ein mathematischer Koprozessor, ein Gleitpunkt-Koprozessor und/oder ein Grafik-Koprozessor). Wie dargestellt, ist der Koprozessor 104 eng mit dem Prozessor 102 verbunden. In einigen Implementierungen ist der Koprozessor 104 jedoch in den Prozessor 102 integriert oder auf derselben Schaltung oder demselben Chip implementiert wie der Prozessor 102. In einige Implementierungen ist der Koprozessor 104 weiter vom Prozessor 102 entfernt, z. B. mit dem Bus 105 verbunden.
  • Der Netzwerkschnittstellen-Controller 107 kann konfiguriert sein, eine oder mehrere Netzwerkschnittstellen 117 für die Verbindung mit Netzwerkgeräten 114 (z. B. für den Zugriff auf ein Netzwerk 110) zu steuern. Die E/A-Schnittstelle 108 kann konfiguriert sein, das Senden und Empfangen von Daten zu/von verschiedenen E/A-Geräten 118 zu ermöglichen, wie z. B. unter anderem Tastaturen, Berührungsbildschirme, Mikrofone, Bewegungssensoren, Videoanzeigen, Lautsprecher, haptische Rückmeldegeräte, Drucker und so weiter. In einigen Implementierungen sind ein oder mehrere der E/A-Geräte 118 in das Computersystem 101 integriert. In einigen Implementierungen sind ein oder mehrere der E/A-Geräte 118 extern und getrennt vom Computersystem 101. In einigen Implementierungen ist das Computersystem 101 mithilfe einer Spezial-Logikschaltung implementiert, z. B. einer anwendungsspezifischen integrierten Schaltung (ASIC) oder eines „System on a Chip“-Halbleitergeräts, das den Prozessor 102 und eine oder mehrere zusätzliche Komponenten beinhaltet, z. B. den Zwischenspeicher 103, den Netzwerkschnittstellen-Controller 107 und die Netzwerkschnittstelle 117 und eine oder mehrere E/A-Schnittstellen 108.
  • Bei den Prozessoren 102 kann es sich um eine beliebige Logikschaltung handeln, die Anweisungen verarbeitet, z. B. Anweisungen, die aus dem Zwischenspeicher 103, Hauptspeicher 106, Datenspeicher 109 oder einem anderen Speicher, der nicht dargestellt ist, geholt werden. Der Prozessor 102 beinhaltet eine Reihe von Daten- und Anweisungsregistern. In einigen Implementierungen kann der Prozessor 102 konfiguriert sein, beim Starten (Booten) anfängliche Anweisungen von einem BIOS in die Register zu laden, einschließlich Anweisungen zum Laden von weiteren Anweisungen, und Anweisungen von den Registern auszuführen. In einigen Implementierungen veranlassen die BIOS-Anweisungen den Prozessor 102 ein Betriebssystem (OS) zu laden, was wiederum den Prozessor 102 veranlasst, eines oder mehrere Programme zu laden und auszuführen.
  • Die Prozessoren 102 können durch einen oder mehrere Hilfs-Koprozessoren 104 erweitert werden, die Hilfsverarbeitungseinheiten mit spezialisierten Anweisungssätzen für spezifische Zwecke sind. In einigen Implementierungen gibt der Prozessor 102, wenn er mit einer nicht erkannten Anweisung konfrontiert ist, die Anweisung an den Koprozessor 104 weiter, z. B. über einen Spezialbus, und erzeugt nur einen Fehler wegen nicht erkannter Anweisung, wenn der Koprozessor 104 die Anweisung ebenfalls nicht erkennt. Die Prozessoren 102 und Koprozessoren 104 können Einkern- oder Mehrkernprozessoren sein.
  • Das Computersystem 101 kann mehrere unterschiedliche Prozessoren 102 und/oder mehrere unterschiedliche Koprozessoren 104 beinhalten. In einigen Implementierungen kann zum Beispiel ein Universalprozessor 102, wie z. B. eine zentrale Verarbeitungseinheit (CPU), durch einen oder mehrere Spezial-Koprozessoren 104, wie zum Beispiel einen mathematischen Koprozessor, einen Gleitpunkt-Koprozessor oder einen Grafikprozessor (GPU), erweitert werden. Ein mathematischer Koprozessor 104 kann zum Beispiel den Prozessor 102 bei Berechnungen mit hoher Präzision oder komplexen Berechnungen unterstützen. In einigen Implementierungen sind der/die Prozessor(en) 102 und Koprozessoren 104 als Schaltung auf einem oder mehreren Chips implementiert. Das Computersystem 101 kann auf einem beliebigen Prozessor 102 oder einem Satz von Prozessoren 102 und/oder Koprozessoren 104 basieren, die in der Lage sind, wie hierin beschrieben zu funktionieren.
  • Der Zwischenspeicher 103 ist im Allgemeinen eine Form von Computerspeicher, der für schnelle Zugriffszeiten in enger Nähe zu einem Prozessor 102 platziert ist. In einigen Implementierungen ist der Zwischenspeicher 103 eine Speicherschaltung, die Teil von oder auf demselben Chip wie ein Prozessors 102 ist. In einigen Implementierungen gibt es mehrere Zwischenspeicherebenen 103, z. B. Zwischenspeicherschichten L2 und L3. In einigen Implementierungen wird von mehreren Prozessoren 102 und/oder mehreren Kernen eines Prozessors 102 auf denselben Zwischenspeicher 103 zugegriffen.
  • Der Speicher 106 kann ein beliebiges Gerät sein, das für die Speicherung computerlesbarer Daten geeignet ist. Der Hauptspeicher 106 ist ein Gerät, das direkten Zugriff auf spezifizierte Adressen unterstützt, d. h. der Hauptspeicher 106 ist ein Direktzugriffsspeicher (RAM). In einigen Implementierungen ist der Hauptspeicher 106 ein flüchtiges Halbleiter-Speichergerät, wie z. B. ein dynamischer Direktzugriffsspeicher (DRAM), ein synchroner dynamischer Direktzugriffsspeicher (SDRAM), ein SDRAM mit doppelter Datenrate (DDR SDRAM), ein statischer Direktzugriffsspeicher (SRAM), T-RAM, Z-RAM und so weiter. Das Computersystem 101 kann eine beliebige Anzahl von Geräten aufweisen, die als Hauptspeicher 106 dienen.
  • Das Datenspeichergerät 109 kann ein beliebiges Gerät sein, das für die Speicherung computerlesbarer Daten zwischen Stromzyklen geeignet ist. In einigen Implementierungen ist der Datenspeicher 109 ein Gerät mit festem Speichermedium, wie z. B. magnetische Datenträger, z. B. ein Festplattenlaufwerk (HDD). In einigen Implementierungen ist der Datenspeicher 109 ein Gerät mit einem Wechselspeichermedium, wie z. B. magnetischem Datenträger (z. B. einer Diskette oder einem Wechseldatenträger), Magnetband, magnetooptischen Datenträger oder optischen Datenträger (z. B. CD ROM-, DVD-ROM- oder BLU-RAY-Discs). In einigen Implementierungen ist der Datenspeicher 109 ein nicht flüchtiges Halbleiter-Speichergerät, wie z. B. ein löschbarer programmierbarer schreibgeschützter Speicher (EPROM), ein elektrisch löschbarer programmierbarer schreibgeschützter Speicher (EPROM) oder Flash-Speicher. In einigen Implementierungen ist der Hauptspeicher 106 ein Solid-State-Laufwerk (SSD), z. B. unter Verwendung von Multi-Level-Cell (MLC) NANDbasiertem Flash-Speicher. Ein Computersystem 101 kann eine beliebige Anzahl von Geräten aufweisen, die als Datenspeicher 109 dienen.
  • Wie unter weiterer Bezugnahme auf 1B ersichtlich, ist der Bus 105 eine Schnittstelle, die Datenaustausch zwischen den verschiedenen internen Komponenten des Computersystems 101 bereitstellt, z. B. Verbinden des Prozessors 102 mit dem Hauptspeicher 106, dem Netzwerkschnittstellen-Controller 107, der E/A-Schnittstelle 108 und dem Datenspeicher 109. In einigen Implementierungen stellt der Bus 105 ferner Datenaustausch mit einer oder mehreren Komponenten außerhalb des Computersystems 101, wie z. B. anderen Komponenten 116, bereit. In einigen Implementierungen beinhaltet der Bus 105 serielle und/oder parallele Kommunikationsverbindungen. In einigen Implementierungen implementiert der Bus 105 einen Datenbus-Standard, wie z. B. Integrated Drive Electronics (IDE), Peripheral Component Interconnect Express (PCI), Small Computer System Interface (SCSI) oder Universal Serial Bus (USB). In einigen Implementierungen hat das Computersystem 101 mehrere Busse 105.
  • Das Computersystem 101 kann ein oder mehrere Eingabe- oder Ausgabe- (E/A)-Geräte 118 beinhalten oder Schnittstellen 108 dafür bereitstellen. Die E/A-Geräte 118 beinhalten Eingabegeräte, wie z. B. unter anderem Tastaturen, Berührungsbildschirme, Berührungsfelder (z. B. elektromagnetische Induktionspads, elektrostatische Pads, kapazitive Pads usw.), Mikrofone, Steuerhebel (Joysticks), Fußpedale, Inertialmesseinheiten (IMUs), Beschleunigungssensoren, Gyroskope, Kippsensoren, Bewegungssensoren, Umgebungssensoren, Musical Instrument Digital Interface (MIDI)-Eingabegeräte, wie z. B. MIDI-Instrumente (z. B. MIDI-Keyboards), Eingabestifte und Zeigegeräte, wie z. B. eine Maus oder eine Steuerkugel (Trackball). Ausgabegeräte beinhalten, ohne Einschränkung, Videoanzeigen, Lautsprecher, haptische Rückmeldegeräte, Braillezellen, Leuchten, Servos, MIDI-Ausgabegeräte, wie z. B. MIDI-Synthesizer und zwei- oder dreidimensionale Drucker (einschließlich, jedoch nicht beschränkt auf Tintenstrahldrucker, Laserdrucker, thermographische Drucker, stereolithographische Drucker, Extrusionsabscheidungsdrucker und Metallsinterdrucker).
  • Das Netzwerk 110 ermöglicht die Kommunikation zwischen verschiedenen Knoten, wie z. B. dem Computersystem 101 und einem Netzwerkgerät 114. In einigen Implementierungen werden Daten über das Netzwerk 110 als Fluss von Datenpaketen von einem Quellknoten auf einen Zielknoten übertragen, z. B. in Form von Datenpaketen gemäß den OSI-Schichten (Open Systems Interconnection). Ein Datenpaketfluss kann zum Beispiel ein OSI-Schicht-4-Transportprotokoll verwenden, wie z. B. das User Datagram Protocol (UDP), das Transmission Control Protocol (TCP) oder das Stream Control Transmission Protocol (SCTP), das über das Netzwerk 110 übertragen und über ein OSI-Schicht-3-Netzwerkprotokoll, wie z. B. das Internetprotokoll (IP), z. B. IPv4 oder IPv6, geschichtet wird. Das Netzwerk 110 setzt sich aus verschiedenen miteinander verbundenen Netzwerkgeräten (Knoten) zusammen, durch die ein oder mehrere Kommunikationspfade zwischen den beteiligten Geräten gebildet werden. Jedes Netzwerkgerät beinhaltet mindestens eine Netzwerkschnittstelle zum Senden und/oder Empfangen von Daten, in der Regel als ein oder mehrere Datenpakete. Ein exemplarisches Netzwerk 110 ist das Internet; es können jedoch auch andere Netzwerke verwendet werden. Das Netzwerk 110 kann ein autonomes System (AS) sein, d. h. ein Netzwerk, das unter einer konsistenten, vereinheitlichten Routing-Richtlinie betrieben wird (oder zumindest von außerhalb des AS-Netzwerks so erscheint), und es wird im Allgemeinen durch eine einzige administrative Entität (z. B. einen Systemoperator, einen Administrator oder eine Administratorgruppe) verwaltet.
  • Das Netzwerk 110 kann aus mehreren verbundenen Teilnetzwerken oder AS-Netzwerken bestehen, die sich an einem oder mehreren der Folgenden treffen: einem dazwischenliegenden Netzwerk (einem Transitnetzwerk), einem doppelverbundenen Gateway-Knoten, einem Point of Presence (POP) einem Internet eXchange Point (IXP) und/oder zusätzlichen anderen Netzwerkgrenzen. Das Netzwerk 110 kann ein lokales Netzwerk (LAN), wie z. B. ein Unternehmensintranet, ein regionales Netzwerk (MAN), ein Großraumnetzwerk (WAN), ein netzwerkübergreifendes Netzwerk, wie z. B. das Internet oder ein Peer-to-Peer-Netzwerk, z. B. ein Adhoc-Peer-to-Peer-WLAN-Netzwerk, sein. Bei den Datenverbindungen zwischen Knoten im Netzwerk 110 kann es sich um eine beliebige Kombination physischer Verbindungen (z. B. Glasfaser, Maschen, Koaxial, Twisted-Pair, wie z. B. Kat-5 oder Kat-6-Kabel usw.) und/oder um drahtlose Verbindungen (z. B. Funk, Satellit, Mikrowellen usw.) handeln.
  • Das Netzwerk 110 kann Trägernetzwerke für mobile Kommunikationsgeräte beinhalten, z. B. Netzwerke, die drahtlose Kommunikationsprotokolle, wie z. B. Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long-Term Evolution (LTE) oder beliebige andere Protokolle dieser Art implementieren, einschließlich u. a Protokollgenerationen, die als „3G“, „4G“, und „5G“ bekannt sind. Das Netzwerk 110 kann drahtlose Kurzstreckenverbindungen z. B. über WLAN, BLUETOOTH, BLE oder ZIGBEE beinhalten, die manchmal als PAN (Personal Area Network) oder Maschennetzwerk bezeichnet werden. Das Netzwerk kann ein öffentliches, privates oder eine Kombination aus öffentlichen und privaten Netzwerken sein. Bei dem Netzwerk 110 kann es sich um eine beliebige Art und/oder Form von Datennetzwerken und/oder Kommunikationsnetzwerken handeln.
  • Der Netzwerkschnittstellen-Controller 107 verwaltet den Datenaustausch mit Geräten im Netzwerk 110 (z.B. dem Netzwerkgerät 114) über die Netzwerkschnittstelle 117 (manchmal als Netzwerkschnittstellenport bezeichnet). Der Netzwerkschnittstellen-Controller 107 bewältigt die physischen und Datenverbindungsschichten des Open Systems Interconnection (OSI)-Modells für die Netzwerkkommunikation. In einigen Implementierungen werden einige der Aufgaben des Netzwerkschnittstellen-Controllers durch die Prozessoren 102 und/oder Koprozessoren 104 verarbeitet. In einigen Implementierungen ist der Netzwerkschnittstellen-Controller 107 in den Prozessor 102, z. B. als Schaltung auf demselben Chip, integriert. In einigen Implementierungen hat ein Computersystem 101 mehrere Netzwerkschnittstellen, 117, die von einem einzigen Controller 107 gesteuert werden. In einigen Implementierungen hat ein Computersystem 101 mehrere Netzwerkschnittstellencontroller 107. In einigen Implementierungen ist jede Netzwerkschnittstelle 117 ein Verbindungspunkt für eine physische Netzwerkverbindung (z. B. eine Kat-5-Ethernet-Verbindung).
  • In einigen Implementierungen unterstützt der Netzwerkschnittstellen-Controller 107 drahtlose Netzwerkverbindungen und eine Schnittstelle 117 ist ein drahtloser (z. B. Funk) Empfänger/Sender (z.B. für IEEE 802.11 WLAN-Protokolle, Nahfeldkommunikation (NFC), BLUETOOTH LOW ENERGY (BLE), ZIGBEE, ANT oder ein beliebiges anderes drahtloses Protokoll). In einigen Implementierungen implementiert der Netzwerkschnittstellen-Controller 107 eines oder mehrere Netzwerkprotokolle, z. B. Ethernet. Im Allgemeinen kann das Computersystem 101 konfiguriert sein, Daten mit anderen Computergeräten über physische oder drahtlose Verbindungen durch eine Netzwerkschnittstelle 117 auszutauschen. Die Netzwerkschnittstelle 117 kann direkt mit einem anderen Gerät oder über ein zwischengeschaltetes Gerät, z. B. ein Netzwerkgerät 114 wie einem Hub, einer Bridge, einem Switch oder einem Router, mit einem anderen Gerät verbunden sein, das das Computersystem 101 mit einem Netzwerk 110 verbindet.
  • Das Netzwerkgerät 114 kann ein Hub, ein Switch, ein Router, ein Modem, eine Netzwerk-Bridge, ein anderes Computersystem 101 oder ein beliebiger anderer Netzwerkknoten sein. In einigen Implementierungen ist das Netzwerkgerät 114 ein Netzwerk-Gateway. In einigen Implementierungen ist das Netzwerkgerät 114 ein Routing-Gerät, das mithilfe individueller Hardware implementiert ist, wie z. B. ein Spezialprozessor und/oder ein dreifach inhaltsadressierbarer Speicher (TCAM).
  • Die anderen Komponenten 116 können eine alternative E/A-Schnittstelle, serielle Anschlüsse für externe Geräte und beliebige zusätzliche Koprozessoren 104 beinhalten, die über den Bus 105 verbunden sind. Ein Computersystem 101 kann zum Beispiel eine Schnittstelle (z. B. eine Universal Serial Bus (USB)-Schnittstelle) für das Verbinden von externen Eingabegeräten, Ausgabegeräten oder zusätzlichen Speichergeräten (z. B. tragbarem Flash-Speicher oder einem externen Medienlaufwerk) beinhalten.
  • Das veranschaulichte Computersystem 101 ist für das Implementieren von Systemen geeignet, die Daten verwalten oder organisieren. In einigen Implementierungen hostet das Computersystem 101 zum Beispiel eine Datenbank. Eine Datenbank oder genauer gesagt ein Datenbankverwaltungssystem (DBMS) organisiert Daten gemäß einer Datenbankdefinition, z. B. einem Datenbankschema. In einer einfachen relationalen Datenbank werden Daten zum Beispiel durch das DBMS in einer tabellenartigen Datenstruktur verwaltet. Jede Tabelle enthält Spalten, die jeweils einem Eintragstyp, einer Klassifizierung oder einem Zweck entsprechen. Eine Tabelle könnte zum Beispiel eine Spalte für numerische Daten, eine Spalte für Textdaten (z. B. eine Beschreibung der numerischen Daten), eine Spalte für Datumsdaten usw. enthalten. In einigen Implementierungen stellt eine Spalte strukturierte Daten dar, die mehrere Datenelemente in einer einzelnen Spalte darstellen. Jeder Eintrag in einer relationalen Datenbank steht zugleich in einer Spalte und in einer Zeile einer Tabelle, die den Eintrag mit Einträgen aus anderen Spalten in der Tabelle verknüpft.
  • In einigen Fällen verbindet ein Eintrag (oder eine Kombination von Einträgen) eine Zeile aus einer Tabelle mit einer oder mehreren Zeilen in einer anderen Tabelle. In einigen DBMS-Implementierungen werden Daten, die aus einer oder mehreren Tabellen abgerufen werden, in virtuellen Tabellen, die als „Ansichten“ bezeichnet werden, so dargestellt, als ob es sich auch um eine Tabelle handeln würde (d. h. die Ansicht sieht für einen Datenbank-Client oder Benutzer wie eine Tabelle aus, ist jedoch nicht unbedingt als solche gespeichert). Andere Arten von Datenbankverwaltungssystemen können ebenfalls verwendet werden, einschließlich verschiedener Arten von relationalen Datenbanken, objektorientierten Datenbanken, dokumentorientierten Datenbanken, eXtensible Markup Language (XML)-Datenbanken, NoSQL-Datenbanken und so weiter. Viele dieser Datenbanktypen verwenden, wie oben unter Bezugnahme auf relationale Datenbanken beschrieben, Tabellen oder tabellenartige Strukturen auf ähnliche Weise. In einigen Datenbankimplementierungen werden Daten nicht in einer Tabelle, sondern in anderer Form gespeichert oder dargestellt, z. B. als eine Sammlung von Datentupeln.
  • Daten können von einem Client oder Benutzer einer Datenbank anhand von Datenbankbefehlen hinzugefügt, geändert oder abgerufen werden, indem er beispielsweise eine Datenbankabfragesprache, wie die strukturierte Abfragesprache (SQL), verwendet. Ein oder mehrere Datenbankbefehle können zu einer Datenbanktransaktion zusammengefasst werden. Für gewöhnlich sorgt eine Datenbank für Atomarität, Konsistenz, Isolation und Beständigkeit. Diese Eigenschaften sind unter dem Akronym „ACID“ bekannt. In einigen Implementierungen bietet ein DBMS alle ACID-Eigenschaften. In einigen Implementierungen bietet das DBMS jedoch nicht alle ACID-Eigenschaften.
  • In einigen Implementierungen stehen ein oder mehrere Client-Geräte 120, wie z. B. Instanzen des Computersystems 101, in Kommunikation mit dem DBMS, z. B. über eine direkte Verbindung oder über das Netzwerk 110. In einigen Implementierungen erhalten ein oder mehrere der Clients Daten vom DBMS mithilfe von Abfragen in einer formellen Abfragesprache, wie z. B. Structured Query Language (SQL), Hyper Text Structured Query Language (HTSQL), Contextual Query Language (CQL), Data Mining Extensions (DMX) oder XML Query (XQuery). In einigen Implementierungen erhalten ein oder mehrere Clients Daten vom DBMS mithilfe einer prozessübergreifenden Kommunikationsarchitektur, wie z. B. Common Object Request Broker Architecture (CORBA), Remote Procedure Calls (RPC), Object Linking and Embedding (OLE), Component Object Model (COM) oder Distributed Component Object Model (DCOM). In einigen Implementierungen erhalten ein oder mehrere Clients Daten vom DBMS mithilfe natürlicher Sprache oder semantischer Abfragen. In einigen Implementierungen erhalten ein oder mehrere Clients Daten vom DBMS mithilfe von Abfragen in einer benutzerspezifischen Abfragesprache, wie z. B. einer Visualization-API-Abfragesprache.
  • Wie hier unter Bezugnahme auf 2 ersichtlich, ist ein Ablaufdiagramm für ein Verfahren 200 für das Korrelieren von Ereignissen gemäß einer veranschaulichenden Implementierung dargestellt. Der Anwendungs-Backend-Server 130, der Ereignisserver 140, der Zuordnungsserver 150 und/oder der Koordinationsserver 160 können konfiguriert sein, das Verfahren 200 durchzuführen. Außerdem kann jedes hierin beschriebene Computergerät konfiguriert sein, das Verfahren 200 durchzuführen.
  • Als allgemeiner Überblick des Verfahrens 200 empfängt der Koordinationsserver 160 in Phase 210 eine Bestätigungsmeldung für ein erstes Ereignis. Der Koordinationsserver 160 kann eine große Anzahl an Bestätigungsmeldungen empfangen, die jeweils einem jeweiligen Ereignis entsprechen. Die Meldungen können von einem Client-Gerät 120 von einem Drittpartei-Server oder von irgendeinem anderen Computergerät empfangen werden. In Phase 220 empfängt der Koordinationsserver 160, von einem Zuordnungsserver 150, eine Anfrage für Zuordnung eines zweiten Ereignisses.
  • In Phase 230 durchsucht der Koordinationsserver 160 gespeicherte Bestätigungsmeldungsdaten, z. B. Daten, die einer großen Anzahl an Bestätigungsmeldungen entsprechen, die Daten für die Bestätigungsmeldung beinhalten, die in Phase 210 empfangen wurde. In Phase 240 identifiziert der Koordinationsserver 160 das erste Ereignis aus der Suche. In einigen Implementierungen wird das erste Ereignis in Phase 240 als eines von mehreren Kandidatenereignissen für die Zuordnung identifiziert.
  • In Phase 250 gibt der Koordinationsserver 160 dem Zuordnungsserver 150 Daten, die das erste Ereignis beschreiben, in Reaktion auf die Anfrage, die in Phase 220 empfangen wurde, zurück. Der Zuordnungsserver 150 kann aus den Daten, die das erste Ereignis beschreiben, ermitteln, ob das zweite Ereignis dem ersten Ereignis zugeordnet werden kann. Die unten beschriebene 3 veranschaulicht ein exemplarisches Verfahren 300 des Bestätigens der Zuordnung zu einem Vorgängerereignis, wie es zum Beispiel vom Zuordnungsserver 150 durchgeführt werden kann. Der Koordinationsserver 160 empfängt dann, in Phase 260, die Zustimmung vom Zuordnungsserver 150, das zweite Ereignis dem beschriebenen ersten Ereignis zuzuordnen. In einigen Implementierungen empfängt, wenn der Zuordnungsserver 150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver 160 alternativ eine Meldung, die die Zuordnung ablehnt. In einigen Implementierungen empfängt, wenn der Zuordnungsserver 150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver 160 keine weiteren Meldungen, die mit der Zuordnungsanfrage und der ersten Ereignisbeschreibung verbunden sind.
  • Unter detailliertere Bezugnahme auf das Verfahren 200 empfängt der Koordinationsserver 160 in Phase 210 eine Bestätigungsmeldung für ein erstes Ereignis. In einigen Implementierungen sendet der Koordinationsserver 160 Koordinationsmeldungen an eines oder mehrere Client-Geräte 120. Die Koordinationsmeldungen können zum Beispiel Einladungen sein, eine Aktion durchzuführen (z. B. eine Anwendung zu installieren, auf eine Webseite zuzugreifen oder einen Kauf zu tätigen). Das erste Ereignis kann eine Reaktion auf eine Einladung sein, z. B. eine Angabe, dass ein Client-Gerät 120, das die Einladung empfangen hat, damit interagiert hat.
  • Eine Einladung kann zum Beispiel ein auswählbares Element beinhalten, das zusätzliche Informationen bereitstellt oder eine Verbindung zu einer Drittpartei ermöglicht, wo weitere Aktionen durchgeführt werden können. Eine Einladung kann einen Hyperlink zu einer Uniform Resource Locator (URL) für eine Webseite (eine Einstiegsseite) beinhalten, auf der weitere Aktionen durchgeführt werden können, wie z. B. Zugreifen auf zusätzliche Informationen, Herunterladen von Medien (z. B. ein E-Book, visuelle Bildmedien, Audiodaten, interaktive Medien, Videomedien und so weiter), Herunterladen von Software, Verbinden mit einer Datenbank und jede beliebige andere Aktion. In einigen Implementierungen ist das erste Ereignis eine Auswahl einer URL (ein Klick) an einem Client-Gerät 120. In einigen Implementierungen ist das erste Ereignis eine Seitenanfrage (oder ein Seitenabruf) vom Client-Gerät 120.
  • In einigen Implementierungen ist das erste Ereignis ein Ankunftsereignis, z. B. das Client-Gerät 120, das an einem geografischen Standort ankommt. Das Ankunftsereignis kann zum Beispiel mithilfe von Geolokalisierungs-Hardware im Client-Gerät 120 erkannt werden. Das Ankunftsereignis kann zum Beispiel mithilfe von Näherungsdetektoren (z. B. Nahfeld-Funkgeräten) im Client-Gerät 120 erkannt werden, die die Nähe zu physischen Markern außerhalb des Client-Geräts 120 erkennen, oder umgekehrt. In einigen Implementierungen kann das erste Ereignis jedwedes Ereignis sein, das eine Zuordnung für spätere nachfolgende Ereignisse empfangen könnte. Wenn das erste Ereignis zum Beispiel eine Interaktion ist, die dazu führt, dass das Client-Gerät ein Anwendungsinstallationstool ausführt, kann dieses eine Zuordnung für eine nachfolgende Anwendungsinstallation empfangen. In Phase 210 des Verfahrens 200 empfängt der Koordinationsserver 160 eine Bestätigungsmeldung für ein bestimmtes erstes Ereignis.
  • In Reaktion auf das Empfangen der Bestätigungsmeldung für das erste Ereignis in Phase 210 zeichnet der Koordinationsserver 160 Daten über das erste Ereignis, z. B. in Datenspeicher 190, auf. Die aufgezeichneten Daten über das erste Ereignis können zum Beispiel einen Datums- und Zeitstempel, einen Ereignistyp und eine oder mehrere Quellenkennungen beinhalten, wie z. B. eine Gerätekennung, eine Kontokennung, eine eindeutige CT-Nummer (z. B. eine zufällig erzeugte eindeutige Kennung) und so weiter. Die aufgezeichneten Daten über das erste Ereignis können ferner Informationen über eine Einladung beinhalten, die mit dem ersten Ereignis verbunden ist, z. B. eine Einladungskennung (oder Kennungen, z. B. eine Quellenkennung, eine Kampagnenkennung, eine Zielkennung, eine CT-Nummer usw.) und einen Datum- und Zeitstempel der Einladung. In einigen Implementierungen zeichnet der Koordinationsserver 160 diese Daten in einem durchsuchbaren Datenspeichersystem, wie z. B. einer Datenbank, auf.
  • In Phase 220 empfängt der Koordinationsserver 160, von einem Zuordnungsserver 150, eine Anfrage für Zuordnung eines zweiten Ereignisses. In einigen Implementierungen verarbeiten ein oder mehrere der Client-Geräte 120, der Anwendungs-Backend-Server 130 oder der Ereignisserver 140 ein Ereignis, das am Client-Gerät 120 erfolgt oder mit dem Client-Gerät 120 verbunden ist, und suchen beim Verarbeiten des Ereignisses die Zuordnung für das Ereignis. Der Ereignisserver 140 kann zum Beispiel das zweite Ereignis erkennen und eine Meldung an den Zuordnungsserver 150 mit Informationen wie z. B. einer oder mehreren Kennungen (z. B. Gerätekennung und Anwendungskennung) und Ereignistyp senden. Wie nachfolgend in Bezug auf 3 beschrieben, sendet der Zuordnungsserver 150 dann eine Anfrage für Zuordnung des zweiten Ereignisses an den Koordinationsserver 160. Die Anfrage kann an mehrere Koordinationsserver gesendet werden z. B. an verschiedene Server, die jeweils von verschiedenen Parteien betrieben werden, die jeweils mit einem zuordenbaren Ereignis verbunden sein können.
  • In Phase 230 durchsucht der Koordinationsserver 160 gespeicherte Bestätigungsmeldungsdaten, z. B. Daten, die jeweils einer großen Anzahl an Bestätigungsmeldungen entsprechen, die Daten für die Bestätigungsmeldung beinhalten können, die in Phase 210 empfangen wurde. In einigen Implementierungen ist diese Suche auf eine oder mehrere spezifische Ereignisarten gerichtet, z. B. Ereignisarten, die dem zweiten Ereignis zugeordnet sein können.
  • In Phase 240 identifiziert der Koordinationsserver 160 das erste Ereignis aus der Suche. In einigen Implementierungen wird das erste Ereignis in Phase 240 als eines von mehreren Kandidatenereignissen für die Zuordnung identifiziert. Der Koordinationsserver 160 kann das erste Ereignis auf Basis von Übereinstimmungskriterien identifizieren, wie z. B. dieselbe Gerätekennung, Kontokennung oder CT-Nummer aufweisend.
  • In Phase 250 gibt der Koordinationsserver 160 dem Zuordnungsserver 150 Daten, die das erste Ereignis beschreiben, in Reaktion auf die Anfrage, die in Phase 220 empfangen wurde, zurück. Die beschreibenden Daten können zum Beispiel eine Teilmenge der aufgezeichneten Daten für das erste Ereignis sein. In einigen Implementierungen gibt der Koordinationsserver 160 zum Beispiel einen Datums- und Zeitstempel für das erste Ereignis zurück oder gibt einen Datums- und Zeitstempel neben einer internen Kennung für das erste Ereignis zurück. Der Zuordnungsserver 150 kann aus den Daten, die das erste Ereignis beschreiben, ermitteln, ob das zweite Ereignis dem ersten Ereignis zugeordnet werden kann. In einigen Implementierungen wählt zum Beispiel, wenn mehrere Koordinationsserver 160 Zuordnungsansprüche zurückgeben (d. h. jeder gibt ein identifiziertes Kandidatenereignis für die Zuordnung zurück), der Zuordnungsserver einen der Zuordnungsansprüche für die Bestätigung aus.
  • Die unten beschriebene 3 veranschaulicht ein exemplarisches Verfahren 300 des Bestätigens der Zuordnung zu einem Vorgängerereignis, wie es zum Beispiel vom Zuordnungsserver 150 durchgeführt werden kann. In einigen Implementierungen wählt der Zuordnungsserver 150 zum Beispiel das letzte Kandidatenereignis aus (d. h. das Kandidatenereignis mit dem Datums- und Zeitstempel, der dem Zeitpunkt des zweiten Ereignisses am nächsten ist).
  • In Phase 260 empfängt der Koordinationsserver 160 die Zustimmung vom Zuordnungsserver 150, das zweite Ereignis dem beschriebenen ersten Ereignis zuzuordnen. In einigen Implementierungen empfängt, wenn der Zuordnungsserver 150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver 160 alternativ eine Meldung, die die Zuordnung ablehnt. In einigen Implementierungen empfängt, wenn der Zuordnungsserver 150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver 160 keine weiteren Meldungen, die mit der Zuordnungsanfrage und der ersten Ereignisbeschreibung verbunden sind. Der Koordinationsserver 160 kann Daten über Zuordnungen behalten, z. B. für Berichterstellungs- oder Entscheidungsprozesse. In einigen Implementierungen kann ein Kampagnenadministrator zum Beispiel einen Bericht von Einladungen anfordern, die nachfolgenden Ereignissen zugeordnet sind. Dieser Bericht kann zum Beispiel konfiguriert sein, Ereignisse auszulassen, die keine Zuordnung empfangen, oder Ereignisse hervorzuheben (oder anderweitig anzugeben), die speziell eine Zuordnung erhalten haben.
  • Wie hier unter Bezugnahme auf 3 ersichtlich, ist ein Ablaufdiagramm für ein Verfahren 300 zum Bestätigen der Zuordnung zu einem Vorgängerereignis gemäß einer veranschaulichenden Implementierung dargestellt. Das Verfahren 300 kann insbesondere vom Zuordnungsserver 150 durchgeführt werden, um die Zuordnung für ein zweites Ereignis durch Kommunizieren mit einem Koordinationsserver zu ermitteln. Der Anwendungs-Backend-Server 130, der Ereignisserver 140, der Zuordnungsserver 150 und/oder der Koordinationsserver 160 können konfiguriert sein, das Verfahren 300 durchzuführen. Außerdem kann jedes hierin beschriebene Computergerät konfiguriert sein, das Verfahren 300 durchzuführen.
  • Als allgemeiner Überblick des Verfahrens 300 empfängt der Zuordnungsserver 150 in Phase 320 eine Benachrichtigung eines zuordenbaren Ereignisses. In Phase 330 sendet der Zuordnungsserver 150 eine erste Anfrage für die Zuordnung zu einem Koordinationsserver 160. Der Koordinationsserver 160 identifiziert dann ein erstes Ereignis, das zugeordnet werden könnte, und stellt eine Beschreibung des ersten Ereignisses für den Zuordnungsserver 150 bereit. In Phase 340 empfängt der Zuordnungsserver 150 die Beschreibung des ersten Ereignisses und ermittelt, in Phase 350, ob das erste Ereignis die Kriterien für die Zuordnung erfüllt. Wenn das erste Ereignis die Kriterien für die Zuordnung nicht erfüllt, lehnt, in Phase 360, der Zuordnungsserver 150 dann die Zuordnung ab. Wenn das erste Ereignis jedoch die Kriterien für die Zuordnung in Phase 350 erfüllt, bestätigt der Zuordnungsserver 150 in Phase 370 dann die Zuordnung. In einigen Implementierungen sendet der Zuordnungsserver 150 zum Beispiel eine zweite Meldung an den Koordinationsserver 160, die das zuordenbare Ereignis dem ersten Ereignis zuordnet.
  • Unter detailliertere Bezugnahme auf das Verfahren 300 empfängt der Zuordnungsserver 150 in Phase 320 eine Benachrichtigung eines zuordenbaren Ereignisses. Ein Ereignisserver 140 kann zum Beispiel den Zuordnungsserver 150 über das Ereignis benachrichtigen. In einigen Implementierungen verarbeiten ein oder mehrere der Client-Geräte 120, der Anwendungs-Backend-Server 130 oder die Ereignisserver 140 ein Ereignis, das am Client-Gerät 120 erfolgt oder mit dem Client-Gerät 120 verbunden ist, und suchen beim Verarbeiten des Ereignisses die Zuordnung für das Ereignis. Der Ereignisserver 140 kann zum Beispiel das Ereignis erkennen und eine Meldung an den Zuordnungsserver 150 mit Informationen, wie z. B. einer oder mehreren Kennungen (z. B. Gerätekennung und Anwendungskennung) und Ereignistyp, senden. In einigen Implementierungen erkennt der Zuordnungsserver 150 das zuordenbare Ereignis und löst die Zuordnung für das Ereignis auf.
  • In Phase 330 sendet der Zuordnungsserver 150 eine erste Anfrage zu einem Koordinationsserver 160. Die erste Anfrage ist eine Anfrage, ein Vorgängerereignis für die Zuordnung zu identifizieren. Die erste Anfrage kann eine Nachfrage, von einem Zuordnungsserver 150 zum Koordinationsserver 160, sein, um zu erfahren, ob der Koordinationsserver 160 vorher ein Ereignis koordiniert hat, das zum zuordenbaren Ereignis führte oder das dem Führen zum zuordenbaren Ereignis zugeordnet werden kann. In einigen Implementierungen wird die Anfrage an mehrere verschiedene Koordinationsserver gesendet, die jeweils von verschiedenen Parteien betrieben werden, die mit einem zuordenbaren Ereignis verbunden sein können. Wenn der Koordinationsserver 160 ein erstes Ereignis identifizieren kann, das zugeordnet werden könnte, stellt der Koordinationsserver 160 eine Beschreibung des ersten Ereignisses für den Zuordnungsserver 150 bereit. In einigen Implementierungen kann der Koordinationsserver 160 (oder mehrere Koordinationsserver) Beschreibungen von mehreren Kandidatenereignissen für die mögliche Zuordnung bereitstellen.
  • In Phase 340 empfängt der Zuordnungsserver 150 die Beschreibung des ersten Ereignisses und ermittelt, in Phase 350, ob das erste Ereignis die Kriterien für die Zuordnung erfüllt. In einigen Implementierungen bestätigt der Zuordnungsserver 150, ob das beschriebene erste Ereignis zum zuordenbaren Ereignis geführt haben könnte. In einigen Implementierungen ermittelt der Zuordnungsserver 150, ob es ein dazwischenliegendes Ereignis gab, das die Zuordnung erhalten sollte. Wenn der Zuordnungsserver 150 zum Beispiel Anfragen an mehrere verschiedene Koordinationsserver in Phase 330 sendet, kann er in Reaktion mehrere Anwärter empfangen. Der Zuordnungsserver 150 wählt aus den mehreren Anwärtern aus, z. B. durch Identifizieren eines Anwärterereignisses für die Zuordnung und Ablehnen des Rests.
  • Ein Anwärter, der von einem konkurrierenden Koordinationsserver empfangen wird, kann ein dazwischenliegendes Ereignis sein, was den Zuordnungsserver 150 veranlasst, die Zuordnung zum ersten Ereignis abzulehnen. In einigen Implementierungen konstruiert der Zuordnungsserver 150 eine Zeitschiene oder Sequenz der Ereignisse, die bis zum zuordenbaren Ereignis führt, und wählt ein oder mehrere Ereignisse aus der Zeitschiene für die Zuordnung aus. In einigen dieser Implementierungen wählt der Zuordnungsserver 150 das letzte Ereignis aus der Zeitschiene aus, das dem zuordenbaren Ereignis vorausgeht. Wenn das beschriebene erste Ereignis (wie in Phase 340 empfangen) nicht ausgewählt wird, lehnt der Zuordnungsserver 150 die Zuordnung in Phase 360 ab. Wenn das beschriebene erste Ereignis (wie in Phase 340 empfangen) ausgewählt wird, stellt der Zuordnungsserver 150 die Zuordnung in Phase 370 bereit oder bestätigt sie.
  • In Phase 360 lehnt der Zuordnungsserver 150 die Zuordnung ab. In einigen Implementierungen führt der Zuordnungsserver 150 keine Aktion durch, um die Zuordnung abzulehnen. Das heißt, die Abwesenheit einer Bestätigung kann zum Ablehnen ausreichen. In einigen Implementierungen stellt der Zuordnungsserver 150 eine Ablehnungsbenachrichtigung für den Koordinationsserver 160 bereit.
  • In Phase 370 bestätigt der Zuordnungsserver 150 die Zuordnung ab. In einigen Implementierungen sendet der Zuordnungsserver 150 zum Beispiel eine zweite Meldung an den Koordinationsserver 160, die das zuordenbare Ereignis dem ersten Ereignis zuordnet. In einigen Implementierungen stellt der Zuordnungsserver 150 dem Koordinationsserver 160 zusätzliche Informationen in der Bestätigung bereit. Die zusätzlichen Informationen können zum Beispiel eine eindeutige Ereigniskennung beinhalten, die der Koordinationsserver 160 speichern und später als Nachweis der Zuordnung verwenden kann. In einigen Implementierungen beinhalten die zusätzlichen Informationen ein Token, ein verschlüsseltes Datenelement oder eine Kennung. In einigen Implementierungen beinhalten die zusätzlichen Informationen eine CT-Nummer.
  • In einigen Implementierungen stellt der Ereignisserver 140 jedes Mal, wenn eine Anwendung auf einem Client-Gerät 120 ausgeführt wird, eine Benachrichtigung für einen Zuordnungsserver 150 bereit. In einigen Implementierungen sendet die Anwendung zum Beispiel eine Meldung beim Starten eines Backend-Servers 130 (z. B. eine Anfrage für beliebige neue Updates), woraufhin der Backend-Server 130 dann eine Meldung an den Ereignisserver 140 sendet, die das Startereignis dokumentiert. In einigen Implementierungen sendet die Anwendung eine Meldung an den Ereignisserver 140, die das Startereignis dokumentiert. Die Meldung kann zum Beispiel als eine HTTP-Anfrage gesendet werden. In einigen Implementierungen zeichnet der Ereignisserver 140 dann Daten auf, die das Ereignis repräsentieren. In einigen Implementierungen sendet der Ereignisserver 140 eine Meldung an den Zuordnungsserver 150, die den Zuordnungsserver 150 über das Startereignis benachrichtigt. In einigen Implementierungen sendet der Ereignisserver 140 diese Meldung an den Zuordnungsserver 150 für ein erstes Startereignis, das einer Neuinstallation entsprechen würde, und sendet keine Meldung an den Zuordnungsserver 150 für nachfolgende Startereignisse für dieselbe Anwendungsinstanz. Der Zuordnungsserver 150 identifiziert dann ein früheres Koordinationsereignis für die Zuordnung, z. B. mithilfe des oben beschriebenen Verfahrens 300.
  • In einigen Implementierungen verwaltet der Koordinationsserver 160 Daten für jedes Ereignis und für jede Zuordnungsanfrage. Der Koordinationsserver 160 kann eine administrative Schnittstelle bereitstellen, über die ein Administrator Berichte von Statistiken für Ereignisse und Zuordnungen erhalten kann. Da einige Ereignisse möglicherweise keine Zuordnung empfangen, z. B. wegen eines dazwischenliegenden, durch eine Drittpartei gesteuerten Ereignisses, das die Zuordnung empfangen hat, entspricht die Statistik derselben Statistik, die der Administrator ggf. von den Drittparteien empfängt. Eine ordnungsgemäße Darstellung der Zuordnung kann Verwirrung beseitigen und Konfigurationszyklen verringern. Wenn der Koordinationsserver 160 nur Daten für zugeordnete Ereignisse empfängt, empfängt er außerdem keine unnötigen Drittpartei-Daten.
  • Wie hier unter Bezugnahme auf 4 ersichtlich, ist ein Verfahren 400 für das Durchführen einer netzwerkübergreifenden Ereigniszuordnung, um die Zuordnung von Ereignissen zu deduplizieren, gemäß einer veranschaulichenden Implementierung dargestellt. Der Anwendungs-Backend-Server 130, der Ereignisserver 140, der Zuordnungsserver 150, der Koordinationsserver 160 und/oder jedwedes andere hierin beschriebene Computergerät können konfiguriert sein, das Verfahren 400 durchzuführen. Insbesondere nimmt das Verfahren 400 Bezug auf einen ersten Koordinationsserver und einen zweiten Koordinationsserver. Diese Server können gleich und/oder ähnlich dem Koordinationsserver 160 sein.
  • Der erste Koordinationsserver und der zweite Koordinationsserver können konfiguriert sein, Inhaltselemente für einen Benutzer bereitzustellen (oder sie können mit Servern verbunden sein, die diese bereitstellen) und Online-Benutzeraktivität mit den Inhaltselementen empfangen. Die zwei Koordinationsserver können jedoch unterschiedlich sein und durch verschiedene Entitäten betrieben werden. Wenn ein Inhaltsanbieter den ersten und zweiten Koordinationsserver verwendet, um Inhalt für einen Benutzer bereitzustellen, und Benutzeraktivität empfängt, wenn eine Konversion erfolgt, können beide Koordinationsserver Benutzerereignisaktivitäten, die mit ihrem Inhaltsnetzwerk verbunden sind, der Konversion zuordnen. Das unten beschriebene Verfahren 400 und andere hierin beschriebene Verfahren können die Zuordnung deduplizieren, indem sie ermitteln, welche Aktivitäten der Konversion zugeordnet werden sollen und welche Aktivitäten der Konversion nicht zugeordnet werden sollen.
  • Das Verfahren 400 wird auf eine solche Weise durchgeführt, dass der Datenschutz aufrechterhalten und Netzwerkbandbreite gespart wird. Insbesondere werden im Verfahren 400 keine ganzen Sätze von Benutzerereignisaktivität zwischen den Servern weitergegeben, d. h. der erste Koordinationsserver, der zweite Koordinationsserver und der Zuordnungsserver geben nur Daten weiter, die zuordenbar sind, statt alle Benutzerereignisdaten zusammen zu aggregieren, um die Ereigniszuordnung zu ermitteln. Außerdem verringert das Senden nur erforderlicher Daten die Bandbreitennutzung gegenüber dem Senden großer Datensätze von Benutzerereignisdaten an einen zentralen Server, z. B. den Zuordnungsserver. Außerdem kann die Online-Aktivität des Benutzers verbessert werden. Da der erste Koordinationsserver Aktivität eines Benutzers über ein Inhaltsnetzwerk empfängt und der zweite Koordinationsserver Aktivität des Benutzers von einem zweiten Inhaltsnetzwerk empfängt, kann ein Benutzerereignis nur von einem statt von beiden der Koordinationsserver empfangen werden.
  • In den Schritten 410 und 420 können der erste Koordinationsserver und der zweite Koordinationsserver jeweils ein Ereignis empfangen. Die Ereignisse können eine mit einem Benutzer verbundene Aktivität sein, die mit dem ersten Koordinationsserver bzw. dem zweiten Koordinationsserver verbunden ist. Der erste Koordinationsserver kann zum Beispiel direkt oder anderweitig Ereignisdaten von einem anderen Gerät für ein erstes Inhaltsnetzwerk empfangen. Der zweite Koordinationsserver kann direkt oder anderweitig Ereignisdaten von einem anderen Gerät für ein zweites Inhaltsnetzwerk empfangen.
  • Ein zweites Ereignis kann nach den Ereignissen erfolgen, die mit dem ersten und zweiten Koordinationsserver verbunden sind. In einigen Implementierungen ist das zweite Ereignis eine Konversion. Die Konversion kann das Herunterladen und/oder Installieren einer mobilen Anwendung, Kaufen eines Produkts über eine Webseite für das Online-Shopping oder das Abonnieren eines Dienstes beinhalten. Beide Koordinationsserver können vom zweiten Ereignis Kenntnis erlangen und ermitteln, dass Ereignisse, die mit dem ersten und zweiten Koordinationsserver verbunden sind, die Zuordnung für das Ereignis empfangen sollten. Dies kann jedoch eine duplizierte Zuordnung sein, d. h. nur einer der zwei Koordinationsserver sollte ein Ereignis haben, das dem zweiten Ereignis zugeordnet ist.
  • In Schritt 430 empfangen der erste und zweite Koordinationsserver eine Anfrage für die Zuordnung des zweiten Ereignisses vom Zuordnungsserver 150. In Reaktion auf das Empfangen der Anfrage für die Zuordnung des zweiten Ereignisses kann jeder Koordinationsserver eine Suche aller Bestätigungsdaten durchführen, die mit Benutzerereignissen verbunden sind, die durchsucht werden können.
  • In Schritt 440 kann der erste Koordinationsserver Bestätigungsdaten durchsuchen, um ein Ereignis zu identifizieren, das möglicherweise dem zweiten Ereignis zugeordnet werden könnte oder diesem zugeordnet ist. In einigen Ausführungsformen durchsucht der erste Koordinationsserver die Bestätigungsmeldungen auf Basis einer Benutzerkennung, die mit dem zweiten Ereignis verbunden ist, und Benutzerkennungen, die mit den Ereignissen der Bestätigungsdaten verbunden sind. In einigen Ausführungsformen kann der erste Koordinationsserver eine Kennungszuordnung verwenden, die mehrere Kennungen zusammen zuordnet, um Ereignisse, die mit verschiedenen Konten, verschiedenen Geräten usw. durchgeführt werden, richtig zuzuordnen. Das Ergebnis des Durchsuchens der Bestätigungsdaten kann das Ereignis identifizieren, das mit dem ersten Koordinationsserver verbunden ist.
  • In Schritt 450 kann der erste Koordinationsserver Daten, die das erste Ereignis angeben, an den Zuordnungsserver 150 senden. Schritte 460 und 470 können gleich und/oder ähnlich den Schritten 440 und 450 sein. Die Schritte 460 und 470 können jedoch durch den zweiten Zuordnungsserver durchgeführt werden.
  • In Schritt 480 kann der Zuordnungsserver 150 ermitteln, ob das zweite Ereignis dem ersten Ereignis, das mit dem ersten Koordinationsserver verbunden ist, und dem Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, zuordenbar ist. In einigen Implementierungen kann der Zuordnungsserver 150 die Zuordnung auf Basis von Zeitstempeln ermitteln, die mit dem zweiten Ereignis verbunden sind, dem Ereignis, das mit dem ersten Koordinationsserver verbunden ist, und dem Ereignis, das mit dem zweiten Koordinationsserver verbunden ist. Der Zuordnungsserver 150 kann ermitteln, dass das Ereignis, das zeitlich am nächsten zum zweiten Ereignis erfolgt, dem zweiten Ereignis zuordenbar sein soll. Außerdem kann der Zuordnungsserver 150 ermitteln, dass ein Ereignis zuordenbar ist, wenn es innerhalb eines vorher festgelegten Umfangs vor dem ersten Ereignis erfolgt ist.
  • Wenn zum Beispiel die Ereignisse in der folgenden Reihenfolge erfolgt sind 1) Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, 2) Ereignis, das mit dem ersten Koordinationsserver verbunden ist, und 3) das zweite Ereignis, kann der Zuordnungsserver 150 ermitteln, dass das Ereignis, das mit dem ersten Koordinationsserver verbunden ist, dem zweiten Ereignis zugeordnet werden soll, während das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zugeordnet werden soll.
  • In Schritt 490 kann der Zuordnungsserver 150 eine Angabe der Zuordnung oder Nichtzuordnung an den ersten und zweiten Koordinationsserver senden. Der zweite Koordinationsserver kann eine Angabe empfangen, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zugeordnet werden soll, während der erste Koordinationsserver eine Angabe empfangen kann, dass das Ereignis, das mit dem ersten Koordinationsserver verbunden ist, dem zweiten Ereignis zugeordnet werden soll.
  • In Schritt 500 können, auf Basis der Angaben der Zuordnung oder Nicht-Zuordnung, der erste und zweite Koordinationsserver ihre Zuordnungsmetriken auf Basis der Angaben aktualisieren, die in Schritt 490 empfangen wurden. Bei den Zuordnungsmetriken kann es sich um die gesamte Konversion, gesamte Konversionen für bestimmte Inhaltselemente usw. handeln.
  • Wenn der zweite Koordinationsserver zum Beispiel das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis zuordnet, jedoch eine Angabe vom Zuordnungsserver 150 empfängt, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist, kann der zweite Koordinationsserver Daten und/oder Metriken, die durch den zweiten Koordinationsserver gespeichert werden, so aktualisieren, dass der zweite Koordinationsserver das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, nicht dem zweiten Ereignis zuordnet. Diese Deduplizierung der Ereigniszuordnung kann Inhaltsanbieter-Schnittstellen verbessern, die Daten melden können, indem sie die Genauigkeit der Metriken verbessert, die in der Schnittstelle angezeigt werden.
  • Implementierungen des Gegenstands und der in dieser Spezifikation beschriebenen Vorgänge können in digitalen elektronischen Schaltungen oder in Computer-Software implementiert sein, die in einem physischen Medium, Firmware oder Hardware enthalten sind, einschließlich der in dieser Spezifikation offenbarten Strukturen und ihrer strukturellen Äquivalente oder in Kombinationen von einer oder mehreren derselben. Implementierungen des in dieser Spezifikation beschriebenen Gegenstandes können als ein oder mehrere Computerprogramme implementiert werden, die auf einem physischen Medium, d. h. als ein oder mehrere Module mit Computerprogrammanweisungen enthalten sind, die auf einem oder mehreren Computerspeichermedien codiert sind, um von einer Datenverarbeitungsvorrichtung ausgeführt zu werden bzw. den Betrieb derselben (einschließlich z. B. eines Prozessors 102) zu steuern. Ein Computerspeichermedium kann ein computerlesbares Speichergerät, ein computerlesbares Speichersubstrat, ein frei adressierbares oder serielles Zugriffsspeicher-Array oder -Gerät oder eine Kombination daraus sein bzw. darin enthalten sein. Das Computerspeichermedium kann außerdem eine oder mehrere separate Komponenten oder Medien darstellen (z. B. mehrere CDs, Datenträger oder andere Speichergeräte) bzw. darin enthalten sein. Das Computerspeichermedium ist ein physisches Medium. Das Computerspeichermedium speichert Daten, z. B. computerausführbare Anweisungen, in nicht flüchtiger Form.
  • Ein Computerprogrammprodukt (auch als Programm, Software, Softwareanwendung, Script oder Code bezeichnet) kann in einer beliebigen Form von Programmiersprache geschrieben sein, darunter auch in kompilierten oder interpretierten Sprachen, deklarativen oder verfahrensorientierten Sprachen, wobei das Programm in jeder beliebigen Form eingesetzt werden kann, darunter auch als unabhängiges Programm oder als Modul, Komponente, Subroutine, Objekt oder als andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann, muss jedoch nicht einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, das andere Programme oder Daten enthält (wie z. B. ein oder mehrere Scripts, die in einem Dokument in Auszeichnungssprache gespeichert sind), in einer einzelnen dem betreffenden Programm gewidmeten Datei oder in mehreren koordinierten Dateien (wie beispielsweise Dateien, die ein oder mehrere Module, Bibliotheken, Teilprogramme oder Code-Abschnitte enthalten). Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort oder an mehreren Standorten verteilt befinden und über ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die in dieser Spezifikation beschriebenen Prozesse und Logikabläufe können von einem oder mehreren programmierbaren Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, die durch den auf Eingabedaten basierenden Betrieb und das Erstellen von Ausgabedaten bestimmte Vorgängen aktivieren. Die Prozesse und Logikabläufe können zudem durch eine Spezial-Logikschaltung, wie z. B. eine feldprogrammierbare Universalschaltung (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC) ausgeführt und das Gerät in Form derselben implementiert werden. Jene Spezialschaltung kann als Computerprozessor bezeichnet werden, selbst wenn es sich nicht um einen Universalprozessor handelt.
  • Obwohl diese Spezifikation viele spezifische Implementierungsdetails enthält, sollten diese nicht als Einschränkungen des Schutzumfangs einer Erfindung oder eines Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen, die für bestimmte Implementierungen bestimmter Erfindungen spezifisch sein können. Bestimmte Merkmale, die in dieser Spezifikation im Zusammenhang mit separaten Implementierungen beschrieben werden, können darüber hinaus in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Implementierung beschrieben werden, auch in mehreren Implementierungen separat oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale weiter oben ggf. als in bestimmten Kombinationen wirkend beschrieben und sogar zunächst als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgeschnitten und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
  • Gleichermaßen sollte dies, obwohl die Vorgänge in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, nicht so verstanden werden, dass die besagten Vorgänge in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen, oder dass alle veranschaulichten Vorgänge durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Implementierungen nicht als in allen Implementierungen erforderlich ausgelegt werden, da zudem davon ausgegangen werden sollte, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzelnen Softwareprodukt oder in mehreren Softwareprodukten gebündelt integriert sein können.
  • Bezugnahmen auf „oder“ können als inklusiv ausgelegt werden, sodass sich alle Begriffe, die mit „oder“ beschrieben werden, auf einen, mehr als einen oder jeden der beschriebenen Begriffe beziehen können. Die Begriffe „erster,“ „zweiter,“ „dritter,“ usw. sollen nicht notwendigerweise eine Reihenfolge angeben und dienen im Allgemeinen nur der Unterscheidung zwischen gleichartigen oder ähnlichen Gegenständen oder Elementen.
  • Es wurden somit bestimmte Implementierungen des Gegenstands beschrieben. Andere Implementierungen fallen in den Geltungsbereich der folgenden Ansprüche. So können in einigen Fällen die in den Ansprüchen angegebenen Aktionen in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich setzen beispielsweise die in den beigefügten Figuren dargestellten Prozesse nicht unbedingt die gezeigte spezielle Reihenfolge oder fortlaufende Reihenfolge voraus, um erwünschte Ergebnisse zu erzielen. In bestimmten Implementierungen kann Multitasking oder Parallelverarbeitung verwendet werden.

Claims (20)

  1. Verfahren zum Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung, das Verfahren umfassend: Empfangen, durch einen ersten Koordinationsserver, einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten durchgeführt wird; Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen einer Vielzahl von Bestätigungsmeldungen für eine Vielzahl von Ereignissen, einschließlich des ersten Ereignisses; und Senden, durch den ersten Koordinationsserver, von Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist.
  2. Verfahren nach Anspruch 1, ferner umfassend das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, wobei das Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne Zugreifen, durch den Zuordnungsserver, auf die Vielzahl von Bestätigungsmeldungen durchgeführt wird.
  3. Verfahren nach Anspruch 1, das Verfahren ferner umfassend das Empfangen, durch den ersten Koordinationsserver, einer Angabe der Zustimmung oder einer Angabe der Nichtzustimmung für die Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver.
  4. Verfahren nach Anspruch 3, ferner umfassend: Empfangen, durch den Zuordnungsserver, einer Benachrichtigung des zweiten Ereignisses; Senden, durch den Zuordnungsserver, einer Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver; Empfangen, durch den Zuordnungsserver, der Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver; Ermitteln, durch den Zuordnungsserver, auf Basis der Daten, die das erste Ereignis beschreiben, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist; Senden, durch den ersten Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist; und Senden der Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
  5. Verfahren nach Anspruch 4, wobei das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, das Ermitteln umfasst, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses umfassen.
  6. Verfahren nach Anspruch 3, ferner umfassend: Senden, durch den Zuordnungsserver, einer Ereigniszuordnungsanfrage für das zweite Ereignis an einen zweiten Koordinationsserver; Empfangen, durch den Zuordnungsserver, von Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver; Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem zweiten Koordinationsserver verbunden ist, auf Basis der Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist; Senden, durch den Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist; und Senden, durch den Zuordnungsserver, der Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist.
  7. Verfahren nach Anspruch 6, wobei das Verfahren ferner umfasst: Aktualisieren, durch den ersten Koordinationsserver, der Zuordnungsmetriken des ersten Koordinationsservers, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver; und Aktualisieren, durch den zweiten Koordinationsserver, der Zuordnungsmetriken des zweiten Koordinationsservers, um anzugeben, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Nichtzustimmung vom Zuordnungsserver.
  8. Verfahren nach Anspruch 6, wobei das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis Ereignissen zuordenbar ist, die mit den Daten verbunden sind, die das Ereignis beschreiben, das mit dem zweiten Zuordnungsserver verbunden ist, das Ermitteln umfasst, ob ein Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem zweiten Koordinationsserver verbunden ist, zeitlich einem Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei die Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den Zeitstempel umfassen, der mit dem Ereignis verbunden ist, das mit dem zweiten Koordinationsserver verbunden ist.
  9. Verfahren nach Anspruch 1, wobei das Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, das Durchsuchen der Vielzahl von Bestätigungsmeldungen mit einer Kennung umfasst, die mit dem zweiten Ereignis verbunden ist, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln.
  10. Verfahren nach Anspruch 9, wobei das Durchsuchen der Vielzahl von Bestätigungsmeldungen mit der Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, das Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, umfasst, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist.
  11. System zum Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung, das System umfassend: einen ersten Koordinationsserver, umfassend eine Verarbeitungsschaltung konfiguriert zum: Empfangen einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines von einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten durchgeführt wird; Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen einer Vielzahl von Bestätigungsmeldungen für eine Vielzahl von Ereignissen, einschließlich des ersten Ereignisses; Senden von Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist; und Empfangen einer Angabe der Zustimmung oder einer Angabe der Nichtzustimmung für die Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver.
  12. System nach Anspruch 11, wobei die Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen der Vielzahl von Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu bestimmen.
  13. System nach Anspruch 12, wobei die Verarbeitungsschaltung konfiguriert ist, die Vielzahl von Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, zu durchsuchen, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, durch Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist.
  14. System nach Anspruch 11, wobei die Verarbeitungsschaltung konfiguriert ist, Zuordnungsmetriken des ersten Koordinationsservers zu aktualisieren, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver.
  15. System zum Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung, das System umfassend: einen Zuordnungsserver, umfassend eine Verarbeitungsschaltung konfiguriert zum: Empfangen einer Benachrichtigung eines zweites Ereignisses, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, das mit einem ersten Koordinationsserver verbunden ist, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten durchgeführt wird; Senden einer Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver; Empfangen von Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver; Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist; Senden einer Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist; und Senden einer Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
  16. System nach Anspruch 15, wobei die Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne Zugreifen durch den Zuordnungsserver auf eine Vielzahl von Bestätigungsmeldungen, die durch den ersten Koordinationsserver gespeichert werden, wobei die Koordinationsmeldungen Informationen über Ereignisse umfassen, die mit dem ersten Koordinationsserver verbunden sind, der das erste Ereignis umfasst.
  17. System nach Anspruch 15, wobei die Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses umfassen.
  18. System nach Anspruch 15, wobei die Verarbeitungsschaltung konfiguriert ist zum: Senden der Ereigniszuordnungsanfrage für das zweite Ereignis an einen zweiten Koordinationsserver; Empfangen von Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver, wobei das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten vor dem zweiten Ereignis durchgeführt wird; Ermitteln, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem ersten Koordinationsserver verbunden ist; und Senden der Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist.
  19. System nach Anspruch 18, wobei Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob ein erster Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein dritter Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem Koordinationsserver verbunden ist, zeitlich einem zweiten Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei die Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den dritten Zeitstempel beinhalten.
  20. System nach Anspruch 15, wobei die Angabe der Zustimmung und die Angabe der Nichtzustimmung den ersten Koordinationsserver veranlassen, Zuordnungsmetriken des ersten Koordinationsservers so zu aktualisieren, dass sie angeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist oder nicht zuordenbar ist.
DE102017130229.8A 2017-04-28 2017-12-15 Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung Pending DE102017130229A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762491816P 2017-04-28 2017-04-28
US62/491,816 2017-04-28
US15/836,586 2017-12-08
US15/836,586 US10979284B2 (en) 2017-04-28 2017-12-08 Systems and methods for providing cross-network event attribution

Publications (1)

Publication Number Publication Date
DE102017130229A1 true DE102017130229A1 (de) 2018-10-31

Family

ID=60937894

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202017107667.9U Active DE202017107667U1 (de) 2017-04-28 2017-12-15 Systeme und Computerprogrammprodukte für das Bereitstellen netzwerkübergreifender Ereigniszuordnung
DE102017130229.8A Pending DE102017130229A1 (de) 2017-04-28 2017-12-15 Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE202017107667.9U Active DE202017107667U1 (de) 2017-04-28 2017-12-15 Systeme und Computerprogrammprodukte für das Bereitstellen netzwerkübergreifender Ereigniszuordnung

Country Status (8)

Country Link
US (1) US10979284B2 (de)
EP (1) EP3560158B1 (de)
JP (1) JP6871395B2 (de)
KR (1) KR102262482B1 (de)
CN (1) CN108809687B (de)
DE (2) DE202017107667U1 (de)
GB (1) GB2561939A (de)
WO (1) WO2018200033A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114402300A (zh) * 2020-08-18 2022-04-26 谷歌有限责任公司 用于识别共享特征的事件的系统和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064450A1 (en) * 2002-09-30 2004-04-01 Kabushiki Kaisha Toshiba Method for preparing data to be analyzed, data analysis method, data analysis device, data preparation program, data analysis program, data prediction device, data prediction method, data prediction program and computer
CN101540734A (zh) 2008-03-21 2009-09-23 阿里巴巴集团控股有限公司 一种跨域名Cookie访问方法、系统及设备
US8689136B2 (en) 2010-02-03 2014-04-01 Yahoo! Inc. System and method for backend advertisement conversion
US20110246298A1 (en) * 2010-03-31 2011-10-06 Williams Gregory D Systems and Methods for Integration and Anomymization of Supplier Data
US8788339B2 (en) 2011-05-27 2014-07-22 Google Inc. Multiple attribution models with return on ad spend
US20160328739A1 (en) 2012-02-06 2016-11-10 Kenshoo Ltd. Attribution of values to user interactions in a sequence
US20140365296A1 (en) * 2013-06-07 2014-12-11 Google Inc. Cross-device conversion estimates
US20160196494A1 (en) 2013-06-20 2016-07-07 Vodafone Ip Licensing Limited Location analysis for analytics
US20150066634A1 (en) * 2013-09-05 2015-03-05 Kenshoo Ltd. System, a method and a computer program product for optimally communicating based on user's historical interactions and performance data
US20150199767A1 (en) * 2014-01-15 2015-07-16 Bank Of America Corporation System for Consolidating Customer Transaction Data

Also Published As

Publication number Publication date
GB201721008D0 (en) 2018-01-31
CN108809687B (zh) 2022-01-04
KR20190099068A (ko) 2019-08-23
CN108809687A (zh) 2018-11-13
US20180316546A1 (en) 2018-11-01
EP3560158A1 (de) 2019-10-30
KR102262482B1 (ko) 2021-06-08
GB2561939A (en) 2018-10-31
EP3560158B1 (de) 2021-04-28
JP6871395B2 (ja) 2021-05-12
JP2020514877A (ja) 2020-05-21
WO2018200033A1 (en) 2018-11-01
US10979284B2 (en) 2021-04-13
DE202017107667U1 (de) 2018-07-31

Similar Documents

Publication Publication Date Title
US20210126839A1 (en) Systems and methods for enterprise information technology (it) monitoring
JP2022058578A (ja) 分散イベント処理システムにおけるデータシリアライズ
US20170344605A1 (en) Optimizing write operations in object schema-based application programming interfaces (apis)
JP2016539427A (ja) 多重入力データストリームにわたるパターンマッチング
US11809446B2 (en) Visualizing time metric database
US20180165349A1 (en) Generating and associating tracking events across entity lifecycles
DE102016125767A1 (de) Entdeckung einer verbundenen Entität
US9990403B2 (en) System and a method for reasoning and running continuous queries over data streams
DE202017100386U1 (de) Latenzreduzierung bei der feedbackbasierten Ermittlung einer Systemperformance
US10938684B2 (en) Disparate monitoring for IoT
CN110020273A (zh) 用于生成热力图的方法、装置以及系统
US20170270037A1 (en) Making production data available for testing in a non-production environment
CN112667733A (zh) 数据仓库数据导入方法与系统
US10452679B2 (en) Systems and methods for context-sensitive data annotation and annotation visualization
Chen et al. Use of grid computing for modeling virtual geospatial products
US20140047377A1 (en) Retrieving data from an external data source
DE112020000274T5 (de) Systeme und verfahren zur identifizierung von ereignissen, die eine eigenschaft teilen
DE102017130229A1 (de) Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung
CN113094393B (zh) 数据汇聚方法及装置、电子设备
US9305066B2 (en) System and method for remote data harmonization
US10169083B1 (en) Scalable method for optimizing information pathway
CN113806401A (zh) 数据流处理
US8910183B2 (en) Access to context information in a heterogeneous application environment
DE212017000012U1 (de) Beurteilung der Genauigkeit eines Maschinenlernmodells
JP2023509812A (ja) データ記憶方法、装置、クエリ方法、電子機器および可読媒体

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: KASTEL, STEFAN, DIPL.-PHYS.UNIV., DE

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KASTEL, STEFAN, DIPL.-PHYS.UNIV., DE

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, NL