KR20200131889A - 부정 방지 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법 - Google Patents

부정 방지 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법 Download PDF

Info

Publication number
KR20200131889A
KR20200131889A KR1020207029756A KR20207029756A KR20200131889A KR 20200131889 A KR20200131889 A KR 20200131889A KR 1020207029756 A KR1020207029756 A KR 1020207029756A KR 20207029756 A KR20207029756 A KR 20207029756A KR 20200131889 A KR20200131889 A KR 20200131889A
Authority
KR
South Korea
Prior art keywords
content item
content
request
device identifier
data processing
Prior art date
Application number
KR1020207029756A
Other languages
English (en)
Other versions
KR102491500B1 (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 KR20200131889A publication Critical patent/KR20200131889A/ko
Application granted granted Critical
Publication of KR102491500B1 publication Critical patent/KR102491500B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

적어도 하나의 양태는 부정 콘텐츠(fraudulent content) 아이템 동작을 식별함으로써 콘텐츠 아이템 동작을 프로세싱하는 데이터 처리 시스템의 성능을 개선하는 것에 관한 것이다. 데이터 처리 시스템은 클라이언트 장치로부터 콘텐츠 아이템 장치 식별자 및 증명 토큰을 포함하는 콘텐츠 아이템 동작을 수신할 수 있다. 증명 토큰은 컴퓨팅 장치와 연관된 공개 키, 증명 토큰 타임 스탬프, 메시지 페이로드 및 내장된 디지털 서명을 포함할 수 있다. 데이터 처리 시스템은 공개 키를 서명 확인 키로 사용하여 공개 키, 증명 토큰 타임 스탬프 및 메시지 페이로드 조합의 디지털 서명을 확인할 수 있다. 시스템은 디지털 서명 확인(검증) 프로세스가 성공한 경우에만 콘텐츠 아이템 동작을 프로세싱할 수 있다.

Description

부정 방지 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법
본 명세서는 부정 방지(fraud resistent) 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법에 관한 것이다.
인터넷과 같은 컴퓨터 네트워크 환경에서 타사 콘텐츠 제공 업체는 최종 사용자 컴퓨팅 장치에 표시할 타사 콘텐츠 아이템을 제공한다. 이러한 제3자 콘텐츠 아이템(예: 광고)은 각 게시자와 연관된 웹 페이지에 표시될 수 있다. 이러한 제3자 콘텐츠 아이템에는 콘텐츠 아이템을 제공한 제3자 콘텐츠 제공자를 식별하는 콘텐츠가 포함될 수 있다.
적어도 하나의 양태는 콘텐츠 아이템 동작을 프로세싱하는 것에 관한 것이다. 방법은 하나 이상의 프로세서를 포함하는 데이터 처리 시스템에 의해 컴퓨팅 장치로부터 제1 콘텐츠 아이템 통신을 수신하는 단계를 포함하며, 콘텐츠 아이템 통신은 제1 콘텐츠 아이템 장치 식별자 및 컴퓨팅과 연관된 공개 키, 증명 토큰 타임 스탬프, 메시지 페이로드 및 디지털 서명을 포함하는 증명 토큰을 포함한다. 방법은 데이터 처리 시스템에 의해 공개 키, 타임 스탬프 및 메시지 페이로드를 사용하여 디지털 서명을 확인하는 단계를 더 포함한다. 방법은 또한 데이터 처리 시스템에 의해 공개 키의 암호화 해시에 기초하여 제2 콘텐츠 아이템 장치 식별자를 생성하는 단계를 포함한다. 방법은 데이터 처리 시스템에 의해, 제2 콘텐츠 아이템 장치 식별자가 제1 콘텐츠 아이템 장치 식별자와 매칭하는지 결정하는 단계를 더 포함한다. 방법은 또한 데이터 처리 시스템에 의해, 디지털 서명의 확인에 응답하고, 제2 콘텐츠 아이템 장치 식별자가 제1 콘텐츠 아이템 장치 식별자와 매칭한다는 결정에 응답하여, 메시지 페이로드에 기초한 제1 콘텐츠 아이템 통신을 프로세싱하는 단계를 포함한다.
일부 구현에서, 메시지 페이로드는 데이터 처리 시스템에서 데이터베이스에 저장된 사용자 데이터를 와이드 아웃하라는 요청을 포함한다. 이 방법은 데이터 처리 시스템에 의해 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는 것으로 결정하는 단계를 더 포함한다. 방법은 또한 데이터 처리 시스템에 의해, 디지털 서명을 확인하고 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는다는 결정에 기초하여 콘텐츠 아이템 통신이 유효한지 결정하는 단계를 포함한다. 방법은 콘텐츠 아이템 통신이 유효하다는 결정에 응답하여, 데이터 처리 시스템에 의해 데이터베이스에 액세스하여 콘텐츠 아이템 장치 식별자와 연관된 데이터를 와이드 아웃하는 단계를 더 포함한다.
일부 구현에서, 메시지 페이로드는 콘텐츠 아이템 요청 및 콘텐츠 아이템에 대한 요청과 연관된 파라미터 세트를 포함한다. 이 방법은 데이터 처리 시스템에 의해 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는 것으로 결정하는 단계를 더 포함한다. 방법은 데이터 처리 시스템에 의해, 파라미터 세트의 값이 저장된 파라미터와 매칭하는지 결정하는 단계를 더 포함한다. 이 방법은 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는다는 결정 그리고 파라미터 세트의 값이 저장된 파라미터와 매칭한다는 결정하는 것에 응답하여, 데이터 처리 시스템에 의해 콘텐츠 아이템을 선택하고 수신된 콘텐츠 아이템 동작과 연관된 클라이언트 장치에 콘텐츠 아이템을 전송하는 단계를 더 포함한다.
일부 구현에서, 메시지 페이로드는 애플리케이션이 클라이언트 장치에 설치되었음을 나타내는 애플리케이션 설치 통지를 포함한다. 이 방법은 데이터 처리 시스템에 의해 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는 것으로 결정하는 단계를 더 포함한다. 방법은 또한 데이터 처리 시스템에 의해, 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는다는 결정에 기초하여, 데이터베이스를 업데이트하여 콘텐츠 아이템과 연관된 크레딧 값을 업데이트하는 단계를 포함한다.
일부 구현에서, 콘텐츠 아이템 장치 식별자는 콘텐츠 아이템 통신이 수신되는 클라이언트 장치를 고유하게 식별한다. 일부 구현에서, 콘텐츠 아이템 장치 식별자는 16 바이트의 길이를 갖는다.
이러한 양태와 다른 양태 및 구현은 아래에서 자세히 설명한다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태 및 구현의 예시적인 예를 포함하고 청구된 양태 및 구현의 특성 및 특성을 이해하기 위한 개요 또는 프레임 워크를 제공한다. 도면은 다양한 양태 및 구현에 대한 예시 및 추가 이해를 제공하며, 본 명세서에 통합되고 그 일부를 구성한다.
첨부된 도면은 일정한 비율로 그려진 것이 아니다. 다양한 도면에서 참조 번호와 명칭은 같은 구성요소를 나타낸다. 명확성을 위해 모든 컴포넌트는 모든 도면에 레이블이 지정되지는 않는다.
도 1은 부정 방지 콘텐츠 아이템 동작을 관리하기 위한 환경의 구현을 나타내는 블록도이다.
도 2는 예시적인 구현에 따른 클라이언트 장치(125)의 예시적인 구현을 나타내는 블록도를 도시한다.
도 3은 예시적인 구현에 따른 콘텐츠 아이템 장치 식별자의 생성을 위한 예시적인 프로세스의 흐름도를 도시한다.
도 4는 도 2에 도시된 증명 토큰 생성기에 의해 생성된 증명 토큰의 표현을 도시한다.
도 5는 예시적인 구현에 따라 부정 데이터 와이드 아웃(삭제)(wipe-out) 요청을 완화(mitigate)하기 위해 구현될 수 있는 예시적인 프로세스의 흐름도를 도시한다.
도 6은 예시적인 구현에 따른, 도 1에 도시된 데이터 처리 시스템에 의해 수신된 부정 콘텐츠 아이템 요청을 완화하도록 구현될 수 있는 예시적인 프로세스의 흐름도를 도시한다.
도 7은 예시적인 구현에 따른, 도 1에 도시된 데이터 처리 시스템(11)에 의해 수신된 부정 애플리케이션 설치 통지를 완화하기 위해 구현될 수 있는 예시적인 프로세스의 흐름도를 도시한다.
도 8은 본 명세서에서 설명된 임의의 컴퓨터 시스템을 구현하기 위해 사용될 수 있는 예시적인 컴퓨터 시스템의 일반적인 아키텍처를 도시한다.
다음은 부정 방지 콘텐츠 아이템 동작(operations)을 관리하는 방법, 장치 및 시스템과 연관된 다양한 개념 및 구현에 대한 자세한 설명이다. 위에서 소개되고 아래에서 더 상세히 설명되는 다양한 개념은 임의의 다양한 방식으로 구현될 수 있으며, 설명된 개념은 임의의 특정 구현 방식으로 제한되지 않는다.
도 1은 부정 방지 콘텐츠 아이템 동작을 관리하기 위한 환경(100)의 일 구현을 나타내는 블록도이다. 환경(100)은 적어도 하나의 데이터 처리 시스템(110)을 포함한다. 데이터 처리 시스템(110)은 적어도 하나의 프로세서(또는 프로세싱 회로) 및 메모리를 포함할 수 있다. 메모리는 프로세서에서 실행될 때 프로세서로 하여금 본 명세서에 설명된 하나 이상의 동작을 수행하게 하는 프로세서 실행 가능 명령어를 저장한다. 프로세서는 마이크로 프로세서, ASIC(application-specific integrated circuit), FPGA(field-programmable gate array) 등 또는 이들의 조합을 포함할 수 있다. 메모리는 전자, 광학, 자기, 또는 프로세서에 프로그램 명령을 제공할 수 있는 임의의 다른 저장소 또는 전송 장치를 포함할 수 있지만 이에 제한되지 않는다. 메모리는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ASIC, FPGA, ROM(read-only memory), RAM(random-access memory), EEPROM(electrical-erasable ROM), 삭제 가능 -프로그래밍 가능한 ROM(EPROM), 플래시 메모리, 광학 미디어 또는 프로세서가 명령어를 판독할 수 있는 기타 적절한 메모리를 더 포함할 수 있다. 명령어는 적절한 컴퓨터 프로그래밍 언어의 코드를 포함할 수 있다. 데이터 처리 시스템(110)은 다양한 기능을 수행할 수 있는 하나 이상의 컴퓨팅 장치 또는 서버를 포함할 수 있다. 일부 구현에서, 데이터 처리 시스템(110)은 옥션(auctions)을 호스팅하도록 구성된 광고 옥션 시스템을 포함할 수 있다. 일부 구현에서, 데이터 처리 시스템(110)은 광고 옥션 시스템을 포함하지 않지만 네트워크(105)를 통해 광고 옥션 시스템과 통신하도록 구성된다.
네트워크(105)는 인터넷, 로컬, 와이드, 메트로 또는 기타 영역 네트워크, 인트라넷, 위성 네트워크, 음성 또는 데이터 이동 전화 통신 네트워크와 같은 다른 컴퓨터 네트워크, 및 이들의 조합과 같은 컴퓨터 네트워크를 포함할 수 있다. 환경(100)의 데이터 처리 시스템(110)은 네트워크(105)를 통해, 예를 들어 적어도 하나의 콘텐츠 제공자 컴퓨팅 장치(콘텐츠 제공자)(115), 적어도 하나의 콘텐츠 발행자(publisher) 컴퓨팅 장치(콘텐츠 발행자)(120) 또는 적어도 하나의 클라이언트 장치(125)와 통신할 수 있다. 네트워크(105)는 클라이언트 장치(125), 데이터 처리 시스템(110) 및 하나 이상의 콘텐츠 소스, 예를 들어, 웹 서버, 광고 서버 사이에서 정보를 중계하는 임의의 형태의 컴퓨터 네트워크일 수 있다. 예를 들어, 네트워크(105)는 인터넷 및/또는 LAN(Local Area Network), WAN(Wide Area Network), 셀룰러 네트워크, 위성 네트워크 또는 다른 유형의 데이터 네트워크와 같은 다른 유형의 데이터 네트워크를 포함할 수 있다. 네트워크(105)는 또한 네트워크(105) 내에서 데이터를 수신 및/또는 전송하도록 구성된 임의의 수의 컴퓨팅 장치(예를 들어, 컴퓨터, 서버, 라우터, 네트워크 스위치 등)를 포함할 수 있다. 네트워크(105)는 임의의 수의 유선 및/또는 무선 연결을 더 포함할 수 있다. 예를 들면, 클라이언트 장치(125)는 네트워크(105)의 다른 컴퓨팅 장치에 유선(예를 들어, 광섬유 케이블, CAT5 케이블 등을 통해)으로 연결된 트랜시버(송수신기)와 무선으로(예를 들어, WiFi, 셀룰러, 라디오 등을 통해) 통신할 수 있다.
콘텐츠 제공자 컴퓨팅 장치(115)는 클라이언트 장치(125)에서 정보 자원 상에 디스플레이하기 위한 광고와 같은 콘텐츠 아이템을 제공하기 위해 콘텐츠 제공자 엔티티에 의해 운영되는 서버 또는 다른 컴퓨팅 장치를 포함할 수 있다. 콘텐츠 제공자 컴퓨팅 장치(115)에 의해 제공되는 콘텐츠는 주요 콘텐츠(예를 들어 콘텐츠 발행자 컴퓨팅 장치(120)에 의해 제공되는 콘텐츠)를 포함하는 웹 사이트 또는 웹 페이지와 같은 정보 자원에 표시하기 위한 크리에이티브(예를 들어, 광고) 또는 제3자 콘텐츠 아이템을 포함할 수 있다. 콘텐츠 아이팀은 검색 결과 웹 페이지에도 표시될 수 있다. 예를 들어, 콘텐츠 제공자 컴퓨팅 장치(115)는 회사에서 웹 페이지의 주요 콘텐츠를 제공하는 회사의 웹 페이지와 같은 콘텐츠 웹 페이지의 콘텐츠 슬롯에 디스플레이하기 위한 또는 검색 엔진에서 제공하는 검색 결과 방문 페이지에 표시(디스플레이)하기 위한 광고 소스 또는 다른 콘텐츠 아이템을 제공할 수 있다. 콘텐츠 제공자 컴퓨팅 장치(115)와 연관된 콘텐츠 아이템은 스마트 폰 또는 다른 클라이언트 장치(125)상의 애플리케이션(예: 게임 애플리케이션, GPS(Global Positioning System) 또는 지도 애플리케이션 또는 기타 유형의 애플리케이션) 실행의 일부로서 디스플레이되는 콘텐츠와 같은 웹 페이지 이외의 정보 자원(리소스)에 디스플레이될 수 있다.
콘텐츠 발행자 컴퓨팅 장치(120)는 네트워크(105)를 통해 디스플레이하기 위한 주요 콘텐츠를 제공하기 위해 콘텐츠 발행 엔티티에 의해 운영되는 서버 또는 다른 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 콘텐츠 발행자 컴퓨팅 장치(120)는 웹 페이지에 디스플레이하기 위한 주요 콘텐츠를 제공하는 웹 페이지 운영자(operator)를 포함할 수 있다. 주요 콘텐츠는 콘텐츠 발행자 컴퓨팅 장치(120)에 의해 제공되는 것 이외의 콘텐츠를 포함할 수 있고, 웹 페이지는 콘텐츠 제공자 컴퓨팅 장치(115)로부터의 제3자 콘텐츠 아이템(예를 들어, 광고)의 디스플레이를 위해 구성된 콘텐츠 슬롯을 포함할 수 있다. 예를 들어, 콘텐츠 발행자 컴퓨팅 장치(120)는 회사의 웹 사이트를 운영할 수 있고 웹 사이트의 웹 페이지에 디스플레이하기 위해 그 회사에 관한 콘텐츠를 제공할 수 있다. 웹 페이지는 콘텐츠 제공자 컴퓨팅 장치(115)의 광고와 같은 제3자 콘텐츠 아이템의 디스플레이를 위해 구성된 콘텐츠 슬롯을 포함할 수 있다. 일부 구현에서, 콘텐츠 발행자 컴퓨팅 장치(120)는 검색 엔진 웹 사이트를 운영하는 검색 엔진 운영자의 검색 엔진 컴퓨팅 장치(예를 들어, 서버)를 포함한다. 검색 엔진 웹 페이지의 주요 콘텐츠(예를 들어, 결과 또는 랜딩(landing) 웹 페이지)는 콘텐츠 제공자 컴퓨팅 장치(115)로부터의 콘텐츠 아이템과 같은 콘텐츠 슬롯에 디스플레이된 제3자 콘텐츠 아이템뿐만 아니라 검색 결과를 포함할 수 있다. 일부 구현에서, 콘텐츠 발행자 컴퓨팅 장치(120)는 비디오 콘텐츠를 제공하기 위한 서버를 포함할 수 있다.
클라이언트 장치(125)는 콘텐츠 발행자 컴퓨팅 장치(120)에 의해 제공되는 콘텐츠(예: 기본(주요) 웹 페이지 콘텐츠 또는 기타 정보 리소스) 및 콘텐츠 제공자 컴퓨팅 장치(115)에 의해 제공되는 콘텐츠(예: 웹 페이지의 콘텐츠 슬롯에 표시되도록 구성된 광고와 같은 제3자 콘텐츠 아이템)와 같은 데이터를 디스플레이하기 위해 네트워크(105)를 통해 통신하도록 구성된 컴퓨팅 장치를 포함할 수 있다. 클라이언트 장치(125), 콘텐츠 제공자 컴퓨팅 장치(115) 및 콘텐츠 발행자 컴퓨팅 장치(120)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 개인 휴대 정보 단말기, 모바일 장치, 소비자 컴퓨팅 장치, 서버, 클라이언트, 디지털 비디오 레코더, 텔레비전용 셋톱 박스, 비디오 게임 콘솔 또는 네트워크(105)를 통해 통신하도록 구성된 임의의 다른 컴퓨팅 장치를포함할 수 있다. 클라이언트 장치(125)는 최종 사용자가 콘텐츠 수신 요청을 제출할 수 있는 통신 장치일 수 있다. 요청은 검색 엔진에 대한 요청일 수 있으며 요청에는 검색 쿼리가 포함될 수 있다. 일부 구현에서, 요청은 웹 페이지에 액세스하기 위한 요청을 포함할 수 있다.
콘텐츠 제공자 컴퓨팅 장치(115), 콘텐츠 발행자 컴퓨팅 장치(120) 및 클라이언트 장치(125)는 프로세서 및 메모리, 즉 프로세싱 회로를 포함할 수 있다. 메모리는 프로세서에서 실행될 때 프로세서로 하여금 본 명세서에 설명된 하나 이상의 동작을 수행하게 하는 기계 명령어를 저장한다. 프로세서는 마이크로 프로세서, ASIC(application-specific integrated circuit), FPGA(field-programmable gate array) 등 또는 이들의 조합을 포함할 수 있다. 메모리는 전자, 광학, 자기, 또는 프로세서에 프로그램 명령을 제공할 수 있는 임의의 다른 저장소 또는 전송 장치를 포함할 수 있지만 이에 제한되지 않는다. 메모리는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ASIC, FPGA, ROM(read-only memory), RAM(random-access memory), EEPROM(electrical-erasable ROM), EPROM(erasable-programmable ROM), 플래시 메모리, 광학 미디어 또는 프로세서가 명령을 판독할 수 있는 기타 적절한 메모리를 더 포함할 수 있다. 명령어(명령)에는 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다.
콘텐츠 제공자 컴퓨팅 장치(115), 콘텐츠 발행자 컴퓨팅 장치(120) 및 클라이언트 장치(125)는 또한 하나 이상의 사용자 인터페이스 장치를 포함할 수 있다. 일반적으로, 사용자 인터페이스 장치는 감각 정보(예: 디스플레이의 시각화, 하나 이상의 사운드 등)를 생성하여 사용자에게 데이터를 전달하고 및/또는 사용자로부터 수신된 감각 정보를 전자 신호로 변환하는 임의의 전자 장치(예: 키보드, 마우스, 포인팅 장치, 터치스크린 디스플레이, 마이크로폰 등)를 의미한다. 하나 이상의 사용자 인터페이스 장치는 다양한 구현에 따라, 콘텐츠 제공자 컴퓨팅 장치(115), 콘텐츠 발행자 컴퓨팅 장치(120) 및 클라이언트 장치(125)의 하우징 내부(예: 내장 디스플레이, 마이크로폰 등)에 있거나, 콘텐츠 제공자 컴퓨팅 장치(115), 콘텐츠 발행자 컴퓨팅 장치(120), 클라이언트 장치(125)의 하우징 외부(예: 사용자 컴퓨팅 장치(115)에 연결된 모니터, 사용자 컴퓨팅 장치(115)에 연결된 스피커 등)에 있을 수 있다. 예를 들면, 콘텐츠 제공자 컴퓨팅 장치(115), 콘텐츠 발행자 컴퓨팅 장치(120) 및 클라이언트 장치(125)는 하나 이상의 콘텐츠 소스로부터 및/또는 네트워크(105)를 통해 데이터 처리 시스템(110)으로부터 수신된 웹 페이지 데이터를 사용하여 웹 페이지를 시각적으로 표시하는 전자 디스플레이를 포함할 수 있다. 일부 구현에서, 콘텐츠 배치(placement) 캠페인 관리자 또는 광고주와 같은 제3자 콘텐츠 제공 업체는 콘텐츠 제공자 컴퓨팅 장치(115)를 통해 데이터 처리 시스템(110)과 통신할 수 있다. 일부 구현에서, 광고주는 콘텐츠 제공자 컴퓨팅 장치(115)의 사용자 인터페이스 장치에 디스플레이된 사용자 인터페이스를 통해 데이터 처리 시스템(110)과 통신할 수 있다.
데이터 처리 시스템(110)은 적어도 하나의 서버를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(110)은 적어도 하나의 데이터 센터 또는 서버 팜에 위치한 복수의 서버를 포함할 수 있다. 일부 구현에서, 데이터 처리 시스템(110)은 제3자 콘텐츠 배치 시스템, 예를 들어 광고 서버 또는 광고 배치 시스템을 포함할 수 있다. 데이터 처리 시스템(110)은 적어도 하나의 콘텐츠 요청 컴포넌트(콘텐츠 및 콘텐츠 아이템 요청 컴포넌트)(130), 적어도 하나의 콘텐츠 선택 컴포넌트(콘텐츠 및 콘텐츠 아이템 선택 컴포넌트)(135), 적어도 하나의 속성 컴포넌트(150) 및 적어도 하나의 데이터베이스(145)를 포함할 수 있다. 콘텐츠 요청 컴포넌트(130), 콘텐츠 선택 컴포넌트(135) 및 속성 컴포넌트(150) 각각은 적어도 하나의 처리 장치(프로세싱 유닛), 서버, 가상 서버, 회로, 엔진, 에이전트, 기기, 또는 네트워크(105)를 통해 데이터베이스(145) 및 다른 컴퓨팅 장치(예를 들어, 콘텐츠 제공자 컴퓨팅 장치(115), 콘텐츠 발행자 컴퓨팅 장치(120) 또는 클라이언트 장치(125))와 통신하도록 구성된 프로그래밍 가능한 논리 어레이와 같은 다른 논리 장치를 포함할 수 있다.
콘텐츠 요청 컴포넌트(130), 콘텐츠 선택 컴포넌트(135) 및 속성 컴포넌트(150)는 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 이를 실행할 수 있다. 콘텐츠 요청 컴포넌트(130), 콘텐츠 선택 컴포넌트(135) 및 속성 컴포넌트(150)는 개별 컴포넌트, 단일 컴포넌트 또는 데이터 처리 시스템(110)의 일부일 수 있다. 콘텐츠 요청 컴포넌트(130), 콘텐츠 선택 컴포넌트(135) 및 속성 컴포넌트(150)는 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 소프트웨어 및 하드웨어의 조합을 포함할 수 있다.
데이터 처리 시스템(110)은 또한 하나 이상의 콘텐츠 저장소 또는 데이터베이스(145)를 포함할 수 있다. 데이터베이스(145)는 데이터 처리 시스템(110)에 국부적(로컬)일 수 있다. 일부 구현에서, 데이터베이스(145)는 데이터 처리 시스템(110)에 대해 원격일 수 있지만 네트워크(105)를 통해 데이터 처리 시스템(110)과 통신할 수 있다. 데이터베이스(145)는 특히 클라이언트 장치(125)에 제공하기 위해 웹 페이지, 웹 페이지의 일부, 제3자 콘텐츠 아이템(예를 들어, 광고) 및 콘텐츠 슬롯 삽입 스크립트를 포함할 수 있다. 일부 구현에서, 데이터베이스(145)는 또한 콘텐츠 아이템 장치 식별자(아래에서 설명됨)와 관련하여 저장된 사용자 정보 및 클라이언트 장치의 콘텐츠 아이템 장치 식별자와 연관된 콘텐츠 아이템 요청을 저장하는 요청 로그를 포함할 수 있다.
콘텐츠 요청 컴포넌트(130)는 클라이언트 장치(125)로부터 콘텐츠에 대한 요청을 수신할 수 있다. 콘텐츠에 대한 요청은 정보 자원에 대한 요청, 하나 이상의 제3자 콘텐츠 아이템에 대한 요청, 콘텐츠 슬롯 삽입 스크립트에 대한 요청 또는 이들의 조합을 포함할 수 있다. 일부 구현에서, 콘텐츠 요청에는 제3자(타사) 콘텐츠에 대한 요청이 포함될 수 있다. 일부 구현에서, 제3자 콘텐츠에 대한 요청은 제3자 콘텐츠가 표시될 정보 자원의 주소 또는 식별자를 포함할 수 있다. 제3자 콘텐츠에 대한 요청은 또한 콘텐츠에 대한 요청에 응답하여 제공할 콘텐츠를 결정하기 위해 데이터 처리 시스템(110)에 의해 사용될 수 있는 하나 이상의 파라미터를 포함하거나 식별할 수 있다. 파라미터는 요청된 콘텐츠를 삽입할 콘텐츠 슬롯의 크기를 식별할 수 있다. 파라미터는 정보 자원과 관련된 콘텐츠의 유형(타입), 요청된 제3자 콘텐츠의 유형(예: 텍스트, 이미지, 비디오 등), 클라이언트 장치 정보, 요청된 제3자 콘텐츠 아이템에 대한 크기 정보 또는 이들의 조합을 식별할 수 있다. 일부 구현에서, 요청은 콘텐츠 슬롯 삽입 스크립트를 식별할 수 있다. 일부 구현에서, 콘텐츠에 대한 요청은 리소스(자원) 정보의 콘텐츠 발행자가 콘텐츠 슬롯 삽입 서비스에 가입했거나 그렇지 않으면 콘텐츠 슬롯 삽입 서비스를 선택했음을 나타내는 식별자를 포함할 수 있다.
일부 구현에서, 콘텐츠에 대한 요청은 정보 자원에 대한 요청을 포함할 수 있다. 정보 자원에 대한 요청은 정보 자원의 주소 또는 식별자를 포함할 수 있다. 예를 들면, 정보 리소스에 대한 요청에는 웹 페이지(예: "http://www.example.com")와 같은 특정 리소스의 URL(Uniform Resource Locator)이 포함될 수 있다. 정보 자원에 대한 요청은 또한 클라이언트 장치 정보(예: 장치 유형, 장치 식별자 또는 이들의 조합)를 포함할 수 있다.
일부 구현에서, 콘텐츠에 대한 요청은 콘텐츠 슬롯 삽입 스크립트에 대한 요청을 포함할 수 있다. 일부 구현에서, 콘텐츠 슬롯 삽입 스크립트에 대한 요청은 요청된 스크립트의 표시, 리소스 정보의 주소 또는 식별자 또는 이들의 조합을 포함할 수 있다. 일부 구현에서, 콘텐츠 슬롯 삽입 스크립트에 대한 요청은 콘텐츠 슬롯 삽입 스크립트를 식별할 수 있다. 일부 구현에서, 콘텐츠 슬롯 삽입 스크립트에 대한 요청은 리소스 정보의 콘텐츠 발행자가 콘텐츠 슬롯 삽입 서비스에 가입했거나 그렇지 않으면 이를 선택했음을 나타내는 식별자를 포함할 수 있다. 일부 구현에서, 콘텐츠 요청 컴포넌트(130)는 콘텐츠에 대한 요청을 파싱하고 콘텐츠에 대한 요청을 콘텐츠 선택 컴포넌트(135) 또는 스크립트 제공자 컴포넌트로 전달하도록 결정하도록 구성될 수 있다. 예를 들어, 콘텐츠 슬롯 삽입 스크립트가 수신된 콘텐츠 요청에 응답하여 클라이언트 장치(125)로 전송되는 것으로 결정되면, 콘텐츠 요청 컴포넌트(130)는 콘텐츠에 대한 요청을 스크립트 제공자 컴포넌트에 전달할 수 있다. 그렇지 않으면, 콘텐츠 요청 컴포넌트(130)는 콘텐츠에 대한 요청을 콘텐츠 선택 컴포넌트(135)로 전달할 수 있다. 일부 구현에서, 콘텐츠 요청 컴포넌트(130)는 콘텐츠에 대한 요청을 콘텐츠 선택 컴포넌트(135) 및 스크립트 제공자 컴포넌트 모두에 전달하기로 결정할 수 있다. 콘텐츠 요청 컴포넌트(130)는 콘텐츠 요청의 유형(예: 정보 자원 요청, 제3자 콘텐츠 요청 또는 콘텐츠 슬롯 삽입 스크립트 요청), 콘텐츠 요청의 표시자(indicator)(예: 콘텐츠 슬롯 삽입 스크립트를 나타내는 표시자 또는 정보 자원이 콘텐츠 슬롯 삽입에 적격함을 나타내는 표시자), 콘텐츠 요청의 정보 자원 식별자 또는 이들 조합을 기반으로 스크립트가 클라이언트 장치(125)로 전송될 것인지 여부를 결정할 수 있다. 일부 구현에서, 콘텐츠 요청 컴포넌트(130)는 정보 자원의 식별을 정보 자원 식별자(예: 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있는 리소스 정보 식별자)의 목록(리스트)과 비교함으로써 스크립트가 클라이언트 장치(125)로 전송될 것인지 여부를 결정할 수 있다. 일부 구현에서, 정보 자원 식별자는 URL일 수 있다. 일부 구현에서, 정보 자원 식별자는 정보 자원이 속한 도메인일 수 있다. 일부 구현에서, 정보 자원 식별자는 정보 자원을 호스팅하는 서버에 해당하는 IP 주소일 수 있다. 일부 구현에서, 콘텐츠 요청 컴포넌트(130)는 스크립트가 클라이언트 장치(125)로 전송되는지 여부를 확인하지 않고 콘텐츠에 대한 요청을 콘텐츠 선택 컴포넌트(135)에 자동으로 전달할 수 있다.
콘텐츠 선택 컴포넌트(135)는 수신된 콘텐츠 요청에 응답하여 클라이언트 장치(125)로 전송될 콘텐츠를 결정하도록 구성될 수 있다. 콘텐츠 선택 컴포넌트(135)는 콘텐츠에 대한 요청에 포함된 정보에 기초하여 클라이언트 장치(125)로 전송될 콘텐츠를 결정할 수 있다. 예를 들어, 정보 자원(리소스)에 대한 요청을 수신하면, 콘텐츠 선택 컴포넌트(135)는 콘텐츠 요청에서 정보 자원의 주소 또는 식별자를 사용하여 클라이언트 장치로 전송할 콘텐츠를 결정할 수 있다.
하나 이상의 제3자 콘텐츠 아이템에 대한 요청을 수신하는 경우, 콘텐츠 선택 컴포넌트(135)는 제3자 콘텐츠 아이템이 제공될 정보 리소스에 대한 주소 또는 식별자, 정보 자원에 대한 콘텐츠 유형 정보(예: 스포츠, 뉴스, 음악, 영화, 여행 등), 제3자 콘텐츠 아이템(들)이 표시될 슬롯(들)의 크기 정보, 클라이언트 장치 정보(예: 장치(기기) 유형, 장치 식별자, 장치 위치 등)에 기초하여 제3자 콘텐츠 아이템(들)을 선택할 수 있다. 일부 구현에서, 콘텐츠 아이템에 대한 요청은 또한 콘텐츠 아이템 거래를 위해 클라이언트 장치(125)에 대해 고유하게 생성되는 콘텐츠 아이템 장치 식별자를 포함할 수 있다. 예를 들면, 콘텐츠 아이템 장치 식별자에는 안드로이드(Android) 지원 장치에서 사용되는 광고 식별자(ADID), 애플(Apple) 지원 장치에서 사용되는 광고주 식별자(IDFA) 또는 광고주가 사용자를 식별하기 위해 사용할 수 있는 기타 식별자가 포함될 수 있다. 콘텐츠 아이템 장치 식별자는 클라이언트 장치(125)와 연관된 고유 장치 식별자(UDID)와 다를 수 있다. 예를 들면, 콘텐츠 아이템 장치 식별자는 콘텐츠 아이템 공급자가 UDID 관련 활동 추적과 유사하게 콘텐츠 아이템 장치 식별자 관련 활동을 추적할 수 있도록 한다. 그러나 사용자가 턴-오프할 수 없는 추적(tracking)인 UDID와 달리 사용자는 콘텐츠 아이템 장치 식별자를 기반으로 활동(액티비티) 추적을 쉽게 턴-오프할 수 있다. 또한, 클라이언트 장치(125)에 고유하고 그리고 노출이 일반적으로 클라이언트 장치(125)를 사용하는 사용자에 의해 제어될 수 없는 UDID와 달리, 콘텐츠 아이템 장치 식별자는 사용자가 재설정할 수 있을뿐만 아니라 고유할 수 있다. 이를 통해 사용자는 원하는 추적 기본설정(preferences)을 설정하여 콘텐츠 아이템 장치 식별자를 기반으로 하는 대상 콘텐츠 아이템 전달을 거절(opt out)할 수 있다. 콘텐츠 아이템 장치 식별자는 사용자가 변경할 수 있으며 사용자와 연관된 여러 장치에서 공통될 수 있다. 콘텐츠 선택 컴포넌트(135)에 의해 수신된 콘텐츠 아이템에 대한 요청은 콘텐츠 아이템 장치 식별자를 포함할 수 있으며, 콘텐츠 선택 컴포넌트(135)는 예를 들어, 콘텐츠 아이템 장치 식별자와 관련된 과거 활동에 기초하여 클라이언트 장치(125)에 제시될 콘텐츠 아이템을 선택하기 위해 이용할 수 있다.
일부 구현에서, 제3자 콘텐츠에 대한 요청에는 정보 리소스(자원)에 제3자 콘텐츠 아이템을 표시하기 위한 최소 수익 금액(또는 최소 입찰 값)도 포함될 수 있다. 일부 구현에서, 콘텐츠 선택 컴포넌트(135)는 광고 옥션 시스템과 통신하고 클라이언트 장치로부터 수신된 제3자 콘텐츠에 대한 요청에 포함된 광고 옥션 시스템 정보를 제공할 수 있다. 콘텐츠 선택 컴포넌트(135)는 또한 제3자 콘텐츠에 대한 요청에 포함된 정보를 제공하는 것에 응답하여 광고 옥션 시스템으로부터 하나 이상의 제3자 콘텐츠 아이템을 수신할 수 있다. 일부 구현에서, 콘텐츠 선택 컴포넌트(135)는 데이터베이스(145)에 액세스하고 클라이언트 장치(125)로 전송하기 위한 콘텐츠를 검색할 수 있다.
일부 구현에서, 콘텐츠 선택 컴포넌트(135)는 콘텐츠에 대한 요청에 응답하여 스크립트가 클라이언트 장치(125)로 전송될 것인지 여부를 결정하도록 구성될 수 있다. 콘텐츠 선택 컴포넌트(135)는 콘텐츠 요청의 유형(예: 정보 자원 요청, 제3자 콘텐츠 요청 또는 콘텐츠 슬롯 삽입 스크립트 요청), 콘텐츠 요청의 표시자(예: 콘텐츠 슬롯 삽입 스크립트를 나타내는 표시자 또는 정보 자원이 콘텐츠 슬롯 삽입에 적격함을 나타내는 표시자), 콘텐츠 요청의 정보 자원 식별자 또는 이들 조합에 기초하여 스크립트가 클라이언트 장치(125)로 전송될 것인지 여부를 결정할 수 있다. 일부 구현에서, 콘텐츠 선택 컴포넌트(135)는 정보 자원의 식별을 정보 자원 식별자(예를 들어, 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있는 정보 자원 식별자)의 목록과 비교함으로써 스크립트가 클라이언트 장치(125)로 전송될 것인지 여부를 결정할 수 있다. 스크립트가 클라이언트 장치(125)로 전송될 것이라고 결정하면, 콘텐츠 선택 컴포넌트(135)는 콘텐츠에 대한 요청 또는 그 표시를 스크립트 제공자 컴포넌트에 전달할 수 있다. 일부 구현에서, 콘텐츠 선택 컴포넌트(135)는 여전히 콘텐츠 슬롯 삽입 스크립트와 같은 스크립트와 함께 클라이언트 장치(125)에 전송할 제3자 콘텐츠 아이템을 선택할 수 있다.
속성 컴포넌트(150)는 예를 들어 애플리케이션 설치 클레임 요청 및 애플리케이션 설치 크레딧 클레임 요청과 같은 속성에 대한 요청을 프로세싱할 수 있다. 일부 구현에서, 콘텐츠 아이템은 클라이언트 장치(125)에서 실행되는 애플리케이션에 의해 제공될 수 있다. 클라이언트 장치에서 콘텐츠 아이템을 렌더링하는 애플리케이션에는 콘텐츠 아이템과의 상호 작용을 모니터링할 수 있는 소프트웨어 개발 키트(SDK)가 포함될 수 있다. 예를 들면, 클라이언트 장치(125)에서 렌더링된 콘텐츠 아이템이 사용자에 의해 클릭되면, SDK는 사용자가 클라이언트 장치(125)에서 콘텐츠 아이템을 클릭한 콘텐츠 아이템을 생성한 콘텐츠 아이템 네트워크에 통지를 보낼 수 있다. 예를 들어, 콘텐츠 아이템은 메시지를 포함하거나 클라이언트 장치(125)에 애플리케이션을 설치하기 위한 링크를 사용자에게 제공할 수 있다. 사용자가 클라이언트 장치(125)에 애플리케이션을 설치할 때, 애플리케이션은 애플리케이션이 클라이언트 장치(125)에 설치되었음을 나타내는 알림을 속성 컴포넌트(150)에 전송할 수 있는 속성 SDK를 포함할 수 있다. 콘텐츠 아이템 캠페인의 일부로서 속성 컴포넌트(150)는 클라이언트 장치(125)에 설치된 애플리케이션이 각각의 콘텐츠 아이템 네트워크에 의해 생성된 콘텐츠 아이템에 의해 촉진되었는지를 결정하기 위해 다수의 콘텐츠 아이템 네트워크를 쿼리(query)할 수 있다. 적절한 콘텐츠 아이템 네트워크는 크레딧 요청으로 응답할 수 있다. 속성 SDK로부터의 애플리케이션 설치 통지와 콘텐츠 아이템 네트워크로부터의 크레딧 요청 모두는 (아래에서 설명되는) 증명 토큰을 포함할 수 있으며, 속성 컴포넌트(150)는 부정(fraudulent) 설치 통지 및 부정 크레딧(credit) 요청을 완화(mitigate)하기 위해 활용할 수 있다.
데이터 처리 시스템(110)은 콘텐츠 아이템 장치 식별자를 포함하는 다양한 부정 거래를 완화할 수 있다. 예를 들면, 부정 거래에는 콘텐츠 아이템 타겟팅, 속성, 사용자 데이터 투명성 및 제어가 광범위하게 포함될 수 있다. 부정 콘텐츠 아이템 타겟팅에는 하이재킹된(hijacked) 콘텐츠 아이템 장치 식별자가 있는 요청과 콘텐츠 아이템 장치 식별자 이외의 부정 요청 파라미터가 있는 요청이 포함될 수 있다. 일부 경우에, 일부 엔티티는 부정 콘텐츠 아이템 장치 식별자를 생성하고 콘텐츠 요청 컴포넌트(130)에 요청을 전송할 수 있다. 이는 성능에 영향을 미치는 데이터 처리 시스템(110)에 대한 부하를 증가시킬 수 있다. 일부 구현에서, 일부 엔티티는 콘텐츠 요청 컴포넌트(130)로 전송된 요청에서 예를 들어 인앱 요청(in-app requests)에 대한 애플리케이션 이름, 웹 요청에 대한 URL 등과 같은 콘텐츠 아이템 장치 식별자 이외의 파라미터를 수정할 수 있다. 이러한 시나리오에서, 데이터 처리 시스템(110)은 요청이 부정임에도 불구하고 데이터 처리 시스템(110)의 성능에 영향을 미치는 요청을 프로세싱할 수 있다.
부정 속성에는 부정 애플리케이션 설치 크레딧 클레임(credit claims) 및 부정 애플리케이션 설치 통지(알림)이 포함될 수 있다. 일부 구현에서, 클라이언트 장치(125)에 애플리케이션이 설치된 후, 애플리케이션이 클라이언트 장치(125)에서 처음 실행될 때 애플리케이션에 내장된 속성 SDK가 속성 요청을 속성 컴포넌트(150)로 전송하게 한다. 속성 요청 수신에 응답하여, 속성 컴포넌트(150)는 콘텐츠 제공자(115)와 같은 다수의 콘텐츠 아이템 네트워크를 쿼리하여 애플리케이션의 설치에 대해 인정(credited)되어야 하는 콘텐츠 아이템 네트워크를 결정할 수 있다. 일부 구현에서, 속성은 마지막 클릭 모델을 기반으로 할 수 있다. 일부 부정 콘텐츠 아이템 네트워크는 속성 컴포넌트(150)에 부정 크레딧 요청을 전송할 수 있다. 그러한 경우에, 데이터 처리 시스템(110)은 요청이 부정임에도 불구하고 크레딧 요청을 프로세싱할 수 있고, 부정 콘텐츠 아이템 네트워크에 크레딧을 부여함으로써 데이터 처리 시스템(110)의 성능에 부정적인 영향을 미칠 수 있다.
일부 다른 구현에서, 부정 엔티티는 속성 컴포넌트(150)에 부정 애플리케이션 설치 통지를 보낼 수 있다. 즉, 엔티티는 클라이언트 장치(125)에 설치된 애플리케이션이 없더라도 애플리케이션 설치 알림을 보낼 수 있다. 부정 엔티티는 설치 수와 연관된 재정적 인센티브가 있는 경우 많은 수의 알림을 보내도록 유도될 수 있다. 데이터 처리 시스템(110)은 예를 들어, 통지가 부정(fraudulent)일 수 있음에도 불구하고 각 통지에 대해 콘텐츠 아이템 네트워크에 대한 쿼리를 생성하는 것과 같이 이러한 통지를 프로세싱할 수 있으며, 이에 따라 데이터 처리 시스템(110)의 성능에 부정적인 영향을 미칠 수 있다.
일부 구현에서, 부정 엔티티는 부정 와이프 아웃(삭제)(wipe-out) 요청을 전송함으로써 데이터 처리 시스템(110)에 저장된 사용자 데이터(사용자 정보)(165)의 무결성을 손상시킬 수 있다. 부정 엔티티는 클라이언트 장치(125)의 콘텐츠 아이템 장치 식별자를 하이잭(hijack)하고, 클라이언트 장치(125)에 알려지지 않은 데이터 삭제(wipe-out) 요청을 데이터 처리 시스템(110)에 전송할 수 있다. 이는 데이터 처리 시스템(110)이 클라이언트 장치(125)와 연관된 사용자 데이터를 불법적으로 삭제하게 하여 데이터 처리 시스템(110)에 저장된 데이터의 무결성에 영향을 미칠 수 있다. 또한 데이터 처리 시스템(110)이 부정 요청을 처리함에 따라 데이터 처리 시스템(110)의 성능에 부정적인 영향을 미칠 수 있다. 다른 경우에, 부정 엔티티는 여러 클라이언트 장치(125)의 콘텐츠 아이템 장치 식별자(공개)를 수집하고 데이터 처리 시스템에 부정 요청을 전송하여 콘텐츠 아이템 장치 식별자와 연관된 데이터 처리 시스템(110) 소유의 사용자 정보를 제공할 수 있다. 다시, 요청은 클라이언트 장치(125)와 같은 클라이언트 장치의 승인없이 이루어질 수 있으며, 데이터 처리 시스템(110)에 저장된 데이터의 무결성에 부정적인 영향을 미치고 데이터 처리 시스템(110)의 성능에 부정적인 영향을 미칠 수 있다.
일부 구현에서, 부정 엔티티는 콘텐츠 아이템 장치 식별자 이외의 부정하게 수정된 파라미터를 사용하여 데이터 처리 시스템(110)에 요청을 보낼 수 있으며, 여기서 파라미터는 애플리케이션 내 요청에 대한 애플리케이션 이름, 웹 요청의 URL 등을 포함할 수 있다. 그렇게 하려는 부정 엔티티의 동기는 불법적인 금전적 이득을 위한 것일 수 있지만, 데이터 처리 시스템(110)에 저장된 데이터의 무결성과 데이터 처리 시스템(110)의 성능은 부정적인 영향을 받을 수 있다.
여기에서 설명된 바와 같이, 위에서 설명한 부정 시나리오로 인한 데이터 무결성 및 성능에 대한 부정적인 영향은 자체 증명 기능이 있는 콘텐츠 아이템 장치 식별자를 사용하여 완화할 수 있다. 데이터 처리 시스템(110)은 요청 또는 통지에서 수신된 콘텐츠 아이템 장치 식별자가 의도된 클라이언트 장치(125)와 합법적으로 연관되어 있음을 확인할 수 있다. 또한, 요청 또는 통지(알림)의 임의의 부정한 수정 또는 변경이 데이터 처리 시스템(110)에 의해 검출될 수 있도록 무결성 특징(integrity features)이 요청 및 통지(알림)에 통합될 수 있다.
도 2는 클라이언트 장치(125)의 예시적인 구현을 나타내는 블록도를 도시한다. 클라이언트 장치(125)는 콘텐츠 아이템 장치 식별자 생성기(202), 증명 토큰 생성기(204) 및 저장소(206)를 포함할 수 있다. 또한, 클라이언트 장치(125)는 제3자 애플리케이션들(208)을 실행할 수 있으며, 이들 중 적어도 하나는 예를 들어 데이터 처리 시스템(110)에 설치 통지를 전송할 수 있는 속성 SDK와 같은 SDK(210)를 포함할 수 있다. 일부 구현에서, 콘텐츠 아이템 장치 식별자 생성기(202)는 클라이언트 장치(125)의 운영 체제에 의해 실행될 수 있으며, 여기서 예시적인 운영 체제는 Android 운영 체제 및 iOS 운영 체제를 제한없이 포함할 수 있다. 일부 구현에서, 콘텐츠 아이템 장치 식별자 생성기(202)는 애플리케이션(208)이 콘텐츠 아이템 장치 식별자의 생성을 요청하기 위해 인터페이스할 수 있는 운영 체제에 의해 제공되는 애플리케이션 프로그래밍 인터페이스일 수 있다. 일부 구현에서, 애플리케이션(208)이 데이터 처리 시스템(110)에 요청 또는 통지를 전송할 때마다, 애플리케이션(208)은 요청 또는 통지에 클라이언트 장치(125)의 콘텐츠 아이템 장치 식별자를 포함해야 할 수 있다. 애플리케이션(208)은 콘텐츠 아이템 장치 식별자 생성기(202)에 콘텐츠 아이템 장치 식별자를 생성하도록 요청할 수 있으며, 이는 데이터 처리 시스템(110)으로 전송된 요청 또는 통지에 포함될 수 있다.
도 3은 콘텐츠 아이템 장치 식별자의 생성을 위한 예시적인 프로세스(300)의 흐름도를 도시한다. 특히, 프로세스(300)는 도 2에 도시된 콘텐츠 아이템 장치 식별자 생성기(202)에 의해 실행될 수 있다. 프로세스(300)는 콘텐츠 아이템 장치 식별자에 대한 요청을 수신하는 프로세스(302), 아직 생성되지 않은 경우 공개 키-개인 키 쌍을 생성하는 프로세스(304), 공개 키를 암호화 해시(crypto-hashing)하는 프로세스(306), 필요에 따라 암호화 해시를 미리 결정된 비트 길이로 절단(truncating)하는 프로세스(308)를 포함한다.
콘텐츠 아이템 장치 식별자 생성기(202)는 애플리케이션들(208) 중 하나와 같은 애플리케이션으로부터 콘텐츠 아이템 장치 식별자를 생성하기 위한 요청을 수신할 수 있다(302). 콘텐츠 아이템 장치 식별자를 생성하기 위한 요청은 애플리케이션(208) 또는 SDK(210)가 데이터 처리 시스템(110)으로 보내려고 하는 통지 또는 요청 때문일 수 있다. 일부 경우에, 애플리케이션(208) 또는 SDK(210)는 클라이언트 장치(125)의 운영 체제에 의해 제공되는 API(예를 들어, Android 운영 체제에서 getId())를 호출하여 콘텐츠 아이템 장치 식별자를 요청할 수 있다. 본 명세서에서 설명된 부정 완화 기술을 포함하지 않는 시스템에서, 콘텐츠 아이템 장치 식별자는 클라이언트 장치(125)의 저장소(206)에 저장된다. 애플리케이션(208) 또는 SDK(210)로부터 요청을 수신하면, 운영 체제는 단순히 저장소(스토리지)(206)로부터 콘텐츠 아이템 장치 식별자에 액세스하고 콘텐츠 아이템 장치 식별자를 애플리케이션(208) 또는 SDK(210)에 제공한다. 저장된 콘텐츠 아이템 장치 식별자는 무작위로 생성될 수 있고 사용자 또는 클라이언트 장치(125)에 고유할 수 있다. 콘텐츠 아이템 장치 식별자는 고정된 비트 길이(예: 16 바이트)를 가질 수도 있다. 콘텐츠 아이템 장치 식별자는 영숫자 기호를 포함하는 문자열 형식을 가질 수 있다. 위에서 언급한 바와 같이, 콘텐츠 아이템 장치 식별자는 사용자가 재설정할 수 있다. 콘텐츠 아이템 장치 식별자는 무작위로 생성된 값일 수 있으므로, 이는 콘텐츠 아이템 장치 식별자에 의존하는 트랜잭션(거래)을 부정 사용에 취약하게 만든다. 예를 들면, 애플리케이션(208) 또는 SDK(210)는 저장소(206)에 저장된 콘텐츠 아이템 장치 식별자와 다른 불법 콘텐츠 아이템 장치 식별자를 포함할 수 있다. 대조적으로, 콘텐츠 아이템 장치 식별자 생성기(202)는 클라이언트 장치(125)의 개인 키와 연관된 공개 키의 기능인 콘텐츠 아이템 장치 식별자를 생성하는 것과 같이, 특정 정보를 콘텐츠 아이템 장치 식별자에 포함시키는 것에 의존한다.
콘텐츠 아이템 장치 식별자 생성기(202)는 공개 키-개인 키 쌍(304)을 생성할 수 있다. 공개 키-개인 키 쌍은 예를 들어 RSA 암호화 알고리즘, 타원 곡선(elliptical curve) 알고리즘 또는 기타 비대칭 키 생성 기술과 같은 비대칭 키 기술을 기반으로 생성된 공개 키(Keypublic) 및 Keyprivate)를 포함할 수 있다. 공개 키-개인 키 쌍 생성의 한 양태는 콘텐츠 아이템 장치 식별자 생성기(202)가 키 쌍을 생성하기 위해 외부 인증 기관에 의존하지 않는다는 것이다. 인증 기관은 인증서의 명명된 주체가 공개 키의 소유권을 인증하는 디지털 인증서를 발급하는 엔터티이다. 대신 신뢰할 수 있는 파티(trusted party)가 필요하지 않는다. 콘텐츠 아이템 장치 식별자 생성기(202)에 의해 생성된 Keypublic 및 Keyprivate는 예를 들어 1028 또는 2048 비트(예를 들어, RSA 키 길이)와 같은 크기일 수 있지만, 임의의 다른 키 크기가 사용될 수 있다. 콘텐츠 아이템 장치 식별자 생성기(202)는 클라이언트 장치(125)에 있는 개인 키를 저장소(206) 또는 다른 보안 저장소에 안전하게 저장할 수 있다. 일부 실시 예에서, 개인 키에 대한 액세스는 증명 토큰 생성기(204)로 제한될 수 있다. 이러한 방식으로, 클라이언트 장치(125)에서 실행되는 애플리케이션은 개인 키에 부정하게 액세스하거나 수정할 수 없다.
콘텐츠 아이템 장치 식별자 생성기(202)는 공개 키를 암호화 해싱(해시)한다(306). 일부 예에서, 콘텐츠 아이템 장치 식별자 생성기(202)는 다양한 암호화 해시 기능을 이용하여 공개 키의 암호화 해시 값을 생성할 수 있다. 암호화 해시(crypto-hash) 함수는 데이터 또는 임의의 크기를 고정 크기의 비트 문자열에 매핑하는 수학적 알고리즘이다. 비 제한적인 예로서, 콘텐츠 아이템 장치 식별자 생성기(202)는 공개 키의 암호화 해시 값을 생성하기 위해 SHA512/256 알고리즘을 이용할 수 있다. 따라서 암호화 해시 값은 Fcrypto-hash(Keypublic)와 같을 수 있다.
콘텐츠 아이템 장치 식별자 생성기(202)는 암호화 해시 값을 절단(truncate)할 수 있다(308). 절단 함수(Ftruncate)는 부정 방지 기능이 없는 콘텐츠 아이템 장치 식별자의 길이와 동일한 비트 길이로 암호화 해시 값의 길이를 줄이는 기능을 포함할 수 있다. 콘텐츠 아이템 장치 식별자의 길이를 유지하면 부정 방지 콘텐츠 아이템 장치 식별자를 프로세싱하지 않는 시스템과 콘텐츠 아이템 장치 식별자의 역 호환성을 유지할 수 있다. 이 길이는 예를 들어 16 바이트와 같을 수 있다. 그러나 16 바이트 길이는 예일 뿐이며 모든 크기의 절단 함수를 사용할 수 있다. 일부 구현에서, Ftruncate 함수는 단순히 대상 길이를 초과하는 암호화 해시 값에서 바이트 수를 제거할 수 있다. 예를 들면, SHA256을 사용하여 생성된 암호화 해시 값의 길이는 32 바이트이다. Ftruncate 함수는 암호화 해시 값에서 16 바이트를 제거하여 대상(타겟) 길이인 16 바이트에 도달할 수 있다. 암호화-해시 값의 절단은 클라이언트 장치(125)에 대한 콘텐츠 아이템 장치 식별자로서 사용될 수 있다. 따라서, 콘텐츠 아이템 장치 식별자 생성기(202)는 함수: Ftruncate(Fcrypto-hash(Keypublic))를 사용하여 클라이언트 장치(125)에 대한 콘텐츠 아이템 장치 식별자를 생성할 수 있다. 콘텐츠 아이템 장치 식별자 생성기(202)는 생성된 콘텐츠 아이템 장치 식별자를 저장소(206)에 저장할 수 있으며, 계산 비용을 최소화하면서 향후 요청에 대해 저장된 콘텐츠 아이템 장치 식별자를 신속하게 제공할 수 있다. 일부 경우에, 콘텐츠 아이템 장치 식별자 생성기(202)는 사용자가 클라이언트 장치(125)에 콘텐츠 아이템 장치 식별자를 변경하도록 지시할 때마다 프로세스를 실행할 수 있다.
일부 실시 예에서, 콘텐츠 아이템 장치 식별자는 콘텐츠 아이템 장치 식별자 생성기(202)에 의해 생성된 공개 키-개인 키 쌍과 연관된 공개 키와 동일할 수 있다. 이러한 식별자는 공개 키 길이의 함수인 길이를 가질 수 있다. 이러한 일부 실시 예에서, 공개 키의 길이는 사용중인 비대칭 키 알고리즘과 선택한 키 길이를 기반으로 할 수 있다. 예를 들면, RSA 알고리즘의 일부 구현에 대한 공개 키의 길이는 2048 비트 또는 256 바이트일 수 있다. 콘텐츠 아이템 장치 식별자의 길이가 제한되지 않는 구현에서, 공개 키는 콘텐츠 아이템 장치 식별자로서 직접 사용될 수 있다. 일부 실시 예에서, 콘텐츠 아이템 장치 식별자는 암호화 기능에 기초하여 생성될 수 있으며, 그 일례는 위에서 설명된 해시 기능을 포함한다. 여기서도 결과 콘텐츠 아이템 장치 식별자의 길이는 암호화 함수(cryptographic function)의 출력 길이의 함수가 될 수 있다. 일부 실시 예에서, 콘텐츠 아이템 장치 식별자 생성기(202)는 원하는 길이(예를 들어, 16 바이트)를 얻기 위해 암호화 함수의 적용없이 공개 키 자체를 절단함으로써 콘텐츠 아이템 장치 식별자를 생성할 수 있다.
클라이언트 장치(125)는 위에서 설명된 바와 같이 콘텐츠 아이템 장치 식별자를 생성하는 것 외에도 증명 토큰을 생성할 수 있다. 도 4는 도 2에 도시된 증명 토큰 생성기(204)에 의해 생성된 증명 토큰(400)의 표현을 도시한다. 증명 토큰(400)은 다수의 연결된 부분을 포함할 수 있다. 예를 들면, 증명 토큰(400)은 공개 키 필드(402)(Keypublic), 증명 토큰 생성 타임 스탬프("time stamp") 필드(404), 메시지 페이로드 필드(406) 및 디지털 서명 필드(408)를 포함할 수 있다. 공개 키 필드(402)는 도2-3과 관련하여 설명된 바와 같이, 콘텐츠 아이템 장치 식별자 생성기(202)에 의해 생성된 공개 키(Keypublic)을 포함할 수 있다. 일부 예에서, 공개 키 필드(402)는 사용된 특정 키 생성 알고리즘의 공개 키의 크기에 기초한 비트 길이를 가질 수 있다. 예를 들면, RSA 알고리즘이 사용되는 일부 구현에서, 공개 키 필드(402)는 1024-2048 비트 이상일 수 있다. 타원 곡선 알고리즘이 키 쌍을 생성하는 데 사용되는 일부 다른 구현에서, 공개 키 필드(402)는 길이가 33 바이트일 수 있다.
타임 스탬프 필드(404)는 증명 토큰 생성기(204)에 의해 증명 토큰(400)이 생성된 시간의 타임 스탬프 'T'를 포함할 수 있다. 일부 구현에서, 증명 토큰 생성기(204)는 고해상도 타임 스탬프(high resolution time stamp)를 이용할 수 있다. 일부 구현에서, 증명 토큰 생성기(204)는 약 8 바이트 길이일 수 있고, 증명 토큰이 생성될 때 요일, 날짜 또는 시간(예를 들어, GMT 또는 일부 다른 표준 시간)과 같은 정보를 포함할 수 있다. 메시지 페이로드 필드(406)는 애플리케이션(208) 또는 SDK(210)에 의해 데이터 처리 시스템(110)으로 전송될 요청 또는 통지의 유형에 기초한 메시지 'M'을 포함할 수 있다. 예를 들면, 메시지 페이로드는 애플리케이션(208) 또는 SDK(210)가 데이터 처리 시스템(110)에 삭제 요청을 전송할 때 메시지 {operation: wipe-out}을 포함할 수 있다. 다른 요청 또는 통지에 대한 다른 예제 페이로드는 아래에서 자세히 설명한다. 메시지 페이로드 필드(406)의 크기는 메시지의 유형, 메시지의 파라미터 및 선택된 인코딩 방식에 기초하여 변할 수 있다.
디지털 서명 필드(408)는 증명 토큰의 다른 필드의 디지털 서명인 디지털 서명 'S'를 포함할 수 있다. 특히 S = 디지털 서명(Keypublic || T || M)이다. 증명 토큰 생성기(204)는 클라이언트 장치(125)(도 3, 304)에 의해 생성된 공개 키인 Keypublic을 사용하는 임의의 디지털 서명 생성 알고리즘을 사용하여 디지털 서명 S를 생성할 수 있다. 예를 들면, 증명 토큰 생성기(204)는 RSA 기반 서명 방식(예를 들어, RSA-PSS), 디지털 서명 알고리즘(DSA) 또는 그 타원 곡선 변형 ECDSA(Edwards-curve Digital Signature Algorithm), EIGamal 서명 방식과 같은 알고리즘을 사용하여 디지털 서명 S를 생성할 수 있다. 증명 토큰 생성기(204)는 임의의 순서로 배열된 공개 키, 타임 스탬프 및 메시지 페이로드의 디지털 서명을 생성할 수 있다. 즉, 공개 키, 타임 스탬프 및 메시지 페이로드의 상대적 위치가 달라질 수 있다. 증명 토큰 생성기(204)는 증명 토큰(400)이 클라이언트 장치(125)에 의해 생성되었고 전송 중에 변경되지 않았음을 수신인이 확인할 수 있도록 디지털 서명을 생성한다. 또한, 수신인(수신자)이 디지털 서명을 성공적으로 확인(검증)하면, 수신인은 증명 토큰에 포함된 공개 키가 클라이언트 장치(125)에 의해 생성되고 전송 중에 변경되지 않았음을 확신할 수 있다.
상술한 바와 같이, 콘텐츠 아이템 장치 식별자 생성기(202)는 클라이언트 장치(125)에 의해 생성된 동일한 공개 키를 사용하여 콘텐츠 아이템 장치 식별자를 생성한다. 따라서, 증명 토큰(400)에 포함된 디지털 서명 S의 확인은 또한 동일한 공개 키를 사용하여 생성된 콘텐츠 아이템 장치 식별자가 클라이언트 장치(125)에 의해 생성되고 전송 중에 변경되지 않았음을 확인한다. 수신인은 확인된 증명 토큰(400)에 포함된 공개 키를 암호화 해싱(해시) 및 절단하여 수신된 콘텐츠 아이템 장치 식별자를 확인할 수 있으며, 매칭하는 경우, 수신인은 증명 토큰(메시지 M 및 타임 스탬프 포함) 및 콘텐츠 아이템 장치 식별자가 동일한 클라이언트 장치(125)로부터 수신되고 전송 중에 변경되지 않았음을 확신할 수 있다. 일부 구현에서, 증명 토큰 생성기(204)는 각 필드의 시작 및 끝을 나타내는 증명 토큰에 추가 비트를 포함할 수 있다. 이는 데이터 처리 시스템(110)이 필드의 위치 및 내용을 식별하는 것을 도울 수 있다. 일부 구현에서, 각 필드의 크기는 미리 설정되고 고정될 수 있다. 일부 실시 예에서, 증명 토큰(400)은 또한 버전 필드를 포함할 수 있으며, 여기서 각 버전은 공개/개인 키 알고리즘 및 키 길이, 타임 스탬프 해상도, 디지털 서명 알고리즘, 인코딩 방식, 필드 크기 등의 미리 정의된 조합을 나타낼 수 있다.
데이터 처리 시스템(110)이 부정 방지 또는 탐지를 구현하지 않는 경우, 클라이언트 장치(125)는 도 4에 도시된 다른 필드를 포함하지 않고 메시지 필드를 생성할 수 있다. 그러나, 데이터 처리 시스템(110)이 부정 방지 또는 탐지를 구현하는 경우, 클라이언트 장치(125)는 도 4에 도시된 필드를 포함하는 메시지를 생성 하고, 도 3과 관련하여 위에서 설명된 암호화-해시(crypto-hash) 프로세스에 기초하여 콘텐츠 아이템 장치 식별자를 생성할 수 있다. 부정 방지 또는 부정 탐지를 구현하지 않는 시스템의 경우, 이러한 시스템은 시스템이 클라이언트 장치의 콘텐츠 아이템 장치 식별자로 정기적으로 사용하는 무작위로 생성된 16 바이트 값으로 콘텐츠 아이템 장치 식별자를 볼 수 있다는 점에 유의해야 한다.
위에서 설명된 방식으로 콘텐츠 아이템 장치 식별자 및 증명 토큰을 생성하는 것은 여러 가지 유리한 특징을 가질 수 있다. 예를 들면, 엔티티가 인터넷에서 부정적(fraudulently)으로 수집했을 수 있는 콘텐츠 아이템 장치 식별자와 공개 키의 절단된(잘린) 암호화 해시 값이 동일한 대체 공개 키-개인 키 쌍을 제3자가 식별하는 것이 불가능할 수 있다. 또한 제3자 엔티티가 인터넷에서 수집된 증명 토큰(400)에 내장된 공개 키에 대응하는 개인 키를 식별하는 것은 실행 불가능할 수 있다. 따라서 콘텐츠 아이템 장치 식별자 및 증명 토큰의 무결성과 신뢰성이 강할 수 있다.
데이터 처리 시스템(110)은 부정 방지(fraud resistant) 시스템을 구현하기 위해 위에서 생성된 콘텐츠 아이템 장치 식별자 및 증명 토큰(400)에 의존할 수 있다. 도 5는 부정 데이터 삭제(와이프 아웃)(wipe-out) 요청을 완화하기 위해 구현될 수 있는 예시적인 프로세스(500)의 흐름도를 도시한다. 예로서, 프로세스(500)는 도 1에 도시된 콘텐츠 요청 컴포넌트(130)에 의해 실행될 수 있다. 프로세스(500)는 클라이언트 장치(125)로부터 삭제 요청을 수신하는 것을 포함한다. 상술 한 바와 같이, 데이터 처리 시스템(110)은 데이터베이스(145)에 사용자 정보를 저장할 수 있다. 사용자는 데이터 처리 시스템(110)에 저장된 사용자의 장치와 연관된 데이터를 삭제하도록 데이터 처리 시스템(110)에 요청할 수 있다. 클라이언트 장치(125)는 데이터 처리 시스템(110)에 삭제 요청을 전송하기 위해 사용자로부터 입력을 수신할 수 있는 브라우저 또는 설치된 애플리케이션과 같은 애플리케이션을 포함할 수 있다. 애플리케이션은 클라이언트 장치(125)의 운영 체제에 콘텐츠 아이템 장치 식별자 및 삭제 요청에 대응하는 증명 토큰을 제공하도록 요청할 수 있다. 콘텐츠 아이템 장치 식별자 생성기(202)는 공개 키의 암호화 해시의 절단에 기초하여 생성된 콘텐츠 아이템 장치 식별자를 제공할 수 있다. 또한, 증명 토큰 생성기(204)는 애플리케이션에 증명 토큰(400)을 제공할 수 있다. 증명 토큰 생성기(204)는 증명 토큰이 삭제(와이프 아웃) 요청에 기초하여 생성되었음을 표시하기 위해 증명 토큰(400)의 메시지 페이로드 필드(406)를 채울(populate) 수 있다. 예를 들면, 증명 토큰 생성기(204)는 메시지 페이로드 필드(406)에 {operation: wipe-out target-domain: some-company.com}을 포함할 수 있으며, 여기서 "target-domain"은 삭제(wipe out)가 요청된 엔티티의 도메인 이름을 나타낼 수 있다. 증명 토큰 생성기(204)는 또한 생성된 토큰을 미리 결정된 시간 동안 저장소(206)에 저장할 수 있다. 애플리케이션(208) 또는 SDK(210)는 요청, 콘텐츠 아이템 장치 식별자 및 증명 토큰을 데이터 처리 시스템(110)에 전송할 수 있다.
프로세스(500)는 공개 키, 타임 스탬프, 메시지 및 디지털 서명을 결정하기 위해 증명 토큰(attestation token)을 파싱하는 단계(504)를 더 포함한다. 예를 들어, 콘텐츠 요청 컴포넌트(130)는 증명 토큰(400)의 각각의 필드의 값을 결정하기 위해 증명 토큰(400)을 파싱할 수 있다. 콘텐츠 요청 컴포넌트(130)는 증명 토큰(400)의 각 필드의 시작 및 종료(끝)를 나타내는 시작 및 종료 비트를 찾을 수 있거나, 요청 유형에 기초하여 필드 길이가 알려진 경우, 콘텐츠 요청 컴포넌트(130)는 각 필드의 값을 결정하기 위해 적절한 길이 비트 문자열(bit strings)을 페치할 수 있다.
프로세스(500)는 공개 키, 타임 스탬프 및 증명 토큰(400)으로부터의 메시지 페이로드를 사용하여 증명 토큰(400)에 포함된 디지털 서명을 확인하는 것을 포함한다(506). 콘텐츠 요청 컴포넌트(130)는 디지털 서명을 확인하기 위해 클라이언트 장치(125)에 의해 사용되는 동일한 디지털 서명 알고리즘을 이용할 수 있다. 콘텐츠 요청 컴포넌트(130)는 클라이언트 장치(125)에 의해 사용되는 것과 동일한 순서로 공개 키, 타임 스탬프 및 메시지를 연결(concatenate)할 수 있다. 필드 값의 특정 순서는 미리 결정될 수 있고, 증명 토큰 생성기(204) 및 데이터 처리 시스템(110)에 의해 미리 합의될 수 있다. 콘텐츠 요청 컴포넌트(130)는 증명 토큰(400)의 공개 키 필드(402)에 포함된 공개 키를 사용하여 디지털 서명을 확인할 수 있다.
디지털 서명이 확인되면, 콘텐츠 요청 컴포넌트(130)는 공개 키, 타임 스탬프 및 메시지 페이로드의 값이 부정 엔티티에 의해 변조(tampered)되지 않았음을 결정할 수 있다. 잠재적인 부정 엔티티는 인터넷을 통해 많은 수의 콘텐츠 아이템 장치 식별자를 수집할 수 있다. 그러나, 이들 엔티티는 클라이언트 장치(125)에 안전하게 저장된 개인 키에 액세스할 수 없을 수 있다. 따라서, 이들 엔티티는 합법적인 클라이언트 장치(125)로부터 수신된 증명 토큰(400)에 포함된 것과 동일한 디지털 서명을 갖는 메시지 및 삭제 요청을 생성할 수 없다. 따라서, 디지털 서명을 확인(검증)하는 것은 수신된 메시지가 실제로 콘텐츠 아이템 장치 식별자를 소유하고 전송 중에 변경되지 않는 장치에 의해 생성되었는지 확인하는 데 도움이 될 수 있다.
프로세스(500)는 증명 토큰에서 타임 스탬프를 확인하는 것을 포함한다(510). 타임 스탬프는 데이터 처리 시스템(110)에서 현재 시간과 비교할 수 있다. 타임 스탬프 값이 현재 시간 값의 합리적인 시간 범위 내에 있다면, 콘텐츠 요청 컴포넌트(130)는 타임 스탬프가 확인된 것으로 결정할 수 있다. 합리적인 시간 범위는 예를 들어, 토큰이 데이터 처리 시스템(110)에 의해 수신되는 증명 토큰의 생성후 추정된 시간에 의존할 수 있다. 현재 수신된 요청이 단순히 이전 요청의 재생인 경우 요청의 타임 스탬프는 적절한 시간 범위를 벗어난다. 그 결과, 콘텐츠 요청 컴포넌트(130)는 타임 스탬프가 확인되지 않았다고 결정할 수 있다. 또한, 콘텐츠 요청 컴포넌트(130)는, 수신된 콘텐츠 아이템 장치 식별자 및 타임 스탬프의 조합이 이전 콘텐츠 요청에 대한 요청 로그(170)에 저장된 조합과 매칭하는 경우, 요청이 단순히 이전 요청(들)의 재생이라고 결정할 수 있다.
프로세스(500)는 콘텐츠 아이템 장치 식별자를 생성하기 위해 증명 토큰에 포함된 공개 키를 암호화 해싱(해시)하는 단계(512)를 포함한다. 콘텐츠 요청 컴포넌트(130)가 디지털 서명 및 타임 스탬프 모두를 성공적으로 확인(검증)하면, 콘텐츠 요청 컴포넌트(130)는 증명 토큰(400)의 공개 키 필드(402)에 포함된 공개 키로부터 콘텐츠 아이템 장치 식별자를 생성할 수 있다. 상술한 바와 같이, 콘텐츠 아이템 장치 식별자는 클라이언트 장치(125)의 공개 키의 암호화 해시의 절단에 의해 생성될 수 있다. 콘텐츠 요청 컴포넌트(130)는 클라이언트 장치(125)에 의해 사용 된 것과 동일한 절단 및 암호화 해시 함수를 사용할 수 있고, 콘텐츠 아이템 장치 식별자를 생성할 수 있다. 일부 구현에서, 콘텐츠 요청 컴포넌트(130)는 또한 생성된 콘텐츠 아이템 장치 식별자가 요청과 함께 수신된 콘텐츠 아이템 장치 식별자와 매칭하는지 여부를 확인할 수 있다. 생성된 콘텐츠 아이템 장치 식별자가 수신된 콘텐츠 아이템 장치 식별자와 매칭하지 않는 경우, 콘텐츠 요청 컴포넌트(130)는 요청이 부정(fraudulent)이라고 결정할 수 있다. 생성된 콘텐츠 아이템 장치 식별자가 요청에서 수신된 콘텐츠 아이템 장치 식별자와 매칭하면, 콘텐츠 요청 컴포넌트(130)는 요청이 합법적인 요청이라고 결정할 수 있다.
프로세스(500)는 생성된 콘텐츠 아이템 장치 식별자와 연관된 데이터를 삭제하기 위해 데이터베이스에 액세스하는 것을 포함한다(514). 콘텐츠 요청 컴포넌트(130)는 삭제 요청을 처리(프로세싱)하기 위해 데이터베이스(145)에 액세스할 수 있다. 특히, 콘텐츠 요청 컴포넌트(130)는 데이터베이스(145)에 저장된 생성된 콘텐츠 아이템 장치 식별자와 연관된 임의의 사용자 정보(165)를 제거할 수 있다. 데이터 삭제 요청은 클라이언트 장치(125)의 콘텐츠 아이템 장치 식별자와 함께 데이터베이스(145)에 명령 또는 요청을 전송하는 것을 포함할 수 있다. 이어서, 데이터베이스(145)는 데이터베이스(145)의 콘텐츠 아이템 데이터 식별자와 연관된 데이터를 제거하기 위해 데이터 삭제(data deletion) 또는 삭제 프로세스(data deletion)를 시작한다.
프로세스(500)는 디지털 서명이 매칭하지 않거나 및/또는 타임 스탬프가 확인되지 않고 및/또는 계산된 콘텐츠 아이템 장치 식별자가 삭제 요청에 포함된 콘텐츠 아이템 장치 식별자와 매칭하지 않는 경우 요청을 무시하는 것을 포함한다(516). 콘텐츠 요청 컴포넌트(130)는 디지털 서명들이 매칭하지 않거나(단계 508에서), 타임 스탬프가 확인되지 않은 경우(단계 510에서) 또는 계산된 콘텐츠 아이템 장치 식별자가 삭제 요청에 포함된 콘텐츠 아이템 장치 식별자와 매칭하지 않는 경우 상기 수신된 요청이 부정 요청이라고 결정할 수 있다. 그 결과, 콘텐츠 요청 컴포넌트(130)는 수신된 요청을 무시할 수 있다. 이러한 방식으로, 부정 요청은 데이터 처리 시스템(110)에 의해 처리되지 않으며, 이에 따라 데이터 처리 시스템(110)의 성능에 대한 영향을 감소시킨다. 특히, 각각의 검출된 부정 요청에 대해, 콘텐츠 요청 컴포넌트(130)는 콘텐츠 아이템 장치 식별자와 연관된 데이터를 삭제(deleting)하거나 삭제(wiping out)하기 위해 데이터베이스(145)로 요청을 보내는 것을 방지한다. 데이터 처리 시스템(110)에 의해 수신된 잠재적으로 수백 또는 수천 개의 부정 요청에 대해 부정 삭제 요청 처리를 방지함으로써, 데이터 처리 시스템(110)은 합법적인 요청에 대한 성능을 개선하기 위해 부정 요청을 처리하는 데 사용할 프로세싱 또는 저장 자원을 활용할 수 있다.
도 6은 도 1에 도시된 데이터 처리 시스템(110)에 의해 수신된 부정 콘텐츠 아이템 요청을 완화하도록 구현될 수 있는 예시적인 프로세스(600)의 흐름도를 도시한다. 예로서, 프로세스(600)는 데이터 처리 시스템(110)의 콘텐츠 요청 컴포넌트(130)에 의해 실행될 수 있다. 프로세스(600)는 콘텐츠 아이템 요청을 수신하는 단계(602)를 포함한다. 콘텐츠 요청 컴포넌트(130)는 클라이언트 장치(125)에서 실행되는 애플리케이션으로부터 콘텐츠 아이템 요청을 수신할 수 있다. 예를 들면, 웹 브라우저는 클라이언트 장치(125) 상에 콘텐츠를 디스플레이할 수 있고, 디스플레이된 콘텐츠와 함께 렌더링될 콘텐츠 아이템을 제공하도록 데이터 처리 시스템(110)에 요청할 수 있다. 데이터 처리 시스템(110)에 요청을 보내기 전에, 애플리케이션(208)은, 수신될 때 데이터 처리 시스템(110)에 대한 요청에 포함될 수 있는 콘텐츠 아이템 장치 식별자를 위해 콘텐츠 아이템 장치 식별자 생성기(202)를 요청할 수 있다. 콘텐츠 아이템 장치 식별자 생성기(202)는 클라이언트 장치(125)의 저장소(206)에 저장된 콘텐츠 아이템 장치 식별자를 검색하고 콘텐츠 아이템 장치 식별자를 애플리케이션(208)에 제공할 수 있다. 일부 경우에, 콘텐츠 아이템 장치 식별자가 아직 생성되지 않았거나 저장소(206)에 저장되지 않은 경우, 콘텐츠 아이템 장치 식별자 생성기(202)는 공개 키-개인 키 쌍을 생성할 수 있고, 도 3과 관련하여 위에서 설명된 바와 같이 공개 키의 절단된 암호화 해시에 기초하여 콘텐츠 아이템 장치 식별자를 생성할 수 있다.
클라이언트 장치(125)는 또한 요청에 기초하여 증명 토큰을 생성할 수 있다. 예로서, 증명 토큰(400)은 도 4 내지 도 5와 관련하여 위에서 설명된 것과 유사한 방식으로 생성될 수 있다. 그러나, 증명 토큰 생성기(204)는 콘텐츠 아이템 요청에 기초하여 메시지 페이로드 필드(406)를 채울 수 있다. 예를 들면, 증명 토큰 생성기(204)는 증명 토큰이 콘텐츠 아이템 요청에 응답하여 생성되었음을 나타내는 특정 파라미터를 포함할 수 있고, 요청을 만드는 애플리케이션의 아이덴티티를 포함할 수 있다. 예로서, 증명 토큰(400)은 "{operation: "content item request", "apk name": <apk name>, "content item request parameters": <parameter identities and values>, "IP address": <IP address of client device>}"와 같은 페이로드 메시지를 생성할 수 있으며, 여기서 "operation" 변수는 동작(operation)이 콘텐츠 아이템 요청 동작임을 나타내며, "apk name"은 요청을 한 애플리케이션(208)의 이름을 나타내고, "content item request parameters"는 콘텐츠 아이템 요청과 연관된 파라미터를 포함할 수 있으며, "IP address"는 클라이언트 장치(125)의 IP 주소를 나타낸다. 일부 경우에, 운영 체제는 증명 토큰을 생성하기 위해 애플리케이션(208)에 의해 호출될 수 있는 API를 제공할 수 있다. 예를 들어, 클라이언트 장치(125)의 운영 체제는 "token SignContentItemRequest (content_item_request_parameters)"와 같은 서명을 갖는 API를 제공할 수 있다. 애플리케이션(208)은 상기 API를 호출할 수 있고, 이에 응답하여 증명 토큰 생성기(204)는 적절한 메시지 페이로드를 갖는 증명 토큰을 생성할 수 있다. 애플리케이션(208)은 콘텐츠 아이템 요청, 콘텐츠 아이템 장치 식별자 및 증명 토큰을 데이터 처리 시스템(110)으로 전송할 수 있다.
프로세스(600)는 공개 키, 타임 스탬프, 내장된 메시지 및 디지털 서명을 결정하기 위해 증명 토큰을 파싱하는 단계(604)를 포함한다. 프로세스 단계(604-608)는 프로세스 단계(604)에서 메시지 페이로드가 콘텐츠 아이템 요청에 대응하는 메시지를 포함한다는 점을 제외하고는, 도 5와 관련하여 위에서 설명된 단계(504-508)와 유사하다. 콘텐츠 요청 컴포넌트(130)는 증명 토큰(400)에 포함된 디지털 서명 및 타임 스탬프를 확인할 수 있다. 프로세스(600)는 메시지 페이로드에 포함된 파라미터가 콘텐츠 아이템 요청의 실제 파라미터와 매칭하는지 여부를 결정하는 것을 포함한다(616). 예를 들면, 콘텐츠 요청 컴포넌트(130)는 증명 토큰(400)의 메시지 페이로드(406)에서 "app name(앱 이름)"및 "IP address(IP 주소)"와 같은 파라미터의 값이 데이터 처리 시스템(110)에 의해 수신된 요청에서의 각각의 애플리케이션 이름 및 IP 주소와 매칭하는지 여부를 결정할 수 있다. 일부 실시 예에서, 암호화 해시는 실제 파라미터 값보다 작은 크기를 가질 수 있기 때문에, 메시지 페이로드는 파라미터 자체 대신 파라미터의 암호화 해시를 포함할 수 있다. 그러한 구체 예에서, 프로세스(600)는 메시지 페이로드에 포함된 파라미터를 결정하기 위해 파라미터 값의 암호화 해시를 해독할 수 있다. 매칭하는 파라미터와 확인 된 서명 및 타임 스탬프에 응답하여, 콘텐츠 요청 컴포넌트(130)는 요청에 포함된 공개 키의 암호화 해시 및 절단을 생성함으로써 요청에서 수신된 콘텐츠 아이템 장치 식별자를 확인할 수 있다(도 5, 단계 510과 유사 함).
생성된 콘텐츠 아이템 장치 식별자가 콘텐츠 아이템 요청에서 수신한 콘텐츠 아이템 장치 식별자와 매칭하는 경우, 콘텐츠 요청 컴포넌트(130)는 콘텐츠 아이템 요청이 부정(fraudulent)이 아니라고 결정하고, 콘텐츠 아이템을 선택하고 선택된 콘텐츠 아이템을 클라이언트 장치(125)로 전송하는 프로세스를 시작할 수 있다(612). 콘텐츠 아이템의 선택은 콘텐츠 아이템 장치 식별자, 입찰 금액, 키워드 등과 같은, 클라이언트 장치(125)로부터의 요청에서 수신된 정보의 적어도 일부를 포함하는 요청을 콘텐츠 선택 컴포넌트(135)로 전송하는 콘텐츠 요청 컴포넌트(130)를 포함할 수 있다. 콘텐츠 선택 컴포넌트(135)는 적어도 콘텐츠 아이템 장치 식별자, 입찰 금액 및 키워드에 기초하여 복수의 콘텐츠 아이템으로부터 콘텐츠 아이템의 선택을 허용하는 콘텐츠 아이템 선택 프로세스를 실행할 수 있다. 예로서, 콘텐츠 선택 컴포넌트(135)는 또한 콘텐츠 아이템 장치 식별자와 관련하여 저장된 임의의 사용자 정보를 결정하기 위해 사용자 정보(165)에 액세스할 수 있고, 콘텐츠 아이템을 선택하기 위해 사용자 정보를 사용할 수 있다. 데이터 처리 시스템(110)은 또한 생성된 콘텐츠 아이템 장치 식별자와 관련하여 콘텐츠 아이템의 아이덴티티를 생성하고 이를 요청 로그(170)에 저장할 수 있다. 일부 경우에, 콘텐츠 요청 컴포넌트(130)가 디지털 서명이 매칭하지 않거나 타임 스탬프가 확인되지 않았거나 파라미터가 매칭하지 않는다고 결정하는 경우, 콘텐츠 요청 컴포넌트(130)는 수신된 콘텐츠 아이템 요청이 부정이며 무시되어야한다고 결정할 수 있다(614). 이러한 방식으로, 데이터 처리 시스템(110)은 부정 콘텐츠 아이템 요청을 프로세싱하는 것을 억제할 수 있고, 이에 따라 시스템의 성능을 개선할 수 있다.
도 7은 도 1에 도시된 데이터 처리 시스템(110)에 의해 수신된 부정 애플리케이션 설치 통지를 완화하도록 구현될 수 있는 예시적인 프로세스(700)의 흐름도를 도시한다. 예로서, 프로세스(700)는 데이터 처리 시스템(110)의 속성 컴포넌트(150)에 의해 실행될 수 있다. 프로세스(700)는 클라이언트 장치(125)로부터 애플리케이션 설치 통지를 수신하는 것을 포함한다. 특히, 애플리케이션(208) 또는 SDK(210)는 속성 컴포넌트(150)에 애플리케이션 설치 통지를 전송할 수 있다. 예를 들면, 클라이언트 장치(125)의 사용자는 클라이언트 장치(125)에서 렌더링된 콘텐츠 아이템에 응답하여 클라이언트 장치에 애플리케이션을 다운로드할 수 있다. 애플리케이션을 다운로드한 후, 사용자는 클라이언트 장치(125)에 애플리케이션을 설치할 수 있다. 애플리케이션은 설치되는 애플리케이션에 응답하여 데이터 처리 시스템(110)의 속성 컴포넌트(150)에 설치 통지를 전송할 수 있는 속성 SDK(210)를 포함할 수 있다. 속성 SDK(210)는 콘텐츠 아이템 장치 식별자를 제공하기 위해 콘텐츠 아이템 장치 식별자 생성기(202)를 요청할 수 있다. 콘텐츠 아이템 장치 식별자 생성기(202)는 콘텐츠 아이템 장치 식별자를 생성하거나, 저장된 콘텐츠 아이템 장치 식별자를 속성 SDK(210)에 제공할 수 있으며, 여기서 콘텐츠 아이템 장치 식별자는 클라이언트 장치(125)의 공개 키를 사용하여 생성된다. 증명 토큰 생성기(204)는 애플리케이션 설치 통지를 나타내는 페이로드 메시지를 사용하여 증명 토큰을 생성한다. 예로서, 증명 토큰 생성기(204)는 "{operation : "app_install", "apk name": <apk name>}"을 포함하는 메시지 페이로드를 갖는 증명 토큰을 생성할 수 있으며, 여기서 "app install" 동작은 애플리케이션 설치 통지(알림)에 대한 콘텐츠 아이템 장치 식별자 요청에 대한 응답으로 토큰이 생성되었음을 나타내며, 'apk name'은 클라이언트 장치(125)에 설치된 애플리케이션의 이름을 나타낼 수 있다.
설치 통지는 데이터 처리 시스템이 클라이언트 장치(125)상의 애플리케이션의 설치를, 사용자가 애플리케이션을 설치하게 하는 콘텐츠 아이템에 귀속시키는 것을 허용할 수 있다. 이를 위해, 데이터 처리 시스템(110)은 또한 콘텐츠 아이템 요청이 수신된 클라이언트 장치의 콘텐츠 아이템 장치 식별자의 목록을 데이터베이스(145)에 저장할 수 있다. 예를 들면, 클라이언트 장치(125)에서 실행되는 브라우저 애플리케이션이 유효하고 그리고 부정이 없는 콘텐츠 아이템 요청을 데이터 처리 시스템(110)에 전송하면(도 6과 관련하여 위에서 설명된 바와 같이), 콘텐츠 요청 컴포넌트(130)는 클라이언트 장치(125)에서 렌더링하기 위해 콘텐츠 아이템을 브라우저 애플리케이션에 전송할 수 있다. 또한, 콘텐츠 요청 컴포넌트(130)는 콘텐츠 아이템이 클라이언트 장치(125)에 제공되었다는 표시와 함께 클라이언트 장치(125)의 콘텐츠 아이템 장치 식별자를 데이터베이스(145)에 저장할 수 있다.
프로세스(700)는 클라이언트 장치로부터 애플리케이션 설치 통지를 수신하는 것을 포함한다(702). 상술한 바와 같이, 클라이언트 장치(125)에 설치된 애플리케이션에 내장된 속성 SDK는 속성 컴포넌트(150)에 애플리케이션 설치 통지를 전송할 수 있다. 수신된 애플리케이션 설치 통지는 클라이언트 장치(125)의 콘텐츠 아이템 장치 식별자 및 증명 토큰 생성기(204)에 의해 생성된 증명 토큰을 포함할 수 있다. 증명 토큰은 위에서 설명한대로 애플리케이션 설치 알림에 해당하는 메시지 페이로드를 포함할 수 있다. 단계 704-706은 도 5와 관련하여 위에서 설명된 단계 504-506과 유사하다. 즉, 속성 컴포넌트(150)는 디지털 서명이 유효한지 확인(검증)할 수 있다.
프로세스(700)는 증명 토큰에 포함된 공개 키의 암호화 해시에 기초하여 콘텐츠 아이템 장치 식별자를 생성하는 것을 포함한다(708). 콘텐츠 아이템 장치 식별자를 생성하는 프로세스는 도 5에 도시된 단계 510과 관련하여 위에서 설명된 것과 유사할 수 있다. 프로세스는 생성된 콘텐츠 아이템 장치 식별자가 데이터베이스(145)에 저장된 콘텐츠 아이템 장치 식별자와 매칭하는지 여부를 결정하는 단계를 더 포함한다(710). 데이터베이스(145)에 저장된 콘텐츠 아이템 장치 식별자는 애플리케이션 설치와 연관된 콘텐츠 아이템이 이전에 클라이언트 장치(125)로 전송되었음을 나타낼 수 있다. 생성된 콘텐츠 아이템 장치 식별자가 저장된 콘텐츠 아이템 장치 식별자와 매칭하면, 속성 컴포넌트(150)는 애플리케이션 설치 통지가 유효한지 결정할 수 있다. 반면에, 속성 컴포넌트(150)가 디지털 서명이 유효하지 않다고 결정하거나, 생성된 콘텐츠 아이템 장치 식별자가 저장된 콘텐츠 아이템 장치 식별자와 매칭하지 않는다고 결정하거나, 생성된 콘텐츠 아이템 장치 식별자와 매칭하는 콘텐츠 아이템 장치 식별자가 데이터베이스에 저장되지 않으면, 속성 컴포넌트(150)는 수신된 애플리케이션 설치 통지가 유효하지 않다고 결정할 수 있다. 일부 구현에서, 속성 컴포넌트(150)는 설치 통지에 포함된 타임 스탬프를 확인하고 생성된 콘텐츠 아이템 장치 식별자가 설치 통지에서 수신된 콘텐츠 아이템 장치 식별자와 매칭하는지 확인하는 것에 추가로 기초하여 수신된 설치 통지가 유효한 것으로 결정할 수 있다. 모든 확인이 성공하지 않는 한, 속성 컴포넌트(150)는 수신된 설치 통지가 유효하지 않다고 결정할 수 있다. 이러한 방식으로, 데이터 처리 시스템(110)은 유효하지 않거나 부정 애플리케이션 설치 통지를 프로세싱하는 것을 회피할 수 있고, 그에 따라 성능을 개선 할 수 있다.
속성 컴포넌트(150)는 또한 부정 애플리케이션 설치 크레딧 클레임을 확인할 수 있다. 일부 구현에서, 속성 컴포넌트(150)가 클라이언트 장치(125)로부터 설치 통지를 수신할 때, 속성 컴포넌트(150)는 클라이언트 장치(125) 상에 애플리케이션의 설치를 초래한 콘텐츠 아이템 네트워크 중 어느 것이 콘텐츠 아이템 네트워크를 제공했는지를 결정하기 위해 다수의 콘텐츠 아이템 네트워크를 쿼리(질의)할 수 있다. 콘텐츠 아이템 네트워크는 애플리케이션 내에서 제공되는 콘텐츠 아이템에 메타 데이터를 포함할 수 있다. 예를 들어 메타 데이터에는 (1) 콘텐츠 아이템이 애플리케이션 설치 콘텐츠 아이템인지 여부, (2) 해당하는 경우 콘텐츠 아이템을 촉진(promote)하는 애플리케이션, (3) 콘텐츠 아이템과 연관되고 그리고 클라이언트 장치(125)에 애플리케이션을 설치함으로써 크레딧을 받을 수 있는 콘텐츠 아이템 네트워크의 아이덴티티(신원정보)(identity)에 대한 정보가 포함될 수 있다. 콘텐츠 아이템이 클라이언트 장치(125)에서 렌더링될 때 및/또는 사용자가 콘텐츠 아이템을 클릭할 때, 콘텐츠 아이템(콘텐츠 아이템을 렌더링 한 애플리케이션(208 내부의 SDK를 통해)은 (1) 콘텐츠 아이템이 렌더링되었는지 여부 또는 콘텐츠 아이템이 클릭되었는지 여부를 나타내는 이벤트 유형, (2) 콘텐츠 아이템에 포함된 메타데이터, (3) 노출 자체의 메타 데이터(예: 콘텐츠 아이템이 표시되는 디스플레이 화면의 슬롯 위치 포함)를 포함하는 메시지 페이로드 필드(406)를 갖는 증명 토큰을 생성하도록 증명 토큰 생성기(204)에 요청할 수 있다. 생성된 증명 토큰은 콘텐츠 아이템 SDK에 의해 콘텐츠 아이템과 연관된 콘텐츠 아이템 네트워크로 전송되어 콘텐츠 아이템이 렌더링되거나 클릭되었음을 나타낼 수 있다. 예를 들어, 증명 토큰은 렌더링 통지 또는 클릭 통지(알림)의 URL 파라미터로서 콘텐츠 아이템 네트워크에 전송될 수 있다.
속성 컴포넌트(150)는 애플리케이션 설치 통지를 수신 한 것에 응답하여 클라이언트 장치(125)상의 애플리케이션의 설치에 대한 클레임에 대한 쿼리를 다수의 콘텐츠 아이템 네트워크에 전송할 수 있다. 이에 응답하여, 속성 컴포넌트(150)는, 콘텐츠 아이템 네트워크가 위에서 언급한 렌더링 이벤트 또는 클릭 이벤트를 경험 한 각각의 콘텐츠 아이템으로부터 수신한 증명 토큰을 수신할 수 있다. 하나 이상의 쿼리된(queried) 콘텐츠 아이템 네트워크에서 증명 토큰을 수신한 후, 속성 컴포넌트(150)는 서명, 콘텐츠 아이템 장치 식별자, 타임 스탬프를 확인하고 그리고 메시지 페이로드의 정보를 애플리케이션 설치 통지의 메시지 페이로드에서 수신된 정보와 비교함으로써 증명 토큰을 확인(validate)할 수 있다. 속성 컴포넌트(150)는 속성 토큰이 유효한 콘텐츠 아이템 네트워크를 크레딧(credit)할 수 있다. 부정 콘텐츠 아이템 네트워크도 속성 토큰을 보낼 수 있다. 그러나, 이러한 속성 토큰은 속성 컴포넌트(150)에 의해 수행된 확인 결정에 실패 할 것이다.
일부 구현에서, 운영 체제, 특히 증명 토큰 생성기(204)는 증명 토큰이 콘텐츠 아이템 SDK에 제공되는 빈도를 제한할 수 있다. 일부 부정 시나리오에서, 부정 콘텐츠 아이템 네트워크의 콘텐츠 아이템은 증명 토큰 생성기(204)에 과도한 개수의 증명 토큰을 생성하도록 요청할 수 있다. 증명 토큰 생성기(204)는 콘텐츠 아이템 SDK에 제공되는 토큰의 개수(예를 들어, 초당 최대 하나의 토큰)를 제한함으로써 이러한 시나리오를 방지하도록 구성될 수 있다. 또한, 증명 토큰 생성기(204)는 토큰을 요청하는 콘텐츠 아이템이 클라이언트 장치의 디스플레이 화면에 실제로 표시되거나 사용자가 실제로 클릭한 경우에만 토큰을 생성할 수 있다. 이런 방법으로, 토큰에 대한 부정 요청을 줄일 수 있다. 경우에 따라 콘텐츠 아이템은 최대 하나의 애플리케이션을 촉진(promote)하도록 허용될 수 있다. 이 제한은 토큰에 대한 부정 요청을 더욱 줄일 수 있다. 일부 구현에서, 클라이언트 장치(125)의 운영 체제는 메타데이터를 확인하기 위해 장치 기계 학습 모델을 사용할 수 있다. 기계 학습 모델이 콘텐츠 아이템이 실제로 애플리케이션 설치 프로모션(promotion) 콘텐츠 아이템인지(예: 콘텐츠 아이템이 렌더링되는 슬롯의 스크린샷을 분석), 뿐만 아니라 콘텐츠 아이템이 프로모션한 애플리케이션의 아이덴티티(ID)인지 확인할 수 있는 경우, 부정 콘텐츠 아이템 네트워크가 애플리케이션 설치 크레딧을 요청할 수 있는 가능성을 더욱 줄일 수 있다.
일부 구현에서, 증명 토큰 생성기(204)는 JSON 형식으로 증명 토큰(400)을 생성할 수 있다. JSON 형식을 사용하여 증명 토큰(400)을 생성하면 증명 토큰(400)에 유연성과 확장성을 제공할 수 있다. 예를 들면, 데이터 처리 시스템(110)이 도메인-레벨(domain-level)별로 사용자에 대한 옵트-인 기능(opt-in capability)을 지원할 수 있는 경우, 증명 토큰 생성기(204)는 "{operation: "opt-in", Domain: "name_of_content_item_network", Opt-in-start: <start_date_time>, Opt-in-end: <end_date_time>}"와 같은 데이터를 갖는 메시지 페이로드 필드(406)를 갖는 증명 토큰을 생성할 수 있다. 마찬가지로 데이터 처리 시스템이 사용자에게 도메인별 옵트-아웃(opt-out) 기능을 지원하는 경우, 메시지 페이로드는 "{operation: "opt-out", Domain: "name_of_content_item_network"}"와 같은 데이터를 포함할 수 있다. 일부 구현에서, 증명 토큰 생성기(204)는 JSON 형식보다 상당히 작을 수 있는 바이너리 형식으로 증명 토큰(400)을 생성할 수 있다. 더 작은 증명 토큰은 일반적으로 생성, 전송 및 소비하는 데 더 적은 계산 능력, 네트워크 대역폭 및/또는 배터리 수명이 필요하다.
도 8은 일부 구현에 따라 본 명세서에서 설명된 임의의 컴퓨터 시스템(콘텐츠 요청 컴포넌트(130), 콘텐츠 선택 컴포넌트(135) 및 속성 컴포넌트(150)와 같은 컴포넌트와 시스템(110)을 포함함)을 구현하기 위해 사용될 수 있는 예시적인 컴퓨터 시스템(800)의 일반적인 아키텍처를 도시한다. 컴퓨터 시스템(800)은 디스플레이를 위해 네트워크(105)를 통해 정보를 제공하는데 사용될 수 있다. 도 8의 컴퓨터 시스템(800)은 메모리(825)에 통신적으로 연결된 하나 이상의 프로세서(820), 하나 이상의 통신 인터페이스(805), 및 하나 이상의 출력 장치(810)(예를 들어, 하나 이상의 디스플레이 유닛) 및 하나 이상의 입력 장치(815)를 포함한다. 프로세서(820)는 데이터 처리 시스템(110) 또는 콘텐츠 요청 컴포넌트(130) 및 콘텐츠 선택 컴포넌트(135)와 같은 시스템(110)의 다른 컴포넌트에 포함될 수 있다.
도 8의 컴퓨터 시스템(800)에서, 메모리(825)는 임의의 컴퓨터 판독 가능 저장 매체를 포함할 수 있으며, 각각의 시스템에 대해 여기에 설명된 다양한 기능을 구현하기 위한 프로세서 실행 가능 명령(명령어)과 같은 컴퓨터 명령어는 물론, 그에 의해 생성되거나 통신 인터페이스(들) 또는 입력 장치(들)를 통해 수신된 이와 관련된 임의의 데이터(있는 경우)를 저장할 수 있다. 도 1의 시스템(110)을 참조하면, 데이터 처리 시스템(110)은 특히 사용자 정보(165) 및 요청 로그(170)와 연관된 정보를 저장하기 위한 메모리(825)를 포함할 수 있다. 메모리(825)는 데이터베이스(145)를 포함할 수 있다. 도 8에 도시된 프로세서(들)(820)는 메모리(825)에 저장된 명령어를 실행하는 데 사용될 수 있으며, 그렇게 함으로써 명령어의 실행에 따라 프로세싱되거나 생성된 다양한 정보를 메모리로부터 읽거나 메모리에 기록할 수 있다.
도 8에 도시된 컴퓨터 시스템(800)의 프로세서(820)는 또한 명령어의 실행에 따라 다양한 정보를 송신 또는 수신하기 위해 통신 인터페이스(들)(805)에 통신적으로 결합되거나 통신 인터페이스(들)(805)를 제어할 수 있다. 예를 들면, 통신 인터페이스(들)(805)는 유선 또는 무선 네트워크, 버스 또는 다른 통신 수단에 결합 될 수 있고, 따라서 컴퓨터 시스템(800)이 다른 장치(예를 들어, 다른 컴퓨터 시스템)로 정보를 전송하거나 정보를 수신하게 할 수 있다. 도 8의 시스템에서 명시적으로 도시되지는 않았지만, 하나 이상의 통신 인터페이스는 시스템(800)의 컴포넌트들 간의 정보 흐름을 용이하게 한다. 일부 구현에서, 통신 인터페이스(들)는 컴퓨터 시스템(800)의 적어도 일부 양태들에 대한 액세스 포털로서 웹 사이트를 (예: 다양한 하드웨어 컴포넌트 또는 소프트웨어 컴포넌트를 통해) 제공하도록 구성될 수 있다. 예시적인 통신 인터페이스(805)는 사용자가 데이터 처리 시스템(800)과 통신할 수 있는 사용자 인터페이스(예를 들어, 웹 페이지)를 포함한다.
도 8에 도시된 컴퓨터 시스템(800)의 출력 장치(810)는 예를 들어, 명령어의 실행과 관련하여 다양한 정보를 보거나 다른 방식으로 인식할 수 있도록 제공될 수 있다. 입력 장치(들)(815)는, 예를 들어, 사용자가 명령어를 실행하는 동안 수동으로 조정하거나, 선택하거나, 데이터를 입력하거나, 다양한 방식으로 프로세서와 상호 작용할 수 있도록 제공될 수 있다. 여기에서 설명되는 다양한 시스템에 사용될 수 있는 일반적인 컴퓨터 시스템 아키텍처에 관한 추가 정보가 여기에서 더 제공된다.
본 명세서에서 기술된 발명 및 동작들의 구현예들은 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 하드웨어, 펌웨어, 컴퓨터 소프트웨어에서, 또는 디지털 전자 회로에서, 또는 그들 중 하나 이상의 조합들에서 구현될 수 있다. 본 명세서에 개시된 발명의 구현예들은 하나 이상의 컴퓨터 프로그램들, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 저장 매체 상에 인코딩된, 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로 구현될 수 있다. 프로그램 명령어들은 인위적으로 생성된 전파된 신호, 예를 들어 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성된 기계로-생성된 전기, 광학 또는 전자기 신호, 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터-판독가능 저장 장치, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 또는 이들에 포함될 수 있다. 또한 컴퓨터 저장 매체는 전파된 신호가 아닌 반면에, 컴퓨터 저장 매체는 인위적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트들 또는 매체(예를 들어, 다수의 CD들, 디스크들, 또는 다른 저장 장치들)일 수 있거나 또는 이들에 포함될 수 있다.
본 명세서에 개시된 구성들은 인터넷 연결을 보다 전통적인(예를 들어, 케이블, 위성, 공중(over-the-air) 또는 다른 신호들을 통해 수신된) 텔레비전 프로그래밍 소스들과 통합하도록 구성된 프로세싱 모듈을 포함할 수 있는 스마트 텔레비전 모듈(또는 연결된 텔레비전 모듈, 하이브리드 텔레비전 모듈 등) 상에 구현될 수 있다. 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나 셋톱 박스, 블루 레이 또는 다른 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비전 시스템 및 다른 동반(companion) 장치와 같은 개별 장치를 포함할 수 있다. 스마트 TV 모듈은 시청자들이 웹, 로컬 케이블 TV 채널, 위성 TV 채널 또는 로컬 하드 드라이브 상의 비디오, 영화, 사진 및 다른 콘텐츠를 검색하고 찾을 수 있도록 구성될 수 있다. 셋톱 박스(STB) 또는 셋톱 유닛(STU)은 튜너를 포함하고 텔레비전 세트 및 외부 신호 소스에 연결하여 신호를 이후에 TV 화면 또는 다른 디스플레이 장치에 디스플레이될 수 있는 콘텐츠 신호로 바꿀 수 있는 정보 기기 장치를 포함할 수 있다. 스마트 텔레비전 모듈은 웹 브라우저 및 복수의 스트리밍 매체 서비스들, 연결된 케이블 또는 위성 매체 소스, 다른 웹 "채널들”과 같은 복수의 상이한 애플리케이션들에 대한 아이콘들을 포함하는 홈 화면 또는 최상위 레벨 화면을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 또한 전자 프로그래밍 가이드를 사용자에게 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈에 대한 동반 어플리케이션은 사용 가능 프로그램에 관한 부가적인 정보를 사용자에게 제공하기 위해 모바일 컴퓨팅 장치 상에서 동작 가능하며, 이로써 사용자가 스마트 텔레비전 모듈 등을 제어할 수 있도록 한다. 대안적인 구현예들에서, 구성들은 랩탑 컴퓨터 또는 다른 개인용 컴퓨터, 스마트폰, 다른 모바일 폰, 핸드헬드 컴퓨터, 태블릿 PC, 또는 다른 컴퓨팅 장치 상에 구현될 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 장치들에 저장되거나 다른 소스들로부터 수신된 데이터에 대한 데이터 프로세싱 장치에 의해 수행되는 동작들로써 구현될 수 있다.
용어들 "데이터 프로세싱 장치", "데이터 프로세싱 시스템", "사용자 장치" 또는 "컴퓨팅 장치"는 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터, 시스템 온 칩(system on chip), 또는 다수의 것들, 또는 이들의 조합들을 포함하는, 데이터를 프로세싱하기 위한 모든 종류의 장치, 장치들 및 기계들을 아우른다(encompass). 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA 또는 ASIC을 포함할 수 있다. 상기 장치는, 하드웨어 이외에, 문제의 컴퓨터 프로그램을 위한 실행 환경을 제작하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 환경, 가상 기계, 또는 그들 중 하나 이상의 조합을 구성하는 코드, 를 또한 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 기반구조들과 같은, 다양한 상이한 컴퓨팅 모델 기반구조들을 실현할 수 있다. 콘텐츠 요청 컴포넌트(130), 콘텐츠 선택 컴포넌트(135), 속성 컴포넌트(150)는 하나 이상의 데이터 프로세싱 장치들, 컴퓨팅 장치들 또는 프로세서들을 포함하거나 공유할 수 있다.
컴퓨터 프로그램은(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트, 또는 코드로 또한 알려짐) 컴파일된 또는 해석된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램을 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서의 사용을 위해 적절한 다른 유닛을 포함하는 임의의 형태로 작성될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일과 대응할 수 있으나 반드시 그런 것은 아니다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들), 문제의 프로그램 전용의 단일 파일, 또는 다수의 조정된 파일들(예를 들어, 하나 이상의 모듈들, 하위 프로그램들, 또는 코드의 일부들을 저장하는 파일들)을 보유하는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 자리(site)에 위치되거나 또는 다수의 자리들에 분산되고 그리고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작시키고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 특수 목적 논리 회로, 예를 들어, FPGA 또는 ASIC에 의해 또한 수행될 수 있고 장치들은 특수 목적 논리 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은 예를 들어, 범용 및 특수 목적 마이크로프로세서들 둘 모두 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들과 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 장치들에 따라 액션들을 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치들(예를 들어, 자기, 광 자기 디스크들 또는 광학 디스크들)로부터 데이터를 수신하거나 저장 장치들로 데이터를 전송하기 위해 저장 장치들에 동작 가능하게 결합되거나 저장 장치들을 포함할 것이다. 그러나 컴퓨터에는 그러한 장치들이 필요 없다. 또한, 컴퓨터는 다른 장치, 예를 들어, 모바일 폰, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 장치(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적절한 장치들은 모든 형태의 비-휘발성 메모리, 매체, 메모리 장치들을 포함하며, 상기 메모리 장치들은 반도체 메모리 장치들 예를 들어, EPROM, EEPROM, 및 플래시 메모리 장치들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 분리성 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들이다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함(incorporate)될 수 있다.
사용자와의 인터랙션을 제공하기 위해, 본 명세서에서 기술된 발명의 구현예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 장치 예를 들어, 음극선관(CRT), 플라즈마 또는 액정 디스플레이(LCD) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 장치, 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 장치들이 사용자와의 인터랙션을 제공하는데 사용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백을 포함할 수 있다; 그리고 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 예를 들어, 웹브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 장치 상의 웹 브라우저에 웹 페이지들을 송신함으로써, 컴퓨터는 사용자에 의해 사용되는 장치로 문서들을 보내고 그로부터 문서들을 수신하여 사용자와 인터랙팅할 수 있다.
본 명세서에 기술된 발명의 구현예들은 컴퓨팅 시스템 내에서 구현될 수 있으며, 상기 컴퓨팅 시스템은 백 엔드 컴포넌트, 예를 들어 데이터 서버, 를 포함하거나 미들웨어 컴포넌트, 예를 들어 애플리케이션 서버, 를 포함하거나 프론트 엔드 컴포넌트, 예를 들어 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 사용자가 본 명세서에 기술된 발명의 구현예와 인터랙팅할 수 있는 웹 브라우저, 를 포함하거나 또는 하나 이상의 그러한 백 엔드, 미들웨어, 프론트 엔드 컴포넌트들의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신 예를 들어, 통신 네트워크, 의 임의의 형태 또는 매체에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크들(예를 들어, 알맞은 피어-투-피어 네트워크들)을 포함할 수 있다.
데이터 프로세싱(처리) 시스템(110)과 같은 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(110)은 하나 이상의 데이터 센터들 또는 서버 팜(farm)들에 하나 이상의 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있고 전형적으로 통신 네트워크를 통해 인터랙팅한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들에서 작동하고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해서 발생한다. 일부 구현예들에서, 서버는 데이터(예를 들어, HTML 페이지)를 클라이언트 장치에 전송한다(예를 들어, 클라이언트 장치와 인터랙팅하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위한 목적으로). 클라이언트 장치에서 생성된 데이터(예를 들어, 사용자 인터랙션의 결과)는 서버의 클라이언트 장치로부터 수신될 수 있다.
본 명세서는 많은 특정 구현예 세부 사항들을 포함하지만, 이들이 발명들의 범위 또는 청구될 수 있는 범위의 제한들로 해석되어서는 안되며, 오히려 본 명세서에 기술된 시스템들 및 방법들의 특정한 구현예들에 특정적인 구성들의 설명들로 해석되어야한다. 별도 구현예들의 컨텍스트에서 본 명세서에 기술된 일정 구성들은 단일 구현으로 조합하여 또한 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 기술된 다양한 구성들은 다수의 구현 구현예들에서 개별적으로 또는 임의의 적절한 하위조합으로 또한 구현될 수 있다. 또한, 구성들이 일정 조합들로 작용(acting)하는 것으로 기술되고 그렇게 초기에 청구될 수 있지만, 일부 경우들에서 청구된 조합으로부터의 하나 이상의 구성들은 조합으로부터 제거될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형으로 유도될 수 있다.
유사하게, 동작들이 특정한 순서로 도면들에 도시되어 있지만, 바람직한 결과들을 달성하기 위해 그 동작들이 도시된 순서 또는 순차적 인 순서로 수행되거나 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 일부 경우들에서, 청구항들에 기재된 액션들은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과들을 달성할 수 있다. 추가로, 첨부된 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 도시된 특정한 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다.
일정 상황들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 구현예들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 물에 함께 통합되거나 다수의 소프트웨어 물들로 패키징될 수 있음을 이해해야한다. 예를 들어, 콘텐츠 요청 컴포넌트(130) 및 콘텐츠 선택 컴포넌트(135)은 데이터 프로세싱 시스템(110)의 부분, 단일 모듈, 하나 이상의 프로세싱 모듈들을 갖는 논리 장치, 하나 이상의 서버들 또는 검색 엔진의 부분일 수 있다.
몇몇 예증적 구현예들을 기술하였지만, 이들은 예증적이며 제한적인 것은 아니며, 예시로써 제시되었다. 특히, 비록 본 명세서에 제시된 많은 예시들이 방법 행동들 또는 시스템 엘리먼트들의 특정 조합들을 포함하지만, 그러한 행동들 및 엘리먼트들은 동일한 목적들을 달성하기 위해 다른 방식들로 조합될 수 있다. 하나의 구현예와 관련해서만 설명된 행동들, 엘리먼트들 및 구성들은 다른 구현예들 또는 구현예들의 유사한 역할로부터 배제되도록 의도되지 않는다.
본 명세서에 사용된 어구 및 전문용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. 본 명세서의 "포함하는(including)" "포함하는(comprising)" "가지는(having)" "내포하는(containing)" "포함하는(involving)" "특징으로 하는(characterized by)" "특징으로 하는(characterized in that)" 및 그 변형들의 사용은, 이후에 배타적으로 열거된 항목들로 구성된 대체 구현예들 뿐만 아니라 이후에 열거된 항목들, 그 등가물, 및 추가 항목들을 아우를 것이다. 일 구현예에서, 본 명세서에 기술된 시스템들 및 방법들은 기술된 컴포넌트들, 엘리먼트들 또는 행동들 중 하나 또는 하나 이상의 각 조합, 또는 모두로 구성된다.
단수로 지칭된 본 명세서의 시스템들 및 방법들의 구현예들 또는 엘리먼트들 또는 행동들에 대한 임의의 참조들은 복수의 이들 엘리먼트들을 포함하는 구현예들을 또한 포함할 수 있으며, 임의의 구현예 또는 엘리먼트 또는 행동에 대한 임의의 복수의 참조들은 단일 엘리먼트만을 포함하는 구현예들을 또한 포함할 수 있다. 단수 또는 복수 형태의 참조들은 현재 개시된 시스템들 또는 방법들, 그들의 컴포넌트들, 행동들 또는 엘리먼트들을 단일 또는 복수 구성들로 제한하도록 의도된 것이 아니다. 정보, 행동 또는 엘리먼트에 기초하고 있는 임의의 행동 또는 엘리먼트에 대한 참조들은 행동 또는 엘리먼트가 임의의 정보, 행동 또는 엘리먼트에 적어도 부분적으로 기초한 구현예들을 포함할 수 있다.
본 명세서에 개시된 임의의 구현예는 임의의 다른 구현예와 조합될 수 있고, "구현예", "일부 구현예들", "대안적 구현예", "다양한 구현예", "일 구현예"를 지칭하며, 그와 같은 것들은 반드시 상호 배타적인 것은 아니며 구현예와 관련하여 기술된 특정한 구성, 구조 또는 특성은 적어도 하나의 구현예 또는 실시예에 포함될 수 있음을 표시하도록 의도되었다. 본 명세서에 사용된 이러한 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현예는 본 명세서에 개시된 양태들 및 구현예들과 매칭(consistent with)하는 임의의 방식으로 다른 구현예와, 포괄적으로 또는 배타적으로, 조합될 수 있다.
"또는"에 대한 참조들은 포괄적인 것으로 해석될 수 있어, "또는"을 사용하여 기술된 임의의 용어들은 기술된 용어들 중 임의의 단일, 하나 이상, 및 모두를 표시할 수 있다.
도면들, 상세한 설명 또는 임의의 청구항의 기법적 구성들이 참조 부호들 뒤에 있는 경우, 도면들, 상세한 설명 및 청구항들의 명료성을 높이기 위해 상기 참조 부호들이 포함되었다. 따라서, 참조 부호들 또는 그것들의 부재는 임의의 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템들 및 방법들은 그 특성들로부터 벗어남 없이 다른 특정 형태들로 구현될 수 있다. 본 명세서에서 제공되는 예시들이 정보 리소스들의 콘텐츠의 디스플레이를 제어하는 것에 관한 것이지만, 본 명세서에 기술된 시스템들 및 방법들은 다른 환경들에 적용될 수 있다. 전술한 구현예들은 기술된 시스템들 및 방법들의 제한이기보다는 예증적인 것이다. 본 명세서에 기술된 시스템들 및 방법들의 범위는 따라서, 전술한 설명보다는, 첨부된 청구항들에 의해 표시되며, 청구항들의 의미 및 균등범위 내에서의 변화들이 그 안에 포함된다.

Claims (20)

  1. 콘텐츠 아이템 동작을 프로세싱하기 위한 방법으로서,
    데이터 처리 시스템에 의해, 컴퓨팅 장치로부터 콘텐츠 아이템 통신을 수신하는 단계 -상기 콘텐츠 아이템 통신은 제1 콘텐츠 아이템 장치 식별자 및 컴퓨팅 장치와 연관된 공개 키, 증명(attestation) 토큰 타임 스탬프, 메시지 페이로드 및 디지털 서명을 포함하는 증명 토큰을 포함함-;
    데이터 처리 시스템에 의해, 공개 키, 상기 타임 스탬프 및 메시지 페이로드를 사용하여 상기 디지털 서명을 확인하는 단계;
    데이터 처리 시스템에 의해, 상기 공개 키의 암호화 해시(crypto-hash)에 기초하여 제2 콘텐츠 아이템 장치 식별자를 생성하는 단계;
    데이터 처리 시스템에 의해, 제2 콘텐츠 아이템 장치 식별자가 제1 콘텐츠 아이템 장치 식별자와 매칭한다고 결정하는 단계; 그리고
    데이터 처리 시스템에 의해, 상기 디지털 서명의 확인에 응답하고 그리고 제2 콘텐츠 아이템 장치 식별자가 제1 콘텐츠 아이템 장치 식별자와 매칭한다는 결정에 응답하여, 상기 메시지 페이로드에 기초한 콘텐츠 아이템 통신을 프로세싱하는 단계를 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  2. 제1항에 있어서, 상기 디지털 서명을 확인하는 단계는 상기 증명 토큰 타임 스탬프가 미리 결정된 시간적 값 범위 내의 값을 갖는 것으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  3. 제1항에 있어서, 상기 방법은, 상기 공개 키의 암호화 해시를 절단(truncating)하는 단계를 더 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  4. 제1항에 있어서, 상기 콘텐츠 아이템 통신을 프로세싱하는 단계는 상기 콘텐츠 아이템 통신의 메시지 페이로드가 삭제(wipe-out) 요청을 포함한다고 결정하는 단계를 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  5. 제4항에 있어서, 상기 방법은,
    상기 메시지 페이로드가 상기 삭제 요청을 포함한다고 결정하는 것에 응답하여 상기 제1 콘텐츠 아이템 장치 식별자와 연관된 데이터를 제거하는 단계를 더 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  6. 제1항에 있어서, 상기 콘텐츠 아이템 통신을 프로세싱하는 단계는 상기 콘텐츠 아이템 통신의 메시지 페이로드가 콘텐츠 아이템 요청 및 콘텐츠 아이템에 대한 요청과 연관된 파라미터 세트를 포함한다고 결정하는 단계를 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  7. 제6항에 있어서, 상기 방법은,
    상기 데이터 처리 시스템에 의해, 콘텐츠 아이템을 선택하고,
    상기 메시지 페이로드가 상기 콘텐츠 아이템 요청을 포함한다는 결정에 응답하여 상기 수신된 콘텐츠 아이템 통신과 연관된 파티(party)에 상기 콘텐츠 아이템을 전송하는 단계를 더 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  8. 제1항에 있어서, 상기 콘텐츠 아이템 통신을 프로세싱하는 단계는 상기 콘텐츠 아이템 통신의 메시지 페이로드가 클라이언트 장치에 애플리케이션이 설치되었음을 나타내는 애플리케이션 설치 통지를 포함한다고 결정하는 단계를 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  9. 제8항에 있어서, 상기 방법은,
    상기 데이터 처리 시스템에 의해, 상기 메시지 페이로드가 상기 애플리케이션 설치 통지를 포함한다고 결정하는 것에 응답하여 상기 콘텐츠 아이템과 연관된 크레딧 값을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  10. 제1항에 있어서, 콘텐츠 아이템 통신을 수신하는 단계는 16 바이트의 길이를 갖는 상기 제1 콘텐츠 아이템 장치 식별자를 수신하는 단계를 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하기 위한 방법.
  11. 콘텐츠 아이템 동작을 프로세싱하는 시스템으로서,
    동작들을 수행하도록 구성된 하나 이상의 프로세서를 포함하며, 상기 동작들은,
    컴퓨팅 장치로부터 콘텐츠 아이템 통신을 수신하는 동작 -상기 콘텐츠 아이템 통신은 제1 콘텐츠 아이템 장치 식별자 및 컴퓨팅 장치와 연관된 공개 키, 증명 토큰 타임 스탬프, 메시지 페이로드 및 디지털 서명을 포함하는 증명 토큰을 포함함-;
    공개 키, 상기 타임 스탬프 및 메시지 페이로드를 사용하여 디지털 서명을 확인하는 동작;
    공개 키의 암호화 해시에 기초하여 제2 콘텐츠 아이템 장치 식별자를 생성하는 동작;
    제2 콘텐츠 아이템 장치 식별자가 제1 콘텐츠 아이템 장치 식별자와 매칭한다고 결정하는 동작; 그리고
    상기 디지털 서명의 확인에 응답하고 그리고 제2 콘텐츠 아이템 장치 식별자가 제1 콘텐츠 아이템 장치 식별자와 매칭한다는 결정에 응답하여, 상기 메시지 페이로드에 기초한 콘텐츠 아이템 통신을 프로세싱하는 동작을 포함하는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  12. 제11항에 있어서, 상기 하나 이상의 프로세서는,
    디지털 서명을 확인하고 그리고 상기 증명 토큰 타임 스탬프가 미리 결정된 시간 값 범위 내의 값을 갖는 것으로 결정하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  13. 제11항에 있어서, 상기 하나 이상의 프로세서는,
    공개 키의 암호화 해시의 절단(truncation)에 기초하여 제2 콘텐츠 아이템 장치 식별자를 생성하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  14. 제11항에 있어서, 상기 하나 이상의 프로세서는,
    콘텐츠 아이템 통신의 메시지 페이로드가 삭제 요청을 포함하는 것으로 결정함으로써 콘텐츠 아이템 통신을 프로세싱하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  15. 제14항에 있어서, 상기 하나 이상의 프로세서는,
    메시지 페이로드가 삭제 요청을 포함한다는 결정에 응답하여 제1 콘텐츠 아이템 장치 식별자와 연관된 데이터를 제거하도록 더 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  16. 제11항에 있어서, 상기 하나 이상의 프로세서는,
    콘텐츠 아이템 통신의 메시지 페이로드가 콘텐츠 아이템 요청 및 콘텐츠 아이템에 대한 요청과 연관된 파라미터 세트를 포함하는 것으로 결정함으로써 콘텐츠 아이템 통신을 프로세싱하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  17. 제16항에 있어서, 상기 하나 이상의 프로세서는,
    상기 파라미터 세트에 기초하여, 메시지 페이로드가 콘텐츠 아이템 요청을 포함한다는 결정에 응답하여 콘텐츠 아이템을 선택하고 상기 선택된 콘텐츠 아이템을 상기 수신된 콘텐츠 아이템 통신과 연관된 파티(party)에 전송하도록 더 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  18. 제11항에 있어서, 상기 하나 이상의 프로세서는,
    상기 콘텐츠 아이템 통신의 메시지 페이로드가 클라이언트 장치에 애플리케이션이 설치되었음을 나타내는 애플리케이션 설치 통지를 포함하는 것으로 결정함으로써 상기 콘텐츠 아이템 통신을 프로세싱하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  19. 제18항에 있어서, 상기 하나 이상의 프로세서는,
    콘텐츠 아이템 통신이 애플리케이션 설치 통지를 포함한다고 결정하는 것에 응답하여 콘텐츠 아이템 통신과 연관된 크레딧 값을 업데이트하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
  20. 제11항에 있어서, 상기 하나 이상의 프로세서는,
    16 바이트의 길이를 갖는 제1 콘텐츠 아이템 장치 식별자를 포함하는 콘텐츠 아이템 통신을 수신하도록 구성되는 것을 특징으로 하는 콘텐츠 아이템 동작을 프로세싱하는 시스템.
KR1020207029756A 2019-05-13 2020-05-07 부정 방지 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법 KR102491500B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962847016P 2019-05-13 2019-05-13
US62/847,016 2019-05-13
US16/536,174 US20200366754A1 (en) 2019-05-13 2019-08-08 Systems and methods for processing content item operations based on fraud resistent device identifiers
US16/536,174 2019-08-08
PCT/US2020/031899 WO2020231743A1 (en) 2019-05-13 2020-05-07 Systems and methods for processing content item operations based on fraud resistent device identifiers systems and methods for processing content item operations based on fraud resistent device identifiers

Publications (2)

Publication Number Publication Date
KR20200131889A true KR20200131889A (ko) 2020-11-24
KR102491500B1 KR102491500B1 (ko) 2023-01-27

Family

ID=73231370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029756A KR102491500B1 (ko) 2019-05-13 2020-05-07 부정 방지 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US20200366754A1 (ko)
EP (1) EP3766230B1 (ko)
JP (1) JP6982201B1 (ko)
KR (1) KR102491500B1 (ko)
CN (1) CN112236975B (ko)
WO (1) WO2020231743A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023043456A1 (en) * 2021-09-17 2023-03-23 Intel Corporation Ipu based operators

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695546B2 (en) * 2019-05-30 2023-07-04 AdsWizz Inc. Decoupled custom event system based on ephemeral tokens for enabling secure custom services on a digital audio stream
US11489675B1 (en) * 2019-07-12 2022-11-01 Allscripts Software, Llc Computing system for electronic message tamper-roofing
US11526859B1 (en) 2019-11-12 2022-12-13 Bottomline Technologies, Sarl Cash flow forecasting using a bottoms-up machine learning approach
US11532040B2 (en) 2019-11-12 2022-12-20 Bottomline Technologies Sarl International cash management software using machine learning
US11704671B2 (en) * 2020-04-02 2023-07-18 Bottomline Technologies Limited Financial messaging transformation-as-a-service
US11553054B2 (en) * 2020-04-30 2023-01-10 The Nielsen Company (Us), Llc Measurement of internet media consumption
US11509480B2 (en) * 2020-06-30 2022-11-22 Vmware, Inc. Remote attestation based on runtime configuration
US20220337626A1 (en) * 2021-04-16 2022-10-20 Korea Advanced Institute Of Science And Technology Protocol dialect scheme for security in system connected to network
US11930116B2 (en) * 2021-08-03 2024-03-12 Adobe Inc. Securely communicating service status in a distributed network environment
IL285887B1 (en) * 2021-08-26 2024-03-01 Google Llc Secure attribution using anonymous signals
CN118043812A (zh) * 2022-05-06 2024-05-14 谷歌有限责任公司 隐私保护和安全应用程序安装归因

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010048903A (ko) * 1999-11-30 2001-06-15 이계철 자바 보안기술을 이용한 실시간 전자경매 방법
KR20040054608A (ko) * 2001-02-09 2004-06-25 야후! 인크. 컴퓨터 네트워크를 통해 디지털화된 콘텐트를 검출하고검증하는 시스템 및 방법
KR20100002530A (ko) * 2008-06-30 2010-01-07 (주)아이티네이드 유에스비 포트용 저장매체의 보안 관리 시스템 및 방법
KR20130025465A (ko) * 2011-09-02 2013-03-12 이윤로 어플리케이션 설치 및 사용 상태 알림 시스템 및 방법
KR20150054828A (ko) * 2012-09-10 2015-05-20 마이크로소프트 코포레이션 동기화 통신에서의 서버 인증서 에러의 보안 처리 기법
US20150200934A1 (en) * 2010-06-30 2015-07-16 Google Inc. Computing device integrity verification
KR20160095201A (ko) * 2013-12-31 2016-08-10 구글 인코포레이티드 컴퓨팅 디바이스에 대한 액세스 제어를 제공하기 위한 방법들, 시스템들 및 매체들
KR20160119803A (ko) * 2014-02-11 2016-10-14 이이노베이션즈 홀딩즈 피티이 리미티드 인증 시스템 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002252034A1 (en) * 2001-02-22 2002-09-12 Bea Systems, Inc. System and method for message encryption and signing in a transaction processing system
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US20100122082A1 (en) * 2008-10-08 2010-05-13 Leiwen Deng User identity validation system and method
US8528067B2 (en) * 2010-01-12 2013-09-03 Visa International Service Association Anytime validation for verification tokens
KR102208113B1 (ko) * 2013-02-28 2021-01-27 엘지전자 주식회사 멀티미디어 커머스 서비스 처리 장치 및 방법
US9717004B2 (en) * 2015-03-17 2017-07-25 Qualcomm Incorporated Apparatus and method for sponsored connectivity to wireless networks using application-specific network access credentials
SE541713C2 (en) * 2017-05-03 2019-12-03 Enigio Time Ab Method and system for registering digital documents
CN108322469B (zh) * 2018-02-05 2019-07-19 北京百度网讯科技有限公司 信息处理系统、方法和装置
US11218324B2 (en) * 2018-04-05 2022-01-04 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010048903A (ko) * 1999-11-30 2001-06-15 이계철 자바 보안기술을 이용한 실시간 전자경매 방법
KR20040054608A (ko) * 2001-02-09 2004-06-25 야후! 인크. 컴퓨터 네트워크를 통해 디지털화된 콘텐트를 검출하고검증하는 시스템 및 방법
KR20100002530A (ko) * 2008-06-30 2010-01-07 (주)아이티네이드 유에스비 포트용 저장매체의 보안 관리 시스템 및 방법
US20150200934A1 (en) * 2010-06-30 2015-07-16 Google Inc. Computing device integrity verification
KR20130025465A (ko) * 2011-09-02 2013-03-12 이윤로 어플리케이션 설치 및 사용 상태 알림 시스템 및 방법
KR20150054828A (ko) * 2012-09-10 2015-05-20 마이크로소프트 코포레이션 동기화 통신에서의 서버 인증서 에러의 보안 처리 기법
KR20160095201A (ko) * 2013-12-31 2016-08-10 구글 인코포레이티드 컴퓨팅 디바이스에 대한 액세스 제어를 제공하기 위한 방법들, 시스템들 및 매체들
KR20160119803A (ko) * 2014-02-11 2016-10-14 이이노베이션즈 홀딩즈 피티이 리미티드 인증 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023043456A1 (en) * 2021-09-17 2023-03-23 Intel Corporation Ipu based operators

Also Published As

Publication number Publication date
US20200366754A1 (en) 2020-11-19
WO2020231743A1 (en) 2020-11-19
CN112236975B (zh) 2024-03-29
EP3766230B1 (en) 2021-04-07
CN112236975A (zh) 2021-01-15
JP2022501668A (ja) 2022-01-06
EP3766230A1 (en) 2021-01-20
JP6982201B1 (ja) 2021-12-17
KR102491500B1 (ko) 2023-01-27

Similar Documents

Publication Publication Date Title
KR102491500B1 (ko) 부정 방지 장치 식별자에 기반한 콘텐츠 아이템 동작을 프로세싱하는 시스템 및 방법
US20210385086A1 (en) Systems and methods for distributed verification of online identity
WO2015168287A1 (en) Authentication mechanism
CN109891907B (zh) 使用可信平台模块验证在客户端设备处对视频内容的渲染
US20210350021A1 (en) Verifiable consent for privacy protection
US9270666B2 (en) Verification of user communication addresses
US11949688B2 (en) Securing browser cookies
US10756898B2 (en) Content delivery verification
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
US20240095364A1 (en) Privacy-preserving and secure application install attribution
KR102324802B1 (ko) 컨텐츠 요청 데이터의 암호화를 위한 시스템 및 방법
CN116348874B (zh) 使用鉴证令牌的安全归因的方法、系统以及介质
US11423438B2 (en) Real-time online asset display campaign auditing system
EP4049165A1 (en) Cross-domain frequency filters for fraud detection

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant