KR102285880B1 - 데이터 유출 방지 - Google Patents

데이터 유출 방지 Download PDF

Info

Publication number
KR102285880B1
KR102285880B1 KR1020197026854A KR20197026854A KR102285880B1 KR 102285880 B1 KR102285880 B1 KR 102285880B1 KR 1020197026854 A KR1020197026854 A KR 1020197026854A KR 20197026854 A KR20197026854 A KR 20197026854A KR 102285880 B1 KR102285880 B1 KR 102285880B1
Authority
KR
South Korea
Prior art keywords
data
digital component
user
given
activity
Prior art date
Application number
KR1020197026854A
Other languages
English (en)
Other versions
KR20190118616A (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 KR20190118616A publication Critical patent/KR20190118616A/ko
Application granted granted Critical
Publication of KR102285880B1 publication Critical patent/KR102285880B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

사용자 데이터의 가용성을 제어함으로써 데이터 유출을 방지하기 위한 장치를 포함하는 방법들, 시스템들 및 장치들이 제공된다. 일 양상에서, 시스템은 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 디지털 컴포넌트 요청들을 수신하고, 디지털 컴포넌트를 제공하는 프론트-엔드 서버를 포함한다. 데이터 가용성 제어 서버는 사용자에 대한 사용자 식별자를 명시하는 데이터를 수신하고, 디지털 컴포넌트 제공자들에 대한 상기 활동 데이터의 가용성을 제어하되, 소정의 디지털 컴포넌트 제공자들에 대하여, 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인 데이터 세트들을 식별한다. 데이터 가용성 제어 서버는 특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들에 포함된 사용자의 활동 데이터를 선택하고, 그리고 선택된 데이터를 소정의 디지털 컴포넌트 제공자에게 제공한다.

Description

데이터 유출 방지
본 발명은 데이터에 대한 액세스를 제어하는 것과 관련된 발명이다.
인터넷 기반 활동에 대한 다양한 정보들이 인터넷 콘텐츠 제공자들 사이에서 공유되어, 적절한 콘텐츠가 사용자들에게 제공될 수 있는 가능성을 개선하고 있다. 하지만, 데이터가 인터넷 상에서 제3자와 일단 공유되면, 공유된 데이터의 사용을 제어하는 것이 매우 어렵다.
본 명세서는 데이터의 유출(예를 들면, 부정 사용)을 방지하고 그리고 효율적인 동작을 보장하도록 이러한 데이터 액세스를 위한 컴퓨팅 및 네트워크 리소스들의 사용을 최적화하는 방식으로, 데이터에 대한 액세스를 제어하는 것과 관련된 기술들을 서술한다.
일반적으로, 본 명세서에서 설명된 본 발명의 혁신적인 특징들 중 하나는 데이터 세트들을 저장하는 하나 이상의 데이터 저장 디바이스들을 포함하는 시스템으로 구현될 수 있다. 각각의 데이터 세트는 (i) 상기 데이터 세트가 시작된 각각의 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함한다. 상기 시스템은 디지털 컴포넌트 요청들을 수신하고, 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하는 하나 이상의 프론트-엔드 서버들을 포함하며, 디지털 컴포넌트 요청들은 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시한다. 상기 시스템은 상기 하나 이상의 데이터 저장 디바이스들 및 상기 하나 이상의 프론트-엔드 서버들과 데이터 통신하는 하나 이상의 데이터 가용성 제어 서버들을 포함한다. 상기 데이터 가용성 제어 서버들은, 소정의 디지털 컴포넌트 요청에 의해 명시되는 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 상기 하나 이상의 프론트-엔드 서버들로부터 수신할 수 있다. 상기 데이터 가용성 제어 서버들은, 디지털 컴포넌트 제공자들에 대한 상기 활동 데이터의 가용성을 제어하되, 소정의 디지털 컴포넌트 제공자들에 대하여, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인, 데이터 세트들을 식별하고, 특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하고, 그리고 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공함으로써, 상기 활동 데이터의 가용성을 제어할 수 있다. 이러한 양상의 다른 구현예들은 대응하는 장치들, 방법들, 및 방법들의 동작들을 수행하도록 컴퓨터 저장 디바이스 상에 인코딩된 컴퓨터 프로그램들을 포함한다.
이들 및 다른 구현예는 각각의 하나 이상의 다음 특징들을 임의로 포함할 수 있다. 일부 양상들에서, 하나 이상의 데이터 가용성 제어 서버들은, 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 소정 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공한다. 일부 양상들에서, 하나 이상의 데이터 가용성 제어 서버들은, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공한다.
일부 양상들에서, 하나 이상의 프론트-엔드 서버들은, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공한다. 각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함한다.
일부 양상들에서, 하나 이상의 프론트-엔드 서버들은, 활동 데이터가 요청되는 사용자에 대한 사용자 식별자를 각각 명시하는 활동 데이터 요청들을 수신하고 그리고 상기 활동 데이터 요청들에 응답하여 활동 데이터를 제공한다. 상기 하나 이상의 데이터 가용성 제어 서버들은, 상기 하나 이상의 프론트-엔드 서버들로부터, 특정 엔티티로부터 수신된 특정 활동 데이터 요청에 의해 명시된 특정 사용자에 대한 특정 사용자 식별자를 명시하는 데이터를 수신한다. 상기 하나 이상의 데이터 가용성 제어 서버들은 또한, (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별할 수 있으며 그리고 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정할 수 있다. 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여, 상기 하나 이상의 데이터 가용성 제어 서버들은 특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택할 수 있으며, 상기 선택된 데이터를 상기 특정 엔티티에 제공할 수 있다.
상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 것은, 특정 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 명시하는, 상기 특정 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하고; 그리고 상기 활동 데이터 요청들의 개수가 상기 특정 발행자에 의해서 지정된 임계값 미만임을 결정하는 것을 포함할 수 있다.
일반적으로, 본 명세서에 서술된 본 발명의 다른 양상은 발행자들로부터 수신된 수신된 데이터 세트를 저장하는 하나 이상의 데이터 저장 디바이스를 포함하는 시스템으로 구현될 수 있다. 각각의 데이터 세트는 (i) 상기 데이터 세트가 수신된 상기 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함한다. 상기 시스템은 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하고, 상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하는 하나 이상의 프론트-엔드 서버들을 포함할 수 있다. 상기 시스템은 상기 하나 이상의 데이터 저장 디바이스들 및 상기 하나 이상의 프론트-엔드 서버들과 데이터 통신하는 하나 이상의 데이터 유출 서버들을 포함할 수 있다. 상기 하나 이상의 데이터 유출 서버들은, 소정의 디지털 컴포넌트 요청에 의해 명시되는 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 상기 하나 이상의 프론트-엔드 서버들로부터 수신할 수 있다. 상기 하나 이상의 데이터 유출 서버들은, 디지털 컴포넌트 제공자들에 대한 상기 활동 데이터의 유출을 방지하되, 소정의 디지털 컴포넌트 제공자들에 대하여, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인, 데이터 세트들을 식별하고, 특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하고, 그리고 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공함으로써, 상기 활동 데이터의 유출을 방지할 수 있다.
일부 양상들에서, 상기 하나 이상의 데이터 유출 서버들은, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공할 수 있다. 일부 양상들에서, 상기 하나 이상의 데이터 유출 서버들은, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공할 수 있다.
일부 양상들에서, 상기 하나 이상의 프론트-엔드 서버들은, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공할 수 있다. 각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함할 수 있다.
일부 양상들에서, 상기 하나 이상의 프론트-엔드 서버들은, 활동 데이터가 요청되는 사용자에 대한 사용자 식별자를 각각 명시하는 활동 데이터 요청들을 수신하고 그리고 상기 활동 데이터 요청들에 응답하여 활동 데이터를 제공할 수 있다. 상기 하나 이상의 데이터 유출 서버들은, 상기 하나 이상의 프론트-엔드 서버들로부터, 특정 엔티티로부터 수신된 특정 활동 데이터 요청에 의해 명시된 특정 사용자에 대한 특정 사용자 식별자를 명시하는 데이터를 수신할 수 있다. 상기 하나 이상의 데이터 유출 서버들은 또한, (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별할 수 있으며 그리고 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정할 수 있다. 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여, 상기 하나 이상의 데이터 유출 서버들은 특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택할 수 있으며, 상기 선택된 데이터를 상기 특정 엔티티에 제공할 수 있다.
일부 양상들에서, 상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 것은, 특정 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 명시하는, 상기 특정 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하고; 그리고 상기 활동 데이터 요청들의 개수가 상기 특정 발행자에 의해서 지정된 임계값 미만임을 결정하는 것을 포함할 수 있다.
전술한 바와 같이, 인터넷 상에서 제3자와 공유된 이후, 공유된 데이터의 사용을 제어하는 것은 매우 어렵다. 허가없이 이러한 데이터를 추가로 사용하거나 추가로 공유하는 것은, 미승인이라는 점을 제외하더라도, 이러한 정보 공유를 구현하는 데 사용되는 컴퓨팅 및 네트워크 리소스의 효과적인 작동에 영향을 미칠 수 있는 여러 가지 추가 문제들을 유발할 수 있다. 무단 사용으로 인하여, 이러한 귀중한 컴퓨팅 및 네트워크 리소스에 불필요한 부하가 발생한다. 더욱이, 공유된 데이터 중 얼마 만큼이 실제로 사용될 수 있는지, 또는 그러한 데이터를 획득하는 엔티티 또는 사용자에게 추가로 유용할 것인지를 평가하는 것은 거의 불가능하다. 이로 인해, 대량의 데이터 파일들이 통신 네트워크를 통해 수 많은 사용자들로 이동될 수 있으며(때때로는 동시에), 이 경우, 이러한 파일들 내의 데이터는 전혀 액세스되지 않거나 사용되지 않을 가능성이 있다. 이는 컴퓨팅 시스템 및/또는 네트워크의 전반적인 효율성에 영향을 미친다.
본 명세서에 서술된 본 발명의 주제는 특정 실시예들에서 구현되어, 다음의 장점들 중 하나 이상을 실현할 수 있다. 전체 데이터 세트들을 제공하는 것이 아니라 특정 요청과 매칭되는 데이터 세트들의 일부에 대한 액세스를 선택적으로 제공함으로써, 미승인 사용자로의 데이터 유출(또는 허가되지 않은 목적을 위해 사용됨)이 방지 혹은 감소될 수 있다. 또한, 소정의 기간 동안 소정의 엔티티에 대해 이행될 수 있는 데이터에 대한 질의들 또는 요청들의 수를 제한함으로써, 데이터 유출을 방지하거나 감소시킬 수 있다. 데이터 유출을 감소시킴으로써, 사용자 데이터(익명 식별자와 데이터를 연관시킴으로써 익명화될 수 있음)는 보다 잘 보호되는데, 왜냐하면 엔티티가 사용자와 관련된 데이터의 제한된 양(예를 들어, 전부 보다 적음)에만 액세스할 수 있기 때문이다. 요청과 매칭되는 데이터 세트들에 포함된 데이터의 제한된 부분들을 제공함으로써, 데이터 제공자가 자신의 데이터가 다른 엔티티로 유출되는 위험을 감수하지 않고도, 엔티티는 관련 데이터에 대한 액세스를 계속 수신할 수 있다. 이러한 데이터 유출의 방지 또는 감소에 의해 제공되는 상기 장점들과 관련하여 또는 이에 부가하여, 선택적 액세스 및 제한된 데이터 분량은 또한 컴퓨팅 및 네트워크 리소스의 보다 효과적인 관리 및 할당을 초래할 수 있다. 이는, 각각의 선택적 액세스에 필요한 리소스들만이 및/또는 전송될 제한된 양의 데이터가 추후 이용될 것이므로, 제3자들과 데이터를 공유하기 위한 보다 안전하고 최적화된 컴퓨팅 환경을 제공하기 때문이다.
데이터 세트들에 대한 액세스를 획득하고, 특정 요청들과 매칭되는 데이터 세트들로부터 데이터의 일부를 수신하는 엔티티들은, 많은 양의 관련이 없는 데이터에 의한 부담이 없이도 유용한 데이터를 수신할 수 있다. 이러한 데이터 감소는 엔티티들의 컴퓨터들이 데이터를 보다 빠르고 효율적으로 프로세싱할 수 있게 하며, 컴퓨터에 저장되는 데이터의 양을 줄일 수 있게 한다. 예를 들어, 디지털 컴포넌트 요청과 관련된 데이터에 대한 활동 데이터의 대규모 데이터베이스를 검색하는 것과 비교하여, 컴퓨터는 디지털 컴포넌트 요청에 포함된 소량의 데이터를 더 빠르게 처리할 수 있다. 이것은 컴퓨터가 이러한 요청에 훨씬 신속하게 응답할 수 있게 하며, 따라서 디지털 컴포넌트 제공자들은 시간이 제한된 선택 프로세스들에 참여할 수 있다.
또한, 데이터의 이러한 감소는 네트워크 전송 시간을 감소시키고 모든 데이터를 전송하는데 필요한 대역폭의 양에 비하여, 소비되는 네트워크 대역폭의 양을 감소시킨다. 데이터 세트들의 획득에 관심이 있는 엔티티들이 데이터 세트들의 속성들을 검색하거나 볼 수 있게함으로써, 엔티티들은 가장 유용한 데이터 세트들을 식별할 수 있다. 이것은 또한, 엔터티들이 거의 또는 전혀 사용하지 않는 데이터 세트에 대한 액세스를 엔터티들이 획득할 가능성을 감소시킨다.
시스템에서 디지털 컴포넌트 제공자들에게 유용한 데이터를 포함하는 데이터 세트들을 집계함으로써, 디지털 컴포넌트 제공자들로의 데이터의 보다 신속한 전송을 허용한다. 사용자가 그들의 리소스들을 방문할 때 시스템으로 자동으로 전송되는 데이터를 리소스들의 발행자들이 선택할 수 있게 함으로써, 디지털 컴포넌트 제공자 및 기타 엔터티는 이전에는 사용할 수 없었거나 집계하기 어려운 유용한 데이터에 액세스할 수 있다. 발행자들은 발행자들의 데이터 세트(들)에 액세스하기 위해 디지털 컴포넌트 제공자에 의해 제공된 금액의 일부(또는 전부)를 수령함으로써 이익을 얻을 수 있다.
전술한 본 발명의 여러 가지 특징들 및 장점들이 아래의 도면들을 참조하여 설명된다. 추가적인 특징들 및 장점들은 본 명세서에 기술된 주제로부터 명백하다.
도 1은 예시적인 디지털 컴포넌트 분배 시스템이 디지털 컴포넌트를 분배하고 데이터 유출을 방지하는 환경의 블록도이다.
도 2는 예시적인 디지털 컴포넌트 분배 시스템이 디지털 컴포넌트를 분배하고 데이터 유출을 방지하는 환경의 블록도이다.
도 3은 데이터 유출을 막기 위해 사용자 데이터에 대한 액세스를 제어하면서 디지털 컴포넌트를 제공하기 위한 예시적인 프로세스를 도시한 흐름도이다.
도 4는 데이터 유출을 방지하는 제어된 방식으로 데이터를 제공하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
여러 도면들에서 유사한 참조 번호들과 명칭들을 유사한 요소들을 나타낸다.
일반적으로, 본 명세서에 서술된 시스템 및 기술들은 데이터의 유출을 방지하거나 감소시키면서 데이터에 대한 액세스를 제어할 수 있다. 예를 들어, 일부 엔터티들은 다른 엔터티들에게 유용한 데이터를 축적할 수 있다. 만일, 이러한 엔티티들이 다른 엔티티에게 데이터를 제공한다면, 다른 엔티티가 데이터를 저장할지, 데이터를 재사용하거나 다른 사람에게 데이터를 전송할지 여부를 더 이상 제어할 수 없다. 예를 들어, 특정 유형의 제품에 대한 블로그 발행자가 상기 블로그에서 수행된 사용자-시작 검색(user-initiated searches)에 대한 데이터를 특정 목적을 위해 그 유형의 제품의 제조업자에게 제공하는 경우, 상기 제조업자는 데이터를 저장하거나, 다른 목적으로 데이터를 사용하거나, 및/또는 데이터를 다른 이들에게 전송할 수 있다.
본 명세서에 서술된 시스템들 및 기법들은 모든 데이터를 제공함이 없이, 데이터 세트들의 일부분들(예를 들어, 하나 이상의 데이터 세트들 내의 모든 데이터 보다 작은)에 대한 액세스를 제공하거나 및/또는 데이터 세트들의 일부분들의 사용을 제공할 수 있으므로, 제3자들이 이용할 수 있는 사용자 데이터의 분량을 제한할 수 있다. 일부 구현예들에서, 디지털 컴포넌트 제공자는, 전자 리소스(예를 들어, 웹 페이지 또는 모바일 어플리케이션)와의 사용자 상호작용과 관련된 데이터를 포함하는 데이터 세트에 대한 액세스를 획득할 수 있다. 예를 들어, 데이터 세트는 전자 리소스로 네비게이팅한 사용자들에 대한 익명의 사용자 식별자들을 포함하거나 및/또는 전자 리소스와의 하나 이상의 사용자 상호작용들을 서술하는 활동 데이터(activity data), 예컨대 사용자 선택 항목, 가상 쇼핑 카트에 추가된 항목, 전자 리소스의 검색에 제출된 검색어, 리소스에서 시청한 기사, 사용자 상호작용이 발생한 시간 및/또는 다른 적절한 데이터를 포함할 수 있다.
오히려 디지털 컴포넌트 제공자에게 이러한 데이터 세트를 제공하는 것이 아니라, 상기 시스템은 디지털 컴포넌트 제공자가 액세스를 획득한 상기 데이터 세트(들)를 식별하는 데이터를 저장할 수 있다. 디지털 컴포넌트에 대한 요청이 수신될 때, 시스템은 디지털 컴포넌트 요청의 사용자 식별자를 식별하고 그리고 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)가 디지털 컴포넌트 제공자가 액세스를 획득한 하나 이상의 데이터 세트에 포함되는지 여부를 결정할 수 있다. 만일, 디지털 컴포넌트 제공자가 액세스를 획득한 데이터 세트에 사용자 식별자가 포함된다면, 상기 데이터 세트에 포함된 사용자 식별자에 대한 활동 데이터를 디지털 컴포넌트 제공자에게 제공할 수 있다. 이러한 방식으로, 디지털 컴포넌트 제공자는 단일 요청에 응답하여 전체 데이터 세트를 수신하지 못한다. 만일, 디지털 컴포넌트 제공자가 액세스를 획득한 다수의 데이터 세트들 내에 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)가 포함된다면, 상기 시스템은 디지털 컴포넌트 제공자에게 제공되는 데이터를 특정 개수(예를 들어, 하나)의 데이터 세트들에 포함된 데이터만으로 제한할 수 있다. 이것은 잠재적인 데이터 유출량을 더욱 감소시키고, 사용자의 데이터를 보호할 수 있다.
일부 구현예에서, 엔티티는 하나 이상의 데이터 세트들에 포함된 데이터를 요청하는 능력을 획득할 수 있다. 예를 들어, 멀티미디어 제공자는 사용자에게 멀티미디어 추천을 제공하는데 사용하기 위하여, 사용자 활동 데이터를 포함하는 데이터 세트에 대한 액세스를 획득할 수 있다. 시스템은 멀티미디어 제공자에게 데이터 세트를 제공하는 것이 아니라, 멀티미디어 제공자가 지정된 기간 동안 특정 개수의 요청을 제출하게 하거나 또는 지정된 기간 동안 특정 개수의 질의들에 대해서만 데이터를 수신하게 할 수 있다. 만일, 상기 요청이 멀티미디어 제공자가 액세스를 획득한 데이터 세트에 포함된 사용자에 대한 사용자 식별자를 포함하고 그리고 멀티미디어 제공자가 일정 기간 동안 요청들의 개수를 초과하지 않은 경우, 상기 시스템은 매칭 데이터 세트에 포함된 사용자의 사용자 활동 데이터를 제공할 수 있다.
도 1은 예시적인 디지털 컴포넌트 분배 시스템(120)이 디지털 컴포넌트를 분배하고 그리고 데이터 유출을 방지하기 위해 데이터의 이용가능성을 제어하는 환경(100)에 대한 블록도이다. 본 문서 전체에서 사용되는 "디지털 컴포넌트"라는 문구는 디지털 콘텐츠 또는 디지털 정보(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 콘텐츠 단위)의 개별 단위를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 하나의 파일로서 또는 파일 모음으로서 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취하고 광고 정보를 포함할 수 있는바, 따라서 광고는 일종의 디지털 컴포넌트이다. 디지털 컴포넌트는 클라이언트 디바이스(110)에 의해 제시될 수 있다. 예를 들어, 디지털 컴포넌트는 웹 브라우저 또는 모바일 어플리케이션의 어플리케이션 페이지에 디스플레이되는 웹 페이지의 디지털 컴포넌트 영역에 디스플레이될 수 있다.
클라이언트 디바이스(110)는, 데이터를 요청, 수신, 및 표시할 수 있는 전자 디바이스이다. 클라이언트 디바이스의 예로는 개인용 컴퓨터, 휴대폰(예: 스마트폰), 태블릿 컴퓨터, 웨어러블 디바이스(예: 스마트 시계) 및 인공 지능 어시스턴트("AI 어시스턴트")를 포함할 수 있다. 일부 클라이언트 디바이스는 데이터 통신 네트워크를 통한 데이터의 전송 및 수신을 용이하게 하는 웹 브라우저 또는 모바일 어플리케이션과 같은 사용자 어플리케이션을 포함한다. 웹 브라우저 또는 모바일 어플리케이션을 통해 사용자는 텍스트, 이미지, 비디오, 음악 및 기타 콘텐츠를 표시하고 상호작용할 수 있다. AI 어시스턴트는 사용자가 음성 커맨드를 사용하여 정보나 콘텐츠를 요청할 수 있는 음성 기반 사용자 인터페이스를 제공할 수 있다.
디지털 컴포넌트 분배 시스템(120)은 클라이언트 디바이스(110)로부터 수신된 디지털 컴포넌트 요청(112)에 응답하여 클라이언트 디바이스(110)로 디지털 컴포넌트를 제공할 수 있다. 예를 들어, 웹 페이지 또는 모바일 어플리케이션의 어플리케이션 페이지는 코드를 포함할 수 있으며, 이러한 코드는 웹 브라우저 또는 모바일 어플리케이션에 의해 실행될 때, 클라이언트 디바이스(110)로 하여금 디지털 컴포넌트 요청을 디지털 컴포넌트 분배 시스템(120)으로 제출하게 한다.
디지털 컴포넌트 요청(112)은 클라이언트 디바이스(110)의 사용자에 대한 사용자 식별자, 예를 들어, 클라이언트 디바이스(110)의 사용자와 관련된 사용자 식별자를 포함할 수 있다. 사용자 식별자는 사용자 또는 클라이언트 디바이스를 익명으로 유지하면서도 사용자 또는 클라이언트 디바이스(110)를 고유하게 식별하는 고유한 숫자 또는 문자-숫자 시퀀스일 수 있다.
몇몇 구현예에서, 디지털 컴포넌트 분배 시스템(120)은 디지털 컴포넌트 제공자, 예를 들어, 디지털 컴포넌트 제공자 A(130) 및/또는 디지털 컴포넌트 제공자 B(140)로부터 수신된 데이터에 기초하여 디지털 컴포넌트 요청에 대한 응답으로 제공할 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 디지털 컴포넌트 분배 시스템(120)은 하나 이상의 디지털 컴포넌트 제공자들의 컴퓨터들로 요청 데이터(132, 142)를 전송하여, 디지털 컴포넌트 제공자 A(130)가 디지털 컴포넌트 요청에 응답하여 클라이언트 디바이스(110)로 디지털 컴포넌트를 제공할 것인지를 문의할 수 있다. 만일 그렇다면, 디지털 컴포넌트 제공자의 컴퓨터는, 디지털 컴포넌트 제공자의 디지털 컴포넌트가 클라이언트 디바이스(110)로 제공되기 위해 선택된 경우, 디지털 컴포넌트 제공자가 디지털 컴포넌트 분배 시스템에 제공하고자 하는 금액(amount)을 지정하는 데이터를 디지털 컴포넌트 분배 시스템(120)에 제공할 수 있다. 예를 들어, 아래에 보다 상세히 기술되는 바와 같이, 디지털 컴포넌트 제공자들의 컴퓨터들은 각각 하나 이상의 규칙들(또는 다른 논리)을 사용하여, 디지털 컴포넌트 선택 프로세스에 디지털 컴포넌트를 포함할지 여부 및 컴퓨터들에 의해 수신된 요청 데이터에 포함된 정보에 기초하여 금액이 얼마가 될 것인지를 결정할 수 있다. 다음으로, 디지털 컴포넌트 분배 시스템(120)은 디지털 컴포넌트 제공자들의 컴퓨터들로부터 수신된 데이터에 기초하여 디지털 컴포넌트를 선택하고 그리고 클라이언트 디바이스(110)에 의해 프리젠테이션되도록 상기 선택된 디지털 컴포넌트를 클라이언트 디바이스(110)로 제공할 수 있다.
디지털 컴포넌트 제공자(130, 140)로 전송된 요청 데이터(132, 142)는, 디지털 컴포넌트가 프리젠테이션될 디지털 컴포넌트 프리젠테이션 슬롯에 관련된 데이터를 포함할 수 있다. 예를 들어, 웹 페이지 또는 어플리케이션 페이지는 디지털 컴포넌트를 프리젠테이션하기 위한 하나 이상의 디지털 컴포넌트 슬롯을 포함할 수 있다. 요청 데이터는, 예를 들어, 웹 페이지 또는 어플리케이션 페이지를 식별하는 데이터, 페이지 상의 디지털 컴포넌트 슬롯의 위치, 페이지가 검색 결과 페이지인 경우 하나 이상의 검색어 및/또는 디지털 컴포넌트 슬롯에 대한 다른 적절한 데이터를 포함할 수 있다.
추가적으로, 또는 대안적으로, 요청 데이터(132, 142)는 디지털 컴포넌트가 프리젠테이션될 클라이언트 디바이스(110)의 사용자에 관련된 데이터를 포함할 수 있다. 예를 들어, 요청 데이터(132 및 142)는 디지털 컴포넌트 요청(112)에 포함된 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)를 포함할 수 있다. 일부 구현예들에서, 클라이언트 디바이스(110)의 사용자와 관련된 데이터는, 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)를 포함하는 데이터 세트에 대한 액세스를 획득한 디지털 컴포넌트 제공자에게만 제공될 수 있다.
각각의 데이터 세트는 하나 이상의 사용자 식별자들에 대한 활동 데이터를 포함할 수 있다. 활동 데이터는 사용자 식별자들과 연관된 사용자들이 하나 이상의 리소스에서 수행한 사용자 상호작용을 서술할 수 있다. 예를 들어, 활동 데이터는 사용자가 방문한 리소스, 리소스에서 사용자가 선택한 항목, 리소스에서 사용자가 제출한 검색어, 사용자가 본 기사, 각 행동이 발생한 시간 및/또는 다른 적절한 활동 데이터를 특정할 수 있다.
몇몇 구현예에서, 사용자는 복수의 사용자 식별자들과 관련될 수 있다. 예를 들어, 제 1 발행자(publisher)는 소정의 사용자가 상기 제 1 발행자의 리소스들 중 하나를 방문할 때 상기 소정의 사용자에게 익명의 제 1 사용자 식별자를 할당할 수 있다. 제 2 발행자는 상기 소정의 사용자가 제 2 발행자의 리소스들 중 하나를 방문할 때 상기 제 1 사용자 식별자와는 다른 익명의 제 2 사용자 식별자를 상기 소정의 사용자에게 할당할 수 있다. 데이터 세트는 각 사용자에 대한 범용 사용자 식별자를 포함할 수 있다. 이러한 구현예들에서, 디지털 컴포넌트 분배 시스템(120)은 범용 사용자 식별자와 함께, 각각의 발행자(또는 다른 엔티티의)의 사용자 식별자를 식별하는 사용자 식별자들의 인덱스를 포함할 수 있다. 이러한 방식으로, 디지털 컴포넌트 분배 시스템(120)은 발행자들로부터 수신된 활동 데이터를 적절한 범용 사용자 식별자에 할당할 수 있으며, 적절한 사용자 식별자를 디지털 컴포넌트 제공자에게 제공할 수 있다.
리소스의 발행자는 하나 이상의 데이터 세트를 디지털 컴포넌트 분배 시스템(120)에 제공할 수 있다. 예를 들어, 블로그 발행자는 자신의 블로그와의 사용자 상호작용들에 관한 데이터를 기록할 수 있다. 발행자는 이러한 데이터의 전부 또는 일부를 포함하는 데이터 세트를 생성할 수 있다. 발행자는 각 데이터 세트에 포함되는 데이터를 선택 및 커스터마이즈할 수 있다. 예를 들어, 발행자는 블로그를 방문한 사용자들에 대한 사용자 식별자들 및 블로그 주제를 지정하는 데이터를 포함하는 제 1 데이터 세트를 생성할 수 있으며, 블로그에 검색 질의를 제출한 사용자들에 대한 사용자 식별자들 및 각 사용자 식별자에 대해, 사용자가 제출한 용어 또는 기타 검색 가능한 콘텐츠를 포함하는 제 2 데이터 세트를 생성할 수 있다. 발행자는 이러한 데이터 세트(들)를 디지털 컴포넌트 분배 시스템(120)으로 전송할 수 있다.
몇몇 구현예에서, 발행자의 리소스들은 리소스와의 사용자 상호작용을 설명하는 활동 데이터를 자동으로 제공한다. 예를 들어, 발행자는 웹 페이지의 코드 내에 태그(예를 들어, 픽셀 또는 비콘)를 포함할 수 있다. 이러한 태그는 코드를 포함할 수 있으며, 상기 코드는 웹 브라우저에 의해 실행될 때, 웹 브라우저로 하여금 클라이언트 디바이스(110) 상의 액션들 혹은 이벤트들을 캡처하게 하고 그리고 데이터를 디지털 컴포넌트 분배 시스템(120)으로 제공하게 한다. 발행자는 태그를 설정하여 발행자가 데이터 세트에 포함시키고자 하는 데이터를 캡처 및 전송할 수 있는바, 예컨대 이러한 데이터는 디지털 컴포넌트 요청에 응답하여 디지털 컴포넌트를 제공할 것인지의 여부를 결정함에 있어서 발행자가 디지털 컴포넌트 제공자에게 유용할 것으로 생각되는 데이터이다.
디지털 컴포넌트 제공자(130, 140)는 하나 이상의 데이터 세트에 대한 액세스를 획득할 수 있다. 예를 들어, 디지털 컴포넌트 제공자(130 및 140)는 소정의 행동들, 예를 들어, 특정 웹 페이지를 방문했거나, 특정 키워드를 사용하여 검색을 시작했거나, 특정 아이템을 시청했거나, 및/또는 다른 적절한 행동을 수행한 사용자들에게 자신의 디지털 컴포넌트를 제공하고자 할 수 있다. 디지털 컴포넌트 제공자(130, 140)는, 디지털 컴포넌트 제공자(130, 140)가 관심을 가질만한 동작들을 수행한 사용자들에 대한 사용자 식별자들을 포함하는 데이터 세트에 대한 액세스를 각각 획득할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 디지털 컴포넌트 분배 시스템(120)은 디지털 컴포넌트 제공자(130 및 140)가 데이터 세트를 브라우징 또는 검색할 수 있게하고 그리고 하나 이상의 데이터 세트에 대한 액세스를 획득할 수 있게하는 사용자 인터페이스를 제공할 수 있다.
디지털 컴포넌트 분배 시스템(120)은 발행자들로부터 수신된 데이터 세트들을 데이터 세트 저장 디바이스(129)에 저장할 수 있다. 일부 구현예에서, 데이터 세트 저장 디바이스(129)는 캐시 또는 다른 유형의 고속 액세스 메모리이다. 유사하게, 디지털 컴포넌트 분배 시스템(120)은 하나 이상의 데이터 세트에 대한 액세스를 획득한 디지털 컴포넌트 제공자 및/또는 다른 엔티티, 및 각 엔티티에 대해 엔티티가 갖는 데이터 세트를 식별하는 액세스 제어 리스트(127)를 보관할 수 있다. 도 1의 예시된 일례에서, 디지털 컴포넌트 제공자 A(130)는 데이터 세트들(1, 3, 33)에 대한 액세스를 획득했다. 유사하게, 디지털 컴포넌트 제공자 B(140)는 데이터 세트들(2, 91, 201)에 대한 액세스를 획득했다.
디지털 컴포넌트 분배 시스템(120)은 데이터 가용성 제어 서버(125)를 포함하며, 이는 데이터 세트에 포함되는 활동 데이터의 가용성을 제어한다. 디지털 컴포넌트 제공자들이 데이터 세트들에 대한 액세스를 획득한 경우, 디지털 컴포넌트 제공자들에게 완벽한 데이터 세트들을 제공하는 것이 아니라, 데이터 가용성 제어 서버(125)는, 하나 이상의 데이터 세트들로부터 제한된 분량의 데이터(예컨대, 전체 데이터 보다 적은 데이터)를 디지털 컴포넌트 요청(또는 다음에 서술되는 활동 데이터 요청)을 수신함에 응답하여 디지털 컴포넌트 제공자들(또는 다른 엔티티)에게 제공한다.
디지털 컴포넌트 분배 시스템(120)이 디지털 구성 요청(112)을 수신하면, 데이터 가용성 제어 서버(125)는 하나 이상의 디지털 컴포넌트 제공자, 예를 들어, 디지털 컴포넌트 제공자(130, 140)에게 제공하는 활동 데이터를 선택할 수 있다. 일부 구현예에서, 데이터 가용성 제어 서버(125)는 디지털 컴포넌트 제공자에 대해, 디지털 컴포넌트 요청에 포함된 사용자 식별자 또는 사용자에 대한 다른 사용자 식별자를 포함하는 디지털 컴포넌트 제공자가 액세스를 획득한 데이터 세트를 식별한다. 데이터 가용성 제어 서버(125)는 예를 들어, 디지털 컴포넌트 요청(112)에 포함된 사용자 식별자와는 관련이 없는 다른 사용자들에 대한 활동 데이터를 제공함이 없이, 또는 디지털 컴포넌트 제공자가 액세스를 획득하지 않은 데이터 세트에 포함된 활동 데이터를 제공함이 없이, 하나 이상의 식별된 데이터 세트에 포함된 사용자에 대한 활동 데이터를 디지털 컴포넌트 제공자에게 제공할 수 있다. 이러한 방식으로, 활동 데이터의 가용성이 제어될 수 있으며 그리고 데이터 세트에 대한 액세스를 획득하지 못한 다른 이들에게 전체 데이터 세트들(또는 많은 데이터 세트들)이 유출되는 일이 발생하지 않는다.
예시된 일례에서, 수신된 디지털 컴포넌트 요청(112)은 사용자 식별자(27)를 포함하며, 이는 데이터 세트들(1-3) 각각에 포함된다. 디지털 컴포넌트 제공자 A(130)는 데이터 세트(1 및 3)에 대한 액세스를 획득하였으며, 디지털 컴포넌트 제공자 B(140)는 데이터 세트(2)에 대한 액세스를 획득하였다. 이러한 일례에서, 데이터 가용성 제어 서버(125)는, 요청 데이터(132) 내의 데이터 세트들(1, 3)에 포함된 사용자 식별자(27)에 대한 활동 데이터를 디지털 컴포넌트 제공자 A(130)에게 제공할 수 있다. 하지만, 데이터 가용성 제어 서버(125)는 요청 데이터(132) 내의 데이터 세트(2)에 포함된 사용자 식별자(27)에 대한 활동 데이터를 포함시키지 않을 수 있는데, 왜냐하면 디지털 컴포넌트 제공자 A(130)가 데이터 세트(2)에 대한 액세스를 획득하지 않았기 때문이다. 또한, 데이터 가용성 제어 서버(125)는 디지털 컴포넌트 요청(112)에 응답하여 전송된 요청 데이터(132)의 데이터 세트(1)로부터의 다른 사용자 식별자들(예컨대, 사용자 식별자 27 이외의 식별자들)에 대한 활동 데이터를 포함시키지 않을 수 있는데, 왜냐하면 디지털 컴포넌트 요청(112)이 사용자 식별자(27)를 특정하기 때문이다.
이와 유사하게, 데이터 가용성 제어 서버(125)는, 요청 데이터(142) 내의 데이터 세트(2)에 포함된 사용자 식별자(27)에 대한 활동 데이터를 디지털 컴포넌트 제공자 B(140)에게 제공할 수 있다. 하지만, 데이터 가용성 제어 서버(125)는 요청 데이터(142) 내의 데이터 세트들(1 또는 3)에 포함된 사용자 식별자(27)에 대한 활동 데이터를 포함시키지 않을 수 있는데, 왜냐하면 디지털 컴포넌트 제공자 B(140)가 데이터 세트들(1, 3)에 대한 액세스를 획득하지 않았기 때문이다. 또한, 데이터 가용성 제어 서버(125)는 디지털 컴포넌트 요청(112)에 응답하여 전송된 요청 데이터(142)의 데이터 세트(2)로부터의 다른 사용자 식별자들(예컨대, 사용자 식별자 27 이외의 식별자들)에 대한 활동 데이터를 포함시키지 않을 수 있는데, 왜냐하면 디지털 컴포넌트 요청(112)이 다른 사용자 식별자가 아니라 사용자 식별자(27)를 특정하기 때문이다.
도 1에 도시된 바와 같이, 요청 데이터(132)는 사용자 식별자(27), 활동 데이터가 제공되는 데이터 세트(1)를 식별하는 데이터, 및 데이터 세트(1)에 포함된 사용자 식별자(27)에 대한 검색 용어 "태클 박스(tackle box)"를 포함한다. 유사하게, 요청 데이터(142)는 사용자 식별자(27), 활동 데이터가 제공되는 데이터 세트(2)를 식별하는 데이터, 및 데이터 세트(2)에 포함된 사용자 식별자(27)에 대한 검색 용어 "저지, 클리트(Jersey, Cleat)"를 포함한다.
몇몇 구현예에서, 데이터 가용성 제어 서버(125)는 개별 디지털 컴포넌트 요청 또는 활성 데이터 요청에 응답하여 활동 데이터가 디지털 컴포넌트 제공자 또는 다른 엔티티에 제공되는 데이터 세트들의 개수를 제한할 수 있다. 예를 들어, 상기 시스템은 데이터 세트들의 개수를, 시스템에 의해 지정되거나 또는 활동 데이터가 제공될 수 있는 발행자(들)에 의해 지정된 특정 개수의 데이터 세트로 제한할 수 있다. 보다 구체적으로, 시스템은 특정 디지털 컴포넌트 제공자가 액세스를 획득한 모든 데이터 세트들보다 적은 개수의 데이터 세트들로부터 정보를 제공할 수 있다.
예시된 일례에서, 데이터 세트들의 지정된 개수는 1 일 수 있다. 따라서, 본 일례에서, 비록, 디지털 컴포넌트 제공자 A(130)가 데이터 세트(3)에 대한 액세스를 획득했지만, 요청 데이터(132)는 데이터 세트(3)에 포함된 사용자 식별자(27)에 대한 활동 데이터를 포함하지 않는다. 대신에, 요청 데이터(132)는 데이터 세트들 중 하나, 즉 데이터 세트(1)에 포함된 사용자 식별자(27)에 대한 활동 데이터만을 포함한다.
디지털 컴포넌트 분배 시스템(120)의 요소들은 도 2를 참조하여 보다 상세히 설명되며, 도 2는 예시적인 디지털 컴포넌트 분배 시스템(120)은 데이터 유출을 방지하도록 디지털 컴포넌트를 분배하고, 데이터의 가용성을 제어하는 환경(200)에 대한 블록도이다.
디지털 컴포넌트 분배 시스템(120)은 하나 이상의 프론트-엔드 서버(255)을 포함한다. 프론트-엔드 서버(255)는 예를 들어, 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 모바일 네트워크 또는 이들의 조합과 같은 데이터 통신 네트워크(220)를 통하여, 리소스 발행자(210) 또는 다른 데이터 소스로부터 데이터 세트들(112)(또는 데이터 세트들에 대한 데이터)을 수신할 수 있다. 예를 들어, 전술한 바와 같이, 발행자(210)는 웹 페이지의 코드에 태그(예를 들어, 픽셀 또는 비콘)를 포함할 수 있는바, 이는 웹 브라우저로 하여금 클라이언트 디바이스(230) 상에서의 액션 또는 이벤트를 캡처하고 그리고 데이터를 디지털 컴포넌트 분배 시스템(120)으로 제공하게 한다.
발행자(210)는 클라이언트 디바이스(230)에서 발생하는 특정 행동을 서술하는 데이터를 제공하도록 태그를 설정할 수 있다. 예를 들어, 발행자는 추천, 제안, 또는 기타 적절한 것을 제공하는 디지털 컴포넌트 제공자들, 엔티티들에게 유용할 수 있는 데이터 튜플을 제공하도록 태그를 설정할 수 있다. 예시적인 튜플들은 (i) 클라이언트 디바이스(230)의 사용자에 대한 사용자 식별자 및 사용자에 의해 제출된 검색어,(ii) 사용자에 의해 선택되고 리소스에 의해 디스플레이되는 사용자 식별자 및 아이템, 및 (iii) 사용자 식별자, 사용자에 의해 제출된 검색어 및 검색 결과들의 반환 이후에 사용자에 의해 선택된 제 1 아이템을 포함할 수 있다. 다른 튜플들은 다음 중 하나 이상과 조합되는 사용자에 대한 사용자 식별자를 포함할 수 있다: 사용자에 의해 구매된 제품을 식별하는 데이터, 사용자에 의해 가상 쇼핑 카트에 추가된 제품을 식별하는 데이터, 사용자에게 제시된 기사의 제목, 기사가 제시된 시간 기간, 기사가 끝까지 읽혀졌는지의 여부를 나타내는 데이터, 클라이언트 디바이스(230) 상에 제시된 비디오의 제목, 비디오가 제시된 기간, 및/또는 비디오가 끝까지 시청되었는지를 나타내는 데이터, 기타 등등.
프론트-엔드 서버(255)는 데이터 튜플들을 수신하고 그리고 상기 데이터 튜플들을 데이터 가용성 제어 서버(125)로 제공할 수 있다. 데이터 가용성 제어 서버(예컨대, 데이터 유출 서버)는 발행자들로부터 수신된 데이터 튜플들을, 데이터 세트 저장 디바이스(129)의 적절한 데이터 세트에 저장할 수 있다. 예를 들어, 발행자(210) 또는 발행자의 리소스가 데이터 튜플을 전송하는 경우, 이러한 데이터는 발행자(210) 또는 발행자의 데이터 세트에 대해 고유 식별자를 포함할 수 있다. 데이터 가용성 제어 서버(125)는 식별자(들)를 사용하여 이러한 데이터를 적절한 데이터 세트에 저장하거나, 또는 데이터 튜플이 속하는 적절한 데이터 세트에 대한 참조와 함께 저장할 수 있다. 예를 들어, 데이터 가용성 제어 서버는 데이터 세트(예를 들어, 데이터의 인덱스)를 스캔하여, 고유 식별자를 지정하는 데이터 내의 위치(예를 들어, 데이터의 로우(row))를 식별할 수 있으며, 이후 식별된 위치에 대응하는 메모리 위치에 튜플을 기입할 수 있다(예를 들어, 상기 로우의 셀 내에).
전술한 바와 같이, 데이터 가용성 제어 서버(125)는, 하나 이상의 데이터 세트에 대한 액세스를 획득한 디지털 컴포넌트 제공자들(240) 및/또는 다른 엔티티들 및, 각 엔티티에 대한, 상기 엔티티가 액세스를 획득한 데이터 세트들을 식별하는 액세스 제어 리스트(127)를 보관할 수 있다. 일부 구현예에서, 디지털 컴포넌트 분배 시스템(120)은 디지털 컴포넌트 제공자(240) 및/또는 다른 엔티티들이 데이터 세트를 브라우징 또는 검색할 수 있게하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 각각의 데이터 세트는, 주제(topic), 데이터 세트에 포함된 데이터 유형을 지정하는 데이터, 및/또는 데이터 세트의 데이터가 획득되었던 리소스로 라벨링될 수 있다.
일부 구현예에서, 디지털 컴포넌트 분배 시스템(120)은 예컨대, 데이터 세트의 사용자 식별자를 제공함이 없이, 데이터 세트에 포함된 데이터의 샘플을 제공한다. 예를 들어, 디지털 컴포넌트 분배 시스템(120)은 하나 이상의 키워드들을 특정하는 검색 질의에 응답하여, 상기 키워드들과 매칭되는 데이터 세트들 및 각각의 매칭 데이터 세트에 포함된 데이터의 샘플을 제공할 수 있다. 데이터 세트가 상기 질의의 매칭되는 주제, 데이터 유형 또는 리소스 명칭을 포함한다면, 데이터 세트가 질의와 매칭될 수 있다.
디지털 컴포넌트 제공자(240)는 하나 이상의 데이터 세트들을 선택하여 하나 이상의 데이터 세트들에 대한 액세스를 획득할 수 있다. 일부 구현예들에서, 디지털 컴포넌트 제공자들(240)은 데이터 세트에 액세스하기 위해 보상 금액(amount of compensation)을 제공하도록 요구될 수 있다. 이러한 금액(amount)은 데이터 세트에 포함된 데이터를 제공하는 발행자에 의해 지정될 수 있다. 일부 구현예들에서, 상기 금액은 데이터 세트에 포함된 데이터의 유형에 기초할 수 있다. 예를 들어, 일부 유형의 데이터(예를 들어, 선택된 제품들을 지정하거나 또는 가상 쇼핑 카트에 추가된 제품들을 지정하는 데이터)는 검색 질의들을 지정하는 데이터보다 더 유용할 수 있다. 본 일례에서, 선택된 제품들을 지정하거나 또는 가상 쇼핑 카트에 추가된 제품들을 지정하는 데이터를 포함하는 데이터 세트들에 대한 금액은, 검색 질의를 포함하는 데이터 세트들에 대한 금액 보다 클 수 있다. 또한, 데이터 세트에 대한 금액은 데이터 세트에 포함된 사용자 식별자들의 개수, 데이터 세트에 포함된 데이터 유형들의 개수, 또는 발행자와 디지털 컴포넌트 제공자 사이에서 협상된 금액(예를 들어, 중재자 역할을 하는 디지털 컴포넌트 분배 시스템의 운영자)에 기초할 수도 있다. 일부 구현예들에서, 발행자의 데이터 세트에 대한 액세스를 획득하기 위하여 디지털 컴포넌트 제공자들에 의해 제공되는 금액(amount)의 일부(또는 전부)가 발행자에게 제공될 수 있다.
프론트-엔드 서버(255)는 클라이언트 디바이스(230)로부터 디지털 컴포넌트 요청들을 수신할 수 있다. 예를 들어, 상술한 바와 같이 웹 페이지 또는 모바일 어플리케이션의 어플리케이션 페이지는 코드를 포함할 수 있으며, 상기 코드는 웹 브라우저 또는 모바일 어플리케이션에 의해 실행될 때, 클라이언트 디바이스(230)로 하여금 디지털 컴포넌트 요청을 디지털 컴포넌트 분배 시스템(120)으로 제출하게 한다. 디지털 컴포넌트 요청은 클라이언트 디바이스(230)의 사용자에 대한 사용자 식별자를 포함할 수 있다.
프론트-엔드 서버(255)는 디지털 컴포넌트 요청 또는 디지털 컴포넌트 요청에 포함된 데이터를 데이터 가용성 제어 서버(125)에 제공할 수 있다. 예를 들어, 프론트-엔드 서버(255)는 디지털 컴포넌트 요청의 사용자 식별자를 지정하는 데이터를 데이터 가용성 제어 서버(125)에 제공할 수 있다. 다음으로, 데이터 가용성 제어 서버(125)는 액세스 제어 리스트(127) 및 데이터 세트를 사용하여, 어떤 데이터 세트가 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)를 포함하는지, 그리고 이들 데이터 세트들 중에서 각각의 디지털 컴포넌트 제공자(240)가 액세스를 획득한 데이터 세트가 어떤 것인지를 결정할 수 있다. 예를 들어, 데이터 가용성 제어 서버(125)는 상기 사용자 식별자와 각 데이터 세트의 사용자 식별자들을 비교하여, 그 사용자 식별자를 포함하는 0 개 이상의 데이터 세트를 식별할 수 있다. 다른 일례에서, 데이터 가용성 제어 서버(125)는 수신된 사용자 식별자에 매핑되는 사용자에 대한 범용 사용자 식별자를 식별할 수 있으며(예를 들어, 사용자들에 대한 사용자 식별자들의 인덱스 또는 매핑이 데이터 가용성 제어 서버 125의 데이터 저장 디바이스에 저장될 수 있다) 그리고 범용 사용자 식별자를 각 데이터 세트의 사용자 식별자들과 비교하여 범용 사용자 식별자를 포함하는 0 개 이상의 데이터 세트들을 식별할 수 있다. 각각의 디지털 컴포넌트 제공자에 대하여, 데이터 가용성 제어 서버(125)는 데이터 세트들 중 어떤 데이터 세트들에 대해 디지털 컴포넌트 제공자가 액세스를 획득한 것인지를 결정할 수 있다.
만일, 소정의 디지털 컴포넌트 제공자에 대하여, 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)을 포함하고 상기 소정의 디지털 컴포넌트 제공자가 액세스를 획득한 하나 이상의 데이터 세트들을 데이터 가용성 제어 서버(125)가 식별한다면, 데이터 가용성 제어 서버(125)는 상기 소정의 디지털 컴포넌트 제공자에게, 상기 하나 이상의 데이터 세트들에 포함된 사용자 식별자에 대한 활동 데이터를 포함하는 요청 데이터를 제공할 수 있다. 전술한 바와 같이, 상기 소정의 디지털 컴포넌트 제공자가 사용자 식별자에 대한 활동 데이터를 수신할 수 있는 데이터 세트들의 개수는 각각의 디지털 컴포넌트 요청에 대해서 특정 개수로 제한될 수 있다. 만일, 식별된 하나 이상의 데이터 세트들이 지정된 개수 보다 많은 데이터 세트들을 포함한다면, 데이터 가용성 제어 서버(125)는 이로부터 활동 데이터를 제공하는 하나 이상의 식별된 데이터 세트들(지정된 개수의 데이터 세트까지)를 선택할 수 있다. 다시 말해, 데이터 가용성 제어 서버(125)는 리턴되는 데이터 세트들의 개수를 특정 개수로 제한하기 위해 데이터 세트를 필터링할 수 있다. 필터링은 다양한 기준을 사용하여 수행될 수 있다. 예를 들어, 데이터 가용성 제어 서버(125)는 데이터 세트들에 액세스하기 위해 소정의 디지털 컴포넌트 제공자가 제공한 금액(amount), 데이터 세트들에 대한 액세스를 소정의 디지털 컴포넌트 제공자가 얼마나 최근에 획득했는지, 소정의 디지털 컴포넌트 제공자 또는 시스템에 의해서 지정된 데이터 세트들의 우선순위 랭킹에 기초하여, 데이터 세트(들)를 선택(또는 필터링)할 수 있다.
데이터 가용성 제어 서버(125)는, 선택된 데이터 세트(들)에 포함된(또는, 데이터 세트들의 개수가 특정 개수를 초과하지 않는다면, 식별된 하나 이상의 데이터 세트들 각각으로부터) 사용자 식별자에 대한 활동 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공할 수 있다. 예를 들어, 데이터 가용성 제어 서버(125)는 활동 데이터를 포함하는 요청 데이터를 프론트-엔드 서버(255)에 제공할 수 있고, 프론트-엔드 서버(255)는 요청 데이터를 소정의 디지털 컴포넌트 제공자에게 제공할 수 있다. 프론트-엔드 서버(255)는 또한 예를 들어, 요청 데이터와 함께 디지털 컴포넌트가 제공될 수 있는 리소스과 관련된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공할 수 있다. 이 데이터는 리소스를 식별하는 데이터, 리소스 상의 디지털 컴포넌트 슬롯의 위치, 리소스가 검색 결과 페이지를 포함하는 경우 하나 이상의 검색어, 및/또는 리소스에 대한 다른 적절한 데이터를 포함할 수 있다.
만일, 데이터 가용성 제어 서버(125)가, 소정의 디지털 컴포넌트 제공자에 대하여, 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)을 포함하고 상기 소정의 디지털 컴포넌트 제공자가 액세스를 획득한 하나 이상의 데이터 세트들을 데이터 가용성 제어 서버(125)가 식별하지 않는다면, 데이터 가용성 제어 서버(125)는 임의의 활동 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하지 않을 수 있다. 예를 들어, 소정의 디지털 컴포넌트 제공자가 액세스를 획득한 임의의 데이터 세트내에 사용자 식별자가 포함되지 않을 수 있다. 따라서, 상기 소정의 디지털 컴포넌트 제공자는 그 사용자 식별자에 대한 활동 데이터를 수신할 자격이 없을 수 있다. 대신에, 데이터 가용성 제어 서버(125)는 디지털 컴포넌트가 제공될 수 있는 리소스와 관련된 데이터, 예를 들어, 리소스를 식별하는 데이터, 리소스 상의 디지털 컴포넌트 슬롯의 위치, 리소스가 검색 결과 페이지를 포함한다면 하나 이상의 검색어, 및/또는 리소스에 대한 기타 적절한 데이터를 포함하는 요청 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공할 수 있다.
디지털 컴포넌트 제공자(240)는 각각 데이터 가용성 제어 서버(125)로부터 수신된 데이터를 이용하여 디지털 컴포넌트 요청에 응답하여 제공하도록 디지털 컴포넌트를 선택하는데 사용되는 디지털 컴포넌트 선택 프로세스에 디지털 컴포넌트를 포함할지 여부를 결정할 수 있다. 보다 상세하게 설명된 바와 같이, 디지털 컴포넌트 선택 프로세스는 디지털 컴포넌트 요청에 응답하여 클라이언트 디바이스(210)에 제공할 디지털 컴포넌트를 선택하기 위해 하나 이상의 디지털 컴포넌트 선택 서버(260)에 의해 수행될 수 있다. 일부 구현예들에서, 디지털 컴포넌트 제공자의 컴퓨터는 하나 이상의 규칙을 사용하여, 선택 프로세스에 디지털 컴포넌트를 포함시킬지 여부, 어떤 디지털 컴포넌트를 포함시킬지, 및/또는 디지털 컴포넌트가 선택되어 클라이언트 디바이스(210)에 제공되는 경우, 디지털 컴포넌트 제공자가 디지털 컴포넌트 분배 시스템(120)에 제공하고자 하는 금액을 결정할 수 있다.
하나 이상의 규칙들이, 데이터 가용성 제어 서버(125)로부터 수신된 요청 데이터에 적용될 수 있다. 예를 들어, 디지털 컴포넌트 제공자의 하나 이상의 규칙들은 특정 리소스 및/또는 특정 검색어를 지정하는 디지털 컴포넌트 요청들에 대한 선택 프로세스에 디지털 컴포넌트가 포함되어야 함을 명시할 수 있다. 만일, 요청 데이터가 특정 리소스 및/또는 특정 검색어를 특정한다면, 디지털 컴포넌트 제공자(240)의 컴퓨터는 디지털 컴포넌트 및/또는 분량을 특정하는 데이터를 디지털 컴포넌트 분배 시스템(120)의 프론트 엔드 서버(255)에 제공할 수 있다. 프론트-엔드 서버(255)는 수신된 디지털 컴포넌트 요청에 대해 수행되는 디지털 컴포넌트 선택 프로세스에 포함시키기 위해 데이터를 디지털 컴포넌트 선택 서버(260)에 제공할 수 있다.
몇몇 구현예에서, 디지털 컴포넌트 분배 시스템(120)은 디지털 컴포넌트 요청에 응답하여 디지털 컴포넌트를 매우 짧은 시간(예를 들면, 1 초 미만)에 제공한다. 이러한 일례들에서, 디지털 컴포넌트 제공자(240) 역시도 훨씬 더 짧은 시간 내에(예를 들어, 100 밀리초 미만) 응답해야만 한다. 디지털 컴포넌트 요청의 사용자 식별자에 대한 하나 이상의 데이터 세트로부터의 데이터만을 제공함으로써, 디지털 컴포넌트 제공자(240)의 컴퓨터는, 컴퓨터가 전체 데이터 세트를 프로세싱해야할 필요가 있는 경우에 비하여, 보다 신속하게 데이터를 프로세싱할 수 있으며, 그리고 보다 신속하게 응답할 수 있다(예를 들어, 하나 이상의 규칙을 사용하여). 또한, 감소된 데이터 양은 프론트-엔드 서버(255)와 디지털 컴포넌트 제공자(240)의 컴퓨터 사이에서 데이터가 보다 신속하게 전송될 수 있게 한다.
디지털 컴포넌트 선택 서버(들)(260)는 예컨대, 디지털 컴포넌트 제공자(240)로부터 수신된 데이터, 디지털 컴포넌트에 대한 품질 데이터, 및/또는 다른 적절한 데이터에 기초하여, 디지털 컴포넌트 요청에 응답하여 제공될 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 디지털 컴포넌트 선택 서버(260)는 디지털 컴포넌트에 대해 제공된 금액(amount)과 디지털 컴포넌트에 대한 품질 점수의 조합에 기초하여 디지털 컴포넌트들의 순위를 매기는(rank) 디지털 컴포넌트 선택 프로세스를 수행할 수 있다. 디지털 컴포넌트 선택 서버(260)는 예컨대, 프론트 엔드 서버(255) 및 네트워크(220)를 통해, 하나 이상의 상위 디지털 컴포넌트들을 디지털 컴포넌트 요청을 제출한 클라이언트 디바이스(230)에 제공할 수 있다. 디지털 컴포넌트 선택 서버(들)(260)는 수신된 디지털 컴포넌트를 디지털 컴포넌트 데이터 저장 디바이스(262)에 저장할 수 있다. 본 명세서에서 사용되는 바와 같이, 디지털 컴포넌트를 제공하는 것은, 디바이스가 디지털 컴포넌트를 획득할 수 있는 링크 또는 네트워크 주소를 제공하는 것을 포함하며(예를 들어, 제 3 자 디지털 컴포넌트 서버), 따라서 실제 디지털 컴포넌트가 제공될 필요가 없다.
일부 구현예에서, 제3자 시스템, 예를 들어, 수요자측 플랫폼(demand-side platform: DSP)은 디지털 컴포넌트 제공자(240)의 디지털 컴포넌트(예를 들어, 광고)에 대한 금액(amount)(예를 들어, 입찰가: bid)를 결정할 수 있다. 예를 들어, DSP는 수신된 데이터에 기초하여 금액을 최적화하고 디지털 컴포넌트 제공자들(240)에 대한 다수의 계정들을 관리하는데 사용될 수 있다. 이러한 구현예에서, 프론트 엔드 서버(255)는 디지털 컴포넌트 제공자에 대한 요청 데이터를 제3자 시스템에 제공할 수 있다. 또한, 발행자들은 디지털 컴포넌트가 클라이언트 디바이스에서 쿠키를 검색하기 위해 픽셀을 사용하지 못하도록 자신의 리소스들을 설정할 수 있다. 대신에, 디지털 컴포넌트 제공자(240)는 디지털 컴포넌트 요청과 함께 제3자 시스템으로 전송될 수 있는 자신의 데이터 세트를 설정할 수 있다.
또한, 데이터 가용성 제어 서버(125)는 활동 데이터 요청에 응답하여 활동 데이터를 제공할 수 있다. 예를 들어, 엔티티(280)(예를 들어, 비디오 스트리밍 서비스, 전자책 서비스 등)는 디지털 컴포넌트 제공자(240)와 유사한 방식으로 하나 이상의 데이터 세트에 대한 액세스를 획득할 수 있다. 엔티티(280)는 네트워크(220)를 통해 프론트 엔드 서버(255)로 활동 데이터 요청을 전송할 수 있다. 활성 데이터 요청은 사용자 식별자를 지정할 수 있다. 프론트-엔드 서버(255)는 활동 데이터 요청(또는 사용자 식별자)을 데이터 가용성 제어 서버(125)에 제공할 수 있다.
데이터 가용성 제어 서버(125)는 소정의 시간 기간 동안 각각의 엔티티에 대해 이행(fulfil)되는 활동 데이터 요청들의 개수를 제한함으로써, 이러한 활동 데이터 요청들에 대한 데이터 세트들에 포함되는 활동 데이터에 대한 액세스를 제어할 수 있다. 예를 들어, 각 엔티티는 매일 또는 매주, 지정된 개수의 이행된 활동 데이터 요청들로 제한될 수 있다. 다른 예에서, 일부 엔티티는 다른 엔티티보다 더 많은 활동 데이터 요청들이 허용될 수 있는바, 예를 들어, 각각의 엔티티에 의해 제공된 금액에 기초하여 허용될 수 있다. 각각의 일례에서, 각각의 엔티티가 수신할 수 있는 사용자 활동 데이터의 양이 제한되며, 이것은 유출될 수 있는 데이터의 양을 감소시킨다.
일부 구현예에서, 데이터 가용성 제어 서버(125)는 소정 시간 기간 동안 엔티티(280)로 반환될 수 있는 데이터 튜플들의 지정된 개수로, 각각의 엔티티(280)를 제한한다. 예를 들어, 특정한 사용자 식별자를 지정하는 하나의 활동 데이터 요청은 엔티티(280)가 액세스를 획득한 다수의 데이터 세트들 내의 사용자 식별자들과 매칭될 수 있으며, 따라서 요청에 응답하여 엔티티(280)에 제공될 수 있는 다수의 매칭되는 데이터 튜플들을 초래할 수 있다. 따라서, 이행된 요청의 개수는 엔티티(280)에 제공된 데이터 튜플들의 개수와 동일하지 않을 수 있다.
일부 구현예에서, 디지털 컴포넌트 제공자(240)는 또한, 디지털 컴포넌트 제공자(240)가 사용자들의 활동 데이터를 수신할 수 있는 디지털 컴포넌트 요청들의 임계 개수로 제한될 수 있다. 예를 들어, 만일 소정의 디지털 컴포넌트 제공자가 소정 시간 동안 임계 개수의 요청들에 대해 사용자 활동 데이터를 수신하였다면, 상기 소정의 디지털 컴포넌트 제공자는, 요청의 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)가 상기 소정의 디지털 컴포넌트 제공자가 액세스를 획득한 데이터 세트의 사용자 식별자와 매칭된다하더라도, 다음번 시간 기간까지 다른 요청들에 대한 활동 데이터를 수신하지 못할 수 있다. 이와 유사하게, 디지털 컴포넌트 제공자(240)는 소정 시간 동안 디지털 컴포넌트 제공자(240)가 수신할 수 있는 특정 개수의 데이터 튜플들로 제한될 수 있으며, 따라서 다음번 시간 기간까지 더 이상의 데이터 튜플들이 디지털 컴포넌트 제공자에 제공되지 않을 수 있다.
도 3은 데이터 유출을 막기 위해 사용자 데이터에 대한 액세스를 제어하면서 디지털 컴포넌트를 제공하기 위한 예시적인 프로세스(300)의 흐름도이다. 프로세스(300)의 동작들은 예를 들어, 도 1 및 도 2의 디지털 컴포넌트 분배 시스템(120)과 같은 하나 이상의 데이터 프로세싱 디바이스를 포함하는 시스템에 의해 구현될 수 있다. 프로세스(300)는 또한 컴퓨터 저장 매체에 저장된 명령에 의해 구현될 수 있으며, 여기서 데이터 프로세싱 디바이스를 포함하는 시스템에 의한 명령의 실행은 데이터 프로세싱 디바이스가 프로세스(300)의 동작을 수행하게 한다.
시스템은 디지털 컴포넌트 요청을 수신한다(302). 예를 들어, 클라이언트 디바이스는 디지털 컴포넌트 슬롯을 포함하는 웹 페이지 또는 어플리케이션 페이지(예를 들어, 웹 페이지 또는 어플리케이션 프로그램 페이지의 제공자와는 다른 제3자로부터의 콘텐츠를 제시하도록 예약된 웹 페이지 또는 어플리케이션 페이지의 일부)를 로딩하는 것에 응답하여 시스템에 디지털 컴포넌트 요청을 전송할 수 있다. 디지털 컴포넌트 요청은 예를 들어, 사용자 또는 사용자의 클라이언트 디바이스와 관련된 사용자에 대한 사용자 식별자를 포함할 수 있다.
시스템은 소정 디지털 컴포넌트 제공자에 대한 데이터 세트를 식별한다(304). 시스템은 사용자 식별자(또는 동일한 사용자에 대한 범용 사용자 식별자와 같은 사용자에 대한 다른 사용자 식별자)를 포함하는 데이터 세트를 식별할 수 있다. 시스템은 또한 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트에 대한 사용자 식별자를 포함하는 이들 데이터 세트들을 검사할 수 있다. 시스템은 디지털 컴포넌트 요청들의 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)와 상기 소정의 디지털 컴포넌트 제공자가 액세스를 획득한 데이터 세트들에 포함된 사용자 식별자들을 서로 비교함으로써 데이터 세트들을 식별할 수 있다. 시스템은 이러한 비교를 다수의 디지털 컴포넌트 제공자들에 대해 수행할 수 있으며, 각각의 디지털 컴포넌트 제공자에 대한 데이터 세트를 식별할 수 있다.
시스템은, 소정의 디지털 컴포넌트 제공자에 대한 특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들 내의 각각의 데이터 세트에 포함된 사용자 식별자에 대한 활동 데이터를 선택한다(306). 일부 구현예들에서, 데이터 세트의 시스템 또는 제공자는, 하나의 디지털 컴포넌트 요청에 응답하여 사용자에 대한 활동 데이터가 디지털 컴포넌트 제공자에게 제공될 수 있는 데이터 세트들의 최대 개수를 지정할 수 있다. 예를 들어, 사용자에 대한 사용자 식별자는 사용자가 다수의 상이한 리소스들을 탐색하는 것에 기초하여 다수의 데이터 세트들에 포함될 수 있다. 사용자 데이터를 보다 양호하게 보호하고, 사용자 데이터에 대한 액세스를 제어하고, 그리고 데이터 유출을 방지하기 위해, 시스템은 하나의 요청에 응답하여 사용자의 활동 데이터가 제공될 수 있는 데이터 세트들의 개수를 제한할 수 있다.
시스템은 활동 데이터가 제공되는 하나 이상의 식별된 데이터 세트들(데이터 세트들의 지정된 개수까지)을 선택할 수 있다. 예를 들어, 시스템은 데이터 세트들에 액세스하기 위해 소정의 디지털 컴포넌트 제공자에 의해 제공되는 금액(amount), 상기 소정의 디지털 컴포넌트 제공자가 데이터 세트들에 대한 액세스를 얼마나 최근에 획득했는지, 및/또는 상기 소정의 디지털 컴포넌트 제공자 또는 시스템에 의해 지정되는 데이터 세트들의 우선 순위(priority ranking)에 기초하여 데이터 세트들을 선택할 수 있다.
각각의 선택된 데이터 세트에 대하여, 시스템은 데이터 세트에 포함된 사용자 식별자에 대한 데이터를 식별할 수 있다. 전술한 바와 같이, 활동 데이터는 사용자가 선택한 아이템, 가상 쇼핑 카트에 추가된 아이템, 전자 리소스의 검색에 제출된 검색어, 리소스에서 본 기사, 사용자 상호작용이 발생한 시간 및/또는 다른 적절한 데이터를 포함할 수 있다. 시스템은 유사한 방식으로, 다수의 디지털 컴포넌트 제공자들 각각에 대한 사용자 식별자에 대한 활동 데이터를 선택할 수 있다. 각각의 디지털 컴포넌트 제공자에 대해 선택된 데이터는, 디지털 컴포넌트 제공자가 액세스를 획득한 데이터 세트들에 기초하여 변동될 수 있다.
시스템은 사용자 식별자에 대한 선택된 활동 데이터를 상기 소정의 디지털 컴포넌트 제공자(308)에게 제공한다. 예를 들어, 시스템은 데이터 통신 네트워크를 통해 상기 소정의 컴포넌트 제공자의 컴퓨터로 데이터를 전송할 수 있다. 시스템은 또한 다른 디지털 컴포넌트 제공자에 대하여 선택된, 상기 선택된 활동 데이터를 네트워크를 통해 다른 디지털 컴포넌트 제공자의 컴퓨터로 전송할 수 있다.
시스템은 소정의 디지털 컴포넌트 제공자로부터 데이터를 수신한다(310). 수신된 데이터는 디지털 컴포넌트를 지정할 수 있으며 및/또는 사용자 식별자와 관련된 사용자의 클라이언트 디바이스로 보내기 위하여 디지털 컴포넌트 제공자가 제공하고자 하는 금액을 지정할 수 있다. 또한, 시스템은 다른 디지털 컴포넌트 제공자로부터 유사한 데이터를 수신할 수 있다.
시스템은 소정의 콘텐츠 제공자로부터 수신된 데이터에 기초하여 디지털 컴포넌트를 제공한다(312). 예를 들어, 시스템은 소정의 디지털 컴포넌트 제공자 및 하나 이상의 다른 디지털 컴포넌트 제공자로부터 수신된 데이터에 기초하여 디지털 컴포넌트를 선택할 수 있다. 일부 구현예들에서, 시스템은 각각의 디지털 컴포넌트에 대한 품질 스코어 및 디지털 컴포넌트 제공자로부터 수신된 데이터에 지정된 각각의 디지털 컴포넌트에 대한 분량의 조합에 기초하여 디지털 컴포넌트를 선택할 수 있다. 시스템은 데이터 통신 네트워크를 통해 디지털 컴포넌트를 전송함으로써 사용자 디바이스와 연관된 사용자의 클라이언트 디바이스에 디지털 컴포넌트를 제공할 수 있다. 클라이언트 디바이스는 수신된 디지털 컴포넌트를 사용자에게, 예를 들어 웹 페이지 또는 어플리케이션 페이지의 디지털 컴포넌트 슬롯에 제시할 수 있다.
도 4는 데이터를 데이터 유출을 방지하는 제어된 방식으로 데이터를 제공하기 위한 예시적인 프로세스(400)를 도시하는 흐름도이다. 프로세스(400)의 동작은 예를 들어 도 1 및 도 2의 디지털 컴포넌트 분배 시스템(120)과 같은 하나 이상의 데이터 프로세싱 디바이스를 포함하는 시스템에 의해 구현될 수 있다. 프로세스(400)는 또한 컴퓨터 저장 매체에 저장된 명령에 의해 구현될 수 있으며, 여기서 데이터 프로세싱 디바이스를 포함하는 시스템에 의한 명령의 실행은 데이터 프로세싱 디바이스가 프로세스(400)의 동작을 수행하게 한다.
시스템은 소정의 엔티티로부터 활동 데이터 요청을 수신한다(402). 예를 들어, 소정의 엔티티는 익명의 사용자 식별자들과 연관된 사용자들에 대한 활동 데이터를 포함하는 하나 이상의 데이터 세트들에 대한 액세스를 획득할 수 있다. 소정의 엔티티가 소정의 사용자 식별자에 대한 데이터를 원할 때, 상기 소정의 엔티티는 상기 소정의 사용자 식별자를 지정하는 활동 데이터 요청을 제출할 수 있다.
특정 일례에서, 상기 엔티티는 사용자에게 추천 또는 제안을 제공하는 조직(organization) 일 수 있다. 상기 엔티티는 자동으로 또는 사용자 요청에 응답하여 추천 또는 제안을 제공할 수 있다. 예를 들어, 상기 엔티티는 영화 또는 텔레비전 쇼 추천을 사용자에게 제공하는 비디오 스트리밍 서비스일 수 있다. 비디오 스트리밍 서비스는 사용자에 대한 활동 데이터에 기초하여 사용자에게 추천할 영화 또는 쇼를 결정할 수 있다. 비디오 스트리밍 서비스가 사용자에게 추천을 제공하기로 결정하면, 비디오 스트리밍 서비스는 사용자에 대한 사용자 식별자를 지정하는 활동 데이터 요청을 시스템에 제공할 수 있다.
시스템은 엔티티들에 대하여, 사용자 식별자(또는 사용자에 대한 다른 사용자 식별자)를 포함하고 그리고 상기 엔티티가 활동 데이터를 수신할 권한이 있는 데이터 세트들인, 데이터 세트들을 식별할 수 있다(404). 시스템은 활동 데이터 요청의 사용자 식별자를 엔티티가 액세스를 획득한 데이터 세트들에 포함된 사용자 식별자들과 비교함으로써 데이터 세트들을 식별할 수 있다.
시스템은 엔티티로부터 수신된 활동 데이터 요청들의 개수가 임계값 보다 큰지 여부를 판정한다(406). 상기 시스템, 또는 데이터 세트들을 시스템에 제공하는 발행자 또는 다른 제공자는, 소정의 엔티티에 대해 이행된 활동 데이터 요청들의 개수를 임계 개수의 요청들로, 예컨대, 소정의 기간 동안 제한할 수 있다. 예를 들어, 시스템은 하루에 20개의 임계 요청들로 엔티티를 제한할 수 있다. 이러한 요청들의 임계 개수는, 시스템에 무제한으로 요청들을 제출함으로써 엔티티가 데이터 세트들을 재생성하는 것을 방지하며, 이는 데이터 세트들의 유출을 방지한다.
발행자-지정된 임계값의 경우, 시스템은 하나 이상의 발행자들의 데이터 세트들과 매칭되는, 엔티티로부터 수신된 요청들의 개수를 임계 개수로 제한할 수 있다. 예를 들어, 발행자는 발행자에 의해 제공된 데이터 세트의 활동 데이터를 포함하는 매일 10개의 이행된 요청들로 각각의 엔티티를 제한할 수 있다. 이행된 요청은 활동 데이터가 엔티티로 반환된 요청이다. 활동 데이터 요청들의 개수가 임계값을 초과하는지 여부를 결정하기 위해, 시스템은 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 지정하는, 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하고 그리고 그 개수가 상기 발행자-지정된 임계값을 초과하는지의 여부를 결정할 수 있다. 다른 일례에서, 시스템은 발행자로부터 수신된 데이터 세트로부터 데이터가 엔티티에 제공되는 활동 데이터 요청들의 개수를 결정하고 그리고 그 개수가 발행자-지정된 임계값을 초과하는지 여부를 결정할 수 있다.
활동 데이터 요청의 개수가 임계값을 초과하면, 시스템은 엔티티로 활동 데이터를 제공하지 않도록 결정할 수 있다(408). 대신에, 시스템은 일정 기간 동안 엔티티가 최대량의 활동 데이터를 수신했음을 알리는 데이터를 엔티티에 제공할 수 있다.
활동 데이터 요청들의 개수가 임계값을 초과하지 않는다면, 시스템은 엔티티에 대한 특정 개수의 식별된 데이터 세트들로부터, 특정 개수의 식별된 데이터 세트들의 각 데이터 세트에 포함된 사용자 식별자에 대한 활동 데이터를 선택한다(410). 일부 구현예들에서, 시스템, 또는 발행자 또는 데이터 세트의 다른 제공자는 하나의 디지털 컴포넌트 요청에 응답하여 사용자에 대한 활동 데이터가 디지털 컴포넌트 제공자에게 제공될 수 있는 최대 개수의 데이터 세트를 지정할 수 있다. 예를 들어, 사용자에 대한 사용자 식별자는 사용자가 다수의 상이한 리소스들을 탐색하는 것에 기초하여 다수의 데이터 세트들에 포함될 수 있다. 사용자 데이터를 보다 잘 보호하고, 사용자 데이터에 대한 액세스를 제어하고, 데이터 유출을 방지하기 위해, 시스템은 하나의 활동 데이터 요청에 응답하여 사용자의 활동 데이터가 제공될 수 있는 데이터 세트들의 개수를 제한할 수 있다.
시스템은 활동 데이터가 제공되는 하나 이상의 식별된 데이터 세트들(데이터 세트들의 지정된 개수까지)을 선택할 수 있다. 예를 들어, 시스템은 데이터 세트들에 액세스하기 위해 엔티티에 의해 제공되는 금액(amount), 데이터 세트들에 대한 액세스를 엔티티가 얼마나 최근에 획득했는지, 엔티티 또는 시스템에 의해서 지정된 데이터 세트들의 우선순위 랭킹에 기초하여, 데이터 세트(들)을 선택할 수 있다.
시스템은 사용자 식별자에 대한 선택된 활동 데이터를 소정의 디지털 컴포넌트 제공자에게 제공한다(412). 예를 들어, 시스템은 데이터 통신 네트워크를 통해 엔티티의 컴퓨터로 데이터를 전송할 수 있다. 그 후 엔티티는 예를 들어 사용자 식별자와 관련된 사용자에 대한 추천 또는 제안을 생성하기 위해 이러한 데이터를 사용할 수 있다.
본 명세서에서 설명된 본 발명의 실시예들 및 기능적 동작들은 본 명세서에 개시된 구조들 및 이들의 구조적 균등물을 포함하여, 디지털 전자 회로, 유형적으로 구현되는 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어, 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 서술된 주제의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하도록 유형의 비일시적 프로그램 캐리어 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 디바이스로의 전송을 위해 정보를 인코딩하기 위해 생성되는, 인공적으로 생성된 전파 신호, 예를 들어 머신-생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다.
"데이터 처리 장치"라는 용어는, 예시적으로, 프로그램가능한 프로세서, 컴퓨터 또는 복수의 프로세서 또는 컴퓨터를 포함하여, 데이터를 처리하기 위한 모든 종류의 장치들, 디바이스들, 및 머신들을 포괄할 수 있다. 상기 장치는 특수 목적의 논리 회로, 예를 들어 FPGA(필드 프로그램가능 게이트 어레이) 또는 ASIC(주문형 집적회로)을 포함할 수 있다. 상기 장치는 또한, 하드웨어 이외에도, 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들의 하나 이상의 조합을 포함할 수 있다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 어플리케이션, 모듈, 소프트웨어 모듈, 스크립트, 또는 코드로 언급 또는 설명될 수 있는)은 컴파일 또는 해석 언어 또는 선언적 또는 절차적 언어를 포함하여 임의 형태의 프로그래밍 언어로 쓰여질 수 있으며, 그리고 독립형 프로그램으로서, 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 단위로 구현될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 이러한 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부, 예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들, 해당 프로그램 전용의 단일 파일, 또는 예를 들어 복수의 조정된 파일들 예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 또는 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행될 수 있다.
본 명세서에 서술된 프로세스들 및 논리 흐름들은 입력 데이터상에서 동작하고 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA(필드 프로그램가능 게이트 어레이), ASIC(주문형 집적 회로) 또는 GPGPU(범용 GPU)와 같은 특수 목적 로직 회로로서 구현될 수 있으며, 디바이스들이 또한 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는, 예로서, 일반 또는 특수 목적 마이크로 프로세서들 또는 임의 종류의 중앙 처리 유닛을 포함하거나 이에 기초할 수 있다. 일반적으로, 중앙 처리 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령을 수행 또는 실행하기 위한 중앙 처리 유닛 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 예를 들어 자기, 광 자기 디스크 또는 광 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함하거나 이들과 데이터를 송수신하기 위해 동작가능하게 연결될 것이다. 하지만, 컴퓨터는 이러한 디바이스를 반드시 필요로 하는 것은 아니다. 또한, 컴퓨터는 다른 디바이스, 예를 들어 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 예를 들어 USB(범용 직렬 버스) 플래시 드라이브 등의 휴대용 저장 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예컨대, 반도체 메모리 디바이스, 예컨대, EPROM, EEPROM, 및 플래시 메모리 디바이스, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리 매체와 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 본 발명의 실시예들은 예를 들어, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터 등의 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어 시각적 피드백, 청각 피드백 또는 촉각 피드백 일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서를 전송하고 디바이스로부터 문서를 수신함으로써 사용자와 상호 작용할 수 있는바, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써 상호 작용할 수 있다.
본 명세서에 기술된 본 발명의 실시예들은 예를 들어, 데이터 서버와 같은 백-엔드 컴포넌트, 예를 들어, 어플리케이션 서버와 같은 미들웨어 컴포넌트, 예를 들어, 본 명세서에 기술된 본 발명의 구현예들과 사용자가 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 예컨대 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트, 또는 이들의 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 이러한 시스템의 컴포넌트들은 임의 형태 또는 임의 매체의 디지털 데이터 통신, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예는 근거리 통신망( "LAN") 및 광역 통신망( "WAN"), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다.
본 명세서에는 많은 특정한 구현예의 세부 사항들이 포함되어 있지만, 이들은 임의 발명의 범위 또는 청구될 수도 있는 것들의 범위에 대한 제한으로 간주되어서는 안되며, 오히려 특정 발명의 특정 실시예에 해당될 수 있는 피처들에 대한 설명으로 이해되어야 한다. 본 명세서에서 개별적인 실시예들의 문맥에서 서술된 소정의 피처들은 하나의 실시예에서 조합되어 구현될 수도 있다. 반대로, 하나의 실시예와 관련하여 설명된 다양한 피처들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 또한, 소정 피처들은 소정의 조합으로 작용하는 것으로 앞서 서술될 수도 있으며 심지어 초기에는 그렇게 청구될 수도 있지만, 청구된 조합으로부터의 하나 이상의 피처들은 일부 경우에 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
이와 유사하게, 비록 동작들이 도면들에서 특정 순서로 도시되어 있다 하더라도, 이는 이러한 동작들이 도시된 특정 순서대로 또는 순차적으로 수행될 것을 요구하는 것으로 이해되어서는 안되며, 또는 바람직한 결과를 얻기 위해 도시된 모든 동작들이 반드시 수행되어야 함을 의미하지도 않는다. 특정 상황에서는, 멀티 태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 전술한 실시예들에서 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 통합될 수 있거나 또는 여러 소프트웨어 제품으로 패키지될 수도 있다.
본 발명의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구 범위의 범위 내에 속한다. 예를 들어, 청구 범위에 기재된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성할 수 있다. 일례로서, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 요구할 필요는 없다. 특정 구현예들에서, 멀티 태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (40)

  1. 사용자 데이터의 가용성(availability)을 제어하기 위한 시스템으로서,
    복수의 데이터 세트들을 저장하는 하나 이상의 데이터 저장 디바이스들, 각각의 데이터 세트는 (i) 상기 데이터 세트가 시작된(originated) 각각의 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함하고;
    하나 이상의 프론트-엔드 서버들, 상기 프론트-엔드 서버들은,
    디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하고,
    상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하며;
    상기 하나 이상의 데이터 저장 디바이스들 및 상기 하나 이상의 프론트-엔드 서버들과 데이터 통신하는 하나 이상의 데이터 가용성 제어 서버들을 포함하고,
    상기 데이터 가용성 제어 서버들은,
    소정의 디지털 컴포넌트 요청에 의해 명시되는 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 상기 하나 이상의 프론트-엔드 서버들로부터 수신하고,
    디지털 컴포넌트 제공자들에 대한 상기 활동 데이터의 가용성을 제어하되,
    소정의 디지털 컴포넌트 제공자들에 대하여, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인, 데이터 세트들을 식별하고,
    특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하고, 상기 특정 개수는 식별된 데이터 세트들의 전체 개수보다 적으며, 그리고
    상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공함으로써, 상기 활동 데이터의 가용성을 제어하는 것을 특징으로 하는 데이터의 가용성을 제어하기 위한 시스템.
  2. 제1항에 있어서,
    상기 하나 이상의 데이터 가용성 제어 서버들은, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 데이터의 가용성을 제어하기 위한 시스템.
  3. 제1항에 있어서,
    상기 하나 이상의 데이터 가용성 제어 서버들은, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 데이터의 가용성을 제어하기 위한 시스템.
  4. 제1항에 있어서,
    상기 하나 이상의 프론트-엔드 서버들은, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공하는 것을 특징으로 하는 데이터의 가용성을 제어하기 위한 시스템.
  5. 제1항에 있어서,
    각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함하는 것을 특징으로 하는 데이터의 가용성을 제어하기 위한 시스템.
  6. 제1항에 있어서,
    상기 하나 이상의 프론트-엔드 서버들은, 활동 데이터가 요청되는 사용자에 대한 사용자 식별자를 각각 명시하는 활동 데이터 요청들을 수신하고 그리고 상기 활동 데이터 요청들에 응답하여 활동 데이터를 제공하며;
    상기 하나 이상의 데이터 가용성 제어 서버들은,
    상기 하나 이상의 프론트-엔드 서버들로부터, 특정 엔티티로부터 수신된 특정 활동 데이터 요청에 의해 명시된 특정 사용자에 대한 특정 사용자 식별자를 명시하는 데이터를 수신하고;
    (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별하고;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하고;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여:
    특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택하고; 그리고
    상기 선택된 데이터를 상기 특정 엔티티에 제공하는 것을 특징으로 하는 데이터의 가용성을 제어하기 위한 시스템.
  7. 제6항에 있어서,
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 것은,
    특정 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 명시하는, 상기 특정 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하고; 그리고
    상기 활동 데이터 요청들의 개수가 상기 특정 발행자에 의해서 지정된 임계값 미만임을 결정하는 것을 포함하는 데이터의 가용성을 제어하기 위한 시스템.
  8. 사용자 데이터의 가용성을 제어하기 위한 컴퓨터 구현 방법으로서,
    하나 이상의 서버들에 의해서, 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하는 단계;
    상기 하나 이상의 서버들에 의해서, 상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하는 단계;
    상기 하나 이상의 서버들에 의해서, 소정의 디지털 컴포넌트 요청에 의해 명시된 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 수신하는 단계;
    상기 하나 이상의 서버들에 의해서, 디지털 컴포넌트 제공자들에 대한 활동 데이터의 가용성을 제어하는 단계를 포함하며,
    상기 활동 데이터의 가용성을 제어하는 단계는,
    소정의 디지털 컴포넌트 제공자에 대하여 그리고 복수의 데이터 세트들로부터, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인 데이터 세트들을 식별하는 단계, 각각의 데이터 세트는 (i) 상기 데이터 세트가 시작된(originated) 각각의 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함하고;
    특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하는 단계, 상기 특정 개수는 식별된 데이터 세트들의 전체 개수보다 적으며; 및
    상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 하나 이상의 서버들은, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 하나 이상의 서버들은, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제8항에 있어서,
    상기 하나 이상의 서버들은, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제8항에 있어서,
    각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제8항에 있어서,
    특정 엔티티로부터, 특정 사용자에 대한 특정 사용자 식별자를 명시하는 특정 활동 데이터 요청을 수신하는 단계;
    (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별하는 단계;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 단계;
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여:
    특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택하는 단계; 및
    상기 선택된 데이터를 상기 특정 엔티티에 제공하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 단계는,
    특정 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 명시하는, 상기 특정 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하는 단계; 및
    상기 활동 데이터 요청들의 개수가 상기 특정 발행자에 의해서 지정된 임계값 미만임을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 컴퓨터 프로그램이 인코딩된 비일시적 컴퓨터 저장 매체로서, 상기 컴퓨터 프로그램은 명령들을 포함하고, 상기 명령들은 하나 이상의 데이터 프로세싱 장치에 의해 실행될 때 상기 데이터 프로세싱 장치로 하여금,
    디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하고;
    상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하고;
    소정의 디지털 컴포넌트 요청에 의해 명시된 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 수신하고;
    디지털 컴포넌트 제공자들에 대한 활동 데이터의 가용성을 제어하게 하는 동작들을 수행하게 하며, 상기 활동 데이터의 가용성을 제어하는 것은,
    소정의 디지털 컴포넌트 제공자에 대하여 그리고 복수의 데이터 세트들로부터, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인 데이터 세트들을 식별하고, 각각의 데이터 세트는 (i) 상기 데이터 세트가 시작된(originated) 각각의 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함하고;
    특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하고, 상기 특정 개수는 식별된 데이터 세트들의 전체 개수보다 적으며; 그리고
    상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 동작들을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  16. 제15항에 있어서,
    상기 데이터 프로세싱 장치는, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  17. 제15항에 있어서,
    상기 데이터 프로세싱 장치는, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  18. 제15항에 있어서,
    상기 데이터 프로세싱 장치는, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  19. 제15항에 있어서,
    각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  20. 제15항에 있어서,
    상기 동작들은 또한,
    특정 엔티티로부터, 특정 사용자에 대한 특정 사용자 식별자를 명시하는 특정 활동 데이터 요청을 수신하고;
    (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별하고;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하고;
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여:
    특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택하고; 그리고
    상기 선택된 데이터를 상기 특정 엔티티에 제공하는 동작들을 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  21. 데이터의 유출을 방지하기 위한 시스템으로서,
    발행자들로부터 수신된 복수의 데이터 세트들을 저장하는 하나 이상의 데이터 저장 디바이스들, 각각의 데이터 세트는 (i) 상기 데이터 세트가 수신된 상기 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함하고;
    하나 이상의 프론트-엔드 서버들, 상기 프론트-엔드 서버들은,
    디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하고,
    상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하며;
    상기 하나 이상의 데이터 저장 디바이스들 및 상기 하나 이상의 프론트-엔드 서버들과 데이터 통신하는 하나 이상의 데이터 유출 서버들을 포함하고,
    상기 데이터 유출 서버들은,
    소정의 디지털 컴포넌트 요청에 의해 명시되는 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 상기 하나 이상의 프론트-엔드 서버들로부터 수신하고,
    디지털 컴포넌트 제공자들에 대한 상기 활동 데이터의 유출을 방지하되,
    소정의 디지털 컴포넌트 제공자들에 대하여, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인, 데이터 세트들을 식별하고,
    특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하고, 상기 특정 개수는 식별된 데이터 세트들의 전체 개수보다 적으며; 그리고
    상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공함으로써, 상기 활동 데이터의 유출을 방지하는 것을 특징으로 하는 시스템.
  22. 제21항에 있어서,
    상기 하나 이상의 데이터 유출 서버들은, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 시스템.
  23. 제21항에 있어서,
    상기 하나 이상의 데이터 유출 서버들은, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 시스템.
  24. 제21항에 있어서,
    상기 하나 이상의 프론트-엔드 서버들은, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공하는 것을 특징으로 하는 시스템.
  25. 제21항에 있어서,
    각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함하는 것을 특징으로 하는 시스템.
  26. 제21항에 있어서,
    상기 하나 이상의 프론트-엔드 서버들은, 활동 데이터가 요청되는 사용자에 대한 사용자 식별자를 각각 명시하는 활동 데이터 요청들을 수신하고 그리고 상기 활동 데이터 요청들에 응답하여 활동 데이터를 제공하며;
    상기 하나 이상의 데이터 유출 서버들은,
    상기 하나 이상의 프론트-엔드 서버들로부터, 특정 엔티티로부터 수신된 특정 활동 데이터 요청에 의해 명시된 특정 사용자에 대한 특정 사용자 식별자를 명시하는 데이터를 수신하고;
    (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별하고;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하고;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여:
    특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택하고; 그리고
    상기 선택된 데이터를 상기 특정 엔티티에 제공하는 것을 특징으로 하는 시스템.
  27. 제26항에 있어서,
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 것은,
    특정 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 명시하는, 상기 특정 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하고; 그리고
    상기 활동 데이터 요청들의 개수가 상기 특정 발행자에 의해서 지정된 임계값 미만임을 결정하는 것을 포함하는 시스템.
  28. 데이터 유출을 방지하기 위한 컴퓨터 구현 방법으로서,
    하나 이상의 서버들에 의해서, 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하는 단계;
    상기 하나 이상의 서버들에 의해서, 상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하는 단계;
    상기 하나 이상의 서버들에 의해서, 소정의 디지털 컴포넌트 요청에 의해 명시된 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 수신하는 단계;
    상기 하나 이상의 서버들에 의해서, 디지털 컴포넌트 제공자들에 대한 활동 데이터의 유출을 방지하는 단계를 포함하며,
    상기 활동 데이터의 유출을 방지하는 단계는,
    소정의 디지털 컴포넌트 제공자에 대하여 그리고 발행자들로부터 수신된 복수의 데이터 세트들로부터, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인 데이터 세트들을 식별하는 단계, 각각의 데이터 세트는 (i) 상기 데이터 세트가 수신된 상기 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함하고;
    특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하는 단계, 상기 특정 개수는 식별된 데이터 세트들의 전체 개수보다 적으며; 및
    상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  29. 제28항에 있어서,
    상기 하나 이상의 서버들은, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 컴퓨터 구현 방법.
  30. 제28항에 있어서,
    상기 하나 이상의 서버들은, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 컴퓨터 구현 방법.
  31. 제28항에 있어서,
    상기 하나 이상의 서버들은, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공하는 것을 특징으로 하는 컴퓨터 구현 방법.
  32. 제28항에 있어서,
    각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  33. 제28항에 있어서,
    특정 엔티티로부터, 특정 사용자에 대한 특정 사용자 식별자를 명시하는 특정 활동 데이터 요청을 수신하는 단계;
    (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별하는 단계;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 단계;
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여:
    특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택하는 단계; 및
    상기 선택된 데이터를 상기 특정 엔티티에 제공하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  34. 제33항에 있어서,
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하는 단계는,
    특정 발행자로부터 수신된 하나 이상의 데이터 세트들의 사용자 식별자와 매칭되는 사용자 식별자를 명시하는, 상기 특정 엔티티로부터 수신된 활동 데이터 요청들의 개수를 결정하는 단계; 및
    상기 활동 데이터 요청들의 개수가 상기 특정 발행자에 의해서 지정된 임계값 미만임을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  35. 컴퓨터 프로그램이 인코딩된 비일시적 컴퓨터 저장 매체로서, 상기 컴퓨터 프로그램은 명령들을 포함하고, 상기 명령들은 하나 이상의 데이터 프로세싱 장치에 의해 실행될 때 상기 데이터 프로세싱 장치로 하여금,
    디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트가 제공될 사용자에 대한 사용자 식별자를 각각 명시하는 상기 디지털 컴포넌트 요청들을 수신하고;
    상기 디지털 컴포넌트 요청들에 응답하여 디지털 컴포넌트를 제공하고;
    소정의 디지털 컴포넌트 요청에 의해 명시된 소정의 사용자에 대한 소정의 사용자 식별자를 명시하는 데이터를 수신하고;
    디지털 컴포넌트 제공자들에 대한 활동 데이터의 유출을 방지하게 하는 동작들을 수행하게 하며, 상기 활동 데이터의 유출을 방지하는 것은,
    소정의 디지털 컴포넌트 제공자에 대하여 그리고 발행자들로부터 수신된 복수의 데이터 세트들로부터, (i) 상기 소정의 사용자에 대한 사용자 식별자를 포함하고, (ii) 디지털 컴포넌트 제공자가 데이터를 수신할 권한이 있는 데이터 세트들인 데이터 세트들을 식별하고, 각각의 데이터 세트는 (i) 상기 데이터 세트가 수신된 상기 발행자의 전자 리소스를 방문한 사용자들에 대한 하나 이상의 사용자 식별자들, 및 각각의 사용자에 대한, (ii) 상기 전자 리소스와 관련하여 사용자에 의해 수행된 하나 이상의 행동들(actions)을 설명하는 활동 데이터(activity data)를 포함하고;
    특정 개수의 식별된 데이터 세트들로부터, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 선택하고, 상기 특정 개수는 식별된 데이터 세트들의 전체 개수보다 적으며; 그리고
    상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 동작들을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  36. 제35항에 있어서,
    상기 데이터 프로세싱 장치는, 상기 특정 개수의 식별된 데이터 세트들의 각각의 데이터 세트가 아닌 임의의 데이터 세트에 포함된 상기 소정의 사용자의 활동 데이터를 제공함이 없이, 상기 선택된 데이터를 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  37. 제35항에 있어서,
    상기 데이터 프로세싱 장치는, 상기 소정의 디지털 컴포넌트 요청에 응답하여, 상기 소정의 사용자에 대한 데이터만을 상기 소정의 디지털 컴포넌트 제공자에게 제공하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  38. 제35항에 있어서,
    상기 데이터 프로세싱 장치는, 상기 선택된 데이터를 수신함에 응답하여 상기 소정의 디지털 컴포넌트로부터 수신된 데이터에 기초하여 상기 소정의 사용자 식별자에 의해 식별된 사용자의 사용자 단말기로, 상기 소정의 디지털 컴포넌트 제공자의 디지털 컴포넌트를 제공하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  39. 제35항에 있어서,
    각각의 데이터 세트는 하나 이상의 데이터 튜플들을 포함하고, 각각의 데이터 튜플은 데이터 세트가 수신되었던 발행자에 의해 선택된 데이터 유형들을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
  40. 제35항에 있어서,
    상기 동작들은 또한,
    특정 엔티티로부터, 특정 사용자에 대한 특정 사용자 식별자를 명시하는 특정 활동 데이터 요청을 수신하고;
    (i) 상기 특정 사용자에 대한 사용자 식별자를 포함하고, (ii) 상기 특정 엔티티가 데이터를 수신할 권한이 있는 데이터 세트들인 복수의 데이터 세트들을 식별하고;
    특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았음을 결정하고;
    상기 특정 기간 동안 상기 특정 엔티티가 임계수 보다 많은 사용자들에 대한 활동 데이터를 요청하지 않았다는 결정에 응답하여:
    특정 개수의 복수의 데이터 세트들로부터, 상기 특정 개수의 복수의 데이터 세트들의 각각의 데이터 세트에 포함된 상기 특정 사용자의 활동 데이터를 선택하고; 그리고
    상기 선택된 데이터를 상기 특정 엔티티에 제공하는 동작들을 더 포함하는 것을 특징으로 하는 비일시적 컴퓨터 저장 매체.
KR1020197026854A 2017-05-17 2017-05-17 데이터 유출 방지 KR102285880B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/033007 WO2018212769A1 (en) 2017-05-17 2017-05-17 Preventing data leakage

Publications (2)

Publication Number Publication Date
KR20190118616A KR20190118616A (ko) 2019-10-18
KR102285880B1 true KR102285880B1 (ko) 2021-08-05

Family

ID=58995249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197026854A KR102285880B1 (ko) 2017-05-17 2017-05-17 데이터 유출 방지

Country Status (6)

Country Link
US (1) US11281785B2 (ko)
EP (1) EP3583537B1 (ko)
JP (1) JP6549782B2 (ko)
KR (1) KR102285880B1 (ko)
CN (1) CN109275357B (ko)
WO (1) WO2018212769A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6845344B2 (ja) * 2018-06-05 2021-03-17 グーグル エルエルシーGoogle LLC データ漏洩リスクの評価
US10701238B1 (en) * 2019-05-09 2020-06-30 Google Llc Context-adaptive scanning
US20200380148A1 (en) * 2019-06-03 2020-12-03 Otonomo Technologies Ltd. Method and system for aggregating users' consent
US11281794B2 (en) * 2019-09-26 2022-03-22 Microsoft Technology Licensing, Llc Fine grained access control on procedural language for databases based on accessed resources

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054043A1 (en) * 2010-09-01 2012-03-01 Anurag Agarwal Access Control for User-Related Data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014347A1 (en) 2001-07-13 2003-01-16 Tiefenbrun Natan Elazar System for isolating clients and bidders in a multiple risk bid market
US7275260B2 (en) * 2001-10-29 2007-09-25 Sun Microsystems, Inc. Enhanced privacy protection in identification in a data communications network
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
US7174021B2 (en) 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations
WO2007001247A2 (en) * 2004-06-02 2007-01-04 Yahoo! Inc. Content-management system for user behavior targeting
WO2006076520A2 (en) 2005-01-14 2006-07-20 International Business Machines Corporation Sharable multi-tenant reference data utility and repository, including value enhancement and on-demand data delivery and methods of operation
WO2006083958A2 (en) * 2005-02-01 2006-08-10 Newsilike Media Group, Inc. Systems and methods for use of structured and unstructured distributed data
US20080104393A1 (en) 2006-09-28 2008-05-01 Microsoft Corporation Cloud-based access control list
US20080249987A1 (en) * 2007-04-06 2008-10-09 Gemini Mobile Technologies, Inc. System And Method For Content Selection Based On User Profile Data
US20090299868A1 (en) 2008-04-29 2009-12-03 O'leary Fiona Method and system for providing bid information to a user in response to a service request
US9076153B2 (en) 2010-04-16 2015-07-07 Google Inc. Method, medium, and system for detecting data misuse
AU2011296091B2 (en) 2010-09-01 2016-04-28 Google Llc User list generation and identification
US20120210388A1 (en) * 2011-02-10 2012-08-16 Andrey Kolishchak System and method for detecting or preventing data leakage using behavior profiling
US8954736B2 (en) * 2012-10-04 2015-02-10 Google Inc. Limiting the functionality of a software program based on a security model
WO2014130968A1 (en) * 2013-02-22 2014-08-28 Trueffect Inc. Data management process utilizing a first-party technique
US10248975B2 (en) 2013-02-27 2019-04-02 Facebook, Inc. Providing advertisement content via an advertisement proxy server
US10559013B2 (en) 2013-03-07 2020-02-11 Facebook, Inc. Identifying users for advertising opportunities based on paired identifiers
US9313274B2 (en) * 2013-09-05 2016-04-12 Google Inc. Isolating clients of distributed storage systems
CN105940391B (zh) 2013-12-04 2020-08-04 维克斯网有限公司 用于第三方应用活动数据收集的系统和方法
US9860142B2 (en) * 2014-06-23 2018-01-02 Synchronoss Technologies, Inc. Apparatus, system and method of data collection after software removal
JP6055023B2 (ja) * 2015-05-11 2016-12-27 レノボ・シンガポール・プライベート・リミテッド クラウド環境にデータを保存する情報処理装置、端末装置および保存方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054043A1 (en) * 2010-09-01 2012-03-01 Anurag Agarwal Access Control for User-Related Data

Also Published As

Publication number Publication date
JP2019518251A (ja) 2019-06-27
US20190325151A1 (en) 2019-10-24
EP3583537A1 (en) 2019-12-25
CN109275357A (zh) 2019-01-25
EP3583537B1 (en) 2020-10-14
US11281785B2 (en) 2022-03-22
KR20190118616A (ko) 2019-10-18
JP6549782B2 (ja) 2019-07-24
CN109275357B (zh) 2022-05-24
WO2018212769A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
US11153397B2 (en) Enhanced push messaging
AU2018200833B2 (en) Providing content to a user across multiple devices
US9940481B2 (en) Privacy management across multiple devices
US9213754B1 (en) Personalizing content items
KR102285880B1 (ko) 데이터 유출 방지
JP2023164813A (ja) 強化されたオンラインプライバシ
US11720920B1 (en) Combining content with a search result
JP7267471B2 (ja) データ配布制限のセキュアな管理
US10970352B1 (en) Selecting content for co-located devices
US20170148068A1 (en) Entity based content distribution
US10129323B1 (en) Sharing data across partner websites
US20240160678A1 (en) Distributing digital components based on predicted attributes
US11423034B1 (en) Display of social content
US20230259815A1 (en) Machine learning techniques for user group based content distribution

Legal Events

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