KR102262482B1 - 교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법 - Google Patents

교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR102262482B1
KR102262482B1 KR1020197022470A KR20197022470A KR102262482B1 KR 102262482 B1 KR102262482 B1 KR 102262482B1 KR 1020197022470 A KR1020197022470 A KR 1020197022470A KR 20197022470 A KR20197022470 A KR 20197022470A KR 102262482 B1 KR102262482 B1 KR 102262482B1
Authority
KR
South Korea
Prior art keywords
event
server
conversion
interaction event
interaction
Prior art date
Application number
KR1020197022470A
Other languages
English (en)
Other versions
KR20190099068A (ko
Inventor
라이언 엘름퀴스트
롄샤오 추
라울 오크
Original Assignee
구글 엘엘씨
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 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20190099068A publication Critical patent/KR20190099068A/ko
Application granted granted Critical
Publication of KR102262482B1 publication Critical patent/KR102262482B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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
    • 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
    • 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

Abstract

교차 컨텐츠 네트워크 이벤트 귀속을 제공하는데 사용될 수 있는 시스템 및 방법이 제공된다. 하나의 방법은 조정 서버에 의해, 속성 서버로부터 제2 이벤트에 대한 이벤트 귀속 요청을 수신하는 단계를 포함하고, 상기 제2 이벤트는 제1 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 상기 제1 이벤트는 복수의 디바이스 중 하나를 통해 사용자에 의해 수행된 다른 온라인 활동이다. 상기 방법은 조정 서버에 의해, 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계를 포함한다.

Description

교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법
본 출원은 2017년 4월 28일에 출원된 미국 가출원 제62/491,816호 및 2017년 12월 8일자로 출원된 미국 특허 출원 제15/836,586호에 대한 이익 및 우선권을 주장하며, 그 개시 내용은 본원에 참고로 포함된다.
서로 다른 여러 당사자가 제어하는 다수의 컴퓨팅 시스템 사이의 데이터 교환은 복잡한 타임 라인을 초래할 수 있다. 일부 애플리케이션은 모든 이벤트 데이터를 보유하지 않고 데이터 이벤트 사이의 상관 관계를 식별하려고 한다. 이것은 상충되는 이벤트 히스토리 뷰를 초래할 수 있고 귀속(attribution)이나 효과에 관한 불일치(disagreement)로 이어질 수 있다. 이러한 불일치를 해결하려는 과거의 시도는 과도한 데이터 공유를 필요로 하고 일반적으로 추가 네트워크 사용을 초래하여, 데이터 교환에 바람직하지 않은 대기 시간과 지연이 추가되었다.
교차 컨텐츠 네트워크 이벤트 귀속을 제공하는 하나의 예시적인 방법은, 제1 조정 서버에 의해, 속성 서버로부터 제2 이벤트에 대한 이벤트 귀속 요청을 수신하는 단계를 포함하고, 상기 제2 이벤트는 제1 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 제1 이벤트는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 다른 온라인 활동이다. 상기 방법은 제1 조정 서버에 의해, 제1 이벤트를 포함하는 다수의 이벤트에 대한 복수의 확인 메시지를 검색함으로써 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계를 포함한다. 상기 방법은 제1 조정 서버에 의해, 상기 제2 이벤트가 제1 이벤트에 귀속된다고 결정한 것에 응답하여 제1 이벤트를 기술하는 데이터를 조정 서버로 전송하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 제1 조정 서버에 의해, 속성 서버로부터 제1 이벤트에 대한 제2 이벤트의 귀속에 대한 일치 표시 또는 불일치 표시를 수신하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계를 더 포함하고, 상기 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계는 상기 속성 서버에 의해, 다수의 확인 메시지에 액세스하지 않고 수행된다.
일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 제2 이벤트의 통지를 수신하는 단계와 상기 속성 서버에 의해, 상기 제2 이벤트에 대한 이벤트 귀속 요청을 제1 조정 서버로 송신하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제1 조정 서버로부터 제1 이벤트를 기술하는 데이터를 수신하는 단계와 상기 속성 서버에 의해, 제1 이벤트를 기술하는 데이터에 기초하여 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제2 이벤트가 제1 이벤트에 귀속된다고 결정한 것에 응답하여 상기 제1 조정 서버로 일치 표시를 송신하는 단계와 상기 제2 이벤트가 제1 이벤트에 귀속되지 않는다고 결정한 것에 응답하여 상기 제1 조정 서버로 불일치 표시를 송신하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제1 이벤트의 제1 타임 스탬프와 상기 제2 이벤트의 제2 타임 스탬프 사이의 지속 시간이 기정의된 양보다 적은지 여부를 결정함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계를 포함하고, 상기 제1 이벤트를 기술하는 데이터는 제1 이벤트의 제1 타임 스탬프를 포함한다.
일부 구현예에서, 상기 방법은 상기 제1 조정 서버에 의해, 상기 제2 이벤트와 관련된 식별자와 상기 제1 이벤트와 관련된 식별자사이의 매칭을 결정하기 위해 상기 제2 이벤트와 관련된 식별자로 다수의 확인 메시지를 검색함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하는 단계를 포함한다.
일부 구현예에서, 상기 방법은, 상기 제2 이벤트의 식별자를 상기 제1 이벤트와 관련된 식별자에 매핑하는 식별자 맵에 기초하여, 상기 제1 이벤트의 식별자가 제2 이벤트의 식별자에 매핑되는지 여부를 결정함으로써 상기 제2 이벤트와 관련된 식별자와 상기 제1 이벤트와 관련된 식별자 간의 매칭을 결정하기 위해 상기 제2 이벤트와 관련된 식별자로 다수의 확인 메시지를 검색하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제2 이벤트에 대한 이벤트 귀속 요청을 제2 조정 서버로 송신하는 단계와 상기 속성 서버에 의해, 상기 제2 조정 서버와 관련된 이벤트를 기술하는 데이터를 상기 제2 조정 서버로부터 수신하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제2 조정 서버와 관련된 이벤트를 기술하는 데이터에 기초하여 상기 제2 이벤트가 제2 조정 서버와 관련된 이벤트에 귀속되는지 여부를 결정하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 속성 서버에 의해, 상기 제1 이벤트가 제2 이벤트에 귀속된다고 결정한 것에 응답하여 일치 표시를 제1 조정 서버로 전송하는 단계와 상기 속성 서버에 의해, 상기 제2 조정 서버와 관련된 이벤트가 제2 이벤트에 귀속되지 않다고 결정한 것에 응답하여 불일치 표시를 제2 조정 서버로 전송하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 제1 조정 서버에 의해, 상기 속성 서버로부터 일치 표시를 수신하는 것에 응답하여 상기 제1 이벤트가 제2 이벤트에 귀속함을 나타내기 위해 상기 제1 조정 서버의 속성 메트릭을 업데이트하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 상기 제2 조정 서버에 의해, 상기 속성 서버로부터 불일치 표시를 수신하는 것에 응답하여 상기 제2 조정 서버와 관련된 이벤트가 제2 이벤트에 귀속되지 않음을 나타내기 위해 상기 제2 조정 서버의 속성 메트릭을 업데이트하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 제1 이벤트와 연관된 타임 스탬프 또는 상기 제2 조정 서버와 관련된 이벤트와 연관된 타임 스탬프가 시간적으로 상기 제2 이벤트와 연관된 타임 스탬프에 더 가까운지 여부를 결정함으로써 상기 속성 서버에 의해, 상기 제2 이벤트가 제2 속성 서버와 관련된 이벤트를 기술하는 데이터와 관련된 이벤트들에 귀속되는지 여부를 결정하는 단계를 포함하고, 상기 제2 조정 서버와 관련된 이벤트를 기술하는 데이터는 상기 제2 조정 서버와 관련된 이벤트와 연관된 타임 스탬프를 포함한다.
교차 컨텐츠 네트워크 이벤트 귀속을 제공하는 하나의 예시적인 시스템은 처리 회로를 포함하는 제1 조정 서버를 포함한다. 상기 처리 회로는 속성 서버로부터 제2 이벤트에 대한 이벤트 귀속 요청을 수신하도록 구성되고, 상기 제2 이벤트는 제1 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 상기 제1 이벤트는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 다른 온라인 활동이다. 상기 처리 회로는 제1 이벤트를 포함하는 복수의 이벤트에 대한 복수의 확인 메시지를 검색함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하고, 상기 제2 이벤트가 제1 이벤트에 귀속된다고 결정한 것에 응답하여 상기 속성 서버로 상기 제1 이벤트를 기술하는 데이터를 송신하도록 구성된다. 또한, 상기 처리 회로는 상기 속성 서버로부터 제1 이벤트에 대한 제2 이벤트의 귀속에 대한 일치 표시 또는 불일치 표시를 수신하도록 구성된다.
일부 구현예에서, 상기 처리 회로는 상기 제2 이벤트와 관련된 식별자와 상기 제1 이벤트와 관련된 식별자 간의 매칭을 결정하기 위해 상기 제2 이벤트와 관련된 식별자로 다수의 확인 메시지를 검색함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하도록 구성된다.
일부 구현예에서, 상기 처리 회로는 상기 제2 이벤트와 관련된 식별자로 상기 복수의 확인 메시지를 검색하여, 상기 제2 이벤트의 식별자를 상기 제1 이벤트와 관련된 식별자에 매핑하는 식별자 맵에 기초하여, 상기 제1 이벤트의 식별자가 제2 이벤트의 식별자에 매핑되는지 여부를 결정함으로써 상기 제2 이벤트와 관련된 식별자와 상기 제1 이벤트와 관련된 식별자 간의 매칭을 결정하도록 구성된다.
일부 구현예에서, 상기 처리 회로는 상기 속성 서버로부터 일치 표시를 수신하는 것에 응답하여 상기 제1 이벤트가 제2 이벤트에 귀속됨을 나타내기 위해 상기 제1 조정 서버의 속성 메트릭을 업데이트하도록 구성된다.
교차 컨텐츠 네트워크 이벤트 속성을 제공하는 다른 예시적인 시스템은 처리 회로를 포함하는 속성 서버를 포함한다. 상기 처리 회로는 제2 이벤트의 통지를 수신하도록 구성되고, 상기 제2 이벤트는 제1 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 상기 제1 이벤트는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 다른 온라인 활동이다. 상기 처리 회로는 상기 제2 이벤트에 대한 이벤트 귀속 요청을 제1 조정 서버로 송신하도록 구성된다. 상기 처리 회로는 상기 제1 조정 서버로부터 제1 이벤트를 기술하는 데이터를 수신하고, 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하고, 상기 제2 이벤트가 제1 이벤트에 귀속된다고 결정한 것에 응답하여 상기 제1 조정 서버로 일치 표시를 송신하도록 구성된다. 상기 처리 회로는 상기 제2 이벤트가 제1 이벤트에 귀속되지 않는다고 결정한 것에 응답하여 상기 제1 조정 서버로 불일치 표시를 송신하도록 구성된다.
일부 구현예에서, 상기 처리 회로는 상기 속성 서버에 의해, 상기 제1 조정 서버에 의해 저장된 다수의 확인 메시지에 액세스하지 않고 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하도록 구성되고, 상기 조정 메시지는 상기 제1 이벤트를 포함하는 제1 조정 서버와 관련된 이벤트들에 관한 정보를 포함한다.
일부 구현예에서, 상기 처리 회로는 상기 제1 이벤트의 제1 타임 스탬프와 상기 제2 이벤트의 제2 타임 스탬프 사이의 지속 시간이 기정의된 양보다 적은지 여부를 결정함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하도록 구성되고, 상기 제1 이벤트를 기술하는 데이터는 제1 이벤트의 제1 타임 스탬프를 포함한다.
일부 구현예에서, 상기 처리 회로는 상기 제2 이벤트에 대한 이벤트 귀속 요청을 제2 조정 서버로 송신하고, 상기 제2 조정 서버와 관련된 이벤트를 기술하는 데이터를 제2 조정 서버로부터 수신하도록 구성된다. 상기 제2 조정 서버와 관련된 이벤트는 상기 제2 이벤트 이전에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 다른 온라인 활동일 수 있다. 상기 처리 회로는 제2 이벤트가 상기 제2 조정 서버와 관련된 이벤트에 귀속되는지 여부를 결정하고, 상기 제2 조정 서버와 관련된 이벤트가 제2 이벤트에 귀속되지 않는다고 결정한 것에 응답하여 상기 제2 조정 서버로 불일치 표시를 송신하도록 구성될 수 있다.
일부 구현예에서, 상기 처리 회로는 상기 제1 이벤트와 연관된 제1 타임 스탬프 또는 상기 제2 조정 서버와 관련된 이벤트와 연관된 제3 타임 스탬프가 시간적으로 상기 제2 이벤트와 관련된 제2 타임 스탬프와 더 가까운지 여부를 결정함으로써 상기 제2 이벤트가 제1 이벤트에 귀속되는지 여부를 결정하도록 구성되고, 상기 제2 조정 서버와 관련된 이벤트를 기술하는 데이터는 제3 타임 스탬프를 포함한다.
일부 구현예에서, 상기 일치 표시 및 불일치 표시는 상기 제1 조정 서버가 상기 제1 이벤트가 제2 이벤트에 귀속되는지 또는 귀속되지 않는지를 나타내기 위해 상기 제1 조정 서버의 속성 메트릭을 업데이트하게 한다.
이하, 이들 및 유사한 방법, 장치, 및 시스템에 관련된 다양한 개념 및 구현예의 보다 상세한 설명이 있다. 상기 기술된 개념들은 임의의 특정 방식의 구현으로 제한되지 않기 때문에, 위에서 소개되고 아래에서 보다 상세히 논의되는 다양한 개념은 임의의 다양한 방식으로 구현될 수 있다.
본 발명의 전술한 및 관련 목적, 특징 및 이점은 첨부된 도면과 관련하여 다음의 상세한 설명을 참조함으로써 더욱 완전하게 이해될 것이다.
도 1a는 예시적인 구현에 따른 네트워크 간 이벤트 귀속을 수행할 수 있는 서버를 도시한 블록도이다.
도 1b는 예시적인 구현예에 따른 본 명세서 기술된 다양한 구현예에서 사용하기에 적합한 예시적인 컴퓨팅 디바이스를 나타낸 블록도이다.
도 2는 예시적인 구현예에 따른 귀속을 위한 이벤트들을 도 1a의 서버들과 상관시키는 방법에 대한 흐름도이다.
도 3은 예시적인 구현예에 따른 도 1a의 서버를 이용하여 선행 이벤트에 대한 제2 이벤트의 귀속을 확인하는 방법에 대한 흐름도이다.
도 4는 예시적인 구현예에 따른 다수의 조정 서버의 이벤트를 귀속시키기 위한 방법에 대한 흐름도이다.
명료함을 위해, 모든 구성 요소가 모든 도면에 라벨링될 수 있는 것은 아니다. 도면은 일정한 비율로 그려진 것이 아니다. 다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
일반적으로 도면을 참조하면, 다양한 구현예에 따른 다양한 컨텐츠 네트워크에서 발생하는 이벤트 간의 귀속(attribution)을 결정하기 위한 다양한 예시적인 시스템 및 방법이 도시된다. 본 명세서에 기술된 바와 같이, 속성 서버 및 하나 이상의 조정 서버는 다양한 이벤트의 귀속을 수행하도록 구성될 수 있다. 이벤트는 사용자가 다양한 사용자 디바이스를 통해 온라인 리소스를 이용하여 수행할 수 있는 온라인 상호 작용일 수 있다. 본 명세서에 기술된 시스템 및 방법은 개선된 데이터 보안을 이용하여 이벤트들의 효율적인 귀속을 실시간으로 달성할 수 있다.
본 명세서에서 기술된 속성 서버는 사용자가 수행할 수 있는 다양한 온라인 활동들 사이의 귀속을 수행하도록 구성된 서버일 수 있다. 조정 서버는 사용자의 온라인 활동의 표시를 수신하여, 사용자의 온라인 활동을 저장하고, 속성 서버와 통신하여 활동들 간의 귀속을 결정하도록 구성된 서버일 수 있다. 컨텐츠 제공자가 다수의 조정 서버(예를 들어, 컨텐츠 제공자가 다수의 온라인 컨텐츠 분배 네트워크를 통해 컨텐츠를 제공함)를 사용할 때, 사용자는 전환(conversion)을 수행하기 전에 조정 서버들의 컨텐츠 아이템과 상호 작용할 수 있다. 각 조정 서버는 개별 조정 서버와 관련된 이벤트로 상기 전환을 귀속시킬 수 있다. 그러나, 이는 하나의 전환만이 발생했기 때문에 조정 서버들 중 하나의 이벤트만 전환에 대해 귀속을 받아야 하므로 오류일 수 있다. 이와 관련하여, 속성 서버는 본 명세서에 추가로 기술된 시스템 및 방법을 통해 전환 귀속의 중복을 정정하도록 구성될 수 있다.
본 명세서에 기술된 구현예 중 일부에서, 제1 이벤트 및 제2 이벤트가 참조된다. 제1 이벤트는 사용자 디바이스(예를 들어, 핸드폰 또는 개인용 컴퓨터)를 통해 사용자가 수행할 수 있는 온라인 컨텐츠 배포 네트워크를 통해 제공되는 컨텐츠 아이템과의 상호 작용(예를 들어, 컨텐츠 아이템 노출을 통한 보기 및/또는 클릭)과 같은 온라인 활동일 수 있다. 조정 서버는 제1 이벤트 또는 제1 이벤트와 유사한 임의의 수의 이벤트에 대한 데이터를 수신 및 저장할 수 있다. 일부 구현예에 따라 본 명세서에서 제2 이벤트로서 언급되는 후속 이벤트는 제1 이벤트 이후에 일어나는 사용자 디바이스로 사용자가 수행한 다른 사용자 활동일 수 있다. 일부 구현에서 제2이벤트는 전환이다. 상기 전환에는 사용자 애플리케이션 다운로드 및/또는 설치, 상품 및/또는 서비스 구매, 비디오 시청, 서버 가입 등이 포함될 수 있다. 본 명세서에 기술된 방법을 통해 귀속은 제1 이벤트와 제2이벤트 사이에서 결정될 수 있다.
데이터 보안은 조정 서버와 속성 서버사이에 교환되는 데이터상에 위치한 제한 사항을 통해 본 명세서에 기술된 시스템 및 방법에 의해 향상될 수 있다. 예를 들어, 이벤트 귀속을 결정하기 위해, 사용자의 모든 온라인 활동은 속성 서버에 의해 컴파일될 수 있으며, 이벤트 간의 귀속은 집계 데이터 세트에 기초하여 속성 서버에 의해 결정될 수 있다. 그러나, 이벤트 데이터를 집계하는 것은 데이터 프라이버시에 바람직하지 않을 수 있다. 그 대신, 본 명세서에 기술된 조정 서버는, 속성 서버가 조정 서버로부터 사용자의 모든 이벤트와 관련된 데이터를 획득하지 않거나 또는 심지어 조정 서버로부터 제1 이벤트에 대한 모든 정보를 획득하지 않고도 귀속을 확인 또는 거절할 수 있도록 속성 서버로 단지 제1 이벤트에 대한 충분한 정보를 제공할 수 있다. 더욱이, 네트워크 대역폭은 대용량의 사용자 이벤트 데이터 세트를 전달하는 대신 속성 서버와 조정 서버 간의 제한된 통신을 통해 귀속 이벤트에 대한 교환을 제한함으로써 보전된다.
일반적으로, 본 명세서에 기술된 방법들은 조정 서버에 의해, 제1 이벤트에 대한 데이터 및 속성 서버로부터 제1 이벤트에 후속하여 발생하는 제2 이벤트의 귀속에 대한 요청을 수신하는 단계를 포함할 수 있다. 제2 이벤트에 대한 귀속 요청을 수신한 것에 응답하여, 조정 서버는 저장된 이벤트 데이터에 대한 검색을 수행함으로써 제1 이벤트를 식별할 수 있다. 저장된 이벤트 데이터는 임의의 수의 사용자 이벤트를 포함할 수 있고 제1 이벤트에 관한 데이터를 포함할 수 있다.
조정 서버는 상기 저장된 이벤트(제1 이벤트)로부터 귀속 이벤트를 식별할 수 있다. 조정 서버는 제1 이벤트에 대한 설명(description)을 속성 서버로 반환할 수 있다. 일부 구현예에서, 다수의 조정 서버는 귀속 이벤트들을 식별하여 속성 서버로 그 귀속 이벤트들을 제공한다. 속성 서버는 이벤트들의 설명에 기초하여 조정 서버에 의해 제안된 귀속을 확인하거나 거절할 수 있다. 속성 서버는 일치(agreement) 또는 불일치(disagreement) 표시를 각각의 조정 서버로 송신할 수 있다.
본 명세서에 기술된 일부 구현예에서, 다수의 조정 서버는 다양한 컨텐츠 네트워크에 걸친 온라인 사용자 활동의 표시를 수신할 수 있다. 2개의 서로 다른 컨텐츠 네트워크를 통해 사용자에게 컨텐츠 아이템을 제공하는 컨텐츠 제공자는 사용자가 두 컨텐츠 네트워크에서 컨텐츠 아이템과 상호 작용하는 방식을 이해하고자 할 수 있다. 제1 조정 서버는 제1 컨텐츠 네트워크와 관련된 컨텐츠 아이템으로 사용자 활동의 표시를 수신할 수 있는 반면 제2 조정 서버는 제2 컨텐츠 네트워크와 관련된 컨텐츠 아이템으로 사용자 활동의 표시를 수신할 수 있다.
속성 서버는 사용자가 수행한 제2이벤트를 인식할 수 있다. 이 이벤트는 사용자가 제1 컨텐츠 네트워크의 컨텐츠 및 제2 컨텐츠 네트워크의 컨텐츠를 보거나 그와 상호 작용한 후에 수행하는 전환일 수 있다. 두 조정 서버는 전환이 발생된 것으로 결정할 수 있고, 그 전환을 고려하는 각 사용자 인터페이스에 전환 메트릭을 표시할 수 있다. 그러나, 하나의 전환만 발생했기 때문에 조정 서버들에 의해 보고된 전환들은 중복되므로, 실제로는 조정 서버들 중 하나와 관련된 이벤트로만 귀속되어야 한다.
이러한 중복을 정정하기 위해, 속성 서버는 귀속에 대한 요청을 2개의 조정 서버에 전송하고, 그 대가로 조정 서버들로부터 잠재적으로 귀속 이벤트들을 수신할 수 있다. 이러한 잠재적인 귀속 이벤트들에 기초하여, 속성 서버는 전환 이벤트가 제1 조정 서버와 관련된 온라인 사용자 활동 또는 제2조정 서버와 관련된 온라인 사용자 활동에 귀속되는지 여부를 결정할 수 있다. 일부 구현예에서, 제1 및 제2 조정 서버는 상기 각각의 온라인 사용자 상호 작용에 관한 정보를 속성 서버로 전송한다. 이 정보에는 상호 작용이 발생한 타임 스탬프가 포함될 수 있다. 속성 서버는 상기 타임 스탬프들에 기초하여 상기 전환에 대한 귀속으로서 온라인 사용자 상호 작용들 중 하나만을 선택할 수 있다. 속성 서버는 시간적으로 가장 가까운 시간에 발생하는 이벤트만 상기 전환의 타임 스탬프에 귀속시킬 수 있다.
속성 서버는 귀속의 확인 또는 거절을 제1 및 제2 조정 서버로 전송할 수 있다. 예를 들어, 만약 속성 서버가 제1 조정 서버에 의해 수행된 온라인 이벤트 활동이 귀속을 수신해야 한다고 결정하면, 속성 서버는 조정 서버로 귀속의 통지를 전송하고 제2 조정 서버로 비-귀속의 통지를 전송할 수 있다. 이와 관련하여, 두 조정 서버는 그들이 저장 및/또는 사용자에게 제시하는 데이터 메트릭을 보다 정확하게 업데이트할 수 있다. 제1 조정 서버는 속성 서버로부터 귀속의 통지를 수신하는 것에 응답하여 상기 조정 서버와 관련된 사용자 상호 작용이 상기 전환에 귀속함을 결정(또는 유지)할 수 있다. 그러나, 제2 조정 서버는 귀속 없음 표시에 기초하여, 제2 조정 서버와 관련된 사용자 상호 작용이 전환을 유발하는 것으로 카운트되어서는 안되는 것으로 결정할 수 있다.
일부 실시예에서, 각 조정 서버는 컨텐츠 제공자가 사용자 활동과 관련된 메트릭을 볼 수 있게 하는 대시 보드를 포함할 수 있다. 각 대시 보드는 컨텐츠 제공자가 본 명세서에 기술된 교차 네트워크 이벤트 귀속 시스템 및 방법을 통해 이벤트의 중복 제거를 활성화 또는 비활성화할 수 있게 한다. 유사하게, 속성 서버는 컨텐츠 제공자가 사용자 활동과 관련된 메트릭, 하나 이상의 조정 서버와 관련된 사용자 활동을 볼 수 있게 하는 대시 보드를 포함할 수 있다. 이와 관련하여, 조정 서버들은 각각의 조정 서버에 의해 수신된 사용자 활동을 보고하는 대시 보드를 포함할 수 있다. 중복 제거를 활성화하면 조정 서버가 속성 서버에 의해 촉진된 귀속 방법에 참여할 수 있게 한다. 중복 제거를 비활성화하면 조정 서버가 속성 서버로부터 수신한 임의의 요청 또는 통지를 무시할 수 있게 한다.
본 명세서에서 논의된 시스템이 사용자에 관한 정보를 수집하거나 사용자에 관한 정보를 이용할 수 있는 상황에서, 사용자는 프로그램 또는 피처가 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 행동이나 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 관한 정보)를 수신하는지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 컨텐츠를 컨텐츠 서버로부터 수신할지 여부 및/또는 수신 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 사용자에 대한 특정 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 식별 정보는 사용자에 대한 어떠한 식별 정보도 결정될 수 없도록 처리되거나, 또는 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 위치 정보가 획득된 곳(도시, 우편 번호 또는 주 수준)으로 일반화될 수 있다. 따라서, 사용자는 컨텐츠 서버가 사용자에 관한 정보를 수집하여 사용하는 방법을 제어할 수 있다.
이제 도 1a를 참조하면, 예시적인 구현예에 따른 이벤트 귀속을 수행하기 위한 예시적인 컴퓨팅 환경(100)을 도시하는 블록도가 도시된다. 컴퓨팅 환경(100)은 클라이언트 디바이스(120)가 리소스를 클라이언트 디바이스(120)에 제공하는 서버와 같은 다른 네트워크 접속된 컴퓨터 시스템과 통신하도록 구성될 수 있는 네트워크(110)(예를 들어, 인터넷)를 포함하는 것으로 도시된다. 상기 리소스는 전자 메일, 웹 페이지, 미디어 스트리밍 및 애플리케이션 지원일 수 있다.
도 1a는 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버 (150) 및 조정 서버(160)를 포함하는 것으로 도시된다. 상기 서버들은 네트워크(110)를 통해, 개별 사설망 또는 백플레인(미도시)을 통해 또는 다이렉트 링크를 통해 통신할 수 있다. 상기 서버들은 독립적인 당사자들에 의해 운영되거나, 동일한 당사자들에 의해 운영되거나 및/또는 통합될 수 있다. 일부 서버는 서버의 기능에 사용하기 위한 데이터를 유지할 수 있는데, 예를 들어, 조정 서버(160)는 데이터 저장 장치(190)와 통신하는 것으로 도시된다.
클라이언트 디바이스들(120), 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150) 및/또는 조정 서버(160)는 다양한 방법(예를 들어, 도 2 내지 도 3을 참조하여 기술된 방법)을 수행하도록 구성될 수 있다. 도 1b는 본 명세서에서 추가로 참조된 바와 같이, 클라이언트 디바이스(120)로서 사용하기에 적합하고 및/또는 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150), 및/또는 도 1a를 참조하여 그리고 본 명세서의 다른 곳에서 더 상세히 기술된 바와 같은 조정 서버(160)로서 구성하기에 적합한 처리 회로(예를 들어, 프로세서 및 메모리)를 갖는 예시적인 컴퓨팅 디바이스(101)를 나타내는 블록도를 제공한다. 도 1b는 또한 다양한 노드들간의 통신, 예를 들어 클라이언트 디바이스들(120)과 애플리케이션 백-엔드 서버(130) 및/또는 이벤트 서버(140)와 같은 서버들 간의 통신을 가능하게 하는 네트워크(110)를 더 도시한다.
여전히 도 1a를 참조하면, 클라이언트 디바이스들(120)은 애플리케이션을 실행하고, 사용자에게 출력을 제시하고, 사용자로부터 입력을 수신하는 컴퓨팅 시스템 또는 프로세서 기반 디바이스를 포함할 수 있다. 클라이언트 디바이스(120)는 예를 들어 데스크톱 컴퓨터, 랩탑 또는 노트패드 컴퓨터, 태블릿 또는 전자 패드와 같은 모바일 디바이스, 개인 휴대 정보 단말기, 스마트폰, 비디오 게임 디바이스, 텔레비전 또는 텔레비전 보조 박스(셋탑 박스로도 알려짐), 키오스크, 호스팅된 가상 데스크탑, 또는 네트워크(110)를 통해 정보를 교환할 수 있는 임의의 다른 디바이스를 포함하는 임의의 종류의 컴퓨팅 디바이스일 수 있다. 클라이언트 디바이스(120)는 도 1a의 네트워크(110)를 통해 다른 컴퓨팅 디바이스와 정보를 교환하도록 구성될 수 있다.
예를 들어, 클라이언트 디바이스(120)는 예를 들어 인터넷 프로토콜(IP)(예컨대, IPv4 또는 IPv6)과 같은 OSI 계층-3 네트워크 프로토콜을 통해 계층화된 사용자 데이터그램 프로토콜(UDP), 전송 제어 프로토콜(TCP) 또는 스트림 제어 전송 프로토콜(SCTP)과 같은 OSI 계층-4 전송 프로토콜을 사용하는 개방형 시스템 상호 접속(Open Systems Interconnection : OSI) 계층에 따른 프로토콜을 사용하여 네트워크(110)를 통해 정보를 교환하도록 구성될 수 있다. 일부 구현예에서, 클라이언트 디바이스(120)는 예를 들어 키보드, 디스플레이, 터치 스크린, 마이크로폰, 스피커 및/또는 햅틱 피드백 디바이스와 같은 데이터 입력 및 데이터 프리젠테이션을 용이하게 하기 위한 하나 이상의 하드웨어 요소를 포함한다. 일부 구현예에서, 클라이언트 디바이스(120)는 기능-특정 버튼(예를 들어, 볼륨 업, 볼륨 다운, 뮤트 등과 같은 오디오 디바이스 볼륨 제어) 및/또는 기능-진단 버튼(예를 들어, 소프트웨어 수준에서 특정 기능을 할당할 수 있는 소프트 버튼)을 포함한다. 일부 구현예에서, 클라이언트 디바이스(120)는 예를 들어 가속도계, 자이로스코프 및/또는 틸트 센서와 같은 클라이언트 디바이스(120) 자체의 움직임을 검출할 수 있는 하나 이상의 센서를 포함한다.
가속도계는 단일 축 또는 다중 축 가속도계일 수 있다. 일부 구현예에서, 클라이언트 디바이스(120)는 관성 측정 장치(IMU)를 포함한다. 일부 구현예에서, 클라이언트 디바이스(120)는 특수 목적 논리 회로, 예를 들어 주문형 집적 회로(ASIC)를 이용하여 구현된다. 일부 구현예에서, 클라이언트 디바이스(120)는 적어도 하나의 프로세서(또는 마이크로 프로세서) 코어를 포함하는 시스템 온 칩(SoC) 반도체 디바이스를 사용하여 구현된다. 일부 구현예에서, 클라이언트 디바이스(120)는 범용 컴퓨팅 프로세서를 사용하여 구현된다. 도 1b는 일부 구성에서 클라이언트 디바이스(120)로 사용하기에 적합한 컴퓨팅 디바이스(101)를 도시한다.
일부 구현예에서, 클라이언트 디바이스(120)는 클라이언트 디바이스(120)상의 소프트웨어 애플리케이션의 실행을 관리하는 운영 체제를 실행한다. 일부 구현예에서, 운영 체제는 클라이언트 디바이스(120)와 함께 제공된다. 일부 구현예에서, 클라이언트 디바이스(120)는 HTTP(Hypertext Transfer Protocol) 및/또는 HTTPS(Transport Layer Security)에 의해 암호화된 HTTP와 같은 하이퍼 텍스트 애플리케이션 프로토콜의 세트에 따라 포맷된 데이터를 수신할 수 있는 브라우저 애플리케이션(예컨대, 웹 브라우저)을 실행한다.
이러한 일부 구현예에서, 브라우저는 하나 이상의 웹 페이지의 형태로 클라이언트 디바이스(120)에 제시된 인터페이스를 통해 하나 이상의 서버와의 상호 작용을 용이하게 한다. 일부 구현예에서, 브라우저 애플리케이션은 클라이언트 디바이스(120)와 함께 제공된다. 일부 구현예에서, 클라이언트 디바이스(120)는 서버, 예를 들어, 애플리케이션 백-엔드 서버(130)와 상호 작용하는 게임 또는 다른 애플리케이션과 같은 주문형 애플리케이션을 실행한다. 주문형 애플리케이션과 애플리케이션 백-엔드 서버 간의 상호 작용은 HTTP 또는 HTTPS와 같은 표준 프로토콜을 사용하거나 UDP, TCP 또는 SCTP와 같은 전송 계층 프로토콜을 통해 구현되는 주문형 애플리케이션-계층 프로토콜과 같은 애플리케이션-특정 프로토콜을 사용할 수 있다. 일부 구현예에서, 클라이언트 디바이스(120)는 클라이언트 디바이스(120)상의 (주문형 애플리케이션과 같은) 추가 애플리케이션을 획득 및/또는 설치하기 위한 툴을 포함한다. 일부 구현예에서, 클라이언트 디바이스(120)가 통신하는 하나 이상의 서버는 애플리케이션 프로그래밍 인터페이스(API)와 같은 주문형 명령 세트를 지원하고, 클라이언트 디바이스(120)상에서 실행되는 주문형 애플리케이션은 API를 구현한다. 애플리케이션은 예를 들어 애플리케이션 개발자에게 제공된 라이브러리 또는 SDK(소프트웨어 개발 키트)를 사용하여 API를 구현할 수 있다.
클라이언트 디바이스(120)는 애플리케이션 백-엔드 서버(130) 및/또는 이벤트 서버(140)와 같은 다양한 서버와 통신(또는 데이터 교환)하도록 구성될 수 있다. 일부 구현예에서, 하나 이상의 서버(130, 140, 150 및 160)는 특수 목적 논리 회로, 예를 들어 주문형 집적 회로(ASIC)를 이용하여 구현된다. 일부 구현예에서, 하나 이상의 서버(130, 140, 150 및 160)는 적어도 하나의 프로세서(또는 마이크로프로세서) 코어를 포함하는 시스템 온칩(SoC) 반도체 디바이스를 사용하여 구현된다. 일부 구현예에서, 하나 이상의 서버(130, 140, 150 및 160)는 범용 컴퓨팅 프로세서를 사용하여 구현된다. 도 1b는 일부 구성에서 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150) 및/또는 조정 서버(160)로서 사용하기에 적합한 컴퓨팅 디바이스를 도시한다.
도 1a에서, 애플리케이션 백-엔드 서버(130)는 클라이언트 디바이스(120)상에서 실행중인 애플리케이션에 백-엔드 지원을 제공할 수 있다. 일부 구현예에서, 애플리케이션 백-엔드 서버(130)는 클라이언트 디바이스(120)로부터 데이터를 수신하고 데이터를 클라이언트 디바이스(120)로 전송하는 서비스를 실행한다. 예를 들어, 클라이언트 디바이스(120)상에서 실행되는 애플리케이션은 브라우저, 예를 들어 애플리케이션 백-엔드 서버(130)에 의해 제공된 컨텐츠를 제시하는 웹 브라우저 일 수 있다. 클라이언트 디바이스(120)상에서 실행되는 애플리케이션은 상이한 플레이어들에 대한 게임 데이터가 애플리케이션 백-엔드 서버(130)에 의해 저장되는 다중-플레이어 게임과 같은 게임일 수 있다.
클라이언트 디바이스(120)상에서 실행되는 애플리케이션은 트랜잭션에 대한 일부 데이터가 애플리케이션 백-엔드 서버(130)에 의해 저장되거나 인증될 수 있는 액세스 티켓 또는 운송 티켓 관리 애플리케이션, 쿠폰 처리기 또는 결재 프로세서와 같은 트랜잭션 촉진자일 수 있으며, 클라이언트 디바이스(120)상에서 실행되는 애플리케이션은 애플리케이션에 대한 몇몇 기능이 애플리케이션 백-엔드 서버(130) 또는 지원을 위해 백-엔드 서버(130)를 이용하는 임의의 다른 종류의 클라이언트 애플리케이션에 의해 제공되는 유틸리티일 수 있다. 일부 구현예에서, 클라이언트 디바이스(120)로부터 원격으로 데이터를 저장하는 것은 다수의 사용자 또는 클라이언트 디바이스 사이의 비동기 상호 작용을 허용하고, 클라이언트 디바이스(120)가 고장났을 때의 복구를 용이하게 하고, 네트워크를 넘어 전세계에 대한 인터페이스를 제공한다.
이벤트 서버(140)는 애플리케이션 백-엔드 서버(130)와 마찬가지로, 클라이언트 디바이스(120)에서 실행중인 애플리케이션에 서버 측 기능을 제공할 수 있다. 클라이언트 디바이스(120)상에서 실행되는 애플리케이션은 요청 또는 이벤트 통지를 생성하여 애플리케이션 백-엔드 서버(130) 및/또는 이벤트 서버(140)로 전송하도록 구성될 수 있다. 예를 들어, 애플리케이션은 애플리케이션 백-엔드 서버(130)로부터 특정 데이터를 요청하거나 클라이언트 디바이스(120)에서의 상태 변화를 이벤트 서버(140)에 통지할 수 있다. 일부 구현예에서, 애플리케이션 백-엔드 서버(130) 및 이벤트 서버(140)는 동일한 서버이거나, 예를 들어 동일한 자율 시스템(AS) 네트워크에서 동일한 당사자에 의해 운영되거나 관리된다.
일부 구현예에서, 애플리케이션 백-엔드 서버(130) 및 이벤트 서버(140)는 별개의 서버이고, 일부 구현예에서, 다른 당사자에 의해 운영되거나 관리된다. 즉, 일부 구현예에서, 이벤트 서버(140)는 제3자에 의해 제어될 수 있다. 일부 구현예에서, 클라이언트 디바이스(120)상에서 실행되는 애플리케이션은 클라이언트 디바이스(120)상의 애플리케이션의 초기 설치와 같은 이벤트, 클라이언트 디바이스에서의 애플리케이션에 대한 시작 이벤트(start-up event), 클라이언트 디바이스에서의 선택 이벤트와 같은 사용자 상호 작용 이벤트, 애플리케이션이 제한된 리소스를 소비한 상환 이벤트(예를 들어, 티켓이 이벤트 또는 전이를 액세스하는데 사용되었음을 티켓 애플리케이션이 이벤트 서버로 통지할 수 있음), 클라이언트 디바이스(120)에서의 애플리케이션 실패와 같은 오류 이벤트에 대한 이벤트 통지를 생성하여 이벤트 서버(140)로 전송하도록 구성될 수 있다. 일부 구현예에서, 애플리케이션 백-엔드 서버(130)는 이벤트가 발생했는지 여부를 결정하여 이벤트 서버(140)에 그 통지를 제공하도록 구성될 수 있다. 예를 들어, 클라이언트 디바이스(120)는 백-엔드 서버(130)에 통지할 수 있으며, 백-엔드 서버(130)는 이를 이벤트 서버(140)에 통지한다.
속성 서버(150)는 이벤트를 상관시키고 귀속을 식별하기 위한 데이터를 관리하는 컴퓨팅 시스템일 수 있다. 속성 서버(150)는 이벤트 서버(140)에 의해 처리된 이벤트들에 귀속 가능한 조정 이벤트들을 식별하기 위해 조정 서버(160)와 상호 작용하도록 구성될 수 있다. 일부 구현예에서, 이벤트 서버(140)는 속성 서버(150)와 상호 작용하여 귀속에 대응하는 이벤트 시퀀스를 결정하도록 구성될 수 있다. 일부 구현예에서, 이벤트 서버(140)와 속성 서버(150)는 동일한 서버이거나, 예를 들어 동일한 자율 시스템(AS) 네트워크에서 동일한 당사자에 의해 운영되거나 관리된다. 일부 구현예에서, 이벤트 서버(140)와 속성 서버(150)는 별개의 서버이고, 일부 구현예에서, 상이한 당사자에 의해 운영되거나 관리된다. 즉, 일부 구현예에서, 속성 서버(150)는 제3 자에 의해 제어될 수 있다.
조정 서버(160)는 이벤트를 조정하도록 구성된 컴퓨팅 시스템일 수 있다. 일부 구현예에서, 조정 서버(160)는 조정 메시지를 클라이언트 디바이스(120)로 전송하고 조정 메시지에 대한 응답 표시를 수신한다. 상기 조정 메시지는 예를 들어 (예를 들어, 애플리케이션을 설치하고, 웹 페이지에 액세스하고, 또는 구매하기 위한) 액션을 취하기 위한 초대일 수 있으며, 상기 응답은 결과(예를 들어, 설치된 애플리케이션의 실행, 웹 페이지에 대한 액세스 요청 또는 구매 트랜잭션)를 나타낼 수 있다. 이벤트들은 결과 이벤트(예를 들어, 애플리케이션의 설치)에서 정점에 도달하는 시퀀스를 형성할 수 있고, 속성 서버(150)는 이벤트 간의 연관성을 식별하여 결과 이벤트로 정점에 도달하는 시퀀스내의 귀속에 대한 하나 이상의 이벤트를 식별한다. 일부 구현예에서, 속성 서버(150)는 결과 이벤트로 직접 이르게 하는 귀속에 대한 마지막에서 두 번째 이벤트를 식별한다. 일부 경우에, 조정 메시지는 조정 서버(160)가 관련되지 않는 일련의 이벤트를 초래할 수 있다.
예를 들어, 조정 메시지는 클라이언트 디바이스(120)를 애플리케이션 설치 인터페이스에 연결할 수 있는데, 조정 서버(160)는 클라이언트 디바이스(120)가 애플리케이션 설치 인터페이스에 액세스하였음을 나타내는 응답을 수신할 수 있지만, 애플리케이션 설치 인터페이스로부터 클라이언트 디바이스(120)상에 애플리케이션이 설치되었는지 여부와 같은 임의의 추가 정보를 수신하지 못할 수도 있다. 만약 애플리케이션이 나중에 클라이언트 디바이스(120) 상에 설치되면, 설치 이벤트는 초대에 기인한 것일 수도 있고, 중개 이벤트(예를 들어, 다른 조정 서버에서 시작된 초대)가 원인일 수도 있다.
조정 서버(160)는 데이터 저장 장치(190)에 데이터를 저장 및/또는 검색하도록 구성될 수 있다. 데이터 저장 장치(190)에 저장된 데이터는 예를 들어 구성 데이터, 조정 메시지 데이터 및 조정 메시지에 대한 통계를 포함할 수 있다. 데이터 저장 장치(190)는 하나 이상의 데이터 저장 디바이스를 사용하여 구현될 수 있다. 데이터 저장 디바이스는 컴퓨터 판독 가능 데이터를 저장하기에 적합한 임의의 메모리 디바이스일 수 있다. 데이터 저장 디바이스는 고정된 저장 장치를 갖는 디바이스 또는 이동식 저장 매체를 판독하기 위한 디바이스를 포함할 수 있다. 예로는 임의의 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스, 반도체 메모리 디바이스(예컨대, EPROM, EEPROM, SDRAM 및 플래시 메모리 디바이스), 자기 디스크, 광 자기 디스크 및 광학 디스크(예를 들어, CD ROM, DVD -ROM 또는 블루-레이 디스크)일 수 있다. 적절한 데이터 저장 디바이스의 에시적인 구현예는 저장 영역 네트워크(storage area networks:SAN), 네트워크 부착 저장 장치(network attached storage : NAS) 및 이중화 저장 어레이(예를 들어, RAID 어레이)를 포함한다. 일부 구현예에서, 데이터 저장 장치(190)는 관계형 데이터베이스 관리 시스템(RDBMS)을 사용하여 관계형 데이터베이스를 호스팅한다. 일부 구현예에서, 데이터 저장 장치(190)는 파일들, 예를 들어 XML 파일로 저장된 데이터를 관리한다.
도 1a에 도시되지는 않았지만, 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150) 및/또는 조정 서버(160)를 포함하는 다수의 서버는 도시된 데이터 저장 장치(190)와 같은 독립 또는 공유 데이터 저장 시스템을 사용할 수 있다.
이제 도 1b를 참조하면, 예시적인 구현에 따른 예시적인 컴퓨팅 시스템(101)의 블록도가 도시된다. 컴퓨팅 시스템(101)은 예시적인 구현에 따라 본 명세서에 기술된 컴퓨터화된 구성 요소를 구현하는데 사용하기에 적합하다. 전체 개요에서, 컴퓨팅 시스템(101)은 캐시 메모리(103)에 보유된 명령들과 같은 명령들에 따라 동작들을 수행하기 위한 프로세서(102)를 포함한다. 도시된 예시적인 컴퓨팅 시스템(101)은 주 메모리(106), 네트워크 인터페이스 제어기(107), 입출력(I/O) 인터페이스(108) 및 데이터 저장 장치(109)와 버스(105)를 통해 통신하는 하나 이상의 프로세서(102) 및 코프로세서(104)를 포함한다. 일부 구현예에서, 컴퓨팅 시스템(101)은 추가 인터페이스 또는 다른 구성 요소(116)를 포함할 수 있다.
일부 구현예에서, 프로세서(102)는 메인 메모리(106)(또는 데이터 저장 장치(109))로부터 캐시 메모리(103)로 명령들을 로딩하도록 구성될 수 있다. 더욱이, 프로세서(102)는 캐시 메모리(103)로부터 온보드 레지스터로 명령들을 로딩하고 온보드 레지스터로부터 명령들을 실행하도록 구성될 수 있다. 일부 구현예에서, 명령들은 판독 전용 메모리(ROM) 또는 펌웨어 메모리 칩(예를 들어, 기본 I/O 시스템(BIOS)에 대한 명령들을 저장하는)(미도시)에서 인코딩되고 판독된다.
도시된 바와 같이, 프로세서(102)는 캐시 메모리(103)에 직접 접속된다. 그러나, 일부 구현예에서, 캐시 메모리(103)는 프로세서(102)에 통합되고 및/또는 프로세서(102)와 동일한 회로 또는 칩 상에 구현된다. 일부 구현예는 각각이 프로세서(102)로부터 더 제거된 캐시 메모리(103)의 다중 계층 또는 레벨을 포함한다. 일부 구현예는 추가적인 특수 명령(예를 들어, 연산(math) 코프로세서, 부동 소수점 코프로세서 및/또는 그래픽 코프로세서)에 대한 지원으로 프로세서(102)를 보강하는 다중 프로세서(102) 및/또는 코프로세서(104)를 포함한다. 도시된 바와 같이, 코프로세서(104)는 프로세서(102)에 밀접하게 연결된다. 그러나, 일부 구현예에서, 코프로세서(104)는 프로세서(102)에 통합되거나 또는 프로세서(102)와 동일한 회로 또는 칩 상에 구현된다. 일부 구현예에서, 코프로세서(104)는 예를 들어 버스(105)에 접속된 프로세서(102)로부터 추가로 제거된다.
네트워크 인터페이스 제어기(107)는 (예를 들어, 네트워크(110)에 액세스하기 위한) 네트워크 디바이스(114)로의 접속을 위해 하나 이상의 네트워크 인터페이스(117)를 제어하도록 구성될 수 있다. I/O 인터페이스(108)는 이에 한정되지는 않지만 키보드, 터치 스크린, 마이크로폰, 모션 센서, 비디오 디스플레이, 스피커, 햅틱 피드백 디바이스, 프린터 등과 같은 다양한 I/O 디바이스(118)에 데이터를 송신 및 수신하는 것을 용이하게 하도록 구성될 수 있다. 일부 구현예에서, 하나 이상의 I/O 디바이스(118)는 컴퓨팅 시스템(101)에 통합된다. 일부 구현예에서, 하나 이상의 I/O 디바이스(118)는 컴퓨팅 시스템(101) 외부에 있고 컴퓨팅 시스템(101)으로부터 분리 가능하다. 일부 구현예에서, 컴퓨팅 시스템(101)은 프로세서(102) 및 하나 이상의 추가 구성 요소(예를 들어, 캐시 메모리(103), 네트워크 인터페이스 제어기(107) 및 네트워크 인터페이스(117), 및 하나 이상의 I/O 인터페이스 (108))를 포함하는 주문형 집적 회로(ASIC) 또는 시스템 온 칩(SoC) 반도체 디바이스와 같은 특수 목적 논리 회로를 사용하여 구현된다.
프로세서(102)는 캐시 메모리(103), 메인 메모리(106), 데이터 저장 장치(109) 또는 미도시된 다른 메모리로부터 페치된 명령들과 같은 명령들을 처리하는 임의의 논리 회로일 수 있다. 프로세서(102)는 다수의 데이터 및 명령 레지스터를 포함한다. 일부 구현예에서, 시동(부팅)시에, 프로세서(102)는 더 많은 명령을 로딩하기 위한 명령들을 포함하여 BIOS로부터 레지스터로 초기 명령을 로딩하고, 상기 레지스터로부터 명령을 실행하도록 구성될 수 있다. 일부 구현예에서, BIOS 명령은 프로세서(102)가 하나 이상의 프로그램을 로딩하고 실행하게 하는 운영 체제(OS)를 로딩하게 한다.
프로세서(102)는 특정 목적을 위한 특수 명령 세트를 갖는 보조 처리 유닛 인 하나 이상의 보조 코프로세서(104)에 의해 보강될 수 있다. 일부 구현예에서, 인식되지 않은 명령을 처리하는 프로세서(102)는 예를 들어 특수 버스를 통해 명령을 코프로세서(104)로 전달할 것이며, 만약 코프로세서(104)가 또한 명령을 인식하지 못하는 경우에만 인식되지 않은 명령 결함을 생성한다. 프로세서(102)와 코프로세서(104)는 각각 단일 코어 또는 멀티-코어 프로세서(들)일 수 있다.
컴퓨팅 시스템(101)은 다수의 개별 프로세서들(102) 및/또는 다수의 개별 코프로세서(104)를 포함할 수 있다. 예를 들어, 일부 구현예에서, 멀티-코어 중앙 처리 장치(CPU)와 같은 범용 프로세서(102)는 연산 코프로세서, 부동 소수점 코프로세서 또는 그래픽 처리 장치(GPU)와 같은 하나 이상의 특수 목적 코프로세서(104)로 보강될 수 있다. 예를 들어, 연산 코프로세서(104)는 고정밀 또는 복소 계산으로 프로세서(102)를 보조할 수 있다. 일부 구현예에서, 프로세서(들)(102) 및 코프로세서(104)는 하나 이상의 칩상의 회로로서 구현된다. 컴퓨팅 시스템(101)은 본 명세서에 기술된 바와 같이 동작할 수 있는 임의의 프로세서(102) 또는 프로세서(102) 및/또는 코프로세서(104)의 세트에 기초할 수 있다.
캐시 메모리(103)는 일반적으로 빠른 액세스 시간을 위해 프로세서(102)에 아주 근접 배치된 컴퓨터 메모리의 형태이다. 일부 구현예에서, 캐시 메모리(103)는 프로세서(102)의 일부이거나 프로세서(102)와 동일한 칩 상에 있는 메모리 회로이다. 일부 구현예에서, L2 및 L3 캐시 계층과 같은 다수 레벨의 캐시 메모리(103)가 있다. 일부 구현예에서, 다수의 프로세서(102) 및/또는 프로세서(102)의 다수의 코어는 동일한 캐시 메모리(103)에 대한 액세스를 공유한다.
메인 메모리(106)는 컴퓨터 판독 가능 데이터를 저장하기에 적합한 임의의 디바이스일 수 있다. 메인 메모리(106)는 특정 어드레스에 대한 직접 액세스를 지원하는 디바이스이다. 즉 메인 메모리(106)는 랜덤 액세스 메모리(RAM)이다. 일부 구현예에서, 메인 메모리(106)는 DRAM, SDRAM, 이중 데이터 레이트 SDRAM(DDR SDRAM), 정적 랜덤 액세스 메모리(SRAM), T-RAM, Z-RAM 등과 같은 휘발성 반도체 모미리 장치이다. 컴퓨팅 시스템(101)은 메인 메모리(106)로서 서비스하는 임의의 수의 디바이스를 가질 수 있다.
데이터 저장 장치(109)는 전원 사이클 사이에 컴퓨터 판독 가능 데이터를 저장하기에 적합한 임의의 디바이스일 수 있다. 일부 구현예에서, 데이터 저장 장치(109)는 자기 디스크(예컨대, 하드 디스크 드라이브(HDD))와 같은 고정 저장 매체를 갖는 디바이스이다. 일부 구현예에서, 데이터 저장 장치(109)는 자기 디스크(예를 들어, 플로피 디스크 드라이브 또는 착탈식 HDD), 자기 테이프, 광 자기 디스크, 또는 광학 디스크(예를 들어, CD ROM, DVD-ROM 또는 블루레이 디스크)와 같은 착탈식 저장 매체를 갖는 디바이스이다. 일부 구현예에서, 데이터 저장 장치(109)는 소거 가능 프로그래머블 판독 전용 메모리(EPROM), 전기적 소거 가능 프로그래머블 판독 전용 메모리(EPROM) 또는 플래시 메모리와 같은 비 휘발성 반도체 메모리 디바이스이다. 일부 구현예에서, 메인 메모리(106)는, 예를 들어, 멀티-레벨 셀(MLC) NAND-기반 플래시 메모리를 사용하는 고체 상태 드라이브(SSD)이다. 컴퓨팅 시스템(101)은 데이터 저장 장치(109)로서 서비스하는 임의의 수의 디바이스를 가질 수 있다.
도 1b를 계속 참조하면, 버스(105)는 예를 들어 프로세서(102)를 메인 메모리(106), 네트워크 인터페이스 제어기(107), 1/0 인터페이스(108) 및 데이터 저장 장치(109)에 연결하는 것과 같이 컴퓨팅 시스템(101)의 다양한 내부 구성 요소 사이의 데이터 교환을 제공하는 인터페이스이다. 일부 구현예에서, 버스(105)는 컴퓨팅 시스템(101) 외부의 하나 이상의 구성 요소, 예컨대 다른 구성 요소(116)와의 데이터 교환을 더 제공한다. 일부 구현예에서, 버스(105)는 직렬 및/또는 병렬 통신 링크를 포함한다. 일부 구현예에서, 버스(105)는 IDE(Integrated Drive Electronics), PCI(peripheral component interconnect express), SCSI(small computer system interface) 또는 USB와 같은 데이터 버스 표준을 구현한다. 일부 구현예에서, 컴퓨팅 시스템(101)은 다수의 버스(105)를 갖는다.
컴퓨팅 시스템(101)은 하나 이상의 입력 또는 출력(I/O) 디바이스(118)를 포함하거나 그에 대한 인터페이스(108)를 제공할 수 있다. I/O 디바이스(118)는 키보드, 터치 스크린, 터치 패드(예를 들어, 전자 유도 패드, 정전 패드, 용량성 패드 등), 마이크로폰, 조이스틱, 풋 페달, 관성 측정 장치(IMU), 가속도계, 자이로스코프, 틸트 센서, 모션 센서, 환경 센서, MIDI 악기(예컨대, MIDI 키보드)와 같은 MIDI 입력 디바이스, 스타일러스 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)와 같은 입력 디바이스를 포함하며, 이에 국한되지 않는다. 출력 디바이스는 비디오 디스플레이, 스피커, 햅틱 피드백 디바이스, 새로 고침 가능한 점자 단말기, 조명, 서보, MIDI 출력 디바이스(예컨대, MIDI 신서사이저), 및 2차원 또는 3차원 프린터(잉크젯 프린터, 레이저 프린터, 감열식 프린터, 광 조형 프린터, 압출 증착 프린터 및 금속 소결 프린터를 포함하되 이에 국한되지 않음)를 포함하며, 이에 국한되지 않는다.
네트워크(110)는 컴퓨팅 시스템(101) 및 네트워크 디바이스(114)와 같은 다양한 노드들 간의 통신을 가능하게 한다. 일부 구현예에서, 데이터는 예를 들어 OSI 계층에 따른 데이터 패킷의 형태로 데이터 패킷의 흐름으로서 소스 노드에서 목적지 노드로 네트워크(110)를 통해 흐른다. 패킷의 흐름은 예를 들어 인터넷 프로토콜(IP)(에컨대, IPv4 또는 IPv6)과 같은 OSI 계층-3 네트워크 프로토콜을 통해 계층화된 네트워크(110)를 통해 전송된 사용자 데이터그램 프로토콜(UDP), 전송 제어 프로토콜(TCP) 또는 스트림 제어 전송 프로토콜(SCTP)과 같은 OSI 계층-4 전송 프로토콜을 사용할 수 있다. 네트워크(110)는 참여하는 디바이스들 사이에 하나 이상의 데이터 통신 경로를 형성하기 위해 함께 링크된 다양한 네트워크 디바이스(노드)로 구성된다. 각각의 네트워크화된 디바이스는 전형적으로 하나 이상의 데이터 패킷으로서 데이터를 수신 및/또는 송신하기 위한 적어도 하나의 네트워크 인터페이스를 포함한다. 예시적인 네트워크(110)는 인터넷이지만 다른 네트워크가 사용될 수 있다. 네트워크(110)는 자율 시스템(AS), 즉 즉 일관된 통합 라우팅 정책하에 (또는 적어도 AS 네트워크 외부로부터 나타나는 것처럼 보이는) 네트워크 일 수 있으며, 일반적으로 단일 관리 엔티티(예를 들어, 시스템 운영자, 관리자 또는 관리 그룹)에 의해 관리된다.
네트워크(110)는 개재 네트워크(중계 네트워크), 듀얼-홈 게이트웨이 노드, POP(point of presence), 인터넷 교환 포인트(IXP) 및/또는 추가의 다른 네트워크 경계 중 하나 이상에서 만날 수 있는 다수의 접속된 서브 네트워크 또는 AS 네트워크로 구성될 수 있다. 네트워크(110)는 회사 인트라넷, 기업 영역 네트워크(MAN), 광역 네트워크(WAN), 인터-네트워크(예컨대, 인터넷) 또는 피어-투-피어 네트워크(예컨대, 애드 혹 Wi-Fi 피어-투-피어 네트워크)와 같은 근거리 통신망(LAN)일 수 있다. 네트워크(110) 내의 노드들 간의 데이터 링크는 물리적 링크(예를 들어, 광섬유, 메시, 동축, Cat-5 또는 Cat-6 등과 같은 트위스트 페어) 및/또는 무선 링크(라디오, 위성, 마이크로웨이브 등)의 임의의 조합일 수 있다.
네트워크(110)는 이동 통신 디바이스에 대한 캐리어 네트워크, 예를 들어 이동 통신용 글로벌 시스템(GSM), 코드 분할 다중 접속(CDMA), 시분할 동기 코드 분할 다중 접속(TD-SCDMA), LTE(Long-Term Evolution), 또는 소위 3G, 4G 및 5G 프로토콜을 포함하되 이에 국한되지 않는 다른 프로토콜을 포함할 수 있다. 네트워크(110)는 때때로 예를 들어 개인 영역 네트워크(PAN) 또는 메쉬 네트워크로 지칭되는 Wi-Fi, 블루투스, BLE 또는 지그비를 통한 근거리 무선 링크를 포함할 수 있다. 네트워크는 공용, 사설 또는 공용 및/또는 사설 네트워크의 조합일 수 있다. 네트워크(110)는 임의의 유형 및/또는 형태의 데이터 네트워크 및/또는 통신 네트워크일 수 있다.
네트워크 인터페이스 제어기(107)는 네트워크 인터페이스(117)(네트워크 인터페이스 포트라고도 함)를 통해 네트워크(110)(예를 들어, 네트워크 디바이스(114)) 내의 디바이스와의 데이터 교환을 관리한다. 네트워크 인터페이스 제어기(107)는 네트워크 통신을 위한 OSI 모델의 물리적 및 데이터 링크 계층을 처리한다. 일부 구현예에서, 네트워크 인터페이스 제어기의 태스크 중 일부는 프로세서(102) 및/또는 코프로세서(104)에 의해 처리된다. 일부 구현예에서, 네트워크 인터페이스 제어기(107)는 예를 들어 동일한 칩상의 회로로서 프로세서(102)에 통합된다. 일부 구현예에서, 컴퓨팅 시스템(101)은 단일 제어기(107)에 의해 제어되는 다수의 네트워크 인터페이스(117)를 갖는다. 일부 구현예에서, 컴퓨팅 시스템(101)은 다수의 네트워크 인터페이스 제어기(107)를 갖는다. 일부 구현예에서, 각 네트워크 인터페이스(117)는 물리적 네트워크 링크(예를 들어, Cat-5 이더넷 링크)에 대한 접속점이다.
일부 구현예에서, 네트워크 인터페이스 제어기(107)는 무선 네트워크 접속을 지원하고, 인터페이스(117)는 (예를 들어, IEEE 802.11 Wi-Fi 프로토콜, 근거리 통신(NFC), 블루투스, 블루투스 저전력(BLE), 지그비, ANT 또는 임의의 다른 무선 프로토콜을 위한) 무선(예컨대, 라디오) 수신기/송신기이다. 일부 구현예에서, 네트워크 인터페이스 제어기(107)는 이더넷과 같은 하나 이상의 네트워크 프로토콜을 구현한다. 일반적으로, 컴퓨팅 시스템(101)은 네트워크 인터페이스(117)를 통한 물리적 또는 무선 링크를 통해 다른 컴퓨팅 디바이스와 데이터를 교환하도록 구성될 수 있다. 네트워크 인터페이스(117)는 컴퓨팅 시스템(101)을 네트워크(110)에 연결하는 중개 디바이스, 예를 들어, 허브, 브리지, 스위치 또는 라우터와 같은 네트워크 디바이스(114)를 통해 다른 디바이스에 직접 링크되거나 다른 디바이스에 링크될 수 있다.
네트워크 디바이스(114)는 허브, 스위치, 라우터, 모뎀, 네트워크 브리지, 다른 컴퓨팅 시스템(101) 또는 임의의 다른 네트워크 노드일 수 있다. 일부 구현예에서, 네트워크 디바이스(114)는 네트워크 게이트웨이이다. 일부 구현예에서, 네트워크 디바이스(114)는 특수 목적 프로세서 및/또는 TCAM(ternary content-addressable memory)과 같은 맞춤형 하드웨어를 사용하여 구현된 라우팅 디바이스이다.
다른 구성 요소(116)는 대안적인 I/O 인터페이스, 외부 직렬 디바이스 포트, 및 버스(105)를 통해 연결된 임의의 추가 코프로세서(104)를 포함할 수 있다. 예를 들어, 컴퓨팅 시스템(101)은 외부 입력 디바이스, 출력 디바이스 또는 추가 메모리 디바이스(예를 들어, 휴대용 플래시 드라이브 또는 외부 미디어 드라이브)를 연결하기 위한 인터페이스(예를 들어, USB 인터페이스)를 포함할 수 있다.
도시된 컴퓨팅 시스템(101)은 데이터를 관리하거나 구성하는 시스템을 구현하는데 적합하다. 예를 들어, 일부 구현예에서, 컴퓨팅 시스템(101)은 데이터베이스를 호스팅한다. 데이터베이스, 보다 구체적으로는 데이터베이스 관리 시스템(DBMS)은 데이터베이스 정의, 예를 들어 데이터베이스 스키마에 따라 데이터를 구성한다. 예를 들어, 관계형 데이터베이스에서, DBMS는 테이블형 데이터 구조로 데이터를 유지 관리한다. 각 테이블에는 항목(entry) 유형, 분류 또는 목적에 각각 해당하는 열이 있다. 예를 들어, 테이블에는 숫자 데이터에 대한 열, 텍스트 데이터에 대한 열(예를 들어, 숫자 데이터의 설명), 날짜 데이터에 대한 열 등이 있을 수 있다. 일부 구현예에서, 열은 다수의 데이터 요소를 단일 열로 그룹화한 구조화된 데이터를 나타낸다. 관계형 데이터베이스에서, 테이블내의 열에 있는 각 항목은 또한 항목을 테이블내의 다른 열에 있는 항목과 연관시키는 행에 있다.
경우에 따라 항목(또는 항목 조합)은 하나의 테이블의 행을 다른 테이블의 하나 이상의 행과 연관시킨다. 일부 DBMS 구현예에서, "뷰"라는 가상 테이블은 하나 이상의 테이블에서 가져온 데이터를 마치 테이블인 것처럼 나타낸다(즉, 뷰는 데이터베이스 클라이언트 또는 사용자에게 마치 테이블인 것처럼 보이지만 반드시 그렇게 저장되는 것은 아님). 다양한 유형의 관계형 데이터베이스, 객체 지향 데이터베이스, 문서 지향 데이터베이스, XML(eXtensible Markup Language) 데이터베이스, NoSQL 데이터베이스 등 다른 유형의 데이터베이스 관리 시스템이 사용될 수도 있다. 이러한 데이터베이스 유형 중 많은 것은 관계형 데이터베이스를 참조하여 위에서 설명한 것과 유사한 방식으로 테이블 또는 테이블형 구조를 사용한다. 일부 데이터베이스 구현예에서, 데이터는 예를 들어, 데이터 튜플들의 집합과 같이 테이블 이외의 방식으로 저장되거나 표현된다.
데이터베이스의 클라이언트 또는 사용자는 데이터베이스 명령, 예컨대 구조화된 쿼리 언어(SQL)와 같은 데이터베이스 쿼리 언어내의 질의를 사용하여 데이터베이스에 데이터를 추가하거나, 데이터를 수정하거나, 데이터베이스로부터 데이터를 검색할 수 있다. 하나 이상의 데이터베이스 명령은 데이터베이스 트랜잭션으로 함께 그룹화될 수 있다. 전통적으로 데이터베이스는 트랜잭션 원자성(atomicity) 일관성, 격리 및 내구성을 제공한다. 이러한 특성은 ACID라는 약어로 알려져 있다. 일부 구현예에서, DBMS는 모든 ACID 특성을 제공한다. 그러나, 일부 구현에서, DBMS는 모든 ACID 특성을 제공하지는 않는다.
일부 구현예에서, 하나 이상의 클라이언트 디바이스(120), 예를 들어 컴퓨팅 시스템(101)의 인스턴스는 예를 들어 다이렉트 링크 또는 네트워크(110)를 통해 DBMS와 통신한다. 일부 구현예에서, 하나 이상의 클라이언트는 SQL(Structured Query Language), HTSQL(Hyper Text Structured Query Language), CQL(Contextual Query Language), DMX(Data Mining Extensions) 또는 XQuery(XML Query)와 같은 공식적인 쿼리 언어로 된 쿼리를 사용하여 DBMS로부터 데이터를 획득한다. 일부 구현예에서, 하나 이상의 클라이언트는 공통 객체 요청 브로커 아키텍처(CORBA), 원격 프로 시저 호출(RPC), 객체 링크 및 임베딩(OLE), 컴포넌트 객체 모델(COM) 또는 분산 구성 요소 개체 모델(DCOM)과 같은 프로세스 간 통신 아키텍처를 사용하여 DBMS로부터 데이터를 획득한다. 일부 구현예에서, 하나 이상의 클라이언트는 자연어 또는 의미론적 쿼리를 사용하여 DBMS로부터 데이터를 획득한다. 일부 구현예에서, 하나 이상의 클라이언트는 시각화 API 쿼리 언어(Visualization API Query Language)와 같은 맞춤형 쿼리 언어로 된 질의를 사용하여 DBMS로부터 데이터를 획득한다.
이제 도 2를 참조하면, 예시적인 구현에 따른, 이벤트들을 상관시키기 위한 방법(200)에 대한 흐름도가 도시된다. 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150) 및/또는 조정 서버(160)는 상기 방법(200)을 수행하도록 구성될 수 있다. 또한, 본 명세서에 기술된 임의의 컴퓨팅 장치는 방법(200)을 수행하도록 구성될 수 있다.
방법(200)의 개략적인 개요에서, 단계(210)에서, 조정 서버(160)는 제1 이벤트에 대한 확인 메시지를 수신한다. 조정 서버(160)는 각각이 개별 이벤트에 대응하는 다수의 확인 메시지를 수신할 수 있다. 상기 메시지는 클라이언트 디바이스(120), 제3자 서버 또는 일부 다른 컴퓨팅 디바이스로부터 수신될 수 있다. 단계(220)에서, 조정 서버(160)는 속성 서버(150)로부터 제2 이벤트의 귀속에 대한 요청을 수신한다.
단계(230)에서, 조정 서버(160)는 저장된 확인 메시지 데이터, 예를 들어, 단계(210)에서 수신된 확인 메시지에 대한 데이터를 포함하는 다수의 확인 메시지에 대응하는 데이터를 검색한다. 단계(240)에서, 조정 서버(160)는 상기 검색으로부터 제1 이벤트를 식별한다. 일부 구현예에서, 제1 이벤트는 단계(240)에서 귀속에 대한 다수의 후보 이벤트 중 하나로서 식별된다.
단계(250)에서, 조정 서버(160)는 단계(220)에서 수신된 요청에 응답하여 제1 이벤트를 기술하는 데이터를 속성 서버(150)에 반환한다. 그런 다음 속성 서버(150)는 제1 이벤트를 기술하는 데이터로부터, 제2 이벤트가 제1 이벤트에 귀속될 수 있는지 여부를 결정할 수 있다. 아래에서 설명되는 도 3은 속성 서버(150)에 의해 수행될 수 있는 것과 같은, 선행 이벤트에 대한 귀속을 확인하는 예시적인 방법(300)을 도시한다. 그런 다음 조정 서버(160)는 단계(260)에서, 제2 이벤트를 상기 설명된 제1 이벤트로 귀속시키기 위해 속성 서버(150)로부터 일치(agreement)를수신한다. 일부 구현예에서, 속성 서버(150)가 귀속이 허가(grant)되어서는 안된다고 결정하는 경우, 조정 서버(160)는 대안적으로 귀속을 거절하는(declining) 메시지를 수신한다. 일부 구현예에서, 속성 서버(150)가 귀속이 허가되어서는 안된다고 결정하는 경우, 조정 서버(160)는 귀속 요청 및 제1 이벤트 설명과 관련된 추가 메시지를 수신하지 않는다.
방법(200)을 보다 상세히 참조하면, 단계(210)에서, 조정 서버(160)는 제1 이벤트에 대한 확인 메시지를 수신한다. 일부 구현예에서, 조정 서버(160)는 조정 메시지를 하나 이상의 클라이언트 디바이스(120)로 전송한다. 조정 메시지는 예를 들어 (예를 들어, 애플리케이션을 설치하거나, 웹 페이지에 액세스하거나 또는 구매를 하기 위해) 동작을 취하기 위한 초대일 수 있다. 제1 이벤트는 초대에 대한 응답, 예를 들어, 초대를 수신하는 클라이언트 디바이스(120)가 그와 상호 작용했다는 표시자(indicator)일 수 있다.
예를 들어, 초대는 추가 정보를 제공하거나 추가 동작이 취해질 수 있는 제3 자와의 접속을 용이하게 하는 선택 가능한 요소를 포함할 수 있다. 초대는 추가 정보 액세스, 메일링 리스트 가입, 구매, 스트리밍 또는 미디어 다운로드(e-북, 시각 이미지 미디어, 오디오 데이터, 대화형 미디어, 디비오 미디어 등과 같은), 소프트웨어 다움로드, 데이터베이스로의 연결 및 임의의 다른 동작과 같은 추가 동작이 취해질 수 있는 웹 페이지(방문 페이지)의 URL에 대한 하이퍼 링크를 포함할 수 있다. 일부 구현예에서, 제1 이벤트는 클라이언트 디바이스(120)에서의 URL의 선택(클릭)이다. 일부 구현예에서, 제1 이벤트는 클라이언트 디바이스(120)로부터의 페이지 요청(또는 페이지 페치)이다.
일부 구현예에서, 제1 이벤트는 도착 이벤트, 예를 들어, 클라이언트 디바이스(120)가 지리적 위치에 도착하는 이벤트이다. 도착 이벤트는 예를 들어 클라이언트 디바이스(120) 내의 지리적 위치 하드웨어를 사용하여 검출될 수 있다. 도착 이벤트는 예를 들어, 클라이언트 디바이스(120) 외부의 물리적 마커들에 대한 근접성을 검출하는 클라이언트 디바이스(120)의 근접 검출기(예를 들어 근거리 무선 디바이스)를 사용하여 검출될 수 있다. 일부 구현예에서, 제1 이벤트는 후속 이벤트에 대한 귀속을 받을 수 있는 임의의 이벤트일 수 있다. 예를 들어, 제1 이벤트가 클라이언트 디바이스가 애플리케이션 설치 툴을 실행하게 하는 상호 작용인 경우, 후속 애플리케이션 설치에 대한 귀속을 받을 수 있다. 방법(200)의 단계(210)에서, 조정 서버(160)는 특정 제1 이벤트에 대한 확인 메시지를 수신한다.
단계(210)에서 제1 이벤트에 대한 확인 메시지를 수신하는 것에 응답하여, 조정 서버(160)는 예를 들어 데이터 저장 장치(190)에 제1 이벤트에 관한 데이터를 기록한다. 예를 들어, 제1 이벤트에 관한 기록된 데이터는 날짜 및 타임 스탬프, 이벤트 유형, 및 디바이스 식별자, 계정 식별자, 고유 CT 번호(예를 들어, 랜덤하게 생성된 고유 식별자) 등과 같은 하나 이상의 소스 식별자를 포함할 수 있다. 제1 이벤트에 관한 기록된 데이터는 제1 이벤트와 관련된 초대에 관한 정보, 예를 들어 초대 식별자(또는 소스 식별자, 캠페인 식별자, 목적지 식별자, CT 번호등의 식별자들) 및 초대 날짜 및 타임 스탬프를 더 포함할 수 있다. 일부 구현예에서, 조정 서버(160)는 이 데이터를 데이터베이스와 같은 검색 가능한 데이터 저장 시스템에 기록한다.
단계(220)에서, 조정 서버(160)는 속성 서버(150)로부터 제2 이벤트의 귀속에 대한 요청을 수신한다. 일부 구현예에서, 하나 이상의 클라이언트 디바이스들(120), 애플리케이션 백-엔드 서버(130) 또는 이벤트 서버(140)는 클라이언트 디바이스(120)에서 발생하거나 클라이언트 디바이스(120)와 관련된 이벤트를 처리하고, 이벤트를 처리할 때 그 이벤트에 대한 귀속을 찾는다. 예를 들어, 이벤트 서버(140)는 제2 이벤트를 검출하여 하나 이상의 식별자(예를 들어, 디바이스 식별자 및 애플리케이션 식별자) 및 이벤트 유형과 같은 정보를 갖는 메시지를 속성 서버(150)로 전송할 수 있다. 후술되는 바와 같이, 도 3을 참조하면, 그런 다음 속성 서버(150)는 제2 이벤트의 귀속에 대한 요청을 조정 서버(160)로 전송한다. 상기 요청은 다수의 조정 서버, 예를 들어, 각각이 귀속 이벤트와 관련될 수 있는 상이한 당사자들에 의해 각각 운영되는 상이한 서버로 전송될 수 있다.
단계(230)에서, 조정 서버(160)는 저장된 확인 메시지 데이터, 예를 들어, 단계(210)에서 수신된 확인 메시지에 대한 데이터를 포함할 수 있는 다수의 확인 메시지 각각에 대응하는 데이터를 검색한다. 일부 구현예에서, 이 검색은 하나 이상의 특정 이벤트 유형, 예를 들어, 제2 이벤트에 대해 기인할 수 있는 이벤트 유형에 관한 것이다.
단계(240)에서, 조정 서버(160)는 상기 검색으로부터 제1 이벤트를 식별한다. 일부 구현예에서, 제1 이벤트는 단계(240)에서 귀속에 대한 다수의 후보 이벤트 중 하나로서 식별된다. 조정 서버(160)는 예를 들어, 동일한 디바이스 식별자, 계정 식별자 또는 CT 번호를 갖는 것과 같은 매치 기준에 기초하여 제1 이벤트를 식별할 수 있다.
단계(250)에서, 조정 서버(160)는 단계(220)에서 수신된 요청에 응답하여 제1 이벤트를 기술하는 데이터를 속성 서버(150)로 반환한다. 서술 데이터는, 예를 들어, 제1 이벤트에 대한 상기 기록된 데이터의 서브-세트일 수 있다. 예를 들어, 일부 구현예에서, 조정 서버(160)는 제1 이벤트에 대한 날짜 및 타임 스탬프를 반환하거나, 제1 이벤트에 대한 내부 식별자와 함께 상기 날짜 및 타임 스탬프를 반환한다. 속성 서버(150)는 제1 이벤트를 기술하는 데이터로부터, 제2 이벤트가 제1 이벤트에 기인할 수 있는지 여부를 결정할 수 있다. 예를 들어, 일부 구현예에서, 다수의 조정 서버(160)가 귀속 요구들(attribution claims)을 반환는 경우 (즉, 각각이 귀속을 위해 식별된 후보 이벤트를 반환하는 경우), 속성 서버는 확인을 위해 상기 귀속 요구들 중 하나를 선택한다.
후술되는 도 3은 속성 서버(150)에 의해 수행될 수 있는 것과 같은 선행 이벤트에 대한 귀속을 확인하는 예시적인 방법(300)을 도시한다. 일부 구현예에서, 예를 들어, 속성 서버(150)는 최종 후보 이벤트(즉, 제2 이벤트에 시간적으로 가장 가까운 날짜 및 타임 스탬프를 갖는 후보 이벤트)를 선택한다.
단계(260)에서, 조정 서버(160)는 속성 서버(150)로부터 일치를 수신하여, 제2 이벤트를 상기 기술된 제1 이벤트로 귀속시킨다. 일부 구현예에서, 속성 서버(150)가 귀속이 허가되어서는 안된다고 결정하는 경우, 조정 서버(160)는 대안적으로 귀속을 거절하는 메시지를 수신한다. 일부 구현예에서, 속성 서버(150)가 귀속이 허가되어서는 안된다고 결정하는 경우, 조정 서버(160)는 귀속 요청 및 제1 이벤트 설명과 관련된 추가 메시지를 수신하지 않는다. 조정 서버(160)는 예를 들어 보고 또는 의사 결정 목적을 위해 귀속에 관한 데이터를 보유할 수 있다. 일부 구현예에서, 캠페인 관리자는 예를 들어, 후속 이벤트로 기인한 초대의 리포트를 요청할 수 있다. 이 보고는 예를 들어, 귀속을 받지 못한 이벤트를 생략하거나, 귀속을 특별히 받은 이벤트를 하이라이트(또는 다른 방법으로 표시)하도록 구성할 수 있다.
이제 도 3을 참조하면, 예시적인 구현에 따른, 선행 이벤트에 대한 귀속을 확인하는 방법(300)에 대한 흐름도가 도시된다. 특히, 방법(300)은 조정 서버와 통신함으로써 제2 이벤트에 대한 귀속을 결정하기 위해 속성 서버(150)에 의해 수행될 수 있다. 또한, 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150) 및/또는 조정 서버(160)는 방법(300)을 수행하도록 구성될 수 있다. 또한, 본 명세서에 기술된 임의의 컴퓨팅 디바이스는 방법(300)을 수행하도록 구성될 수 있다.
방법(300)의 개략적인 개요에서, 단계(320)에서, 속성 서버(150)는 귀속 이벤트의 통지를 수신한다. 단계(330)에서, 속성 서버(150)는 귀속에 대한 제1 요청을 조정 서버(160)로 전송한다. 그런 다음 조정 서버(160)는 귀속될 수 있는 제1 이벤트를 식별하여, 그 제1 이벤트에 대한 설명을 속성 서버(150)로 제공한다. 단계(340)에서, 속성 서버(150)는 제1 이벤트의 설명을 수신하여, 단계(350)에서 제1 이벤트가 귀속에 대한 기준을 만족시키는지 여부를 결정한다. 만약 제1 이벤트가 귀속에 대한 기준을 만족하지 않으면, 단계 360에서, 속성 서버(150)는 그 귀속을 거절한다. 그러나, 제1 이벤트가 단계(350)에서 귀속에 대한 기준을 만족하는 경우, 단계(370)에서, 속성 서버(150)는 그 귀속을 확인한다. 예를 들어, 일부 구현예에서, 속성 서버(150)는 제1 이벤트에 상기 귀속 이벤트를 귀속시키는 제2 메시지를 조정 서버(160)로 전송한다.
방법(300)을 보다 상세히 참조하면, 단계 320에서, 속성 서버(150)는 귀속 이벤트의 통지를 수신한다. 예를 들어, 이벤트 서버(140)는 속성 서버(150)에 이벤트를 통지할 수 있다. 일부 구현예에서, 하나 이상의 클라이언트 디바이스(120), 애플리케이션 백-엔드 서버(130) 또는 이벤트 서버(140)는 클라이언트 디바이스(120)에서 발생하거나 클라이언트 디바이스(120)와 관련된 이벤트를 처리하여, 그 이벤트를 처리할 때 이벤트에 대한 귀속을 찾는다. 예를 들어, 이벤트 서버(140)는 이벤트를 검출하여, 하나 이상의 식별자(예를 들어, 디바이스 식별자 및 애플리케이션 식별자) 및 이벤트 유형과 같은 정보를 갖는 메시지를 속성 서버(150)로 전송할 수 있다. 일부 구현예에서, 속성 서버(150)는 귀속 이벤트를 검출하여 그 이벤트에 대한 귀속을 결정한다.
단계(330)에서, 속성 서버(150)는 조정 서버(160)로 제1 요청을 전송한다. 제1 요청은 귀속을 위한 선행 이벤트를 식별하기 위한 요청이다. 제1 요청은 상기 조정 서버(160)가 이전에 귀속 이벤트로 유도된 또는 귀속 이벤트로 이어진 것으로 귀속될 수 있는 이벤트를 이전에 조정했는지를 알기 위한, 속성 서버 (150)로부터 조정 서버(160) 로의 질의일 수 있다. 일부 구현예에서, 상기 요청은 각각이 귀속 이벤트와 관련될 수 있는 상이한 당사자에 의해 운영되는 다수의 상이한 조정 서버로 전송된다. 조정 서버(160)가 귀속될 수 있는 제1 이벤트를 식별할 수 있는 경우, 조정 서버(160)는 제1 이벤트의 설명을 속성 서버(150)로 제공한다. 일부 구현예에서, 조정 서버(160)(또는 다수의 조정 서버)는 가능한 귀속에 대한 다수의 후보 이벤트의 설명을 반환할 수 있다.
단계(340)에서, 속성 서버(150)는 제1 이벤트의 설명을 수신하여, 단계(350)에서 제1 이벤트가 귀속에 대한 기준을 만족하는지 여부를 결정한다. 일부 구현예에서, 속성 서버(150)는 기술된 제1 이벤트가 귀속 이벤트로 이어질 수 있는지 여부를 확인한다. 일부 구현예에서, 속성 서버(150)는 귀속을 받아야 하는 중개 이벤트가 존재하는지 여부를 결정한다. 예를 들어, 속성 서버(150)가 단계(330)에서 다수의 상이한 조정 서버로 요청을 전송할 때, 이에 응답하여 다수의 컨텐더(contenders)를 수신할 수 있다. 속성 서버(150)는 다수의 컨텐더 중에서, 예를 들어 귀속에 대한 하나의 컨덴더 이벤트를 식별하고 나머지는 거절하는 것을 선택한다.
경쟁하는 조정 서버로부터 수신된 컨텐더는 중개 이벤트일 수 있어서, 속성 서버(150)로 하여금 제1 이벤트로의 귀속을 거절하게 한다. 일부 구현예에서, 속성 서버(150)는 귀속 이벤트에 이르는 타임 라인 또는 이벤트 시퀀스를 구성하고, 귀속에 대한 타임 라인으로부터 하나 이상의 이벤트를 선택한다. 이러한 구현예에서, 속성 서버(150)는 귀속 이벤트에 선행하는 타임 라인으로부터 마지막 이벤트를 선택한다. 만약 기술된 제1 이벤트(단계 340에서 수신된 바와 같이)가 선택되지 않으면, 속성 서버(150)는 단계(360)에서 귀속을 거절한다. 만약 기술된 제1 이벤트(단계 340에서 수신된 바와 같이)가 선택되면, 속성 서버(150)는 단계(370)에서 귀속을 제공하거나 확인한다.
단계(360)에서, 속성 서버(150)는 귀속을 거절한다. 일부 구현예에서, 속성 서버(150)는 귀속을 거절하기 위한 어떠한 조치도 취하지 않는다. 즉, 확인의 부재는 거절하기에 충분할 수 있다. 일부 구현예에서, 속성 서버(150)는 조정 서버(160)로 거절 통지를 제공한다.
단계(370)에서, 속성 서버(150)는 귀속을 확인한다. 예를 들어, 일부 구현예에서, 속성 서버(150)는 귀속 이벤트를 제1 이벤트에 귀속시키는 제2 메시지를 조정 서버(160)로 전송한다. 일부 구현예에서, 속성 서버(150)는 조정 서버(160)에게 상기 확인내의 부가 정보를 제공한다. 부가 정보는 예를 들어, 조정 서버(160)가 나중에 귀속의 증거로서 저장하고 사용할 수 있는 고유한 이벤트 식별자를 포함할 수 있다. 일부 구현예에서, 부가 정보는 토큰, 암호화된 데이터 요소 또는 식별자를 포함한다. 일부 구현예에서, 부가 정보는 CT 번호를 포함한다.
일부 구현예에서, 이벤트 서버(140)는 애플리케이션이 클라이언트 디바이스(120)에서 실행될 때마다 속성 서버(150)로 통지를 제공한다. 예를 들어, 일부 구현예에서, 애플리케이션은 시작시에 백-엔드 서버(130)(예를 들어, 임의의 최근의 업데이트에 대한 요청)로 메시지를 전송하고, 백-엔드 서버(130)는 시작 이벤트(start-up event)를 문서화하는 메시지를 이벤트 서버(140)로 전송한다. 일부 구현예에서, 애플리케이션은 시작 이벤트를 문서화하는 메시지를 이벤트 서버(140)로 전송한다. 상기 메시지는 예를 들어 HTTP 요청으로서 전송될 수 있다. 일부 구현예에서, 그런 다음 이벤트 서버(140)는 이벤트를 나타내는 데이터를 기록한다. 일부 구현예에서, 이벤트 서버(140)는 속성 서버(150)에게 시작 이벤트를 통지하는 메시지를 속성 서버(150)로 전송한다. 일부 구현예에서, 이벤트 서버(140)는 새로운 설치에 대응하는 제1 시작 이벤트를 위해 속성 서버(150)로 이 메시지를 전송하고, 동일한 애플리케이션 인스턴스에 대한 후속 시작 이벤트를 위해 속성 서버(150)로 메시지를 전송하지 않는다. 그런 다음 속성 서버(150)는 예를 들어 상술한 방법(300)을 사용하여 귀속에 대한 이전의 조정 이벤트를 식별한다.
일부 구현예에서, 조정 서버(160)는 각 이벤트 및 각 귀속 요청에 대한 데이터를 보유한다. 조정 서버(160)는 관리자가 이벤트 및 귀속에 대한 통계의 보고를 획득할 수 있는 관리 인터페이스를 제공할 수 있다. 일부 이벤트는 귀속을 받지 못할 수 있기 때문에, 예를 들어 제3자에 의해 관리되는 중개 이벤트가 귀속을 받았기 때문에, 상기 통계는 관리자가 제3자들로부터 받을 수 있는 통계와 일치한다. 귀속을 적절하게 나타내면 혼동을 없애고 구성 사이클을 단축할 수 있다. 게다가, 조정 서버(160)가 귀속 이벤트에 대한 데이터만을 수신하는 경우, 불필요한 제3자 데이터를 수신하지 않는다.
이제 도 4를 참조하면, 예시적인 구현에 따른 이벤트들의 귀속을 중복 제거하기 위해 교차 네트워크 이벤트 귀속을 수행하는 방법(400)이 도시된다. 본 명세서에 기술된 애플리케이션 백-엔드 서버(130), 이벤트 서버(140), 속성 서버(150), 조정 서버(160) 및/또는 임의의 다른 컴퓨팅 디바이스는 방법(400)을 수행하도록 구성될 수 있다. 특히, 방법(400)은 제1 조정 서버 및 제2 조정 서버를 참조한다. 이들 서버는 조정 서버(160)와 동일하거나 유사할 수 있다.
제1 조정 서버와 제2 조정 서버는 사용자에게 컨텐츠 아이템을 제공하도록 구성될 수 있고(또는 제공하는 서버와 관련될 수 있고), 컨텐츠 아이템을 갖는 온라인 사용자 활동을 수신할 수 있다. 그러나, 2개의 조정 서버는 별개일 수 있고 상이한 엔티티에 의해 운영될 수 있다. 만약 컨텐츠 제공자가 제1 및 제2 조정 서버를 사용하여 사용자에게 컨텐츠를 제공하면, 전환이 발생할 때 두 조정 서버는 그들의 컨텐츠 네트워크와 관련된 사용자 이벤트 활동을 상기 전환에 귀속시킬 수있다. 후술된 방법(400)과 본 명세서에 기술된 다른 방법은 어떤 활동이 상기 전환에 귀속되어야하는지, 어떤 활동이 상기 전환에 귀속되어서는 안되는지를 결정함으로써 귀속을 중복 제거할 수 있다.
방법(400)은 사용자 데이터 프라이버시가 유지되고 네트워크 대역폭이 보존되는 방식으로 수행된다. 구체적으로, 방법(400)에서, 사용자 이벤트 활동의 전체 세트는 서버들 사이에서 공유되지 않는다. 즉, 제1 조정 서버, 제2 조정 서버 및 속성 서버는 모든 사용자 이벤트 데이터를 함께 집계하는 대신 귀속가능할 수 있는 데이터를 단지 공유하여 이벤트 귀속을 결정한다. 게다가, 필요한 데이터를 송신하는 것만으로 큰 세트의 사용자 이벤트 데이터를 중앙 서버, 예를 들어 속성 서버로 송신하는 것에 비해 대역폭 사용을 감소시킨다. 또한, 사용자의 온라인 활동을 개선할 수 있다. 제1 조정 서버는 하나의 컨텐츠 네트워크를 통해 사용자의 활동을 수신하고, 제2 조정 서버는 제2 컨텐츠 네트워크로부터 사용자의 활동을 수신하기 때문에, 사용자 이벤트는 조정 서버 중 하나에 의해서만 수신될 수 있다.
단계(410 및 420)에서, 제1 조정 서버와 제2 조정 서버는 이벤트를 각각 수신할 수 있다. 이벤트는 각각 제1 조정 서버 및 제2 조정 서버와 연관된 사용자 관련 활동일 수 있다. 예를 들어, 제1 조정 서버는 제1 컨텐츠 네트워크에 대한 이벤트 데이터를 직접 또는 다른 디바이스로부터 수신할 수 있다. 제2 조정 서버는 제2 컨텐츠 네트워크에 대한 이벤트 데이터를 수신하거나 다른 디바이스로부터 수신할 수 있다.
제2이벤트는 제1 및 제2조정 서버와 관련된 이벤트 이후에 발생할 수 있다. 일부 구현에서, 제2이벤트는 전환이다. 상기 전환은 모바일 애플리케이션 다운로드 및/또는 설치, 온라인 쇼핑 웹 사이트를 통한 제품 구매 또는 서비스 가입을 포함할 수 있다. 두 조정 서버는 제2이벤트를 인식하여, 제1 및 제2조정 서버와 관련된 이벤트가 그 이벤트에 대한 귀속을 받아야하는지 결정할 수 있다. 그러나, 이것은 중복된 귀속일 수 있으며, 즉, 2개의 조정 서버 중 하나만 제2 이벤트에 귀속하는 이벤트를 가져야 한다.
단계(430)에서, 제1 및 제2 조정 서버는 속성 서버(150)로부터 제2 이벤트의 귀속에 대한 요청을 수신한다. 제2 이벤트의 귀속에 대한 요청을 수신한 것에 응답하여, 각 조정 서버는 검색될 수 있는 사용자 이벤트와 관련된 모든 확인 데이터의 검색을 수행할 수 있다.
단계(440)에서, 제1 조정 서버는 확인 데이터를 검색하여 잠재적으로 제2 이벤트에 귀속될 수 있거나 현재 제2 이벤트에 귀속되고 있는 이벤트를 식별할 수 있다. 일부 실시예에서, 제1 조정 서버는 제2 이벤트와 관련된 사용자 식별자 및 확인 데이터의 이벤트들과 연관된 사용자 식별자들에 기초하여 확인 메시지를 검색한다. 일부 실시예에서, 제1 조정 서버는 서로 다른 계정, 서로 다른 디바이스 등으로 수행된 이벤트를 적절하게 귀속시키기 위해 다수의 식별자를 함께 매핑하는 식별자 맵을 사용할 수 있다. 확인 데이터를 검색한 결과는 제1 조정 서버와 관련된 이벤트를 식별할 수 있다.
단계(450)에서, 제1 조정 서버는 제1 이벤트를 나타내는 데이터를 속성 서버(150)로 전송할 수 있다. 단계(460 및 470)는 단계(440 및 450)와 동일하거나 유사할 수 있다. 그러나, 단계(460 및 470)는 제2 속성 서버에 의해 수행될 수 있다.
단계(480)에서, 속성 서버(150)는 제2 이벤트가 제1 조정 서버와 관련된 이벤트 및 제2 조정 서버와 연관된 이벤트에 귀속되는지 여부를 결정할 수 있다. 일부 구현예에서, 속성 서버(150)는 제2 이벤트와 관련된 타임 스탬프, 제1 조정 서버와 관련된 이벤트 및 제2 조정 서버와 연관된 이벤트에 기초하여 귀속을 결정할 수 있다. 속성 서버(150)는 제2 이벤트에 가장 가까운 시간에 발생하는 이벤트가 제2 이벤트에 귀속되어야 하는지를 결정할 수 있다. 또한, 속성 서버(150)는 제2 이벤트 이전에 기정의된 시간 내에 발생하면 그 이벤트가 귀속된다고 결정할 수 있다.
예를 들어, 이벤트들이 1) 제2 조정 서버와 연관된 이벤트, 2) 제1 조정 서버와 관련된 이벤트 및 3) 제2 이벤트 순서로 발생되면, 속성 서버(150)는 제1 조정 서버와 관련된 이벤트가 제2 이벤트에 기속되어야 한다고 결정할 수 있는 반면, 제2 조정 서버와 연관된 이벤트는 제2 이벤트에 귀속되어서는 안된다고 결정할 수 있다.
단계(490)에서, 속성 서버(150)는 제1 및 제2 조정 서버로 귀속 표시 또는 귀속 없음(no attribution)을 전송할 수 있다. 제1 조정 서버가 제1 조정 서비스와 관련된 이벤트가 제2 이벤트에 귀속되어야 한다는 표시를 수신할 수 있는 동안 제2 조정 서버는 제2 조정 서버와 관련된 이벤트가 제2 이벤트에 귀속되어서는 안된다는 표시를 수신할 수 있다 .
단계(500)에서, 귀속 표시 또는 귀속 없음의 표시에 기초하여, 제1 및 제2 조정 서버는 단계(490)에서 수신된 표시들에 기초하여 그들의 속성 메트릭을 업데이트할 수 있다. 상기 속성 메트릭은 총 전환 수, 특정 컨텐츠 아이템의 총 전환 수 등일 수 있다.
예를 들어, 만약 제2 조정 서버가 제2 조정 서버와 연관된 이벤트를 제2 이벤트로 귀속시켰으나 속성 서버(150)로부터 제2 조정 서버와 관련된 이벤트가 제2 이벤트에 귀속되지 않는다는 표시를 수신하면, 제2 조정 서버는 제2 조정 서버가 제2 조정 서버와 관련된 이벤트를 제2 이벤트로 귀속시키지 않도록 제2 조정 서버에 의해 저장된 데이터 및/또는 메트릭을 업데이트할 수 있다. 이러한 이벤트 귀속의 중복 제거는 인터페이스에 표시된 메트릭의 정확성을 향상시킴으로써 데이터를보고할 수 있는 컨텐츠 제공자 인터페이스를 향상시킬 수 있다.
본 명세서에서 설명된 주제 및 동작의 구현예는 본 명세서에 개시된 구조물 및 그의 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 또는 유형의 매체, 펌웨어 또는 하드웨어 상에 구현된 컴퓨터 소프트웨어에서 구현될 수 있다. 본 명세서에서 기술된 주제의 구현예는, 데이터 처리 장치(예를 들어, 프로세서(102)를 포함하는)에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위한 하나 이상의 컴퓨터 저장 매체 상에 인코딩된, 유형의 매체, 즉 컴퓨터 프로그램 명령들의 하나 이상의 모듈 상에 구현된 하나 이상의 컴퓨터 프로그램으로서 구현될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이들에 포함될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 구성 요소 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 이들에 포함될 수 있다. 컴퓨터 저장 매체는 유형이다. 컴퓨터 저장 매체는 데이터, 예를 들어, 컴퓨터-실행 가능 명령들을 비-일시적 형태로 저장한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일된 언어, 해석된 언어, 선언적 언어 및 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있으며, 컴퓨터 프로그램은 독립 실행형 프로그램 또는 모듈, 구성 요소, 서브 루틴, 객체, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 그렇지 않을 수도 있다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하고 있는 파일의 일부분, 해당 프로그램 전용의 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 라이브러리, 서브 프로그램 또는 코드의 일부)를 저장하는 파일)에 저장될 수 있다. 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 다수의 컴퓨터상에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어, 필드 프로그래머블 게이트 어레이("FPGA") 또는 주문형 집적 회로("ASIC")에 의해 수행될 수 있고, 장치 또한 특수 목적 논리 회로로서 구현될 수 있다. 이러한 특수 목적 회로는 범용 프로세서가 아니더라도 컴퓨터 프로세서라고 할 수 있다.
본 명세서는 다수의 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 구현예에 특정된 특징들의 설명으로 해석되어야 한다. 별도의 구현예의 맥락으로 본 명세서에 기술된 특정 특징은 또한 단일 구현으로 조합하여 구현될 수 있다. 반대로, 단일 구현예의 맥락으로 기술된 다양한 특징은 또한 다수의 구현예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하는 것으로 상기에서 설명될 수 있고, 심지어 처음에는 그러한 것으로서 주장될지라도, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 조합으로부터 제거될 수 있고, 그 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 유도될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이것은 바람직한 동작을 달성하기 위해, 이러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 상술 한 구현예에서 다양한 시스템 구성 요소의 분리는 모든 구현예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 기술된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품에 패키징될 수 있음을 이해해야 한다.
"또는"에 대한 언급은 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어 중 하나, 하나 이상 및 모두를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. "제1", "제2", "제3"등의 라벨은 반드시 순서를 나타내는 것을 의미하는지 않으며, 일반적으로 단지 비슷하거나 유사한 아이템 또는 요소를 구별하기 위해 사용된다.
따라서, 주제의 특정 구현예가 설명되었다. 다른 구현예는 다음의 청구항들의 범위 내에 있다. 경우에 따라 청구항에 인용된 동작들은 다른 순서로 수행되어 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해, 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예에서는 멀티 태스킹 또는 병렬 처리가 사용될 수 있다.

Claims (20)

  1. 교차 컨텐츠 네트워크 이벤트 귀속을 제공하는 방법으로서,
    제1 조정 서버에 의해, 속성 서버로부터 전환(conversion) 이벤트에 대한 이벤트 귀속 요청을 수신하는 단계와, 상기 전환 이벤트는 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 상기 제1 상호 작용 이벤트는 제1 조정 서버에 의해 관리되는 하나 이상의 콘텐츠 아이템을 갖는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 제1 온라인 활동이고, 상기 제2 상호 작용 이벤트는 제2 조정 서버에 의해 관리되는 하나 이상의 제2 컨텐츠 아이템을 갖는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 제2 온라인 활동이고, 상기 제1 조정 서버, 제2 조정 서버 및 속성 서버는 각각 별도의 서버 시스템이고, 상기 하나 이상의 콘텐츠 아이템과 제1 상호 작용 이벤트는 제1 조정 서버의 제1 데이터 저장 시스템에 저장되고, 상기 하나 이상의 제2 콘텐츠 아이템과 제2 상호 작용 이벤트는 제2 조정 서버의 제2 데이터 저장 시스템에 상기 하나 이상의 콘텐츠 아이템 및 제1 상호 작용 이벤트와 별도로 저장되며;
    상기 제1 조정 서버에 의해, 상기 제1 상호 작용 이벤트를 포함하는 복수의 상호 작용 이벤트에 대한 복수의 확인 메시지를 검색함으로써 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계와; 그리고
    상기 제1 조정 서버에 의해, 상기 제1 상호 작용 이벤트 및 제2 상호 작용 이벤트에 대한 상기 전환 이벤트의 중복 속성을 분석하기 위해, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속된다고 결정하는 것에 응답하여 제1 상호 작용 이벤트를 기술하는 제1 데이터를 속성 서버로 송신하는 단계를 포함하고, 상기 중복 속성은 제1 상호 작용 이벤트를 기술하는 제1 데이터 및 상기 제2 조정 서버로부터 속성 서버에 의해 수신된 제2 상호 작용 이벤트를 기술하는 제2 데이터를 이용하여 속성 서버에 의해 분석되고, 상기 중복 속성은 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 모두에 대한 전환 이벤트의 속성을 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 중 하나에 업데이트함으로써 속성 서버에 의해 분석되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 속성 서버에 의해, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계를 더 포함하고, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계는 상기 속성 서버에 의해, 상기 복수의 확인 메시지에 액세스하지 않고 수행되는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 방법은,
    상기 제1 조정 서버에 의해, 상기 속성 서버로부터 제1 상호 작용 이벤트에 대한 전환 이벤트의 귀속에 대한 일치(agreement) 표시 또는 불일치(disagreement) 표시를 수신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 속성 서버에 의해, 상기 전환 이벤트의 통지를 수신하는 단계와;
    상기 속성 서버에 의해, 상기 전환 이벤트에 대한 이벤트 귀속 요청을 제1 조정 서버로 송신하는 단계와;
    상기 속성 서버에 의해, 상기 제1 조정 서버로부터 상기 제1 상호 작용 이벤트를 기술하는 제1 데이터를 수신하는 단계와;
    상기 속성 서버에 의해, 상기 제1 상호 작용 이벤트를 기술하는 제1 데이터에 기초하여 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계와;
    상기 속성 서버에 의해, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속된다고 결정한 것에 응답하여 상기 제1 조정 서버로 일치 표시를 송신하는 단계와; 그리고
    상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되지 않는다고 결정한 것에 응답하여 상기 제1 조정 서버로 불일치 표시를 송신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 속성 서버에 의해, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계는,
    상기 제1 상호 작용 이벤트의 제1 타임 스탬프와 상기 전환 이벤트의 제2 타임 스탬프 사이의 지속 시간이 기정의된 양보다 적은지 여부를 결정하는 단계를 포함하고, 상기 제1 상호 작용 이벤트를 기술하는 제1 데이터는 제1 상호 작용 이벤트의 제1 타임 스탬프를 포함하는 것을 특징으로 하는 방법.
  6. 제3항에 있어서,
    상기 속성 서버에 의해, 상기 전환 이벤트에 대한 이벤트 귀속 요청을 제2 조정 서버로 송신하는 단계와;
    상기 속성 서버에 의해, 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트를 기술하는 제2 데이터를 상기 제2 조정 서버로부터 수신하는 단계와;
    상기 속성 서버에 의해, 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트를 기술하는 제2 데이터에 기초하여 상기 전환 이벤트가 제2 조정 서버와 관련된 제2 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계와;
    상기 속성 서버에 의해, 상기 제1 상호 작용 이벤트가 제2 상호 작용 이벤트에 귀속된다고 결정한 것에 응답하여 일치 표시를 제1 조정 서버로 전송하는 단계와; 그리고
    상기 속성 서버에 의해, 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트가 전환 이벤트에 귀속되지 않다고 결정한 것에 응답하여 불일치 표시를 제2 조정 서버로 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 방법은,
    상기 제1 조정 서버에 의해, 상기 속성 서버로부터 일치 표시를 수신하는 것에 응답하여 상기 제1 상호 작용 이벤트가 전환 이벤트에 귀속함을 나타내기 위해 상기 제1 조정 서버의 제1 속성 메트릭을 업데이트하는 단계와; 그리고
    상기 제2 조정 서버에 의해, 상기 속성 서버로부터 불일치 표시를 수신하는 것에 응답하여 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트가 전환 이벤트에 귀속되지 않음을 나타내기 위해 상기 제2 조정 서버의 제2 속성 메트릭을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 속성 서버에 의해, 상기 전환 이벤트가 제2 조정 서버와 관련된 제2 상호 작용 이벤트를 기술하는 제2 데이터와 관련된 이벤트들에 귀속되는지 여부를 결정하는 단계는,
    상기 제1 상호 작용 이벤트와 연관된 타임 스탬프 또는 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트와 연관된 제3 타임 스탬프가 시간적으로 상기 전환 이벤트와 연관된 제2 타임 스탬프에 더 가까운지 여부를 결정하는 단계를 포함하고,
    상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트를 기술하는 제2 데이터는 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트와 연관된 제3 타임 스탬프를 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 제1 조정 서버에 의해, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하는 단계는,
    상기 전환 이벤트와 관련된 전환 식별자와 상기 제1 상호 작용 이벤트와 관련된 제1 식별자 간의 매칭을 결정하기 위해 상기 전환 이벤트와 관련된 전환 식별자로 복수의 확인 메시지를 검색하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 전환 이벤트와 관련된 전환 식별자와 상기 제1 상호 작용 이벤트와 관련된 제1 식별자 간의 매칭을 결정하기 위해 상기 전환 이벤트와 관련된 전환 식별자로 복수의 확인 메시지를 검색하는 단계는,
    상기 전환 이벤트의 전환 식별자를 상기 제1 상호 작용 이벤트와 관련된 제1 식별자에 매핑하는 식별자 맵에 기초하여, 상기 제1 상호 작용 이벤트의 제1 식별자가 전환 이벤트의 전환 식별자에 매핑되는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 교차 컨텐츠 네트워크 이벤트 귀속을 제공하기 위한 시스템으로서, 상기 시스템은,
    처리 회로를 포함하는 제1 조정 서버를 포함하고, 상기 처리 회로는,
    속성 서버로부터 전환 이벤트에 대한 이벤트 귀속 요청을 수신하고, 상기 전환 이벤트는 제1 상호 작용 이벤트 및 제2 상호 작용 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 상기 제1 상호 작용 이벤트는 제1 조정 서버에 의해 관리되는 하나 이상의 콘텐츠 아이템을 갖는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 제1 온라인 활동이고, 상기 제2 상호 작용 이벤트는 제2 조정 서버에 의해 관리되는 하나 이상의 제2 컨텐츠 아이템을 갖는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 제2 온라인 활동이고, 상기 제1 조정 서버, 제2 조정 서버 및 속성 서버는 각각 별도의 서버 시스템이고, 상기 하나 이상의 콘텐츠 아이템과 제1 상호 작용 이벤트는 제1 조정 서버의 제1 데이터 저장 시스템에 저장되고, 상기 하나 이상의 제2 콘텐츠 아이템과 제2 상호 작용 이벤트는 제2 조정 서버의 제2 데이터 저장 시스템에 상기 하나 이상의 콘텐츠 아이템 및 제1 상호 작용 이벤트와 별도로 저장되며;
    상기 제1 상호 작용 이벤트를 포함하는 복수의 상호 작용 이벤트에 대한 복수의 확인 메시지를 검색함으로써 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하고;
    상기 제1 상호 작용 이벤트 및 제2 상호 작용 이벤트에 대한 상기 전환 이벤트의 중복 속성을 분석하기 위해, 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속된다고 결정하는 것에 응답하여 속성 서버로 제1 상호 작용 이벤트를 기술하는 제1 데이터를 송신하고, 상기 중복 속성은 제1 상호 작용 이벤트를 기술하는 제1 데이터 및 상기 제2 조정 서버로부터 속성 서버에 의해 수신된 제2 상호 작용 이벤트를 기술하는 제2 데이터를 이용하여 속성 서버에 의해 분석되고, 상기 중복 속성은 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 모두에 대한 전환 이벤트의 속성을 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 중 하나에 업데이트함으로써 속성 서버에 의해 분석되고; 그리고
    상기 속성 서버로부터 제1 상호 작용 이벤트에 대한 전환 이벤트의 귀속에 대한 일치 표시 또는 불일치 표시를 수신하도록 구성되는 것을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 처리 회로는,
    상기 전환 이벤트와 관련된 전환 식별자와 상기 제1 상호 작용 이벤트와 관련된 제1 식별자 간의 매칭을 결정하기 위해 상기 전환 이벤트와 관련된 전환 식별자로 복수의 확인 메시지를 검색함으로써 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하도록 구성되는 것을 특징으로 하는 시스템.
  13. 제12항에 있어서,
    상기 처리 회로는,
    상기 전환 이벤트와 관련된 전환 식별자로 상기 복수의 확인 메시지를 검색하여, 상기 전환 이벤트의 전환 식별자를 상기 제1 상호 작용 이벤트와 관련된 제1 식별자에 매핑하는 식별자 맵에 기초하여, 상기 제1 상호 작용 이벤트의 제1 식별자가 전환 이벤트의 전환 식별자에 매핑되는지 여부를 결정함으로써 상기 전환 이벤트와 관련된 전환 식별자와 상기 제1 상호 작용 이벤트와 관련된 제1 식별자 간의 매칭을 결정하는 것을 특징으로 하는 시스템.
  14. 제11항에 있어서,
    상기 처리 회로는,
    상기 속성 서버로부터 일치 표시를 수신하는 것에 응답하여 상기 제1 상호 작용 이벤트가 전환 이벤트에 귀속됨을 나타내기 위해 상기 제1 조정 서버의 속성 메트릭을 업데이트하도록 구성되는 것을 특징으로 하는 시스템.
  15. 교차 컨텐츠 네트워크 이벤트 귀속을 제공하는 시스템으로서, 상기 시스템은,
    처리 회로를 포함하는 속성 서버를 포함하고, 상기 처리 회로는,
    전환 이벤트의 통지를 수신하고, 상기 전환 이벤트는 제1 조정 서버와 관련된 제1 상호 작용 이벤트 및 제2 조정 서버와 관련된 제2 상호 작용 이벤트 이후에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 온라인 활동이고, 상기 제1 상호 작용 이벤트는 제1 조정 서버에 의해 관리되는 하나 이상의 컨텐츠 아이템을 갖는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 제1 온라인 활동이고, 상기 제2 상호 작용 이벤트는 제2 조정 서버에 의해 관리되는 하나 이상의 제2 컨텐츠 아이템을 갖는 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 제2 온라인 활동이고, 상기 제1 조정 서버, 제2 조정 서버 및 속성 서버는 각각 별도의 서버 시스템이고, 상기 하나 이상의 콘텐츠 아이템과 제1 상호 작용 이벤트는 제1 조정 서버의 제1 데이터 저장 시스템에 저장되고, 상기 하나 이상의 제2 콘텐츠 아이템과 제2 상호 작용 이벤트는 제2 조정 서버의 제2 데이터 저장 시스템에 상기 하나 이상의 콘텐츠 아이템 및 제1 상호 작용 이벤트와 별도로 저장되며;
    상기 전환 이벤트에 대한 이벤트 귀속 요청을 제1 조정 서버로 송신하고;
    상기 제1 조정 서버로부터 제1 상호 작용 이벤트를 기술하는 제1 데이터를 수신하고;
    상기 제1 조정 서버로부터 제2 상호 작용 이벤트를 기술하는 제2 데이터를 수신하고;
    상기 제1 상호 작용 이벤트를 기술하는 제1 데이터 및 상기 제2 상호 작용 이벤트를 기술하는 제2 데이터를 갖는 제1 상호 작용 이벤트 및 제2 상호 작용 이벤트에 변환 이벤트의 중복 속성을 분석하기 위해 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하고, 상기 중복 속성은 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 모두에 대한 전환 이벤트의 속성을 제1 상호 작용 이벤트와 제2 상호 작용 이벤트 중 하나에 업데이트함으로써 속성 서버에 의해 분석되고;
    상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속된다고 결정한 것에 응답하여 상기 제1 조정 서버로 일치 표시를 송신하고; 그리고
    상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되지 않는다고 결정한 것에 응답하여 상기 제1 조정 서버로 불일치 표시를 송신하도록 구성되는 것을 특징으로 하는 시스템.
  16. 제15항에 있어서,
    상기 처리 회로는,
    상기 속성 서버에 의해, 상기 제1 조정 서버에 의해 저장된 복수의 확인 메시지에 액세스하지 않고 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정함으로써 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하도록 구성되고, 상기 복수의 확인 메시지는 상기 제1 상호 작용 이벤트를 포함하는 제1 조정 서버와 관련된 이벤트들에 관한 정보를 포함하는 것을 특징으로 하는 시스템.
  17. 제15항에 있어서,
    상기 처리 회로는,
    상기 제1 상호 작용 이벤트의 제1 타임 스탬프와 상기 전환 이벤트의 제2 타임 스탬프 사이의 지속 시간이 기정의된 양보다 적은지 여부를 결정함으로써 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하도록 구성되고, 상기 제1 상호 작용 이벤트를 기술하는 제1 데이터는 제1 상호 작용 이벤트의 제1 타임 스탬프를 포함하는 것을 특징으로 하는 시스템.
  18. 제15항에 있어서,
    상기 처리 회로는,
    상기 전환 이벤트에 대한 이벤트 귀속 요청을 제2 조정 서버로 송신하고;
    상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트를 기술하는 제2 데이터를 제2 조정 서버로부터 수신하고, 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트는 상기 전환 이벤트 전에 복수의 사용자 디바이스 중 하나를 통해 사용자에 의해 수행된 다른 온라인 활동이고;
    상기 전환 이벤트가 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트에 귀속되는지 여부를 결정하고; 그리고
    상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트가 전환 이벤트에 귀속되지 않는다고 결정한 것에 응답하여 상기 제2 조정 서버로 불일치 표시를 송신하도록 구성되는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 처리 회로는,
    상기 제1 상호 작용 이벤트와 연관된 제1 타임 스탬프 또는 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트와 연관된 제3 타임 스탬프가 시간적으로 상기 전환 이벤트와 관련된 제2 타임 스탬프와 더 가까운지 여부를 결정함으로써 상기 전환 이벤트가 제1 상호 작용 이벤트에 귀속되는지 여부를 결정하도록 구성되고, 상기 제2 조정 서버와 관련된 제2 상호 작용 이벤트를 기술하는 제2 데이터는 제3 타임 스탬프를 포함하는 것을 특징으로 하는 시스템.
  20. 제15항에 있어서,
    상기 일치 표시 및 불일치 표시는,
    상기 제1 조정 서버로 하여금 상기 제1 상호 작용 이벤트가 전환 이벤트에 귀속되는지 또는 귀속되지 않는지를 나타내기 위해 상기 제1 조정 서버의 속성 메트릭을 업데이트하게 하는 것을 특징으로 하는 시스템.
KR1020197022470A 2017-04-28 2017-12-12 교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법 KR102262482B1 (ko)

Applications Claiming Priority (5)

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
PCT/US2017/065899 WO2018200033A1 (en) 2017-04-28 2017-12-12 Systems and methods for providing cross-network event attribution

Publications (2)

Publication Number Publication Date
KR20190099068A KR20190099068A (ko) 2019-08-23
KR102262482B1 true KR102262482B1 (ko) 2021-06-08

Family

ID=60937894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197022470A KR102262482B1 (ko) 2017-04-28 2017-12-12 교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법

Country Status (8)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020000274T5 (de) * 2020-08-18 2022-05-19 Google Llc Systeme und verfahren zur identifizierung von ereignissen, die eine eigenschaft teilen

Citations (6)

* 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
US20110246267A1 (en) * 2010-03-31 2011-10-06 Williams Gregory D Systems and Methods for Attribution of a Conversion to an Impression Via a Demand Side Platform
US20140365296A1 (en) * 2013-06-07 2014-12-11 Google Inc. Cross-device conversion estimates
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
US20160328739A1 (en) * 2012-02-06 2016-11-10 Kenshoo Ltd. Attribution of values to user interactions in a sequence

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8788339B2 (en) 2011-05-27 2014-07-22 Google Inc. Multiple attribution models with return on ad spend
WO2014203000A1 (en) 2013-06-20 2014-12-24 Vodafone Ip Licensing Limited Location analysis for analytics

Patent Citations (6)

* 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
US20110246267A1 (en) * 2010-03-31 2011-10-06 Williams Gregory D Systems and Methods for Attribution of a Conversion to an Impression Via a Demand Side Platform
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
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
WO2018200033A1 (en) 2018-11-01
GB2561939A (en) 2018-10-31
US20180316546A1 (en) 2018-11-01
KR20190099068A (ko) 2019-08-23
JP2020514877A (ja) 2020-05-21
US10979284B2 (en) 2021-04-13
GB201721008D0 (en) 2018-01-31
EP3560158B1 (en) 2021-04-28
DE202017107667U1 (de) 2018-07-31
DE102017130229A1 (de) 2018-10-31
CN108809687A (zh) 2018-11-13
EP3560158A1 (en) 2019-10-30
JP6871395B2 (ja) 2021-05-12
CN108809687B (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
US11799741B2 (en) Systems and methods for enterprise information technology (IT) monitoring
JP7271734B2 (ja) 分散イベント処理システムにおけるデータシリアライズ
US11412343B2 (en) Geo-hashing for proximity computation in a stream of a distributed system
US20210097080A1 (en) Managed query service
US10592474B2 (en) Processing log files using a database system
US9158843B1 (en) Addressing mechanism for data at world wide scale
US20220284102A1 (en) Data lineage management
JP2019535058A (ja) スナップショットおよび状態のマイクロバッチ方式による管理
JP2019532416A (ja) ストリームデータにおける空間変化検出器
JP2016539427A (ja) 多重入力データストリームにわたるパターンマッチング
US10872097B2 (en) Data resolution system for management of distributed data
US11334601B2 (en) Unified data model
US20200097503A1 (en) Method and apparatus for a mechanism for event replay when a reroute of recordation of the event occurred in a multiplexed event recordation system
Basak et al. Stream Analytics with Microsoft Azure: Real-time data processing for quick insights using Azure Stream Analytics
KR102262482B1 (ko) 교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법
US10169083B1 (en) Scalable method for optimizing information pathway
US11609924B2 (en) Database query execution on multiple databases

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant