KR20190094235A - 커스텀 디지털 컴포넌트 - Google Patents

커스텀 디지털 컴포넌트 Download PDF

Info

Publication number
KR20190094235A
KR20190094235A KR1020197020617A KR20197020617A KR20190094235A KR 20190094235 A KR20190094235 A KR 20190094235A KR 1020197020617 A KR1020197020617 A KR 1020197020617A KR 20197020617 A KR20197020617 A KR 20197020617A KR 20190094235 A KR20190094235 A KR 20190094235A
Authority
KR
South Korea
Prior art keywords
digital component
request
sdk
application
client device
Prior art date
Application number
KR1020197020617A
Other languages
English (en)
Other versions
KR102270749B1 (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 구글 엘엘씨
Priority to KR1020217019277A priority Critical patent/KR102393818B1/ko
Publication of KR20190094235A publication Critical patent/KR20190094235A/ko
Application granted granted Critical
Publication of KR102270749B1 publication Critical patent/KR102270749B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • H04L67/20
    • 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/53Network services using third party service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

디지털 컴포넌트에 대한 요청을 프로세싱하기 위한, 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램을 포함하는 방법들, 시스템들 및 장치들이 제공된다. 상기 방법은 클라이언트 디바이스에 설치된 제 1 SDK에 의해 생성된 디지털 컴포넌트에 대한 요청을 클라이언트 디바이스로부터 수신하는 단계, 상기 요청의 데이터 필드들을 서버들에 의해 조사하는 단계, 상기 서버들에 의해 실시간 요청들을 생성하는 단계, 및 상기 서버들에 의해 각각의 실시간 요청을 제3자 디지털 컴포넌트 제공자에게 전송하는 단계를 포함한다. 또한, 상기 방법은 상기 서버들에 의해 상기 제3자 디지털 컴포넌트 제공자로부터 상기 실시간 요청에 대한 응답을 수신하는 단계, 상기 서버들에 의해 상기 디지털 컴포넌트에 대한 요청에 응답하여 상기 클라이언트 디바이스로 송신하도록 특정 응답을 선택하는 단계, 상기 서버들에 의해 상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송하는 단계를 더 포함한다.

Description

커스텀 디지털 컴포넌트
본 발명은 디지털 컴포넌트를 프로세싱하는 것에 관한 발명이다.
인터넷은 전세계 사용자 간의 정보 교환을 용이하게 한다. 이러한 정보 교환은 디지털 컴포넌트와 같은 콘텐츠에 대한 요청들의 프로세싱을 가능하게 한다. 일부 상황들에서, 콘텐츠는 클라이언트 디바이스에서 렌더링하기 위해 요청 소스(demand sources)에 의해 호출될 수 있다.
일부 구현예들에서, 본 발명의 방법은 클라이언트 디바이스에서 디지털 컴포넌트를 렌더링하기 위한 요청을 프로세싱하는 것을 포함한다. 예를 들어, 상기 방법은 클라이언트 디바이스에 설치된 소프트웨어 개발 키트(SDK)로부터 디지털 컴포넌트에 대한 요청을 수신하는 단계를 포함할 수 있다. SDK는 클라이언트 디바이스의 특정 플랫폼용 어플리케이션들을 만들 수 있는 소프트웨어 개발 툴들의 세트일 수 있다. SDK는 특정 플랫폼을 위한 어플리케이션을 만들 수 있는 소스 코드, 개발 툴들, 에뮬레이터, 라이브러리 기타 등등을 포함할 수 있다. 상기 요청은 하나 이상의 서버들에 의해 검사되어, 클라이언트 디바이스에서 상기 요청을 개시한 어플리케이션을 식별할 수 있다. 서버들은 SDK로부터의 디지털 컴포넌트에 대한 요청에 기초하여 실시간 요청들을 생성하도록 구성될 수 있다. 실시간 요청들 각각은, 식별된 어플리케이션에 설치된 다른 SDK들의 세트와 같은 정보를 포함할 수 있다. 실시간 요청은 클라이언트 디바이스로부터 초기 요청을 수신한 이후의 특정 시간 기간 내에서 제3자 디지털 컴포넌트 제공자들에게 전송될 수 있다. 실시간 요청들은 직렬로, 병렬로 또는 이들의 임의의 조합으로, 제3자 디지털 컴포넌트 제공자들에게 전송될 수 있다. 또한, 초기 요청은 디지털 컴포넌트가 클라이언트 디바이스에 제공될 필요가 있는 시간 분량을 나타낼 수 있다. 디지털 컴포넌트에 대한 실시간 요청들을 제3자 디지털 컴포넌트 제공자들에게 전송하는 것에 응답하여, 서버들은 제3자 디지털 컴포넌트 제공자들로부터 응답들을 수신할 수 있다. 또한, 클라이언트 디바이스로부터의 초기 요청을 충족시키기 위하여, 상기 서버들은 클라이언트 디바이스로 전송되는 특정 응답을 선택할 수 있다. 특정 양상들에서, 특정 응답은 디지털 컴포넌트 뿐만 아니라 디지털 컴포넌트를 렌더링하기 위해 클라이언트 디바이스에 설치된 특정 SDK를 지정하는 명령들을 포함할 수 있다.
본 명세서에 서술된 본 발명의 주제의 혁신적인 양상들 중 하나는 방법으로 구현되며, 상기 방법은, 클라이언트 디바이스에 설치된 제 1 소프트웨어 개발 키트(Software Development Kit: SDK)에 의해 생성된 디지털 컴포넌트에 대한 요청을 상기 클라이언트 디바이스로부터 수신하는 단계; 하나 이상의 커스텀 디지털 컴포넌트 서버들에 의해서 상기 요청의 하나 이상의 데이터 필드들을 검사하는 단계로서, 상기 하나 이상의 데이터 필드 내에서, 상기 클라이언트 디바이스에서 상기 요청을 개시한 어플리케이션을 지정하는(specifying) 어플리케이션 데이터를 식별하는 단계를 포함하고; 상기 하나 이상의 서버들에 의해서, 다수의 실시간 요청들을 생성하는 단계로서, 설치된 SDK들에 대한 어플리케이션 데이터의 데이터 구조 내에서의 매핑에 기초하여, 상기 클라이언트 디바이스에서 요청을 개시한 상기 어플리케이션에 설치된 SDK들의 세트를 식별하는 단계, 및 상기 클라이언트 디바이스에서 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 지정하는 데이터를 각각의 실시간 요청에 포함시키는 단계를 포함하고; 상기 하나 이상의 서버들에 의해서, 네트워크를 통해 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하는 단계; 상기 하나 이상의 서버들에 의해서, 상기 다수의 실시간 요청들에 대한 응답들의 세트를 상기 대응하는 제3자 디지털 컴포넌트 제공자들로부터 수신하는 단계; 상기 하나 이상의 서버들에 의해서, 상기 디지털 컴포넌트에 대한 요청에 응답하여 상기 클라이언트 디바이스로 전송하도록, 상기 응답들의 세트로부터 특정 응답을 선택하는 단계; 및 상기 하나 이상의 서버들에 의해서, 상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송하는 단계를 포함한다.
이러한 양상 및 다른 양상들의 다른 구현예들은, 컴퓨터 저장 디바이스에 인코딩된 방법들의 동작들을 수행하도록 구성된 대응 시스템, 디바이스 및 컴퓨터 프로그램을 포함한다.
구현예들은 각각 다음과 같은 하나 이상의 특징들을 임의로 포함할 수 있다. 예를 들어, 상기 방법은 하나 이상의 데이터 필드 내에서, 클라이언트 디바이스에 설치된 제 2 SDK에 의해 생성된 암호화된 데이터를 식별하는 단계를 포함할 수 있으며 그리고 상기 다수의 실시간 요청들을 생성할 때에, 상기 암호화된 데이터는 상기 실시간 요청들 중 특정 실시간 요청 내에 포함되되, 상기 특정 실시간 요청은 상기 제3자 디지털 컴포넌트 제공자들 중 상기 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증된 특정 제3자 디지털 컴포넌트 제공자에게 전송된다. 이 경우, 상기 방법은 또한 암호화된 데이터를 해독함이 없이 상기 특정 실시간 요청을 상기 특정 제3자 디지털 컴포넌트 제공자에게 전송하는 단계를 포함할 수 있다.
상기 방법은 또한, 설치된 SDK들에 대한 어플리케이션 데이터의 매핑에 액세스하는 단계, 상기 맵핑 내에서, 상기 어플리케이션 데이터에서 지정된 어플리케이션 및 상기 요청을 개시한 어플리케이션의 버전을 식별하는 단계, 및 상기 어플리케이션 및 상기 요청을 개시한 어플리케이션의 버전에 매핑되는 SDK들의 세트를 식별하는 단계를 포함한다. 이 경우, 상기 방법은 데이터 구조에 저장된 응답 로그로부터, 상기 어플리케이션의 버전에 의해 개시되었던 이전의 요청에 응답하여 상기 어플리케이션의 버전에 이전에 제공되었던 이전의 응답들을 식별하는 단계, 상기 이전의 응답들로부터, 상기 이전의 응답들에서 지정되었던 다수의 상이한 SDK들의 세트를 식별하는 단계, 및 상기 다수의 상이한 SDK들의 세트 내의 각각의 SDK를, 데이터 구조에서 상기 어플리케이션의 버전에 매핑하는 단계를 더 포함할 수 있다.
소정 양상들에서, 상기 방법은, 특정 응답에 포함된 디지털 컴포넌트를 렌더링하도록 어플리케이션 프로그래밍 인터페이스(API) 호출을 지정하는 명령들을 전송하는 단계를 포함할 수 있다. 또한, 상기 방법은, 하나 이상의 서버들에 의해서, 네트워크를 통해 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하는 단계를 포함하고 이는, 암호화된 데이터를 해독함이 없이 상기 특정 실시간 요청을 상기 특정 제3자 디지털 컴포넌트 제공자에게 전송하는 단계를 포함한다. 일부 양상들에서, 상기 방법은 커스텀 디지털 컴포넌트를 프리젠테이션하는 것에 대한 콘트롤(control)을 특정 SDK에 제공하는 단계를 포함한다.
또한, 상기 방법은 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하는 단계를 포함하되 이는, 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증되지 않은 제3자 디지털 컴포넌트 제공자들에게 상기 특정 실시간 요청을 전송하지 않는 단계를 포함하며, 다수의 실시간 요청들에 대한 응답들의 세트를 대응하는 제3자 디지털 컴포넌트 제공자들로부터 수신하는 단계를 포함하되, 상기 제 1 SDK 이외의 특정 SDK를 지정하는 소정 응답을 수신하는 단계를 포함하고, 상기 특정 SDK는 상기 소정 응답에 포함된 특정 디지털 컴포넌트를 렌더링하는데 필요하며, 그리고 상기 특정 응답으로서 상기 소정 응답을 전송하는 단계를 포함하며, 상기 특정 SDK는 상기 소정 응답에 포함된 특정 디지털 컴포넌트를 렌더링하는데 필요하다.
본 발명의 유리한 구현예들은 다음과 같은 특징들 중 하나 이상을 포함할 수 있다. 본 방법에 따르면, 실시간 입찰 방법들에서 하나의 SDK를 사용하는 것과는 달리, 디지털 컴포넌트 요청들이 서로 다른 네트워크들에 병렬로 전송될 수 있으므로, 클라이언트 측 중재와 관련된 대기 시간을 줄이는 동시에 다수의 SDK들이 지원되는 것을 보장할 수 있다. 다시 말하면, 클라이언트 디바이스의 어플리케이션이 디지털 컴포넌트에 대한 요청을 발행하는 경우, 복수의 상이한 SDK들과 관련된 제3자 디지털 컴포넌트 제공자들로부터 상기 요청에 대한 응답들을 수신하는 것이 바람직할 수 있다. 따라서, 본 발명의 방법들을 사용하면, 클라이언트 측 중재의 속성들을 유지하면서도, 실시간 입찰의 장점들을 활용하여 디지털 컴포넌트에 대한 요청들을 프로세싱할 수 있다. 또한, SDK들을 사용하여 클라이언트 디바이스들에서 커스터마이즈된 신호들을 수집할 수 있으며 그리고 커스텀 디지털 컴포넌트와 같은 디지털 컴포넌트에 대한 병렬 호출들로 실시간 입찰을 통해 거래하면서 커스텀 디지털 컴포넌트를 렌더링할 수 있다. 특히, 어플리케이션이 미디어 콘텐츠에 대한 요청을 발행하는 경우, 상이한 SDK들과 관련된 제3자들로부터 디지털 컴포넌트의 공급을 위한 오퍼(offer)를 수신하는 것이 바람직하다.
본 발명의 하나 이상의 실시예들의 세부 사항은 첨부된 도면 및 아래의 설명에 서술된다. 본 발명의 다른 특징들 및 장점들은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 커스텀 디지털 컴포넌트들에 대한 요청들이 프로세싱되는 예시적인 환경의 블록도이다.
도 2는 커스텀 디지털 컴포넌트들을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 요청의 데이터 필드를 검사하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 실시간 요청을 생성하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 디지털 컴포넌트 제공자와의 예시적인 통신을 나타내는 블록도이다.
도 6은 예시적인 컴퓨팅 시스템의 블록도이다.
다양한 도면들에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
본 명세서에는 디지털 컴포넌트에 대한 요청을 프로세싱하고 네트워크를 통해 요청을 수행하는 특정 응답을 선택하는데 사용되는 방법, 시스템 및 디바이스가 개시된다. 아래에서 더 자세히 설명하는 것처럼 제 1 SDK는 디지털 컴포넌트에 대한 요청을 생성할 수 있다. 상기 요청은 서버에서 수신될 수 있으며 그리고 요청에 대응하는 어플리케이션 뿐만 아니라 상기 어플리케이션에서의 디지털 컴포넌트 렌더링을 지원할 수 있는 SDK 목록을 식별하도록 검사될 수 있다. 요청과 요청에서 추출된 정보는 서버에 의해 실시간 요청들을 생성하는데 사용될 수 있다. 실시간 요청들은 복수의 제3자 디지털 컴포넌트 제공자들에게 전송될 수 있다. 서버는 제3자 디지털 컴포넌트 제공자들로부터 실시간 요청들에 대한 응답을 수신할 수 있다. 응답들은 특정 SDK에 의한 커스텀 렌더링을 요구하는 커스텀 디지털 컴포넌트들과 같은 디지털 컴포넌트들을 포함할 수 있다. 응답은 서버에 의해 수신될 수 있으며, 서버는 초기 요청을 수행하기 위해 응답들 중 특정 응답을 선택하도록 구성될 수 있다. 본 일례에서, 선택된 응답은, 선택된 응답과 연관된 특정 디지털 컴포넌트를 특정 SDK에 의해서 렌더링하기 위해 서버로부터 클라이언트 디바이스로 전송될 수 있다.
본 문서에서 사용되는 바와 같이, "디지털 컴포넌트" 라는 용어는 디지털 콘텐츠 또는 디지털 정보의 개별 유닛을 지칭한다(예를 들면, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트, 또는 콘텐츠의 다른 유닛). 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일로서 또는 파일 모음으로서 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있으며 광고 정보를 포함할 수 있는바 따라서, 광고는 디지털 컴포넌트의 일 유형이다. 일반적으로 디지털 컴포넌트는 단일 제공자 또는 소스(예컨대, 광고주, 발행자 또는 기타 컴포넌트 제공자)에 의해 정의되거나 제공된다. 디지털 컴포넌트는 디지털 컴포넌트 제공자와는 다른 전자 문서 제공자가 제공하는 전자 문서에 통합될 수 있다(예컨대, 제시될 수 있다).
도 1은 커스텀 디지털 컴포넌트들을 위한 요청들이 프로세싱되는 예시적인 환경(100)의 블록도이다. 예시적인 환경(100)은 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 또는 이들의 임의의 조합과 같은 네트워크(102)를 포함한다. 네트워크(102)는 클라이언트 디바이스들(106), 디지털 컴포넌트 서버들(110) 및 디지털 컴포넌트 제공자들(114)을 연결한다. 예시적인 환경(100)은 많은 서로 다른 클라이언트 디바이스들(106), 디지털 컴포넌트 서버들(110) 및 디지털 컴포넌트 제공자들(114)을 포함할 수 있다.
클라이언트 디바이스는 네트워크(102)를 통해 디지털 컴포넌트와 같은 리소스들을 요청 및 수신할 수 있는 전자 디바이스이다. 클라이언트 디바이스(106)의 일례들은 개인용 컴퓨터, 이동 통신 디바이스, 및 네트워크(102)를 통해 데이터를 전송 및 수신할 수 있는 다른 디바이스들을 포함한다. 일반적으로, 클라이언트 디바이스(106)는 네트워크(102)를 통한 데이터의 송수신을 용이하게 하는 웹 브라우저와 같은 사용자 어플리케이션을 포함하지만, 클라이언트 디바이스(106)에 의해 실행되는 네이티브 어플리케이션들도 또한 네트워크(102)를 통한 데이터의 송수신을 용이하게 할 수 있다.
클라이언트 디바이스들(106)은 클라이언트 디바이스들(106) 각각에 설치된 복수의 SDK들을 포함할 수 있다. SDK들은 클라이언트 디바이스들(106)의 특정 플랫폼을 위해 어플리케이션들을 생성할 수 있는 소프트웨어 개발 툴들의 세트에 각각 대응할 수 있다. SDK들은 특정 플랫폼용 어플리케이션을 제작하기 위한 소스 코드, 개발 툴, 에뮬레이터, 라이브러리, 기타 등등을 포함할 수 있다. SDK는 네트워크(102)를 통해 디지털 컴포넌트 서버(110)로 전송되는 디지털 컴포넌트(112)에 대한 요청을 생성하는데 사용될 수 있다. 예를 들어, 클라이언트 디바이스(106)는 클라이언트 디바이스(106)에 설치된 제 1 SDK를 사용하여 커스텀 디지털 컴포넌트에 대한 요청(112)을 생성할 수 있다.
상기 요청(112)은, 특징들을 설명하는 데이터, 가령 디지털 컴포넌트 제공자(114)의 이름(혹은 네트워크 위치), 요청 디바이스(예컨대, 클라이언트 디바이스 106)의 이름(혹은 네트워크 위치), 및/또는 요청(112)에 응답하여 제공될 디지털 컴포넌트를 선택하기 위해 디지털 컴포넌트 서버(110)가 사용할 수 있는 정보 등을 포함할 수 있다. 상기 요청(112)은 클라이언트 디바이스(106)에 의해서 네트워크(102)(예를 들어, 통신 네트워크)를 통해 하나 이상의 디지털 컴포넌트 서버(110)들로 전송된다. 상기 요청은 다른 특징들을 설명하는 데이터, 가령 요청(112)을 개시한 어플리케이션을 나타내는 어플리케이션 데이터뿐만 아니라, 클라이언트 디바이스(106)에 설치되어있는 SDK들의 집합 등을 또한 포함할 수 있다.
하나 이상의 디지털 컴포넌트 서버를 포함하는 디지털 컴포넌트 서버(110)들은, 요청들(112)을 검사함에 응답하여 및/또는 요청(112)에 포함된 정보를 사용함에 응답하여, 디지털 컴포넌트들에 대한 다수의 실시간 요청들(117)을 생성한다. 예를 들어, 디지털 컴포넌트 서버(110)는 상기 요청(112)의 하나 이상의 데이터 필드들을 검사할 수 있다. 데이터 필드들이 검사되어, 클라이언트 디바이스(106)에서 요청(112)을 개시한 특정 어플리케이션을 명시하는 어플리케이션 데이터를 식별할 수 있다. 또한, 디지털 컴포넌트 서버(110)는 데이터 필드들로부터 추출된 정보를 사용하여 다수의 실시간 요청들(117)을 생성하도록 구성될 수 있다.
일부 실시예에서, 디지털 컴포넌트 서버(110)는 클라이언트 디바이스(106)에서 상기 요청(112)을 개시한, 특정 어플리케이션에 설치된 SDK들의 세트를 식별하도록 구성될 수 있다. 구체적으로, 디지털 컴포넌트 서버(110)는 데이터 구조에서 설치된 SDK에 대한 어플리케이션 데이터의 맵핑에 기초하여 SDK들의 세트를 식별할 수 있다. 예를 들어, 디지털 컴포넌트 서버(110)는 특정 SDK에 대해 어플리케이션 데이터를 조직화하는 데이터 구조에 기초하여, 설치된 SDK 세트를 식별하도록 구성될 수 있다. 특히, 데이터 구조는 클라이언트 디바이스(106)에서 다양한 어플리케이션들에 설치된 SDK들에 대한 어플리케이션 데이터의 맵핑을 저장할 수 있다. 따라서, 디지털 컴포넌트 서버(110)는 요청(112)에 기초하여 어플리케이션 데이터를 식별하므로, 디지털 컴포넌트 서버(110)는 룩업 테이블과 같은 데이터 구조를 사용하여 어플리케이션 데이터를 소정의 SDK에 맵핑할 수 있다.
어플리케이션 데이터가 소정의 SD들K에 맵핑되므로, 디지털 컴포넌트 서버(110)는 어떤 SDK들이 클라이언트 디바이스(106)에서 하나 이상의 어플리케이션들에 설치되었는지를 식별할 수 있다. 또한, 디지털 컴포넌트 서버(110)는 실시간 요청들(117)에서 설치된 SDK들의 식별된 세트(117)를 명시하는 데이터를 포함하도록 구성될 수 있다. 일부 양상들에서, 데이터 구조는 초기 요청(112) 이전에 정의된 소정의 데이터 구조일 수 있으며 그리고 디지털 컴포넌트 서버(110)에 의해 액세스될 수 있다. 다른 양상들에서, 디지털 컴포넌트 서버(110)는 특정 SDK 및 어플리케이션에 대한 어플리케이션 데이터의 매핑을 사용하여 데이터 구조를 생성하도록 구성될 수 있다.
도 1에 도시된 바와 같이, 디지털 컴포넌트 서버(110)는 또한, 네트워크(102)를 통해 디지털 컴포넌트 제공자(114)에게 실시간 요청(117)을 전송하도록 구성될 수 있다. 예를 들어, 디지털 컴포넌트 서버들(110)은 3개의 실시간 요청들(117a-c)을 생성하고 그리고 이들 실시간 요청들(117a-c) 각각을 특정 디지털 컴포넌트 제공자(114a-c)에게 병렬로 전송하도록 구성될 수 있다. 본 일례에서, 제 1 실시간 요청(117a)은 제 1 디지털 컴포넌트 제공자(114a)로 전송될 수 있으며, 제 2 실시간 요청(117b)은 제 2 디지털 컴포넌트 제공자(114b)로 전송될 수 있으며, 제 3 실시간 요청(117c)은 제 3 디지털 컴포넌트 제공자(114c)에게 제공될 수 있다. 특정 양상에서, 하나의 실시간 요청(117)이 다수의 서로 다른 디지털 컴포넌트 제공자(114)들로 전송될 수 있다. 예를 들어, 제 1 실시간 요청(117a)이 제 1 디지털 컴포넌트 제공자(114a), 제 2 디지털 컴포넌트 제공자(114b), 및 제 3 디지털 컴포넌트 제공자(114c)에게 병렬로 제공될 수 있다. 이러한 일례에서, 제 1 실시간 요청(117a)과 같은 하나의 실시간 요청(117)이 다수의 디지털 컴포넌트 제공자들(114)로 전송되어, 디지털 컴포넌트를 렌더링하기 위해 디지털 컴포넌트 제공자들(114) 각각으로부터 입찰들을 수신할 수 있다. 초기 요청(117)은 소정의 시간 내에 응답을 제공할 것을 요구할 수 있다. 디지털 컴포넌트 제공자들(114) 각각은 특정 디지털 컴포넌트에 대한 입찰을 포함하는, 요청(117)에 대한 응답(118)을 제공할 수 있다. 따라서, 응답(118)에 대한 미리결정된 시간 기간 내에서 가장 높은 입찰자와 연관된 디지털 컴포넌트를 신속하게 수신하기 위한 노력의 일환으로서, 하나의 요청(117)이 다수의 디지털 컴포넌트 제공자들(114)에 제공될 수 있다. 소정 양상에서, 요청(117)에 대한 응답(118)은 선택적으로 또는 부가적으로 렌더링될 디지털 컴포넌트, 가령, 디지털 컴포넌트 마크업 또는 디지털 컴포넌트 마크업에 대한 링크 등을 포함할 수 있다.
디지털 컴포넌트 제공자(114)는, 제3자 디지털 컴포넌트 제공자와 같은 하나 이상의 디지털 컴포넌트 제공자들을 포함할 수 있다. 디지털 컴포넌트 제공자들(114a-c)은 실시간 요청들(117)에 대한 응답들(118a-c)을 생성하도록 구성될 수 있다. 응답들(118)은 클라이언트 디바이스(106)에서 렌더링하기 위한 디지털 컴포넌트를 포함할 수 있다. 일부 양상들에서, 응답들(118)은 클라이언트 디바이스(106)에서 렌더링하기 위한 하나 이상의 잠재적인 디지털 컴포넌트들을 포함할 수 있다. 응답(118)의 디지털 컴포넌트는 또한 커스텀 디지털 컴포넌트를 포함할 수 있다. 커스텀 디지털 컴포넌트들(예를 들어, 커스텀 광고들)은 클라이언트 디바이스(106)에 설치된 특정 SDK들에 의해 렌더링될 수 있는 커스텀 크리에이티브 포맷들을 포함할 수 있다. 이와 같이, 응답(118)에 포함된 커스텀 디지털 컴포넌트는, 오리지널 요청(112)을 생성한 제 1 SDK가 아닌 다른 SDK에 의해서 커스텀 디지털 컴포넌트가 렌더링될 필요가 있음을 나타낼 수 있다.
상기 응답(118)은 네트워크(102)를 통해 디지털 컴포넌트 서버(110)에 의해 수신될 수 있다. 디지털 컴포넌트 서버(110)는 디지털 컴포넌트에 대한 요청(112)을 충족시키기 위해 특정 응답을 선택하도록 구성될 수 있다. 예를 들어, 디지털 컴포넌트 서버(110)는 실시간 요청들(117a-c)에 응답하는 3 개의 응답들(118a-c)을 수신할 수 있다. 3 개의 응답들(118a-c) 중 특정 응답이 디지털 컴포넌트 서버들(110)에 의해 선택되어, 디지털 컴포넌트에 대한 초기 요청(112)에 응답하여 클라이언트 디바이스(106)로 전송될 수 있다. 일부 양상들에서는, 응답들(118a-c) 각각과 연관된 입찰들에 기초하여 디지털 컴포넌트 서버(110)에 의해서 특정 응답이 선택될 수 있다. 다른 양상들에서는, 상기 요청(112)의 특정한 디지털 컴포넌트 피처들에 기초하여 특정 응답이 선택될 수 있다.
선택된 응답은 네트워크(102)를 통해 디지털 컴포넌트 서버(110)로부터 클라이언트 디바이스(106)로 전송될 수 있다. 선택된 응답(response)은 디지털 컴포넌트에 대한 초기 요청(112)에 대한 답변(reply)(120)으로서 전송될 수 있다. 소정의 양상들에서, 상기 답변(120)은 제 1 SDK가 아니라, 답변(120)에 포함된 디지털 컴포넌트를 렌더링하는데 필요한, 클라이언트 디바이스(106)에 설치된 SDK를 특정하는 명령들을 포함할 수 있다.
일부 양상들에서, 클라이언트 디바이스(106)는 답변(120)에 포함된 명령들을 실행한다. 예를 들어, 상기 명령들은 클라이언트 디바이스(106)에 의해 사용되어, 답변(120)에 포함된 특정 디지털 컴포넌트의 렌더링을 구성 및 가능하게 할 수 있다. 다른 일례에서, 상기 명령들은 대응하는 디지털 컴포넌트 제공자(114)로부터 특정 디지털 컴포넌트를 획득하도록, 클라이언트 디바이스(106)를 구성 및 가능케하는데 이용될 수 있다. 예를 들어, 답변(120) 내의 명령들은, 클라이언트 디바이스(106)로 하여금 서버 요청(SR)(121)을 대응 디지털 컴포넌트 제공자(114)로 전송하여 상기 디지털 컴포넌트 제공자(114)로부터 특정 디지털 컴포넌트를 획득하게 하는 네트워크 위치(예를 들어, 유니폼 리소스 로케이터(Uniform Resource Locator: URL)) 및 스크립트를 포함할 수 있다. 이러한 요청(121)에 응답하여 디지털 컴포넌트 제공자(114)는 서버 요청(121)에서 특정된 특정 디지털 컴포넌트를 식별할 수 있고 그리고 디지털 컴포넌트 데이터(DC 데이터)(122)를 클라이언트 디바이스(106)로 전송할 수 있는바, 이는 렌더링을 위해 특정 디지털 컴포넌트를 클라이언트 디바이스(106)로 전송한다.
도 2는 커스텀 디지털 컴포넌트들을 프로세싱하기 위한 예시적인 프로세스(200)의 흐름도이다. 프로세스(200)는 하나 이상의 서버 또는 다른 컴퓨팅 디바이스에 의해 수행될 수 있다. 예를 들어, 프로세스(200)의 동작은 도 1의 디지털 컴포넌트 서버(110)에 의해 수행될 수 있다. 또한, 프로세스(200)의 동작들은 비일시적인 컴퓨터 판독가능 매체에 저장된 명령들로서 구현될 수 있으며, 그리고 상기 명령들이 하나 이상의 서버들(또는 다른 컴퓨팅 디바이스)에서 실행될 때, 상기 명령들은 하나 이상의 서버들로 하여금 프로세스(200)의 동작들을 수행하게 한다.
단계(202)에서, 디지털 컴포넌트 서버는 클라이언트 디바이스에 설치된 제 1 SDK에 의해 생성된 디지털 컴포넌트에 대한 요청을 수신한다. 디지털 컴포넌트에 대한 요청은 디지털 컴포넌트 제공자의 이름(또는 네트워크 위치), 요청한 디바이스(예컨대, 클라이언트 디바이스)의 이름(또는 네트워크 위치) 등의 피처들을 특정하는 데이터, 및/또는 상기 요청에 응답하여 제공될 디지털 컴포넌트를 선택하기 위해 디지털 컴포넌트 서버가 사용할 수 있는 정보를 포함할 수 있다. 상기 요청은 네트워크(예컨대, 원격 통신 네트워크)를 통해 하나 이상의 디지털 컴포넌트 서버에 의해 수신된다. 또한, 상기 요청은, 요청을 시작한 어플리케이션을 특정하는 어플리케이션 데이터 뿐만 아니라 클라이언트 디바이스에 설치된 SDK들의 세트 등과 같은 다른 피처들을 특정하는 데이터를 포함할 수 있다.
단계(204)에서, 디지털 컴포넌트 서버는 상기 요청의 데이터 필드를 조사한다. 디지털 컴포넌트 서버는 상기 요청의 하나 이상의 데이터 필드를 검사할 수 있다. 데이터 필드들은 각각 정수, 문자열, 날짜 등과 같은 서로 다른 유형의 데이터를 포함할 수 있다. 일부 양상들에서, 디지털 컴포넌트 서버들은 요청의 데이터 필드를 검사하여 상기 요청의 암호화된 데이터를 식별하도록 구성된다. 암호화된 데이터는 클라이언트 디바이스에 설치된 두 번째 SDK에 의해 생성된 것으로 식별될 수 있다. 암호화된 데이터는 이전에 렌더링된 디지털 컴포넌트(예컨대, 제 2 SDK에 의해서 이전에 렌더링되었거나 또는 제 2 SDK를 포함하는 어플리케이션에서 렌더링된 것)에 대응하는 독점적인 신호들(proprietary signals)(예컨대, 제 2 SDK 제공자의 독점권)을 포함할 수 있다. 이전에 렌더링된 디지털 컴포넌트는 클라이언트 디바이스에 설치된 특정 SDK에 의해서 렌더링될 수 있다. SDK를 나타내는 정보는 복수의 상이한 SDK들 뿐만 아니라 상이한 SDK들에 대응하는 복수의 상이한 버전의 어플리케이션을 포함할 수 있다. 또한, 암호화된 데이터는 클라이언트 디바이스에 특정한 데이터를 포함할 수 있다. 예를 들어, 암호화된 데이터는 클라이언트 디바이스의 방향을 나타내는 가속도계 데이터, 클라이언트 디바이스의 움직임을 나타내는 가속도계 데이터, 클라이언트 디바이스의 지리적 위치를 나타내는 위치 신호 등을 포함할 수 있다.
단계(206)에서, 디지털 컴포넌트 서버는 상기 요청의 데이터 필드의 검사에 기초하여 다수의 실시간 요청를 생성한다. 실시간 요청들은 하나 이상의 디지털 컴포넌트들에 대한 요청들을 포함할 수 있다. 디지털 컴포넌트 서버는 설치된 SDK들의 식별된 세트를 특정하는 데이터를 실시간 요청에 포함하도록 구성될 수 있다. 상기 서버들은 SDK로부터의 디지털 컴포넌트에 대한 요청에 기초하여 실시간 요청들을 생성하도록 구성될 수 있다. 실시간 요청들 각각은 식별된 어플리케이션에 설치된 다른 SDK들의 세트 등과 같은 정보를 포함할 수 있다.
일부 양상들에서, 암호화된 데이터는 실시간 요청들에 포함된다. 암호화된 데이터는 디지털 컴포넌트 제공자들로 전송되기 위하여 하나 이상의 실시간 요청들에 포함될 수 있다. 암호화된 데이터는 소정 디지털 컴포넌트 제공자로 전송되도록 소정의 실시간 요청에 포함될 수 있다. 상기 소정의 디지털 컴포넌트 제공자는 암호화된 데이터를 해독할 권한이 있는 디지털 컴포넌트 제공자일 수 있다. 암호화된 데이터는 실시간 요청에 포함될 수 있지만, 디지털 컴포넌트 서버들에 대해서는 기밀로 유지될 수 있으며, 인증된 디지털 컴포넌트 제공자에 의해서만 해독될 수 있다. 예를 들어, 암호화된 데이터는 모든 실시간 요청들에 포함될 수 있으며 그리고 인증된 디지털 컴포넌트 제공자에 의해서만 키를 사용하여 해독될 수 있다.
단계(208)에서, 디지털 컴포넌트 서버는 각각의 실시간 요청을 대응하는 디지털 컴포넌트 제공자로 전송한다. 예를 들어, 디지털 컴포넌트 제공자는 제3자 컴포넌트 제공자일 수 있다. 디지털 컴포넌트 서버는 네트워크를 통해 디지털 컴포넌트 제공자들에게 실시간 요청들을 전송하도록 구성할 수 있다. 예를 들어, 디지털 컴포넌트 서버는 3개의 실시간 요청들을 생성하고 각각의 실시간 요청을 3개의 특정 디지털 컴포넌트 제공자 중 하나로 전송할 수 있다. 실시간 요청은 클라이언트 디바이스로부터 초기 요청을 수신한 이후의 특정 시간 기간 내에 디지털 컴포넌트 제공자에게 전송될 수 있다. 실시간 요청들은 제3자 디지털 컴포넌트 제공자들에게 직렬로, 병렬로 또는 이들의 임의의 조합으로 전송될 수 있다. 또한, 초기 요청은 디지털 컴포넌트 서버들에 의해서 클라이언트 디바이스로 디지털 컴포넌트가 제공되어야만 하는 시간 분량을 나타낼 수 있다.
실시간 요청은 암호화된 데이터를 포함할 수 있다. 예를 들어, 암호화된 데이터를 포함하는 실시간 요청은 디지털 컴포넌트 서버에 의해 생성되어, 암호화된 데이터를 해독함이 없이, 인증된 디지털 컴포넌트 서버로 전송될 수 있다. 따라서, 디지털 컴포넌트 서버는 실시간 요청을 준비하고 그리고 실시간 요청에 포함된 암호화된 데이터의 기밀성을 손상시키지 않으면서 상기 실시간 요청을 디지털 컴포넌트 제공자에게 전달하도록 구성될 수 있다. 또한, 디지털 컴포넌트 서버는 암호화된 데이터를 포함하는 실시간 요청을, 오직 인증된 디지털 컴포넌트 제공자에게만 전송하도록 구성될 수 있다.
단계(210)에서, 디지털 컴포넌트 서버는 해당 제3자 디지털 컴포넌트 제공자들로부터 다수의 실시간 요청들에 대한 응답들의 세트를 수신한다. 예를 들어, 각각의 제3자 디지털 컴포넌트 제공자는 디지털 컴포넌트 서버들에 응답을 제공할 수 있다. 응답들은 클라이언트 디바이스에서 렌더링하기 위한 디지털 컴포넌트를 각각 포함할 수 있다. 일부 양상들에서, 응답들은 클라이언트 디바이스에서 렌더링하기 위한 하나 이상의 잠재적인 디지털 컴포넌트들을 포함할 수 있다. 응답들의 디지털 컴포넌트들은 커스텀 디지털 컴포넌트들을 포함할 수 있다. 커스텀 디지털 컴포넌트는 클라이언트 디바이스에서 특정 SDK(들)에 의해 렌더링될 수 있는 커스텀 크리에이티브 포맷을 포함할 수 있다. 따라서, 응답에 포함된 커스텀 디지털 컴포넌트는, 오리지널 요청을 생성한 제 1 SDK가 아닌 다른 SDK에 의해서 커스텀 디지털 컴포넌트가 렌더링되어야 함을 나타낼 수 있다.
단계(212)에서, 디지털 컴포넌트 서버는 디지털 컴포넌트에 대한 요청에 응답하여 클라이언트 디바이스에 전송하기 위해, 응답들의 세트로부터 특정 응답을 선택할 수 있다. 예를 들어, 디지털 컴포넌트 서버들은 실시간 요청들에 응답하는 3개의 응답들을 수신할 수 있다. 3개의 응답들 중 특정 응답이 디지털 컴포넌트 서버들에 의해 선택되어, 클라이언트 디바이스로 전송될 수 있다. 일부 양상들에서, 특정 응답은 응답들 각각에 연관된 선택 스코어(예컨대, 다수의 서로 다른 이용가능한 디지털 컴포넌트들 중에서 디지털 컴포넌트의 순위를 매기거나 및/또는 선택하는데 사용될 수 있는 입찰들 또는 다른 값)에 기초하여 디지털 컴포넌트 서버들에 의해서 선택될 수 있다. 이 경우, 특정 응답은 수신된 모든 선택 스코어들 중에서 가장 높은 선택 스코어에 대응할 수 있다. 특정 양상들에서, 특정 응답은 상기 요청의 특정한 디지털 컴포넌트 피처들에 기초하여 선택될 수 있다. 이 예에서, 특정 응답은 클라이언트 디바이스로부터의 초기 요청의 모든 기준을 만족시키는 디지털 컴포넌트를 포함할 수 있다.
단계(214)에서, 디지털 컴포넌트 서버는 상기 특정 응답에 포함된 디지털 컴포넌트를 클라이언트 디바이스에 설치된 어떤 SDK가 렌더링해야하는지를 나타내는 명령들과 함께, 상기 특정 응답을 제 1 SDK로 전송한다. 선택된 응답은 네트워크를 통해 디지털 컴포넌트 서버들로부터 클라이언트 디바이스로 전송될 수 있다. 선택된 응답은 디지털 컴포넌트에 대한 초기 요청에 대한 답변으로서 전송될 수 있다. 소정 양상에서, 상기 특정 응답은 요청을 생성한 제 1 SDK로 전송될 수 있다. 상기 특정 응답은 특정 응답에 포함된 디지털 컴포넌트를 렌더링하는데 제 1 SDK 이외의 SDK가 필요하다는 것을 나타내는 명령들을 포함할 수 있다. 본 일례에서, 제 1 SDK가 아닌 다른 SDK는 소정의 SDK일 수도 있고, 또는 오리지널 요청을 생성한 제 1 SDK와는 단지 다른 SDK일 수도 있다.
일부 양상들에서, 상기 명령들은 상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위한 어플리케이션 프로그래밍 인터페이스(API) 호출(call)을 지정할 수 있다. API 호출은 클라이언트 디바이스에서 지정된 SDK에 의해 구현될 수 있다. API 호출은 작업을 수행하기 위해 어플리케이션을 호출하는 소정 동작들의 세트를 포함할 수 있다. 이와 같이, API 호출은 클라이언트 디바이스에서 어플리케이션의 특정 SDK를 통해 디지털 컴포넌트를 렌더링하기 위한 동작들의 세트를 포함할 수 있다.
일부 양상들에서, 상기 명령들은 특정 SDK로 디지털 컴포넌트를 프리젠테이션하는 것에 대한 콘트롤(control)을 제공할 수 있다. 다시 말해, 특정 SDK는 디지털 컴포넌트의 렌더링을 클라이언트 디바이스에서 실행하도록 구성될 수 있다(예컨대, 클라이언트 디바이스에 설치된 다른 SDK들은 갖고 있지 않지만 특정 SDK가 갖고 있는 렌더링 기능을 사용하여).
도 3은 디지털 컴포넌트에 대한 요청의 데이터 필드들을 검사하기 위한 예시적인 프로세스의 흐름도이다. 프로세스(300)는 프로세스(200)의 단계(204)에 대한 서브프로세스를 포함할 수 있다. 프로세스(300)는 하나 이상의 서버들 또는 다른 컴퓨팅 디바이스들에 의해 수행될 수 있다. 예를 들어, 프로세스(300)의 동작은 도 1의 디지털 컴포넌트 서버(110)에 의해 수행될 수 있다. 또한, 프로세스(300)의 동작은 비일시적인 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수 있으며, 그리고 하나 이상의 서버들(또는 다른 컴퓨팅 디바이스들)에 의해 실행될 때 상기 명령들은 하나 이상의 서버들로 하여금 프로세스(300)의 동작들을 수행하게 한다.
단계(302)에서, 디지털 컴포넌트 서버는 데이터 필드들 내에서 요청을 개시하였던 어플리케이션을 특정하는 어플리케이션 데이터를 식별한다. 구체적으로, 클라이언트 디바이스에서 상기 요청을 개시한 특정 어플리케이션을 특정하는 어플리케이션 데이터를 식별하도록 데이터 필드들이 검사될 수 있다. 데이터 필드들은, 요청에 포함된 데이터 필드 유형들 뿐만 아니라 데이터 필드들의 내용에 기초하여 특정 어플리케이션에 대응할 수 있다.
단계(304)에서, 디지털 컴포넌트 서버는 상기 요청의 암호화된 데이터를 식별하기 위해 상기 요청의 데이터 필드를 검사하도록 구성된다. 암호화된 데이터는 클라이언트 디바이스에 설치된 제 2 SDK에 의해 생성된 것으로 식별될 수 있다. 암호화된 데이터는 이전에 렌더링된 디지털 컴포넌트에 대응하는 독점적인 신호를 포함할 수 있다. 이전에 렌더링된 디지털 컴포넌트는 클라이언트 디바이스에 설치된 특정 SDK에 의해 렌더링될 수 있다. 따라서, 디지털 컴포넌트를 이전에 렌더링하는데 이용되었던 SDK를 나타내는 정보가 또한, 암호화된 데이터에 포함될 수 있다. SDK를 나타내는 정보는 복수의 상이한 SDK들 뿐만 아니라 상이한 SDK들에 대응하는 복수의 상이한 버전의 어플리케이션들을 포함할 수 있다. 또한, 암호화된 데이터는 클라이언트 디바이스에 특정한 데이터를 포함할 수 있다. 예를 들어, 암호화된 데이터는 클라이언트 디바이스의 방향을 나타내는 가속도계 데이터, 클라이언트 디바이스의 움직임을 나타내는 가속도계 데이터, 클라이언트 디바이스의 지리적 위치를 나타내는 위치 신호 등을 포함할 수 있다.
도 4는 실시간 요청을 생성하기 위한 예시적인 프로세스의 흐름도이다. 프로세스(400)는 프로세스(200)의 단계(206)에 대한 서브프로세스를 포함할 수 있다. 프로세스(400)는 하나 이상의 서버들 또는 다른 컴퓨팅 디바이스에 의해 수행될 수 있다. 예를 들어, 프로세스(400)의 동작은 도 1의 디지털 컴포넌트 서버(110)에 의해 수행될 수 있다. 또한, 프로세스(400)의 동작은 비일시적인 컴퓨터 판독가능 매체에 저장된 명령들로서 구현될 수 있으며, 하나 이상의 서버들(또는 다른 컴퓨팅 디바이스)에 의해 실행될 때 상기 명령은 하나 이상의 서버들로 하여금 프로세스(400)의 동작을 수행하게 한다.
단계(402)에서, 디지털 컴포넌트 서버는 클라이언트 디바이스에서 상기 요청을 개시한 특정 어플리케이션에 설치된 SDK들의 세트를 식별한다. 특히, 디지털 컴포넌트 서버는 설치된 SDK들에 대한 어플리케이션 데이터의 데이터 구조 매핑에 기초하여 SDK들의 세트를 식별할 수 있다. 일부 양상들에서, 디지털 컴포넌트 서버는 설치된 SDK들에 대한 어플리케이션 데이터의 매핑에 액세스하도록 구성될 수 있다. 또한, 디지털 컴포넌트 서버는, 어플리케이션 데이터의 매핑 내에서, 어플리케이션 데이터에서 지정된 어플리케이션 및 요청을 개시한 어플리케이션의 버전을 식별하도록 구성될 수 있다. 이 경우, 디지털 컴포넌트 서버는 어플리케이션에 매핑된 SDK들의 세트 및 디지털 컴포넌트에 대한 초기 요청을 개시한 어플리케이션의 버전을 식별할 수 있다.
예를 들어, 디지털 컴포넌트 서버는 특정 SDK들에 대해서 어플리케이션 데이터를 분류하는 기결정된 데이터 구조에 기초하여, 설치된 SDK들의 세트를 식별하도록 구성될 수 있다. 따라서, 디지털 컴포넌트 서버가 상기 요청에 기초하여 어플리케이션 데이터를 식별하므로, 디지털 컴포넌트 서버는 룩업 테이블과 같은 데이터 구조를 사용하여 어플리케이션 데이터를 소정의 SDK들에 맵핑할 수 있다. 어플리케이션 데이터가 소정의 SDK들에 매핑되므로, 디지털 컴포넌트 서버는 클라이언트 디바이스의 어플리케이션에 어떤 SDK들이 설치되었는지를 식별할 수 있다. 디지털 컴포넌트 서버는 설치된 SDK들의 식별된 세트를 나타내는 데이터를 실시간 요청들에 포함하도록 구성될 수 있다.
일부 양상들에서, 디지털 컴포넌트 서버들은 설치된 SDK들에 대한 어플리케이션 데이터의 매핑을 생성하도록 구성될 수 있다. 이 예에서, 디지털 컴포넌트 서버는 특정 버전의 어플리케이션에 의해 개시되었던 이전의 요청들에 응답하여 상기 특정 버전의 어플리케이션에 이전에 제공된 이전 응답들을 식별할 수 있다. 이전 응답들은 데이터 구조에 저장된 응답 로그로부터 식별될 수 있다. 디지털 컴포넌트 서버는 이전 응답들에서 지정되었던 다수의 상이한 SDK들의 세트를 식별하도록 구성될 수 있다. 또한, 디지털 컴포넌트 서버는 상기 다수의 SDK들의 세트의 각각의 SDK를 데이터 구조에서 특정 버전의 어플리케이션에 매핑하도록 구성될 수 있다.
단계(404)에서, 디지털 컴포넌트 서버는 클라이언트 디바이스에서 상기 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 나타내는 데이터를 각각의 실시간 요청에 포함시킨다. 실시간 요청들은 서로 독립적일 수 있다. 이 경우, 각각의 실시간 요청은 특정 디지털 컴포넌트 제공자에 대응할 수 있다. 실시간 요청들은 클라이언트 디바이스에서 상기 요청을 개시한 어플리케이션에 설치된 SDK들의 세트에 기초하여, 특정 디지털 컴포넌트 제공자들에게 전송될 수 있다.
단계(406)에서, 디지털 컴포넌트 서버는 특정 디지털 컴포넌트 제공자로의 특정 실시간 요청에 암호화된 데이터를 포함시키며, 상기 특정 디지털 컴포넌트 제공자는 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증된다. 암호화된 데이터는 하나 이상의 실시간 요청들에 포함될 수 있다. 암호화된 데이터는 인증된 디지털 컴포넌트 제공자들 각각에 대해 동일할 수 있다. 다른 양상들에서, 암호화된 데이터는 디지털 컴포넌트 제공자들 각각에 배타적일 수 있으며 따라서, 데이터는 해당하는, 특정 디지털 컴포넌트 제공자에 의해서만 해독될 수 있다.
도 5는 디지털 컴포넌트 제공자와의 예시적인 통신들을 나타내는 블록도이다. 도 5의 이벤트(A)에 도시된 바와 같이, 클라이언트 디바이스(510)는 디지털 컴포넌트에 대한 요청(515)을 디지털 컴포넌트 서버(520)에 제출할 수 있다. 요청(515)은 커스텀 디지털 컴포넌트에 대한 요청일 수 있다. 요청(515)은 클라이언트 디바이스(510)의 특정 어플리케이션에 의해 개시될 수 있고, 클라이언트 디바이스(510)에 설치된 제 1 SDK에 의해 생성될 수 있다. 제 1 SDK는 클라이언트 디바이스(510)에 설치된 다수의 SDK들 중 하나일 수 있고 그리고 어플리케이션은 클라이언트 디바이스(510)에 설치된 다수의 어플리케이션들 중 하나일 수 있다.
이벤트(B)에서, 디지털 컴포넌트 서버(520)는 요청(515)을 수신하고 그리고 상기 요청(515)의 수신에 응답하여 다수의 실시간 요청들(526)을 생성한다. 디지털 컴포넌트 서버(520)는 요청(515)의 데이터 필드들을 검사하여, 상기 요청(515)의 내용 뿐만 아니라, 클라이언트 디바이스(510)에 대한 정보를 판별할 수 있다. 디지털 컴포넌트는 서버(520)는 상기 요청(515)을 조사하여 어플리케이션 데이터(521)를 식별하도록 구성될 수 있다. 어플리케이션 데이터(521)는 상기 요청(515)을 개시한 특정 어플리케이션을 식별하도록 디지털 컴포넌트 서버(520)에 의해 이용될 수 있다. 또한, 어플리케이션 데이터(521)는 클라이언트 디바이스(510)에 설치된 SDK들(522)의 세트를 식별하도록 디지털 컴포넌트 서버(520)에 의해 이용될 수 있다.
디지털 컴포넌트 서버(520)는 클라이언트 디바이스(510)에 의해 생성된 요청(515) 대신에 다수의 실시간 요청들(526)을 생성할 수 있다. 이 경우, 디지털 컴포넌트 서버(520)는 클라이언트 디바이스(510)를 대신하여 다수의 실시간 요청들을 생성하도록 구성될 수 있다.
일부 양상들에서, 디지털 컴포넌트 서버(520)는 상기 요청(515)을 검사하여, 클라이언트 디바이스(510)에 설치된 제 2 SDK에 의해 생성된 암호화된 데이터를 식별할 수 있다. 암호화된 데이터는 이전의 요청들(515), 이전에 렌더링된 디지털 컴포넌트들, 디지털 컴포넌트들을 렌더링하는데 사용된 SDK들, 상기 요청(515)이 생성된 때에 수집된 데이터, 실시간 요청들(526)이 생성된 때 수집된 데이터, 기타 등등을 포함할 수 있다.
디지털 컴포넌트 서버(520)는 디지털 컴포넌트 제공자(530)에 제공하기 위해 하나 이상의 실시간 요청들(526)을 생성하도록 구성될 수 있다. 일부 양상들에서, 실시간 요청들(526)은 특정 디지털 컴포넌트 제공자들(530a-n)에 대해 지정된다. 이 경우, 실시간 요청들(526)은 암호화된 데이터(523a-n)를 포함할 수 있으며, 암호화된 데이터(523a-n)는 특정 디지털 컴포넌트 제공자들(530a-n)에 의해서 해독되도록 인증된다. 이와 같이, 디지털 컴포넌트 서버(520)는 선택된 디지털 컴포넌트 제공자(530a-n)에 대응하는 암호화된 데이터(523a-n)를 각각 포함하는 복수의 실시간 요청들(526)을 생성할 수 있다.
디지털 컴포넌트 서버(520)는 디지털 컴포넌트들에 대한 요청들을 수신 및 프로세싱하는 하나 이상의 서버들을 포함할 수 있다. 예를 들어, 디지털 컴포넌트 서버(520)는 디지털 컴포넌트들에 대한 요청들을 수신하는 프런트 엔드 서버 및 디지털 컴포넌트들에 대한 상기 요청을 프로세싱하도록 구성된 다른 서버를 포함할 수 있다. 이 경우, 상기 프런트 엔드 서버와 다른 서버는 네트워크를 통해 통신하는 별도의 디바이스로 구현될 수 있다. 당업자라면 인식할 수 있는 바와 같이, 상기 프론트 엔드 서버와 다른 서버는 단일 디지털 컴포넌트 서버(520)와 같은 단일 하드웨어 디바이스로 통합될 수 있다.
이벤트(C)에서, 디지털 컴포넌트 제공자(530)는 실시간 요청들(526)을 수신하고 그리고 실시간 요청들(526)에 대한 응답들(535)을 제공한다. 디지털 컴포넌트 제공자(530)는 실시간 요청들(526)에 대한 응답들(535)로서 디지털 컴포넌트들을 제공하도록 구성될 수 있다. 예를 들어, 각각의 디지털 컴포넌트 제공자(530a-n)는 실시간 요청(526)을 수신할 수 있으며 그리고 클라이언트 디바이스(510)에서 렌더링하기 위한 디지털 컴포넌트를 포함하는 응답(535)을 디지털 컴포넌트 서버(520)로 제공할 수 있다.
일부 양상들에서, 디지털 컴포넌트 제공자들(530)은 실시간 요청들(526)에 포함된 암호화된 데이터(523a-n)를 수신한다. 암호화된 데이터(523a-n)는 인증된 디지털 컴포넌트 제공자들에 의해서 해독될 수 있다. 이러한 일례에서, 디지털 컴포넌트 제공자들(530)은 해독된 데이터(532a-n)를 이용하여, 실시간 요청(526)들에 대한 응답들(535)을 제공할지, 응답들(535)과 연관되는 입찰 가격들, 어떤 디지털 컴포넌트를 응답(535)으로 반환할지, 기타 등등을 결정할 수 있다. 이와 같이, 인증된 디지털 컴포넌트 제공자들은, 인증된 디지털 컴포넌트 제공자 각각이 해독한 해독된 데이터(532a-n)를 이용하여 실시간 요청들(526)에 대한 응답들(535)을 생성하고, 그리고 디지털 컴포넌트 서버(520)에 응답(535)을 제공하도록 구성될 수 있다.
이벤트(D)에서, 디지털 컴포넌트 서버(520)는 디지털 컴포넌트 제공자(530)로부터 응답들(535)을 수신하고, 클라이언트 디바이스(510)로 전송하도록 특정 응답 선택한다. 디지털 컴포넌트 서버(520)는 클라이언트 디바이스(510)에 설치된 SDK에 의해 렌더링하기 위한 특정 응답을 선택할 수 있다. 일부 양상들에서, 상기 특정 응답은 응답들(535) 각각과 관련된 입찰들에 기초하여, 디지털 컴포넌트 서버(520)에 의해 선택될 수 있다. 다른 양상들에서, 상기 특정 응답은, 초기 요청(515)의 특정한 디지털 컴포넌트 피처들에 기초하여 선택될 수도 있다.
선택된 응답은 디지털 컴포넌트 데이터(528)로서, 디지털 컴포넌트 서버(520)로부터 클라이언트 디바이스(510)로 전송될 수 있다. 디지털 컴포넌트 데이터(528)는 디지털 컴포넌트에 대한 초기 요청(515)에 대한 답변으로서 제공될 수 있다. 일부 양상들에서, 디지털 컴포넌트 데이터(528)는 클라이언트 디바이스(510)에서 상기 요청(515)을 생성한 제 1 SDK로 전송될 수 있다. 디지털 컴포넌트 데이터(528)는, 디지털 컴포넌트 데이터(528)에 대응하는 디지털 컴포넌트를 렌더링하는데 필요한, 제 1 SDK 이외의 클라이언트 디바이스(510)에 설치된 다른 SDK를 나타내는 명령들을 포함할 수 있다.
도 6은 전술한 동작을 수행하는데 사용될 수 있는 예시적인 컴퓨팅 시스템(600)을 도시한 블록도이다. 시스템(600)은 프로세서(610), 메모리(620), 저장 디바이스(630) 및 입/출력 디바이스(640)를 포함한다. 컴포넌트들(610, 620, 630 및 640) 각각은 예를 들어 시스템 버스(650)를 사용하여 상호 접속될 수 있다. 프로세서(610)는 시스템(600) 내에서의 실행을 위해 명령들을 프로세싱할 수 있다. 일 구현예에서, 프로세서(610)는 단일-스레드 프로세서이다. 다른 구현예에서, 프로세서(610)는 멀티-스레드 프로세서이다. 프로세서(610)는 메모리(620) 또는 저장 디바이스(630)에 저장된 명령들을 프로세싱할 수 있다.
메모리(620)는 시스템(600) 내에 정보를 저장한다. 일 구현예에서, 메모리(620)는 컴퓨터 판독가능 매체이다. 일 구현예에서, 메모리(620)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(620)는 비휘발성 메모리 유닛이다.
저장 디바이스(630)는 시스템(600)을 위한 대용량 저장소를 제공할 수 있다. 일 구현예에서, 저장 디바이스(630)는 컴퓨터 판독가능 매체이다. 다양한 다른 구현예에서, 저장 디바이스(630)는 예를 들어, 하드 디스크 디바이스, 광학 디스크 디바이스, 네트워크를 통해 다수의 컴퓨팅 디바이스들에 의해 공유되는 저장 디바이스(예를 들어, 클라우드 저장 디바이스), 또는 다른 대용량 저장 디바이스를 포함할 수 있다.
입력/출력 디바이스(640)는 시스템(600)에 대한 입/출력 동작을 제공한다. 일 구현예에서, 입력/출력 디바이스(640)는 네트워크 인터페이스(예컨대, 이더넷 카드), 직렬 통신 디바이스(예컨대, RS-232 포트), 및/또는 무선 인터페이스 디바이스(예컨대, 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현예에서, 입력/출력 디바이스(640)는 입력 데이터를 수신하고 다른 입력/출력 디바이스로 출력 데이터를 전송하도록 구성된 드라이버 디바이스들을 포함할 수 있는바, 가령, 키보드, 프린터 및 디스플레이 디바이스(560) 등을 포함할 수 있다. 하지만, 다른 구현예에서는 모바일 컴퓨팅 디바이스, 이동 통신 디바이스, 셋톱 박스 텔레비전 클라이언트 디바이스 등등도 또한 이용될 수 있다.
비록, 예시적인 프로세싱 시스템이 도 6에서 설명되었지만, 본 명세서에서 설명된 본 발명의 구현예들 및 기능적 동작들은, 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하여 다른 유형의 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 이들 중 하나 이상을 조합하여 구현될 수 있다.
전자 문서는 파일에 대응할 수는 있지만 반드시 그럴 필요는 없다. 문서는 다른 문서를 보관하는 파일의 일부, 해당 문서에 전용인 파일 또는 여러 개의 조정된 파일에 저장될 수 있다.
다수의 구현예가 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어남이 없이도 다양한 변형들이 이루어질 수 있음을 이해할 것이다. 예를 들어, 전술한 흐름들의 다양한 형태들은 단계들이 재배열, 추가 또는 제거되어 사용될 수 있다.
본 발명의 실시예들과 본 명세서에서 설명된 모든 기능적 동작들은 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하여 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 이들 중 하나 이상을 조합하여 구현될 수 있다. 본 발명의 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 예를 들어, 데이터 프로세싱 디바이스에 의해 실행되거나 데이터 프로세싱 디바이스의 동작을 제어하기 위해 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 메모리 디바이스, 머신 판독가능 전파 신호에 영향을 미치는 물질의 조성물, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 프로세싱 디바이스"라는 용어는 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 디바이스, 디바이스 및 머신을 포함한다. 상기 디바이스는 하드웨어 이외에, 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 포함할 수 있다. 전파된 신호는 인위적으로 생성된 신호로서, 예를 들어 적절한 수신기 장치로 전송하기 위해 정보를 인코딩하기 위해 생성된 머신-생성된 전기 신호, 광학 신호 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트, 또는 코드라고도 함)은 컴파일 또는 해석 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고 그리고 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 임의의 형태로도 배포될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템의 파일과 일치하지는 않는다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부분에 저장될 수도 있고(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들), 문제의 프로그램에 전용인 하나의 파일에 저장될 수도 있고, 또는 여러 개의 조정 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수도 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 실행되거나 혹은 하나의 장소에 위치하거나 또는 여러 장소에 분산되어 있으며 통신 네트워크로 상호연결된 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.
본 명세서에 서술된 프로세스들 및 로직 흐름들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능한 프로세서에 의해 수행될 수 있다. 또한, 프로세스들 및 로직 흐름들은 FPGA(필드 프로그램가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)과 같은 특수 목적의 논리 회로에 의해 수행될 수 있으며, 장치는 또한 이러한 특수 목적의 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 일례로서, 범용 및 특수 목적 마이크로프로세서들, 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함할 수 있다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘다로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소들은 명령을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 자기, 광자기 디스크 또는 광학 디스크와 같은 데이터 저장용의 하나 이상의 대용량 저장 디바이스를 포함하거나 또는 이로부터 데이터를 수신하거나 전송하기 위해 동작 가능하게 결합될 것이다. 하지만, 컴퓨터는 반드시 이러한 디바이스를 가질 필요는 없다. 또한, 컴퓨터는 태블릿 컴퓨터, 이동 전화기, PDA(Personal Digital Assistant), 모바일 오디오 플레이어, GPS 수신기와 같은 다른 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함하는바, 예컨대, EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 예컨대, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함할 수 있다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 또는 그 안에 포함될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 발명의 실시예는 컴퓨터 상에서 구현될 수 있는바, 상기 컴퓨터는 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스 예컨대, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터를 가질 수 있으며 그리고 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼을 포함할 수 있다. 다른 종류의 디바이스들도 또한 사용자와의 상호작용을 제공하는데 사용될 수 있는바, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 발명의 실시예들은 컴퓨팅 시스템에서 구현될 수 있으며, 이러한 컴퓨팅 시스템은 백-엔드 컴포넌트(예를 들어, 데이터 서버), 또는 미들웨어 컴포넌트(예를 들어, 어플리케이션 서버)를 포함할 수 있거나 또는 사용자가 본 발명의 구현예와 상호작용할 수 있는 그래픽 사용자 인터페이스 혹은 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트를 포함할 수 있거나, 또는 이러한 백 엔드, 미들웨어 또는 프론트 엔드 컴포넌트 중 하나 이상의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 통신 네트워크와 같은 임의 형태 혹은 매체의 디지털 데이터 통신에 의해 상호연결될 수 있다. 통신 네트워크의 일례는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
본 명세서는 많은 세부적인 구현예들을 포함하고 있지만, 이것들은 청구될 수도 있는 본 발명의 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 구현예에 특화된 피처들에 대한 설명으로 이해되어야 한다. 개별적인 구현예들의 맥락에서 본 명세서에 기술된 소정의 피처들은, 하나의 구현예에서 조합되어 구현될 수도 있다. 반대로, 단일 구현예의 맥락에서 서술된 다양한 피처들은 또한 다수의 구현예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 또한, 피처들이 소정의 특정 조합으로 작용하는 것으로 앞서 서술될 수 있으며 심지어 초기에 그렇게 청구되었더라도, 청구된 조합으로부터의 하나 이상의 피처들은 일부 경우 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수도 있다.
이와 유사하게, 비록 동작들이 특정 순서대로 도면에 도시되었지만, 이는 이러한 동작들이 도시된 특정 순서대로 또는 순차적으로 수행될 것을 요구하는 것으로 이해되어서는 안되며, 또는 바람직한 결과를 달성하기 위하여 도시된 모든 동작들이 수행되어야 함을 의미하지도 않는다. 소정의 상황에서 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 구현예에서 다양한 시스템 구성요소들의 분리는 모든 구현예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 구성요소들 및 시스템은 일반적으로 단일 소프트웨어 제품 내에 함께 통합되거나 여러 소프트웨어 제품 내에 패키지화될 수 있다.
HTML 파일이 언급되는 각각의 경우에서, 다른 파일 형식 또는 포맷으로 치환될 수도 있다. 예를 들어, HTML 파일은 XML, JSON, 일반 텍스트 또는 다른 유형의 파일로 대체될 수 있다. 또한, 테이블 또는 해시 테이블이 언급되는 경우, 다른 데이터 구조(예컨대, 스프레드 시트, 관계형 데이터베이스 또는 구조화된 파일)가 사용될 수 있다.
본 발명의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 속한다. 예를 들어, 청구항들에 기재된 단계들은 상이한 순서로 수행될 수도 있으며, 여전히 바람직한 결과를 달성한다.

Claims (17)

  1. 방법으로서,
    클라이언트 디바이스에 설치된 제 1 소프트웨어 개발 키트(Software Development Kit: SDK)에 의해 생성된 디지털 컴포넌트에 대한 요청을 상기 클라이언트 디바이스로부터 수신하는 단계;
    하나 이상의 커스텀 디지털 컴포넌트 서버들에 의해서 상기 요청의 하나 이상의 데이터 필드들을 검사하는 단계로서,
    상기 하나 이상의 데이터 필드 내에서, 상기 클라이언트 디바이스에서 상기 요청을 개시한 어플리케이션을 지정하는(specifying) 어플리케이션 데이터를 식별하는 단계를 포함하고;
    상기 하나 이상의 서버들에 의해서, 다수의 실시간 요청들을 생성하는 단계로서,
    설치된 SDK들에 대한 어플리케이션 데이터의 데이터 구조 내에서의 매핑에 기초하여, 상기 클라이언트 디바이스에서 요청을 개시한 상기 어플리케이션에 설치된 SDK들의 세트를 식별하는 단계, 및
    상기 클라이언트 디바이스에서 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 지정하는 데이터를 각각의 실시간 요청에 포함시키는 단계를 포함하고;
    상기 하나 이상의 서버들에 의해서, 네트워크를 통해 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하는 단계;
    상기 하나 이상의 서버들에 의해서, 상기 다수의 실시간 요청들에 대한 응답들의 세트를 상기 대응하는 제3자 디지털 컴포넌트 제공자들로부터 수신하는 단계;
    상기 하나 이상의 서버들에 의해서, 상기 디지털 컴포넌트에 대한 요청에 응답하여 상기 클라이언트 디바이스로 전송하도록, 상기 응답들의 세트로부터 특정 응답을 선택하는 단계; 및
    상기 하나 이상의 서버들에 의해서, 상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 커스텀 디지털 컴포넌트 서버들에 의해서 상기 제 1 SDK에 의해 생성된 상기 요청의 하나 이상의 데이터 필드들을 검사하는 단계는, 상기 하나 이상의 데이터 필드 내에서, 상기 클라이언트 디바이스에 설치된 제 2 SDK에 의해 생성된 암호화된 데이터를 식별하는 단계를 포함하고; 그리고
    상기 다수의 실시간 요청들을 생성할 때에, 상기 암호화된 데이터는 상기 실시간 요청들 중 특정 실시간 요청 내에 포함되되, 상기 특정 실시간 요청은 상기 제3자 디지털 컴포넌트 제공자들 중 상기 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증된 특정 제3자 디지털 컴포넌트 제공자에게 전송되는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 하나 이상의 서버들에 의해서, 네트워크를 통해 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하는 단계는, 암호화된 데이터를 해독함이 없이 상기 특정 실시간 요청을 상기 특정 제3자 디지털 컴포넌트 제공자에게 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하는 단계는, 상기 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증되지 않은 제3자 디지털 컴포넌트 제공자들에게 상기 특정 실시간 요청을 전송하지 않는 단계를 포함하고;
    상기 다수의 실시간 요청들에 대한 응답들의 세트를 상기 대응하는 제3자 디지털 컴포넌트 제공자들로부터 수신하는 단계는, 상기 제 1 SDK 이외의 특정 SDK를 지정하는 소정 응답을 수신하는 단계를 포함하되, 상기 특정 SDK는 상기 소정 응답에 포함된 특정 디지털 컴포넌트를 렌더링하는데 필요하며;
    상기 특정 응답으로서 상기 소정 응답을 전송하되, 상기 특정 SDK는 상기 소정 응답에 포함된 특정 디지털 컴포넌트를 렌더링하는데 필요한 것을 특징으로 하는 방법.
  5. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 식별하는 단계는,
    설치된 SDK들에 대한 어플리케이션 데이터의 매핑에 액세스하는 단계;
    상기 맵핑 내에서, 상기 어플리케이션 데이터에서 지정된 어플리케이션 및 상기 요청을 개시한 어플리케이션의 버전을 식별하는 단계; 및
    상기 어플리케이션 및 상기 요청을 개시한 어플리케이션의 버전에 매핑되는 SDK들의 세트를 식별하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 설치된 SDK들에 대한 어플리케이션 데이터의 매핑을 생성하는 단계를 더 포함하되,
    데이터 구조에 저장된 응답 로그로부터, 상기 어플리케이션의 버전에 의해 개시되었던 이전의 요청에 응답하여 상기 어플리케이션의 버전에 이전에 제공되었던 이전의 응답들을 식별하는 단계;
    상기 이전의 응답들로부터, 상기 이전의 응답들에서 지정되었던 다수의 상이한 SDK들의 세트를 식별하는 단계; 및
    상기 다수의 상이한 SDK들의 세트 내의 각각의 SDK를, 데이터 구조에서 상기 어플리케이션의 버전에 매핑하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구되는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송하는 단계는,
    상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하도록 어플리케이션 프로그래밍 인터페이스(API) 호출을 지정하는 명령들을 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구되는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송하는 단계는,
    상기 디지털 컴포넌트를 프리젠테이션하는 것에 대한 콘트롤(control)을 상기 지정된 SDK에 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 시스템으로서,
    다양한 어플리케이션들에 설치된 소프트웨어 개발 키트(SDK)들에 대한 어플리케이션 데이터의 매핑을 저장하는 데이터 구조;
    클라이언트 디바이스에 설치된 제 1 SDK에 의해 생성된 디지털 컴포넌트에 대한 요청을 상기 클라이언트 디바이스로부터 수신하는 프론트-엔드 서버; 및
    동작들을 수행함으로써 상기 요청을 프로세싱하도록 구성된 커스텀 디지털 컴포넌트 서버를 포함하고, 상기 동작들은,
    상기 클라이언트 디바이스에 설치된 제 1 SDK에 의해 생성된 디지털 컴포넌트에 대한 요청을 상기 클라이언트 디바이스로부터 수신하고;
    상기 요청의 하나 이상의 데이터 필드들을 검사하되,
    상기 하나 이상의 데이터 필드 내에서, 상기 클라이언트 디바이스에서 상기 요청을 개시한 어플리케이션을 지정하는 어플리케이션 데이터를 식별하는 것을 포함하고;
    다수의 실시간 요청들을 생성하되,
    설치된 SDK들에 대한 어플리케이션 데이터의 데이터 구조에서의 매핑에 기초하여, 상기 클라이언트 디바이스에서 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 식별하는 것, 및
    상기 클라이언트 디바이스에서 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 지정하는 데이터를 각각의 실시간 요청에 포함시키는 것을 포함하고;
    네트워크를 통해 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송하고;
    상기 다수의 실시간 요청들에 대한 응답들의 세트를 상기 대응하는 제3자 디지털 컴포넌트 제공자들로부터 수신하고;
    상기 디지털 컴포넌트에 대한 요청에 응답하여 상기 클라이언트 디바이스로 전송하도록, 상기 응답들의 세트로부터 특정 응답을 선택하고; 그리고
    상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구되는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송하는 동작을 포함하는 것을 특징으로 하는 시스템.
  10. 제9항에 있어서,
    상기 제 1 SDK에 의해 생성된 상기 요청의 하나 이상의 데이터 필드들을 검사할 때, 상기 커스텀 디지털 컴포넌트 서버는, 상기 하나 이상의 데이터 필드 내에서, 상기 클라이언트 디바이스에 설치된 제 2 SDK에 의해 생성된 암호화된 데이터를 식별하고; 그리고
    상기 다수의 실시간 요청들을 생성할 때에, 상기 커스텀 디지털 컴포넌트 서버는, 상기 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증된 특정 제3자 디지털 컴포넌트 제공자에게 전송하기 위해, 상기 암호화된 데이터를 상기 실시간 요청들 중 특정 실시간 요청 내에 포함시키는 것을 특징으로 하는 시스템.
  11. 제10항에 있어서,
    네트워크를 통해 각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송할 때, 상기 커스텀 디지털 컴포넌트 서버는, 암호화된 데이터를 해독함이 없이 상기 특정 실시간 요청을 상기 특정 제3자 디지털 컴포넌트 제공자에게 전송하는 것을 특징으로 하는 시스템.
  12. 제10항 또는 제11항에 있어서,
    각각의 실시간 요청을 대응하는 제3자 디지털 컴포넌트 제공자에게 전송할 때, 상기 커스텀 디지털 컴포넌트 서버는, 상기 제 2 SDK에 의해 생성된 암호화된 데이터를 해독하도록 인증되지 않은 제3자 디지털 컴포넌트 제공자들에게 상기 특정 실시간 요청을 전송하는 것이 방지되고(refrain); 그리고
    상기 다수의 실시간 요청들에 대한 응답들의 세트를 상기 대응하는 제3자 디지털 컴포넌트 제공자들로부터 수신하는 것은 상기 제 1 SDK 이외의 특정 SDK를 지정하는 소정 응답을 수신하는 것을 포함하되, 상기 특정 SDK는 상기 소정 응답에 포함된 특정 디지털 컴포넌트를 렌더링하는데 필요하며, 상기 커스텀 디지털 컴포넌트 서버는, 상기 특정 응답으로서 상기 소정 응답을 전송하는 것을 특징으로 하는 시스템.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 요청을 개시한 어플리케이션에 설치된 SDK들의 세트를 식별할 때, 상기 커스텀 디지털 컴포넌트 서버는,
    설치된 SDK들에 대한 어플리케이션 데이터의 매핑에 액세스하고;
    상기 맵핑 내에서, 상기 어플리케이션 데이터에서 지정된 어플리케이션 및 상기 요청을 개시한 어플리케이션의 버전을 식별하고; 그리고
    상기 어플리케이션 및 상기 요청을 개시한 어플리케이션의 버전에 매핑되는 SDK들의 세트를 식별하는 것을 특징으로 하는 시스템.
  14. 제13항에 있어서,
    상기 동작들은 상기 설치된 SDK들에 대한 어플리케이션 데이터의 매핑을 생성하는 동작을 더 포함하되,
    데이터 구조에 저장된 응답 로그로부터, 상기 어플리케이션의 버전에 의해 개시되었던 이전의 요청에 응답하여 상기 어플리케이션의 버전에 이전에 제공되었던 이전의 응답들을 식별하고;
    상기 이전의 응답들로부터, 상기 이전의 응답들에서 지정되었던 다수의 상이한 SDK들의 세트를 식별하고; 그리고
    상기 다수의 상이한 SDK들의 세트 내의 각각의 SDK를, 데이터 구조에서 상기 어플리케이션의 버전에 매핑하는 것을 포함하는 시스템.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서,
    상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구되는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송할 때, 상기 커스텀 디지털 컴포넌트 서버는, 상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하도록 어플리케이션 프로그래밍 인터페이스(API) 호출을 지정하는 명령들을 전송하는 것을 특징으로 하는 방법.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서,
    상기 특정 응답에 포함된 디지털 컴포넌트를 렌더링하기 위해 상기 클라이언트 디바이스에 설치된 어떤 SDK가 요구되는지를 지정하는 명령들과 함께 상기 특정 응답을 상기 제 1 SDK에 전송할 때, 상기 커스텀 디지털 컴포넌트 서버는, 상기 디지털 컴포넌트를 프리젠테이션하는 것에 대한 콘트롤(control)을 상기 지정된 SDK에 제공하는 것을 특징으로 하는 시스템.
  17. 컴퓨터 프로그램이 인코딩된 비일시적인 컴퓨터 저장 매체로서, 상기 컴퓨터 프로그램은 명령들을 포함하고, 상기 명령들은 데이터 프로세싱 장치에 의해 실행될 때, 상기 데이터 프로세싱 장치로 하여금 제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하게 하는 것을 특징으로 하는 비일시적인 컴퓨터 저장 매체.
KR1020197020617A 2017-02-02 2017-02-02 커스텀 디지털 컴포넌트 KR102270749B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217019277A KR102393818B1 (ko) 2017-02-02 2017-02-02 커스텀 디지털 컴포넌트

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/016220 WO2018143990A1 (en) 2017-02-02 2017-02-02 Custom digital components

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217019277A Division KR102393818B1 (ko) 2017-02-02 2017-02-02 커스텀 디지털 컴포넌트

Publications (2)

Publication Number Publication Date
KR20190094235A true KR20190094235A (ko) 2019-08-12
KR102270749B1 KR102270749B1 (ko) 2021-06-29

Family

ID=58054525

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197020617A KR102270749B1 (ko) 2017-02-02 2017-02-02 커스텀 디지털 컴포넌트
KR1020217019277A KR102393818B1 (ko) 2017-02-02 2017-02-02 커스텀 디지털 컴포넌트

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217019277A KR102393818B1 (ko) 2017-02-02 2017-02-02 커스텀 디지털 컴포넌트

Country Status (7)

Country Link
US (4) US10455058B2 (ko)
JP (1) JP6766270B2 (ko)
KR (2) KR102270749B1 (ko)
CN (2) CN108684205B (ko)
DE (1) DE202017106604U1 (ko)
GB (1) GB2564165B (ko)
WO (1) WO2018143990A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137118A (ko) * 2017-12-20 2019-12-10 구글 엘엘씨 공동 전송 커밋 시뮬레이션

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108684205B (zh) 2017-02-02 2021-10-15 谷歌有限责任公司 用于处理数字组件的方法及***
US11538091B2 (en) * 2018-12-28 2022-12-27 Cloudblue Llc Method of digital product onboarding and distribution using the cloud service brokerage infrastructure
US10917494B2 (en) * 2019-02-01 2021-02-09 Google Llc Dynamic application content analysis
KR102464339B1 (ko) * 2019-04-26 2022-11-07 구글 엘엘씨 콘텐츠 요청들에 대응한 컴퓨팅 리소스의 효율적 사용
EP3861438B1 (en) * 2019-12-13 2023-02-22 Google LLC Systems and methods for adding digital content during an application opening operation
CN111372132B (zh) * 2020-02-25 2022-03-08 广州华多网络科技有限公司 进行音视频传输的方法、装置、设备及存储介质
US11698822B2 (en) 2020-06-10 2023-07-11 Snap Inc. Software development kit for image processing
CN111949421B (zh) * 2020-08-12 2023-09-05 北京奇艺世纪科技有限公司 Sdk调用方法、装置、电子设备和计算机可读存储介质
CN112463862B (zh) * 2020-11-05 2024-05-17 深圳市和讯华谷信息技术有限公司 一种基于配置权限的数据采集方法及装置
RU2760625C1 (ru) * 2021-03-12 2021-11-29 Акционерное общество "Лаборатория Касперского" Способ настройки IoT-устройств в зависимости от типа сети
CN115756670A (zh) * 2021-09-01 2023-03-07 北京字跳网络技术有限公司 组件处理方法、装置、电子设备、存储介质和产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070762A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 온라인 개발환경 서버, 온라인 마켓플레이스 서버, 온라인 개발환경 구성 방법 및 개발된 애플리케이션 서비스 방법
KR20120050935A (ko) * 2010-09-10 2012-05-21 인텔 코오퍼레이션 세션 이동을 갖는 개인 클라우드 컴퓨팅
JP2014523042A (ja) * 2011-07-12 2014-09-08 ▲銅▼陵玉成▲軟▼件科技有限▲責▼任公司 ビジネスモデル指向のソフトウェア実行プラットフォーム及びその実行モード
US20140324603A1 (en) * 2013-03-15 2014-10-30 Brightroll, Inc. Compact data interface for real time bidding in digital video advertisement systems

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404515B1 (en) * 2000-05-25 2008-07-29 Diebold Self-Service Systems Divison Of Diebold, Incorporated Cash dispensing automated banking machine diagnostic system and method
US20030028591A1 (en) * 2001-07-19 2003-02-06 Alexey Goloshubin Browser having dynamically self-adjusting rendering functionality
JP2003271487A (ja) 2002-03-12 2003-09-26 Nec Corp 通信システム、ゲートウエイ装置、ゲートウエイプログラム
JP2004040209A (ja) 2002-06-28 2004-02-05 Toppan Printing Co Ltd サーバ、icカード、コンテンツの配信方法、コンテンツの取得処理方法およびプログラム
US20070220083A1 (en) * 2006-03-17 2007-09-20 Microsoft Corporation Estimation of initial dynamic rendering control data
EP2471005A4 (en) * 2009-08-28 2013-04-03 Zynga Inc APPARATUSES, METHODS, AND SYSTEMS FOR A DISTRIBUTED OBJECT RENDERING DEVICE
US8868637B2 (en) * 2009-09-02 2014-10-21 Facebook, Inc. Page rendering for dynamic web pages
CN102081775A (zh) * 2009-11-27 2011-06-01 阿里巴巴集团控股有限公司 一种广告投放方法、***和设备
US8682140B2 (en) 2010-03-26 2014-03-25 Panasonic Corporation Playback device, content distribution system, playback method, computer program and integrated circuit
US20110289083A1 (en) * 2010-05-18 2011-11-24 Rovi Technologies Corporation Interface for clustering data objects using common attributes
JP2012064144A (ja) 2010-09-17 2012-03-29 Sharp Corp 中継サーバ、及び広告配信システム
US8452837B2 (en) * 2010-11-03 2013-05-28 Google Inc. Data delivery
CN102479367B (zh) * 2010-11-30 2016-05-04 百度(中国)有限公司 一种用于确定网络推广资源的保留价格的方法和设备
US20120278185A1 (en) * 2011-05-01 2012-11-01 Vinod Kumar Ramachandran Method to adapt ads rendered in a mobile device based on existence of other mobile applications
US8793235B2 (en) * 2012-01-19 2014-07-29 Google Inc. System and method for improving access to search results
CN102647455B (zh) * 2012-03-23 2015-08-05 华为技术有限公司 移动广告的处理方法、代理服务器及终端
US8887178B1 (en) 2012-10-23 2014-11-11 Google Inc. Method to customize native operating system views using web technologies in mobile devices
WO2014065811A1 (en) * 2012-10-26 2014-05-01 Empire Technology Development Llc Securitization of developer credentials
US8862534B1 (en) * 2012-12-07 2014-10-14 Robust Links, LLC Software service infrastructure indexing user demographics, interests and expertise
US9239705B2 (en) * 2013-06-18 2016-01-19 Ciambella Ltd. Method and apparatus for customized software development kit (SDK) generation
US20150011311A1 (en) * 2013-07-03 2015-01-08 Iswifter, Inc. System and method for experiencing advertised interactive applications
US10643253B2 (en) * 2013-10-24 2020-05-05 Oath Inc. Multi-protocol interactive mobile video advertising
US10025468B2 (en) * 2013-11-15 2018-07-17 Google Llc Personalization of map content via an application programming interface
US11521229B2 (en) * 2014-01-09 2022-12-06 Xandr Inc. Systems and methods for mobile advertisement review
US20150213516A1 (en) * 2014-01-25 2015-07-30 Leo Jeremias Computer system for displaying video ads on web pages
US20170102925A1 (en) * 2014-03-26 2017-04-13 Syed Adeel Ali Automatch process and system for software development kit for application programming interface
US9336538B2 (en) * 2014-04-03 2016-05-10 Vungle, Inc. Systems and methods for providing advertising services to devices with an advertising exchange
US20150310494A1 (en) * 2014-04-23 2015-10-29 Mobile Majority Technology and process for digital, mobile advertising at scale
US20150310495A1 (en) * 2014-04-23 2015-10-29 Mobile Majority Technology and process for digital, mobile advertising at scale
US20150332333A1 (en) * 2014-05-14 2015-11-19 Arfan Chaudhry System and Method for Providing Advertising Slots Before Hyperlink Destination
CN105354013B (zh) * 2014-08-18 2019-07-23 阿里巴巴集团控股有限公司 应用界面渲染方法及装置
US11023921B2 (en) * 2014-09-23 2021-06-01 Adelphic Llc Providing data and analysis for advertising on networked devices
WO2016067103A2 (en) * 2014-10-27 2016-05-06 Yintao Yu Cross device identity matching for online advertising
US10423985B1 (en) * 2015-02-09 2019-09-24 Twitter, Inc. Method and system for identifying users across mobile and desktop devices
US9743137B2 (en) 2015-04-02 2017-08-22 Yume, Inc. Run-time SDK integration for connected video players
US9818134B2 (en) * 2015-04-02 2017-11-14 Vungle, Inc. Systems and methods for dynamic ad selection of multiple ads or ad campaigns on devices
US10146512B1 (en) * 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
US10672026B2 (en) * 2016-01-31 2020-06-02 Assaf Toval System and a method for surveying advertisements in mobile applications
KR102641971B1 (ko) * 2016-03-17 2024-02-29 구글 엘엘씨 하이브리드 클라이언트-서버 데이터 제공
WO2017205802A1 (en) * 2016-05-27 2017-11-30 App Annie Inc. Advertisement data metric determination within mobile applications
CN106095423B (zh) * 2016-06-02 2020-12-01 腾讯科技(深圳)有限公司 提供浏览服务的方法、终端及服务器
CN106296283B (zh) * 2016-08-08 2020-04-14 时趣互动(北京)科技有限公司 一种基于移动应用的广告播放方法及***
US20180130098A1 (en) * 2016-11-04 2018-05-10 Aki Technologies, Inc. Networked system for processing sensor data and external data for an ad server
CN108684205B (zh) * 2017-02-02 2021-10-15 谷歌有限责任公司 用于处理数字组件的方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070762A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 온라인 개발환경 서버, 온라인 마켓플레이스 서버, 온라인 개발환경 구성 방법 및 개발된 애플리케이션 서비스 방법
KR20120050935A (ko) * 2010-09-10 2012-05-21 인텔 코오퍼레이션 세션 이동을 갖는 개인 클라우드 컴퓨팅
JP2014523042A (ja) * 2011-07-12 2014-09-08 ▲銅▼陵玉成▲軟▼件科技有限▲責▼任公司 ビジネスモデル指向のソフトウェア実行プラットフォーム及びその実行モード
US20140324603A1 (en) * 2013-03-15 2014-10-30 Brightroll, Inc. Compact data interface for real time bidding in digital video advertisement systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137118A (ko) * 2017-12-20 2019-12-10 구글 엘엘씨 공동 전송 커밋 시뮬레이션
US11294731B2 (en) 2017-12-20 2022-04-05 Google Llc Joint transmission commitment simulation

Also Published As

Publication number Publication date
KR102393818B1 (ko) 2022-05-03
US20180278719A1 (en) 2018-09-27
US10862999B2 (en) 2020-12-08
GB2564165A (en) 2019-01-09
CN108684205B (zh) 2021-10-15
US10455058B2 (en) 2019-10-22
US20220303353A1 (en) 2022-09-22
JP2020508505A (ja) 2020-03-19
CN108684205A (zh) 2018-10-19
US20200007657A1 (en) 2020-01-02
GB2564165B (en) 2021-11-24
US11375044B2 (en) 2022-06-28
CN114020378A (zh) 2022-02-08
US20210051214A1 (en) 2021-02-18
KR102270749B1 (ko) 2021-06-29
DE202017106604U1 (de) 2018-05-15
GB201717717D0 (en) 2017-12-13
CN114020378B (zh) 2023-12-12
KR20210080600A (ko) 2021-06-30
WO2018143990A1 (en) 2018-08-09
JP6766270B2 (ja) 2020-10-07
US11743348B2 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
KR102393818B1 (ko) 커스텀 디지털 컴포넌트
US11716402B2 (en) Reducing redirects
JP7422823B2 (ja) 動的アプリケーションコンテンツ分析
US11893604B2 (en) Server-side content management
WO2014074964A1 (en) Providing and procuring worksheet functions through an online marketplace
CN108140177B (zh) 优化的数字分量
JP7405969B2 (ja) コンテンツへのセキュアウォーターマークの組込み
JP7072619B2 (ja) カスタムデジタルコンポーネント
GB2597384A (en) Custom digital components
US20230299960A1 (en) Localized cryptographic techniques for privacy protection
JP7354427B2 (ja) オンラインプライバシー保護技法
US20240143840A1 (en) Protecting access to information in online interactions

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
A107 Divisional application of patent
GRNT Written decision to grant