KR20200104899A - 디지털 컴포넌트 배경 렌더링 - Google Patents

디지털 컴포넌트 배경 렌더링 Download PDF

Info

Publication number
KR20200104899A
KR20200104899A KR1020207022495A KR20207022495A KR20200104899A KR 20200104899 A KR20200104899 A KR 20200104899A KR 1020207022495 A KR1020207022495 A KR 1020207022495A KR 20207022495 A KR20207022495 A KR 20207022495A KR 20200104899 A KR20200104899 A KR 20200104899A
Authority
KR
South Korea
Prior art keywords
publisher page
content
library
page
publisher
Prior art date
Application number
KR1020207022495A
Other languages
English (en)
Other versions
KR102350540B1 (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 KR20200104899A publication Critical patent/KR20200104899A/ko
Application granted granted Critical
Publication of KR102350540B1 publication Critical patent/KR102350540B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)
  • Storage Device Security (AREA)

Abstract

방법, 시스템 및 디바이스는 컨텐츠 바인더 라이브러리를 사용하여 게시자 페이지의 컨텐츠 엘리먼트들을 찾는 단계를 포함하는 동작들을 수행하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함한다. 각 컨텐츠 엘리먼트에 대해, 라이브러리는 컨텐츠 엘리먼트의 프리젠테이션 속성들을 결정하고, 적어도 하나의 다른 라이브러리는 게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 검출한다. 라이브러리는 특정 컨텐츠 엘리먼트의 프리젠테이션 속성들을 사용하여 게시자 페이지에 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지에서 특정 컨텐츠 엘리먼트를 선택한다. 라이브러리는 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하고, 위치는 기준점 및 모드 파라미터에 기초하여 결정된다. 라이브러리는 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공한다.

Description

디지털 컴포넌트 배경 렌더링
본 명세서는 디지털 컨텐츠 렌더링에 관한 것이다.
웹 페이지는 다양한 다른 유형의 컨텐츠를 디스플레이하도록 구성된다. 웹 페이지에 렌더링되는 컨텐츠는 게시자 또는 페이지 호스트뿐만 아니라 게시자의 컨텐츠와 함께 렌더링하기 위해 다른 컨텐츠를 제공하는 제3자에 의해 제공될 수 있다. 일반적으로, 제3자에 의해 제공되는 다른 컨텐츠의 프리젠테이션은 게시자에 의해 제어된다. 일부 상황에서는, 다수의 다른 공급자의 컨텐츠를 단일 전자 문서에 통합하여 다수의 컨텐츠 엘리먼트를 디스플레이하는 게시자 웹 페이지와 같은 복합 문서를 생성할 수 있다. 예를 들어, 전자 문서에 포함된 컨텐츠의 일부는 전자 문서 또는 웹 페이지의 게시자에 의해 선택(또는 지정)될 수 있다. 컨텐츠의 다른 부분(예를 들어, 디지털 컴포넌트)은 제3자(예를 들어, 웹 페이지의 게시자가 아니거나 게시자 페이지의 컨텐츠를 정의하는 코드를 수정할 권한이 없는 엔티티)에 의해 제공될 수 있다. 컨텐츠의 다른 부분의 렌더링은 종종 제3자 시스템에게 게시자 페이지에 대한 액세스 권한이 부여되어, 제3자가 게시자 페이지를 제어하여 컨텐츠의 일부를 페이지에 삽입할 수 있다. 그러나, 이러한 액세스 및 제어는 무단 네트워크 침입 및 악의적 행위자에 의한 민감한 정보의 잠재적 유출에 게시자의 시스템 또는 웹 페이지를 노출시키는 보안 위험을 초래할 수 있다.
컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 디바이스는 컨텐츠 바인더 라이브러리를 사용하여 게시자 페이지를 구성하는 컨텐츠 엘리먼트를 찾기 위해 제공된다. 각 컨텐츠 엘리먼트에 대해, 컨텐츠 바인더 라이브러리는 컨텐츠 엘리먼트의 프리젠테이션 속성을 결정하고 게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 검출한다. 컨텐츠 바인더 라이브러리는 특정 콘텐츠 엘리먼트의 프리젠테이션 속성을 사용하여 게시자 페이지에 디지털 컴포넌트(예를 들어, 공공 서비스 공지(예를 들어, 기상 경보)), 시스템 메시지(예를 들어, 시스템을 포함하는 컴퓨터 네트워크의 내부 상태에 관한 경보 또는 컴퓨터 네트워크의 하나 이상의 컴포넌트에 대한 스케줄링된 유지 보수 시간에 대한 사전 통지), 광고 컨텐츠 등을 포함하는 배경(backdrop) 컨텐츠를 배치(positioning)하기 위한 기준점으로서 특정 콘텐츠 엘리먼트를 게시자 페이지로부터 선택한다. 컨텐츠 바인더 라이브러리는 디지털 컴포넌트와 함께 배경 크리에이티브를 렌더링하기 위한 게시자 페이지의 위치를 결정한다. 배경 크리에이티브가 렌더링되는 게시자 페이지의 위치는 기준점과 모드 파라미터에 기초하여 결정된다. 컨텐츠 바인더 라이브러리는 게시자 페이지의 컨텐츠 엘리먼트에 인접한 게시자 페이지의 위치에 통합된 디스플레이를 위한 디지털 컴포넌트를 제공한다.
본 명세서에 기술된 주제의 하나의 양태는 컴퓨터로 구현되는 방법으로 구현될 수 있다. 방법은 컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지의 컨텐츠 엘리먼트들을 찾는 단계와; 그리고 게시자 페이지의 각 컨텐츠 엘리먼트에 대해: 컨텐츠 바인더 라이브러리를 사용하여, 컨텐츠 엘리먼트의 프리젠테이션 속성을 결정하는 단계를 포함하고, 상기 프리젠테이션 속성은 (i) 컨텐츠 엘리먼트의 사이즈를 지정하는 사이즈 속성 및 (ii) 게시자 페이지의 컨텐츠 엘리먼트의 상대 위치를 포함한다. 이 방법은 게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 검출하는 단계와; 컨텐츠 바인더 라이브러리를 사용하여, 특정 컨텐츠 엘리먼트의 프리젠테이션 속성을 사용하여 게시자 페이지에서 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지로부터 특정 컨텐츠 엘리먼트를 선택하는 단계를 포함한다. 방법은 컨텐츠 바인더 라이브러리를 사용하여, 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하는 단계와, 상기 위치는 기준점 및 모드 파라미터에 기초하여 결정되고; 그리고 컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하는 단계를 포함한다.
이들 및 다른 구현은 각각 다음 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 예를 들어, 일부 구현에서, 게시자 페이지의 위치에 디지털 컴포넌트를 렌더링하기 위한 보안 iframe을 삽입하고, 렌더링 라이브러리와 통신하고, 렌더링 라이브러리로부터 디지털 컴포넌트 수신하고, 디지털 컴포넌트가 게시자 페이지의 위치에 삽입된 보안 iframe을 사용하여 게시자 페이지에 통합되게 하도록 구성되고, 상기 위치는 게시자 페이지의 특정 컨텐츠 엘리먼트에 인접한다(즉, 위치는 컨텐츠 엘리먼트로부터 특정 개수의 픽셀 이하로 이격되거나 임의의 픽셀만큼 이격되지 않는(즉, 절대적으로 인접하는) 것과 같이 컨텐츠 엘리먼트와 관련하여 인접 기준을 충족함).
일부 구현에서, 특정 컨텐츠 엘리먼트를 선택하는 단계는 모드 파라미터에 의해 지정된 사용자 디바이스의 유형에 기초하여 게시자 페이지에서 컷아웃 (cutout)을 삽입하기 위한 제2 기준점을 식별하는 단계를 포함하고, 상기 제2 기준점은 특정 컨텐츠 엘리먼트에 인접한 게시자 페이지에 통합된 디지털 컴포넌트의 일부를 렌더링하거나 게시자 페이지에 디스플레이하기 위해 제공된 다른 상이한 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 적어도 하나의 다른 위치를 나타낸다.
일부 구현에서, 게시자 페이지에서 제2 기준점을 식별하는 단계는 각 후보 컨텐츠 엘리먼트의 개별 깊이값에 기초하여 하나 이상의 후보 컨텐츠 엘리먼트를 식별하는 단계와, 각각의 개별 깊이값은 게시자 페이지의 루트 노드를 참조하여 계산되고; 게시자 페이지의 제1 뷰포트 사이즈 영역(viewport-sized area)과 오버랩하는 하나 이상의 후보 컨텐츠 엘리먼트를 필터링하는 단계와; 필터링에 응답하여, 나머지 후보 컨텐츠 엘리먼트의 세트 중에서 컨텐츠 엘리먼트를 선택하는 단계와, 상기 컨텐츠 엘리먼트는 컨텐츠 엘리먼트가 게시자 페이지의 루트 노드에 가장 근접함을 나타내는 개별 깊이값에 기초하여 선택되고; 그리고 선택된 컨텐트 엘리먼트에 기초하여 게시자 페이지에서 제2 기준점을 식별하는 단계를 포함한다.
일부 구현에서, 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하는 단계는 렌더링 라이브러리로부터의 요청에 기초하여 게시자 페이지의 위치에 렌더링하기 위한 디지털 컴포넌트를 제공하는 단계를 포함한다.
일부 구현에서, 렌더링 라이브러리는 복수의 상이한 유형의 게시자 페이지에 디스플레이하기 위해 포맷된 복수의 디지털 컴포넌트를 포함하고, 복수의 디지털 컴포넌트는 배경(backdrop) 크리에이티브 컴포넌트 또는 리치(rich) 미디어 크리에이티브 컴포넌트 중 적어도 하나를 포함한다.
일부 구현에서, 모드 파라미터는 사용자 디바이스의 유형을 모바일 컴퓨팅 디바이스로서 지정하고, 상기 컨텐트 엘리먼트는 모바일 컴퓨팅 디바이스를 위해 구성된 게시자 페이지에 디스플레이하기 위한 것이고, 상기 게시자 페이지의 위치를 결정하는 단계는 각 컨텐츠 엘리먼트의 사이즈 및 모바일 컴퓨팅 디바이스를 위해 구성된 게시자 페이지에 디스플레이된 각 컨텐츠 엘리먼트의 개별 상대 위치를 지정하는 개별 사이즈 속성에 기초하여 위치를 결정하는 단계를 포함한다.
일부 구현에서, 방법은 컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지에 디지털 컴포넌트를 통합하고 디스플레이하기 위한 렌더링 레이아웃을 결정하는 단계를 더 포함하고, 상기 렌더링 레이아웃은 렌더링 라이브러리로부터 수신된 디지털 컴포넌트의 메타 데이터에 기초하여 결정된다.
일부 구현에서, 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하는 단계는 렌더링 라이브러리에서 디지털 컴포넌트를 제공하는 단계와, 상기 렌더링 라이브러리는 게시자 페이지에 액세스하는 것이 배제된 제1 도메인을 나타내고; 그리고 컨텐츠 바인더 라이브러리에서 디지털 컴포넌트를 수신하는 단계를 포함하고, 그 컨텐츠 바인더 라이브러리는 제1 도메인과 별개이고, 렌더링 라이브러리의 제1 도메인에 의해 액세스되도록 구성되고, 게시자 페이지에 통합된 디지털 컴포넌트의 제3 도메인에 액세스하도록 구성된 제2 도메인을 나타낸다.
일부 구현에서, 제3 도메인은 게시자 페이지에 대한 제3자 액세스를 배제하도록 구성된 게시자 페이지의 샌드박스 실행 환경이고, 제3 도메인은 렌더링 라이브러리의 제1 도메인 및 컨텐츠 바인더 라이브러리의 제2 도메인과 별개이고; 그리고 게시자 페이지에 통합된 제3 도메인의 디지털 컴포넌트들은 컨텐츠 바인더 라이브러리에 의해 설정된 보안 통신 채널을 통해 렌더링 라이브러리와 통신한다.
본 명세서에서 설명된 주제의 다른 양태는 컴퓨팅 시스템에서 구현될 수 있다. 컴퓨팅 시스템은 게시자 페이지에 디스플레이하기 위한 컨텐츠 엘리먼트들을 찾는 컨텐츠 바인더 라이브러리를 포함하고, 상기 컨텐츠 바인더 라이브러리는 게시자 페이지에 디스플레이된 각 컨텐츠 엘리먼트에 대해, 컨텐츠 엘리먼트의 프리젠테이션 속성을 결정하고, 상기 프리젠테이션 속성은 (i) 컨텐츠 엘리먼트의 사이즈를 지정하는 사이즈 속성 및 (ii) 게시자 페이지의 컨텐츠 엘리먼트의 상대 위치를 포함하고; 그리고 게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터에 관한 정보를 수신하도록 구성된다. 시스템은 컨텐츠 바인더 라이브러리의 게시자 페이지 및 컴퓨팅 로직과 통신하는 데이터 통합기를 더 포함하고, 상기 데이터 통합기는 특정 컨텐츠 엘리먼트의 프리젠테이션 속성을 사용하여 게시자 페이지에서 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지로부터 특정 컨텐츠 엘리먼트를 선택하고; 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하고, 상기 위치는 기준점 및 모드 파라미터에 기초하여 결정되고; 그리고 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하도록 구성된다.
이들 및 다른 구현은 각각 다음 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 예를 들어, 일부 구현들에서, 시스템은 컨텐츠 바인더 라이브러리와 통신하여 디지털 컴포넌트를 컨텐츠 바인더 라이브러리에 제공하도록 구성된 렌더링 라이브러리를 더 포함하고, 컨텐츠 바인더 라이브러리는 게시자 페이지의 위치에 디지털 컴포넌트를 렌더링하기 위한 보안 iframe을 삽입하고, 그리고 디지털 컴포넌트가 게시자 페이지의 위치에 삽입된 보안 iframe을 사용하여 디지털 컴포넌트를 게시자 페이지에 통합하게 하도록 구성되고, 상기 위치는 게시자 페이지의 특정 컨텐츠 엘리먼트에 인접한다.
일부 구현에서, 데이터 통합기는 모드 파라미터에 의해 지정된 사용자 디바이스의 유형에 기초하여 게시자 페이지에서 컷아웃을 삽입하기 위한 제2 기준점을 식별함으로써 특정 컨텐츠 엘리먼트를 선택하고, 제2 기준점은 특정 컨텐츠 엘리먼트에 인접한 게시자 페이지에 통합된 디지털 컴포넌트의 일부를 렌더링하거나, 게시자 페이지에 디스플레이하기 위해 제공된 다른 상이한 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 적어도 하나의 다른 위치를 나타낸다.
일부 구현에서, 데이터 통합기는 i) 각 후보 컨텐츠 엘리먼트의 개별 깊이값에 기초하여 하나 이상의 후보 컨텐츠 엘리먼트를 식별하고, 각각의 개별 깊이값은 게시자 페이지의 루트 노드를 참조하여 계산되고; ii) 게시자 페이지의 제1 뷰포트 사이즈 영역과 오버랩하는 하나 이상의 후보 컨텐츠 엘리먼트를 필터링하고; iii) 필터링에 응답하여, 나머지 후보 컨텐츠 엘리먼트의 세트 중에서 컨텐츠 엘리먼트를 선택하고, 그 컨텐츠 엘리먼트는 컨텐츠 엘리먼트가 게시자 페이지의 루트 노드에 가장 근접함을 나타내는 개별 깊이값에 기초하여 선택되고; 그리고 iv) 선택된 컨텐트 엘리먼트에 기초하여 게시자 페이지에서 제2 기준점을 식별함으로써, 게시자 페이지에서 제2 기준점을 식별하도록 구성된다.
이 양태 및 다른 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 동작들을 수행하도록 구성된 대응하는 시스템, 장치 및 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터 또는 하드웨어 회로의 컴퓨팅 시스템은 시스템에 설치된 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합에 의해 구성되어 시스템이 그 동작들을 수행하게 할 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작들을 수행하게 하는 명령들을 가짐으로써 구성될 수 있다.
본 명세서에 기술된 주제의 특정 실시예는 다음 장점들 중 하나 이상을 실현하도록 구현될 수 있다. 컴퓨팅 시스템의 렌더링 모듈은 웹 페이지에 디지털 컴포넌트를 통합하기 위해 상호 작용하는 컨텐츠 바인더 라이브러리 및 렌더링 라이브러리를 구현하기 위한 특정 컴퓨팅 규칙을 실행한다. 디지털 컴포넌트들은 게시자 웹 페이지에 통합되어 콘텐츠를 가리지 않고 웹 페이지의 콘텐츠 엘리먼트를 감싸거나(wrap) 에워쌀 수 있는 배경 크리에이티브와 연관된다. 렌더링 모듈은 상이한 배경 포멧을 효율적으로 생성하여, 게시자 페이지의 콘텐츠(예를 들어, 게시자 페이지를 구성하는 콘텐츠 아이템)를 가리지 않고 페이지를 요청하는 사용자 장치 유형에 기초하여 게시자 페이지에 디지털 컴포넌트를 통합하고 효과적으로 디스플레이한다. 웹 페이지에 보안 iframe을 삽입하는 기술이 설명되어 있으며, 이를 통해 제3자가 웹 페이지에 직접 액세스하지 않고도 디지털 컴포넌트를 페이지의 컨텐츠 엘리먼트에 인접하게 배치할 수 있다.
설명된 컴퓨팅 프로세스는 효율적인 방식으로 컴퓨터 시스템에 의해 이전에는 수행될 수 없었던 제3자 컨텐츠를 효과적으로 디스플레이하고 안전하게 통합하기 위한 반복 가능한 자동화 프로세스를 가능하게 한다. 예를 들어, 시스템은 특정 계산 규칙 세트를 사용하여, 제3자 제공자들이 필요한 주관적 인간 설계 분석없이 다양한 게시자 페이지에 통합될 수 있는 디지털 컴포넌트를 일관되고 효율적으로 구현할 수 있게 한다. 특정 컴퓨팅 규칙을 사용하면 페이지가 콘텐츠를 구성하거나 포멧할 수 있는 상이한 방법에 관계없이 게시자 페이지에 디지털 구성 요소를 통합하기 위한 배경 포멧을 생성할 수 있다. 이와 같이, 설명된 기술은 설계자가 페이지에서 컨텐츠를 프리젠테이션할 위치를 선택한 방식의 주관적 특성, 웹 페이지가 제시되는 방식의 동적 특성, 페이지의 컨텐츠를 가리거나 페이지의 보안을 손상시키지 않으면서 웹 페이지에 제3자 컨텐츠를 안전하게 통합할 수 있는 표준화된 프로세스 개발과 관련된 문제로 인해 컴퓨터가 이전에 수행할 수 없었던 동작들을 수행할 수 있도록 한다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부 사항은 첨부 도면들 및 아래의 설명에서 설명된다. 본 주제의 다른 특징, 양태 및 이점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 게시자 페이지에서 디지털 컴포넌트를 렌더링하기 위한 예시적인 컴퓨팅 시스템의 블록도이다.
도 2는 게시자 페이지에서 배경으로서 디지털 컴포넌트를 렌더링하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 게시자 페이지에서 배경으로서 디지털 컴포넌트를 렌더링하기 위한 예시적인 컴퓨팅 아키텍처의 블록도이다.
도 4a는 다수의 컨텐츠 엘리먼트를 포함하는 게시자 페이지를 도시한다.
도 4b 및 4c는 게시자 페이지에 렌더링된 디지털 컴포넌트의 예를 도시한다.
도 5는 본 명세서에서 설명된 방법과 관련하여 사용될 수 있는 컴퓨팅 시스템의 블록도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 엘리먼트를 나타낸다.
본 문서에서는 웹 페이지에서 배경 크리에이티브(backdrop creative)로서 통합된 디지털 컴포넌트들을 렌더링하기 위한 방법을 기술한다. "배경 크리에이티브" 또는 "크리에이티브 자산"은 전자 문서를 구성하는 컨텐츠 엘리먼트들의 분석에 기초하여(예를 들어, 웹 페이지의 문서 객체 모델(DOM)에 지정된 컨텐츠 및/또는 컨텐츠 컨테이너의 분석에 기초하여), HTML 웹 페이지와 같은 전자 문서에 삽입된 iframe을 지칭할 수 있다. iframe은 웹 페이지와 분리된 샌드박스(sandboxed) 실행 환경에서 디지털 컴포넌트를 렌더링하도록 구성할 수 있으므로, 디지털 컴포넌트가 웹 페이지 자체의 컨텐츠 엘리먼트들 중 하나로 표시될 수 있다. 일반적으로, 컨텐츠 엘리먼트는 웹 페이지의 일부인 컨텐츠의 일부를 나타낼 수 있고, 여기서 웹 페이지의 컨텐츠는 컨텐츠 엘리먼트, 그 컨텐츠 엘리먼트와 통합된 디지털 컴포넌트, 또는 웹 페이지의 다양한 아이템을 정의할 수 있는 다른 컨텐츠를 포함할 수 있다. 일부 구현에서, 디지털 컴포넌트를 포함하는 배경 크리에이티브는 게시자 페이지에 통합하기 위해 크리에이티브 디자이너가 디자인한 웹 페이지일 수 있다. 디지털 컴포넌트는 페이지에 포함시키기 위해 크리에이티브 디자이너가 제작한 메시지 컨텐츠를 나타낼 수 있다.
본 문서 전체에 상세히 설명된 바와같이, 컴퓨팅 시스템은 특정 컴퓨팅 프로세스/규칙을 사용하여 컨텐츠 제공자(예를 들어, 제3자 제공자)가 크리에이티브 경험을 저하시키지 않으면서 다양한 게시자 웹 페이지에서 실행되는 전체-사이트 크리에이티브를 제작할 수 있도록 한다. 예를 들어, 시스템은 게시자 페이지를 스캔하여, 게시자 페이지에 하나 이상의 디지털 컴포넌트를 렌더링하는 배경 크리에이티브를 동적으로 배치(positioning)하고 통합하기 위한 기준점으로 사용되는 페이지의 컨텐츠 엘리먼트를 자동으로 찾고(locate) 선택하는 컨텐츠 바인더 라이브러리를 포함한다. 기준점으로 사용되는 컨텐츠 엘리먼트는 특정 컨텐츠 엘리먼트가 페이지상의 게시자 컨텐츠의 대부분(또는 주요 부분 또는 초점)을 포함하는 HTML 엘리먼트임을 나타내는 프레젠테이션 속성(예를 들어, 컨텐츠의 사이즈 및 상대 위치)에 기초하여 선택된다. 컨텐츠 바인더 라이브러리는 기준점을 사용하여, 게시자 페이지에서 하나 이상의 디지털 컴포넌트(예를 들어, 게시자와 다른 제3자에 의해 제공된 컨텐츠)를 렌더링하는 배경 크리에이티브를 배치하고 통합하기 위한 위치를 결정한다.
게시자 페이지로의 배경 크리에이티브의 통합을 용이하게 하기 위해, 컨텐츠 바인더 라이브러리는 시스템의 렌더링 라이브러리로부터 디지털 컴포넌트를 렌더링하기 위한 요청을 수신한다. 게시자 페이지에 디스플레이하기 위해 배경 크리에이티브가 선택되는 경우, 하나 이상의 렌더링 라이브러리는 적어도 콘텐츠 바인더 라이브러리를 사용하여 게시자 페이지에 배치될 수 있다. 예를 들어, 렌더링 라이브러리는 컨텐츠 바인더 라이브러리가 디지털 컴포넌트를 결정된 위치에서 게시자 페이지에 통합하도록 요청할 수 있다. 수신된 요청에 기초하여, 컨텐츠 바인더 라이브러리는 (아래에 더 자세히 논의되는) 특정 컴퓨팅 규칙을 사용하여, 배경 크리에이티브를 정의하고 배경 크리에이티브 내에 디지털 컴포넌트들을 배치하기 위한 frame을 예를 들어, 선택된 콘텐츠 엘리먼트에 의해 표시된 기준점에 근접한 상기 위치에 삽입한다. 컨텐츠 바인더 라이브러리는 iframe이 시스템의 다른 컴퓨팅 서버와 보안 통신을 수행하여 게시자 페이지에 통합된 배경 크리에이티브를 획득하도록 지시한다. 배경 크리에이티브에 대응하는 웹 페이지가 수신되어 iframe에 로딩되어 게시자 페이지에서 렌더링된다. 배경 크리에이티브는 샌드박스 실행 컨텍스트(예를 들어, 보안 iframe)를 사용하여 게시자 페이지에서 렌더링되어 제3자가 게시자의 페이지에 대한 액세스 권한을 얻지 못하도록 하여, 악의적인 행위자가 게시자의 페이지를 제어하지 못하게 한다. 일부 구현에서, 디지털 컴포넌트는 배경 크리에이티브 내에 배치되어 게시자의 페이지가 크리에이티브 디자이너에 의해 생성된 컨텐츠 스킨에 래핑(wrapped)된 것처럼 보이게 하여, 디지털 컴포넌트가 단순히 페이지의 슬롯에 삽입된 것처럼 보이는 것이 아니라 게시자의 페이지에 통합된 모양과 느낌을 줄 수 있다.
본 문서 전체에서 사용된 바와같이, "디지털 컴포넌트"라는 문구는 웹 페이지, 디지털 컨텐츠 또는 디지털 정보(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 리치(rich) 미디어, 이미지, 텍스트 또는 다른 컨텐츠 단위)의 개별 단위를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있고 광고가 디지털 컴포넌트의 유형이 되도록 광고 정보를 포함할 수 있다. "디지털 컴포넌트"라는 문구는 디지털 컴포넌트의 제공자와 다른 엔티티에 의해 제공되는 전자 문서에 임베딩된 디지털 컨텐츠의 일부를 지칭할 수 있다.
도 1은 게시자 페이지에서 디지털 컴포넌트를 렌더링하기 위한 컴퓨팅 시스템(100)의 블록도를 도시한다. 시스템(100)은 렌더링 모듈(104)에 액세스하고, 이를 구현 또는 실행하기 위한 소프트웨어 명령들을 사용하는 컴퓨팅 서버(102)를 포함한다. 도 1에 도시된 바와 같이, 렌더링 모듈(104)은 특정 컴퓨팅 규칙을 사용하여 게시자 페이지(106)에서 디지털 컴포넌트를 렌더링할 수 있다. 예를 들어, 렌더링 모듈(104)은 게시자 페이지(106)와 상호 작용하여 게시자 페이지를 구성하는 컨텐츠 엘리먼트들에 대한 프리젠테이션 속성을 분석할 수 있다. 렌더링 모듈(104)은 프리젠테이션 속성을 사용하여, 디지털 컴포넌트를 게시자 페이지에서 배경(예를 들어, 배경 크리에이티브에서)으로서 통합 및 디스플레이하기 위한 게시자 페이지(106)의 적어도 하나의 위치를 결정한다. '게시자 페이지의 위치'라는 용어는 본 명세서에서 게시자 페이지 내의 위치, 예를 들어 게시자 페이지에 기초하여 생성된 디스플레이 내의 위치를 의미하는데 사용된다.
컴퓨팅 서버(102)는 렌더링 페이지(104)를 사용하여 게시자 페이지(106)에서 배경(예를 들어, 배경 크리에이티브에서)으로서 디스플레이하기 위해 포맷된 디지털 컴포넌트를 액세스하고 제공하도록 구성된다. 일부 구현에서, 렌더링 모듈(104)은 하나 이상의 프로세서 마이크로 칩을 포함하는 하드웨어 회로의 서브 시스템으로서 서버(102) 내에 포함된다. 일반적으로, 서버(102)는 서버(102)의 컴퓨터 시스템을 집합적으로 형성하는 프로세서, 메모리 및 데이터 저장 디바이스를 포함할 수 있다. 컴퓨터 시스템의 프로세서는 사용자 디바이스에서 출력하기 위한 그래픽 정보를 디스플레이하기 위해 메모리 또는 데이터 저장 디바이스에 저장된 명령들을 포함하여 서버(102)에 의해 실행하기 위한 명령들을 처리한다.
저장된 명령들의 실행은 본 명세서에 기술된 하나 이상의 동작이 서버(102) 또는 렌더링 모듈(104)에 의해 수행되게 할 수 있다. 일부 구현에서, 다수의 메모리 및 다수 유형의 메모리와 함께 적절하게 다수의 프로세서가 사용될 수 있다. 예를 들어, 서버(102)는 다수의 다른 컴퓨팅 디바이스와 연결될 수 있으며, 각 디바이스(예를 들어, 서버 뱅크, 서버 그룹, 모듈 또는 다중 프로세서 시스템)는 본 명세서에 기술된 액션, 동작 또는 논리 흐름의 일부를 수행한다.
렌더링 모듈(104)은 컨텐츠 바인더 라이브러리(108)("바인더 라이브러리(108)"), 렌더링 라이브러리(110) 및 자산 인덱스(112)를 포함한다. 바인더 라이브러리(108)는 게시자 페이지(106)를 구성하는 컨텐츠 엘리먼트를 찾아, 게시자 페이지(106)에 디스플레이하기 위한 배경 크리에이티브 및/또는 디지털 컴포넌트를 배치하기 위한 하나 이상의 위치를 결정하도록 구성된다. 예를 들어, 바인더 라이브러리(108)는 광고 컨텐츠를 포함하는 임의의 컨텐츠를 포함할 수 있는 제3자 컨텐츠를 포함하는 배경 크리에이티브를 사용하여, 디지털 컴포넌트를 설치할 게시자 페이지(106)의 헤더 및 페이지 엘리먼트들을 찾도록 구성된다. 바인더 라이브러리(108)는 게시자 페이지(106)에서 배경 크리에이티브를 삽입, 바인딩 또는 통합할 수 있을 뿐만 아니라 배경 크리에이티브를 올바르게 통합하고 배경 크리에이티브를 사용하여 디지털 컴포넌트를 디스플레이하는데 필요한 페이지에 대한 변경을 실행할 수 있다. 예를 들어, 실행되는 일부 변경은 게시자 페이지(106)의 배경색 조정 또는 변경, 게시자 페이지(106)의 컨텐츠를 시프트(예를 들어, 컨텐츠를 상향 또는 하향으로 시프트)하거나 이동시키고, 게시자 페이지(106)의 폭을 조정하고, 게시자 페이지(106)의 다양한 컨텐츠 엘리먼트의 CSS(cascading style sheets) 위치 속성을 조정하는 기능을 하는 하나 이상의 "스페이서" 엘리먼트의 삽입 또는 게시자 페이지(106)의 스크롤 위치 조정을 포함할 수 있다. 일부 조정(예를 들어, 스크롤 위치 및 페이지 폭 변경)은 게시자 페이지 106에서 배경 생성을 통합하기 위한 컴퓨팅 프로세스를 실행하기 직전에 수행될 수 있으며, 그 후 즉시 다시 변경될 수 있다. 일부 구현에서, 배경색의 조정과 같은 다른 변경은 사용자가 웹 페이지를 방문하는 시간 기간 동안 유지된다.
이하에서 보다 상세히 설명되는 바와 같이, 바인더 라이브러리(108)는 게시자 페이지(106)를 스캔하여, (예를 들어, 컨텐츠 엘리먼트를 헤더 엘리먼트로서 지정하기 위한 배치 및 범위 규칙을 사용하여) 페이지의 어떤 컨텐츠 엘리먼트가 헤더 엘리먼트인지를 결정한다. 바인더 라이브러리(108)는 하나 이상의 기준에 기초하여 게시자 페이지(106)의 컨텐츠 엘리먼트가 헤더 엘리먼트인지 여부를 결정한다. 예를 들어, 게시자 페이지(106)의 엘리먼트는 다음의 기준을 충족하는 경우 헤더 엘리먼트로 간주될 수 있다. 그 기준은 i) 엘리먼트가 페이지의 상단에 있거나 이미 헤더 엘리먼트로서 식별된 다른 엘리먼트 바로 아래에 있는 것으로 결정되고, ii) 엘리먼트가 게시자 페이지(106)의 제1 뷰포트를 넘어 확장되지 않고, iii) 엘리먼트가 게시자 페이지(106)의 전체 폭을 확장하며, iv) 엘리먼트가 최소 종횡비 임계값을 충족하는(예를 들어, 엘리먼트는 게시자 페이지(106)의 예시적인 뷰포트에 비해 충분히 짧고 넓은 엘리먼트임) 것을 포함한다. 일부 구현에서, 바인더 라이브러리(108)는 페이지에서 사람의 눈으로 볼 수 있는 엘리먼트와 같은 가시적인 엘리먼트에 대해 게시자 페이지(106)를 스캔한다. 바인더 라이브러리(108)는 엘리먼트의 CSS 속성이 엘리먼트를 표시해야하는지 여부 및 엘리먼트가 조상 엘리먼트에 의해 페이지에서 "마스킹(masked)"되어 있는지 여부와 같은, 엘리먼트가 가시성 기준을 만족시키는지 여부에 기초하여 엘리먼트가 가시적인지 여부를 결정한다. 예를 들어, 엘리먼트는 부모 엘리먼트의 경계 외부에 배치될 때 마스킹될 수 있으며, 부모 엘리먼트에는 부모 엘리먼트의 경계를 넘어 확장되는 것을 표시하지 않도록 설정된 CSS 속성이 있다. 따라서, 단지 다른 엘리먼트 뒤에 있는 엘리먼트는 고려되지만 부모 엘리먼트에 의해 "마스킹된" 엘리먼트는 고려되지 않는다.
렌더링 라이브러리(110)는 바인더 라이브러리(108)와 통신하여 바인더 라이브러리(108)에 의해 결정된 바와 같이 게시자 페이지(106)의 주어진 위치에서 통합을 위한 디지털 컴포넌트들을 제공한다. 일부 구현에서, 주어진 위치는 게시자 페이지(106)의 특정 컨텐츠 엘리먼트(예를 들어, 헤더 엘리먼트)에 적어도 근접(예를 들어, 지정된 픽셀 수 이내와 같이 실질적으로 근접)하거나 바로 인접한다. 예를 들어, 바인더 라이브러리(108)는 게시자 페이지(106)의 각각의 컨텐츠 엘리먼트의 프리젠테이션 속성에 기초하여 주어진 위치를 결정하고, 그 결정된 위치에 기초하여 게시자 페이지(106)에서 디지털 컴포넌트(들)을 배치하고 통합하기 위해 렌더링 라이브러리(110)와 통신한다. 일부 구현에서, 디지털 컴포넌트는 바인더 라이브러리(108)에서 프로세싱을 위해 수신되는 렌더링 라이브러리(110)로부터의 하나 이상의 요청에 응답하여 게시자 페이지(106)에 통합된다. 렌더링 모듈(104)의 제어하에 있는 것으로 표시되었지만, 바인더 라이브러리(108)와 렌더링 라이브러리(110)는 서버(102)의 독립적인 컴퓨팅 라이브러리로서 존재할 수 있고 렌더링 모듈(104)과 같은 컴퓨팅 엔티티의 직접적인 제어 외부에 존재할 수 있다.
바인더 라이브러리(108)는 게시자 페이지(106)에 디스플레이하기 위해 배경 크리에이티브에 통합된 디지털 컴포넌트들과 통신하기 위한 iframe에 대한 참조(예를 들어, 리소스 로케이터)를 포함하는 자산 인덱스(112)를 생성할 수 있다. 일부 구현에서, 제3자 또는 악의적인 행위자가 게시자 페이지(106)에 대한 액세스 권한 또는 제어 권한을 획득하지 못하게 하기 위해 (예를 들어, 배경 크리에이티브의 보안 iframe을 사용하여) 디지털 컴포넌트들이 샌드박스 실행 컨텍스트에서 게시자 페이지(106)에 렌더링, 통합 및/또는 디스플레이될 수 있다. 예를 들어, 바인더 라이브러리(108)는 게시자 페이지(106)에 디지털 컴포넌트를 배치하고 통합하기 위해 게시자 페이지(106)에 iframe을 삽입할 수 있다. 예를 들어, 바인더 라이브러리(108)는 웹 페이지와 같은 HTML 문서에서 분할 또는 섹션을 정의하는 태그(예를 들어, <iframe> 태그)를 사용하여 게시자 페이지(106)에 iframe을 삽입할 수 있다. iframe을 삽입하는 것에 응답하여, 바인더 라이브러리(108)는 iframe에 대한 포인터(예를 들어, 참조 포인터)를 생성하여 리턴할 수 있다. 바인더 라이브러리(108)가 참조 포인터를 반환할 때, 디지털 컴포넌트가 iframe에 포함되어 배경 크리에이티브를 형성할 수 있다.
렌더링 라이브러리(110)는 포인터 데이터를 사용하여 게시자 페이지(106)에 대한 직접적인 제어 또는 액세스 없이, 로딩된 iframe 또는 그 iframe에 의해 렌더링되는 디지털 컴포넌트와 통신할 수 있다. 일부 구현에서, 바인더 라이브러리(108)는 적어도 하나의 스크립팅 파일을 실행하여, 게시자 페이지(106)에 삽입된 디지털 컴포넌트들과 통신하기 위해 참조 데이터를 렌더링 라이브러리(110)로 전송한다. 예를 들어, 렌더링 모듈(104)은 예시적인 보안 메시징 링크/채널(114)을 생성하고, 보안 링크(114)의 포스트 메시징 기능을 사용하여 적어도 배경 크리에이티브 및 렌더링 라이브러리(110)의 iframe을 통해 게시자 페이지(106)에 통합된 디지털 컴포넌트들 사이에서 데이터 통신을 안전하게 교환할 수 있다. 일부 구현에서, 바인더 라이브러리(108)는 자산 인덱스(112)를 사용하여 게시자 페이지(106)의 iframe 또는 디지털 컴포넌트에 액세스하고 통신하기 위한 참조 데이터를 직렬화하고, 렌더링 라이브러리(110)와 인덱스(112)에 포함된 iframe의 디지털 컴포넌트 사이의 통신을 용이하게 하기 위해 자산 인덱스(112)에 관한 데이터를 렌더링 라이브러리(110)로 리턴한다.
렌더링 모듈(104)은 게시자 페이지(106)를 요청하거나 요청한 사용자 디바이스의 유형을 검출할 수 있다. 예를 들어, 렌더링 모듈(104)은 게시자 페이지(106) 또는 게시자 페이지(106)를 호스팅, 렌더링 또는 통신하는 디바이스로부터 수신된 파라미터 데이터에 기초하여 사용자 디바이스가 모바일 디바이스인지 또는 비-모바일 디바이스인지 여부를 검출한다. 일부 구현에서, 모바일 디바이스인 사용자 디바이스는 스마트 폰 또는 다른 유사한 핸드 헬드 전자 디바이스(예를 들어, iPod, 미니 태블릿 디바이스 등)을 포함한다. 일반적으로, 이러한 모바일 디바이스는 그 모바일 디바이스에 포함된 하드웨어 디스플레이용으로 구성된 페이지 레이아웃 및 컨텐츠 포멧에 기초하여 게시자 페이지의 컨텐츠 엘리먼트를 렌더링하도록 구성된다. 비-모바일 디바이스인 사용자 디바이스에는 데스크탑 또는 노트북 컴퓨터, 또는 기타 유사한 대형 컴퓨팅 디바이스(예를 들어, 풀 사이즈 태블릿 디바이스, 전자책 리더기, 크롬 북 등)가 포함된다. 일반적으로 이러한 비-모바일 디바이스는 그 비-모바일 디바이스에 포함된 하드웨어 디스플레이에 대해 구성된 페이지 레이아웃 및 컨텐츠 포멧에 기초하여 게시자 페이지의 컨텐츠를 렌더링하도록 구성된다. 일반적으로 모바일 디바이스에 포함된 하드웨어 디스플레이는 비-모바일 디바이스의 하드웨어 디스플레이보다 작을 것이다. 부가적으로, 다른 모바일 디바이스는 다른 사이즈 및/또는 종횡비 디스플레이를 가질 수 있다. 또한, 일부 디바이스는 멀티미디어 컨텐츠를 대형 스크린 고화질 텔레비전 화면과 같은 디바이스와 동일 위치(예를 들어, 동일한 방안)에 있는 별도의 디스플레이로 멀티미디어 컨텐츠를 브로드캐스트하는 기능을 가지며, 이 정보는 최종적으로 게시자 페이지(106)를 제시할 디스플레이의 디스플레이 속성을 결정하기 위해 렌더링 모듈(104)로 유사하게 제공될 수 있다.
도 2는 디지털 컴포넌트를 게시자 페이지에서 배경(예를 들어, 배경 크리에이티브의 iframe에서)으로서 렌더링하기 위한 예시적인 프로세스(200)의 흐름도이다. 구체적으로, 프로세스(200)는 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하고, 그 게시자 페이지의 위치에 디지털 컴포넌트를 통합 및 디스플레이하기 위한 예시적인 프로세스 흐름이다. 프로세스(200)는 전술한 시스템(100)을 사용하여 구현되거나 실행될 수 있다. 따라서, 프로세스(200)의 설명은 전술한 시스템(100)의 컴퓨팅 리소스를 참조할 수 있다. 일반적으로, 프로세스 (200)의 설명에 포함된 컴퓨팅 단계 및 프로세스 흐름은 상이한 순서로 발생하도록 그룹화되거나 배열될 수 있으며 본 명세서에 설명된 숫자 시퀀스로 제한되지 않는다.
이제 프로세스(200)를 참조하면, 블록(202)에서 시스템(100)은 바인더 라이브러리(108)를 사용하여 게시자 페이지(106)에 디스플레이된 컨텐츠를 찾고, 블록(204)에서 게시자 페이지(106)의 각각의 위치에 있는 컨텐츠에 대해, 바인더 라이브러리(108)는 컨텐츠의 프리젠테이션 속성을 결정한다. 예를 들어, 렌더링 모듈(104)은 바인더 라이브러리(108)를 사용하여 게시자 페이지에 디스플레이된 다수의 컨텐츠 엘리먼트를 찾기 위해 게시자 페이지(106)에 포함된 정보를 분석한다. 게시자 페이지(106)의 어떤 컨텐츠가 컨텐츠 엘리먼트인지 찾고 결정하기 위해, 바인더 라이브러리(108)는 (아래에 설명되는) 다단계 컴퓨팅 방식을 수행할 수 있다. 일부 구현에서, 컴퓨팅 방식을 실행할 때, 게시자 페이지(106)의 모든 가시적 컨텐츠는 단일 컨텐츠 엘리먼트에 대한 후보일 수 있고, 바인더 라이브러리(108)는 게시자 페이지(106)의 모든 가시적 컨텐츠를 포함하는 후보 컨텐츠 엘리먼트의 리스트를 생성할 수 있다.
방식(scheme)의 각 프로세스 단계에서, 리스트의 후보 컨텐츠 엘리먼트는 단일 컨텐츠 엘리먼트가 남아있을 때까지 필터링되거나 줄어든다. 일부 구현에서, 단일 컨텐츠 엘리먼트를 발견하거나 찾은 경우, 컴퓨팅 방식은 그 방식의 다른 프로세스 단계가 완료되지 않았는지에 관계없이 위치 프로세스를 종료한다. 따라서, 단일 컨텐츠 엘리먼트를 찾으면, 컴퓨팅 방식은 다단계 프로세스를 종료하고 단일 컨텐츠 엘리먼트에 관한 데이터를 포함하는 단일 컨텐츠 엘리먼트를 리턴할 것이다. 일부 구현에서, 다수의 후보 컨텐츠 엘리먼트는 컴퓨팅 방식의 모든 프로세스 단계가 완료된 후에 남아 있을 수 있다. 이 경우, 바인더 라이브러리(108)는 후보 컨텐츠 엘리먼트의 리스트내의 제1 컨텐츠 엘리먼트를 단일 컨텐츠 엘리먼트로서 선택하도록 구성된다.
컴퓨팅 방식의 다단계 프로세스가 이제 설명될 것이다. 먼저, 바인더 라이브러리(108)는 게시자 페이지(106)의 헤더 엘리먼트의 위치를 식별하고 가능한 모든 후보 컨텐츠 엘리먼트의 리스트를 생성한다. 바인더 라이브러리(108)는 컷아웃 (cutout) 또는 배너(각각 후술됨)를 삽입하기 위한 컨텐츠 엘리먼트가 있는지 여부에 기초하여 다른 방식으로 리스트를 생성한다. 컷아웃의 경우, 생성된 리스트에는 위에서 설명한 바와같이 CSS 속성에 기초하여 "가시적"인 모든 후보 컨텐츠 엘리먼트가 포함될 것이다. 배너(예를 들어, 데스크탑 배너 또는 모바일 배너)의 경우, 생성된 리스트에는 전술한 바와 같이 게시자 페이지의 뷰포트에 고정되지 않고, 헤더 엘리먼트가 아니며, 조상 또는 부모 엘리먼트에 의해 마스킹되지 않은 모든 후보 컨텐츠 엘리먼트(예를 들어, "고정"되지 않은 CSS 위치 속성을 갖는 엘리먼트")가 포함될 것이다. 바인더 라이브러리(108)는 적어도 게시자 페이지(106)의 임계 부분과 오버랩되지 않는 컨텐츠 엘리먼트를 폐기한다. 도 4a를 참조하여 보다 상세하게 설명된 바와 같이, 게시자 페이지(106)의 임계 부분은 게시자 페이지(106)의 예시적인 뷰포트에 의해 정의될 수 있고 게시자 페이지(106)의 처음 30%에 해당할 수 있다. 게시자 페이지(106)의 임계 부분은 페이지의 맨 아래 헤더에 의해 페이지의 상단에 경계가 있고 뷰포트의 하단(bottom)에 의해 페이지의 하단에 경계가 있는 영역에 해당할 수 있다. 일부 구현에서, 바인더 라이브러리(108)는 찾은 컨텐츠 엘리먼트를 사용하여 게시자 페이지(106)에서 디지털 컴포넌트를 배치하고 디스플레이한다. 따라서, 예를 들어 광고를 나타내는 디지털 컴포넌트가 게시자 페이지(106)의 상단 또는 적어도 페이지의 상단 임계 부분에서 사용자에게 보여지는 것이 바람직할 수 있다. 따라서, 컴퓨팅 방식은 바인더 라이브러리(108)가 게시자 페이지(106)의 적어도 상단 근처(예를 들어, 상단의 지정된 픽셀 수 이내 또는 페이지 하단보다 페이지 상단에 더 가까운 상대 위치)에 있는 단일 컨텐츠 엘리먼트를 찾고 및/또는 선택하는 것을 보장하기 위해 사용될 수 있다.
다음으로, 바인더 라이브러리(108)는 게시자 페이지(106)의 상단으로부터 하단으로 연장되는 일련의 오버랩 영역(예를 들어, 수직 영역)과 같은 일련의 영역을 설정하고, 가장 많은 수의 영역과 교차하는 컨텐츠 엘리먼트만 유지할 수 있다. 일부 구현에서, 단일 비-오버랩 영역들의 세트는 어떤 컨텐츠 엘리먼트들이 게시자 페이지(106)의 다량의 수직 공간을 커버하는지를 결정하기에 충분하다. 바인더 라이브러리(108)는 오버랩하는 영역 세트를 사용하여, 특정 영역과 거의 교차하지 않는 컨텐츠 엘리먼트가 특정 영역의 더 많은 부분을 포함하는 컨텐츠 엘리먼트만큼 과중하게 가중되지 않도록 한다. 일부 구현에서, 바인더 라이브러리(108)는 수직 영역 대신에 수평 윈도우 또는 영역의 오버랩 세트를 사용한다. 수평 영역의 사용은 길고 가는 메뉴바와 같은 게시자 페이지(106)의 특정 컨텐츠 엘리먼트가 게시자 페이지(106)의 다른 보다 실질적인 컨텐츠 엘리먼트에 비해 선택되지 않도록 보장하는데 도움이 된다.
컴퓨팅 방식의 적어도 하나의 단계에서, 바인더 라이브러리(108)는 게시자 페이지(106)의 컨텐츠 엘리먼트의 리스트에서 각 후보 컨텐츠 엘리먼트(또는 각각의 나머지 후보 엘리먼트)의 컨텐츠 엘리먼트 깊이(depth)를 비교할 수 있다. 예를 들어, 게시자 페이지(106)는 게시자 페이지(106)의 컨텐츠 엘리먼트의 구조를 정의하는 DOM(Document Object Model) 트리를 포함할 수 있다. 각 컨텐츠 엘리먼트는 DOM 트리의 루트에 상대적인 개별(respective) 깊이값을 가질 수 있다. 예를 들어, 게시자 페이지(106)의 컨텐츠 엘리먼트의 DOM 트리는 <html>이 루트에 있고 <head> 및 <body>가 그의 자식(children)인 구조를 포함할 수 있다.
바인더 라이브러리(108)는 각 후보 컨텐츠 엘리먼트의 개별 깊이값에 기초하여 게시자 페이지(106)의 하나 이상의 후보 컨텐츠 엘리먼트를 식별할 수 있다. 예를 들어, 바인더 라이브러리(108)는 게시자 페이지(106)에 설치된 코딩된 스크립트를 사용하여 게시자 페이지(106)와 통신한다. 코딩된 스크립트를 사용하여, 바인더 라이브러리(108)는 게시자 페이지(106)에 포함된 컨텐츠 엘리먼트들의 프리젠테이션 속성을 결정하기 위한 정보를 획득할 수 있다. 바인더 라이브러리(108)에 의해 결정된 프리젠테이션 속성은 게시자 페이지(106)에서의 아이템의 깊이값 및 컨텐츠 엘리먼트의 사이즈를 지정하는 사이즈 속성을 포함할 수 있다. 일부 경우, 컨텐츠 엘리먼트의 깊이값은 페이지의 루트에 대한 게시자 페이지(106)에서 컨텐츠 엘리먼트의 상대 위치를 나타낸다. 예를 들어, 각 개별 깊이값은 게시자 페이지(106)의 DOM 트리의 루트 노드를 참조하여 계산될 수 있다.
배경 크리에이티브를 삽입하기 위한 기준점으로서 컨텐츠 엘리먼트를 찾아 선택하기 위해, 바인더 라이브러리(108)는 게시자 페이지(106)의 제1 뷰포트 사이즈 영역과 오버랩하는 하나 이상의 후보 컨텐츠 엘리먼트를 필터링하도록 구성된다. 필터링에 응답하여, 바인더 라이브러리(108)는 나머지 후보 컨텐츠 엘리먼트 세트 중에서 컨텐츠 엘리먼트를 선택하는데, 여기서 컨텐츠 엘리먼트는 DOM 트리의 루트에 대한 컨텐츠 엘리먼트 위치를 나타내는 개별 깊이값에 적어도 부분적으로 기초하여 선택된다. 예를 들어, 바인더 라이브러리(108)는 게시자 페이지의 루트 노드에 가장 가까운 컨텐츠 엘리먼트를 상단 배너를 렌더링하기 위한 iframe을 삽입하거나 (아래에서 설명되는) 심(seam) 엘리먼트를 식별하기 위한 위치 또는 기준점으로서 식별하거나 선택할 수 있다.
대안적으로, 바인더 라이브러리(108)는 각 엘리먼트의 개별 깊이값에 의해 결정된 바와 같이 루트로부터 가장 먼 컨텐츠 엘리먼트를 유지(keep) 또는 유지(retain)할 수 있다. 예를 들어, 각 컨텐츠 엘리먼트의 개별 깊이값의 비교에 기초하여, 바인더 라이브러리(108)는 실제 대부분의(majority) 컨텐츠 엘리먼트를 감싸고(weap) 페이지에 공간을 추가하는 기능을 하는 게시자 페이지(106)의 넓은 컨텐츠 엘리먼트와 대조적으로, 대부분의 컨텐츠에 가장 가까운 컨텐츠 엘리먼트가 선택되도록 보장하기 위해 루트로부터 가장 멀리 떨어진 특정 컨텐츠 엘리먼트를 유지할 수 있다. 후술되는 바와 같이, 바인더 라이브러리(108)는 단일 컨텐츠 엘리먼트 주위 또는 컨텐츠 엘리먼트 내에 배경 크리에이티브를 배치함으로써 디지털 컴포넌트를 포함하는 배경 크리에이티브를 통합할 수 있다. 따라서, 본 명세서에 기술된 바와 같이, 웹 페이지의 컨텐츠 엘리먼트는 뉴스 기사, "방법(How-To)" 튜토리얼 컨텐츠 또는 견해 부분과 같이 사용자가 게시자의 웹 페이지를 방문하여 소비하는 대부분의 컨텐츠를 포함하는 컨텐츠 엘리먼트로서 정의될 수 있다.
블록(206)에서, 바인더 라이브러리(108)는 게시자 페이지(106)를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 검출한다. 전술한 바와 같이, 렌더링 모듈(104)은 게시자 페이지(106)를 요청하거나 요청한 사용자 디바이스의 유형을 검출할 수 있다. 예를 들어, 바인더 라이브러리(108)는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 포함하거나 정의하는 파라미터 데이터를 수신할 수 있다. 일부 구현에서, 모드 파라미터는 바인더 라이브러리(108)를 사용하여 그리고 게시자 페이지(106)에 설치된 실행된 코드 스크립트(예를 들어, 자바 스크립트 파일)에 기초하여 획득된다. 모드 파라미터는 바인더 라이브러리(108)가 게시자 페이지(106)를 요청하는 사용자 디바이스의 유형이 모바일 디바이스인지 또는 비-모바일 디바이스인지 여부 및/또는 사용자 디바이스가 다른 디바이스로 컨텐츠를(예를 들어, 무선으로) 브로딩 캐스팅하는지 여부를 검출할 수 있게 한다. 일부 구현에서, 모드 파라미터는 게시자 페이지(106)에 배치된 렌더링 라이브러리가 바인더 라이브러리(108)에 만들 배경 크리에이티브에 대한 요청의 종류를 알려준다. 따라서, 바인더 라이브러리(108)는 예를 들어 렌더링 라이브러리들로부터의 요청에 포함된 모드 파라미터에 기초하여, 모바일 기반 컨텐츠 엘리먼트 검출 기능을 사용할지 데스크탑 기반 컨텐츠 엘리먼트 검출 기능을 사용할지를 이해한다. 바인더 라이브러리(108)는 모드 파라미터에 기초하여 사용할 컨텐츠 엘리먼트 검출 기능을 결정하고, 본 명세서에 기술된 바와 같이 콘텐츠 엘리먼트 검출 알고리즘을 실행하여 배경 크리에이티브를 통합하기 위한 기준점을 결정한다.
프로세스(200)의 블록(208)에서, 바인더 라이브러리(108)는 단일 컨텐츠 엘리먼트의 프리젠테이션 속성을 사용하여 페이지에 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지(106)로부터 단일 컨텐츠 엘리먼트(즉, 특정 컨텐츠 엘리먼트)를 선택한다. 일부 구현에서, 렌더링 모듈(104)은 게시자 페이지(106)의 단일 컨텐츠 엘리먼트의 선택을 가능하게 하기 위해 게시자 페이지(106) 및 바인더 라이브러리(108)의 컴퓨팅 로직과 통신하도록 구성된 데이터 통합기(예를 들어, 하나 이상의 코딩된 스크립트)를 포함한다. 블록(210)에서, 바인더 라이브러리(108) 및/또는 데이터 통합기는 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하는데, 여기서 위치는 적어도 기준점 및 모드 파라미터에 기초하여 결정된다. 예를 들어, 위치는 게시자 페이지(106)의 특정 컨텐츠 엘리먼트(예를 들어, 헤더 엘리먼트)에 적어도 근접하거나(예를 들어, 실질적으로 근접) 절대적으로 인접한 기준점을 사용하여 정의되거나 결정될 수 있다.
일단 바인더 라이브러리(108)가 컨텐츠 엘리먼트를 선택하고 위치를 결정하면, 바인더 라이브러리(108)는 렌더링 라이브러리(110)로부터 수신된 요청에 응답하여 (예를 들어, iframe을 사용하여 디지털 컴포넌트들을 포함하는) 새로운 배경 크리에이티브를 게시자 페이지(106)에 드로잉(draw)하거나 통합할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 바인더 라이브러리(108)가 게시자 페이지(106)에서 새로운 배경 크리에이티브를 통합하는 방식은 게시자 페이지(106)를 요청하는 사용자 디바이스의 유형에 따라 다르다. 예를 들어, 렌더링 모듈(104)은 상이한 컴퓨팅 규칙 세트를 사용하는 컴퓨팅 아키텍처(또는 다중 아키텍처)를 포함하여, 요청하는 사용자 디바이스의 유형에 따라 게시자 페이지(106)에서 디지털 컴포넌트들을 렌더링하고 및/또는 게시자 페이지(106)를 렌더링할 것이다. 대안적으로, 렌더링 모듈(104)은 게시자 페이지에서 디지털 컴포넌트들을 렌더링하기 위해 상이한 컴퓨팅 아키텍처를 포함하고 사용할 수 있는데, 여기서, 하나의 아키텍처는 모바일 사용자 디바이스에 의해 요청된 게시자 페이지(106)에서 디지털 컴포넌트를 렌더링하기 위한 모바일 렌더링 모드를 나타내고, 다른 아키텍처는 비-모바일 사용자 디바이스에 의해 요청된 게시자 페이지(106)에서 디지털 컴포넌트를 렌더링하기 위한 비-모바일(예를 들어, 데스크탑) 렌더링 모드를 나타낸다.
그러나, 모바일 및 데스크탑 렌더링 모드 모두에 대해, 렌더링 라이브러리 (110)는 상단 배너에 대한 iframe이 게시자 페이지(106)에 드로잉되도록 요청할 수 있다. 예를 들어, 상단 배너는 디지털 컴포넌트의 유동적인 표현을 제공하기 위해 게시자 페이지(106)의 흐름에 통합될 수 있으며, 예를 들어, 사용자가 게시자 페이지를 탐색할 때 상단 배너는 절대 위치되지 않는다. 일부 구현에서, 상단 배너에는 게시자 페이지(106)를 요청하는 사용자 디바이스의 유형에 관계없이, 게시자 페이지(106)의 폭의 100%로 설정된 폭 속성(예를 들어, 모바일 렌더링 모드의 경우)과 그 폭에 비례하여 설정된 높이 속성을 가질 것이다. 상단 배너는 소스 경로가 있는 샌드박스 iframe 또는 특정 배경 자산으로 설정된 보안 링크(예를 들어, 시스템(100)의 컨텐츠 서버에 의해 설정된 URL)를 갖는 div 엘리먼트(여기서는 간단히 "div"라고 함)를 포함할 수 있다. 특정 배경 자산은 사용자 디바이스의 유형이 비-모바일(또는 모바일) 사용자 디바이스임을 나타내는 모드 파라미터에 기초하여 배경(또는 컷아웃) 렌더링을 위해 특별히 구성된 디지털 컴포넌트일 수 있다. 일부 구현에서, 상단 배너의 iframe은 <div> 태그와 상호 작용하여, 상단 배너에 자식 자산을 추가할 수 있는데, 여기서 자식 자산은 iframe의 형제로서 div에 추가된다.
프로세스(200)의 블록(212)에서, 바인더 라이브러리(108) 및/또는 렌더링 모듈(104)의 데이터 통합기는 위치에 삽입된 보안 iframe을 사용하여 게시자 페이지(106)의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공한다. 예를 들어, 바인더 라이브러리(108)는 바인더 라이브러리(108)에서 수신된 렌더링 라이브러리(110)로부터의 요청에 기초하여 게시자 페이지(106)의 결정된 위치에서 렌더링하기 위한 디지털 컴포넌트를 제공한다. 따라서, 바인더 라이브러리(108)는 i) (디지털 컴포넌트를 제공하는) 렌더링 라이브러리(110)와 통신하고; ii) 렌더링 라이브러리(110)로부터 디지털 컴포넌트를 수신하고; 그리고 iii) 바인더 라이브러리(108)에 의해 그 위치에 삽입된 보안 iframe을 사용하여 디지털 컴포넌트가 그 위치에서 게시자 페이지(106)에 통합되게 한다. 렌더링 라이브러리(110)는 바인더 라이브러리(108)를 통해 게시자 페이지에 삽입된 하나 이상의 iframe을 사용하여 다양한 상이한 유형의 게시자 페이지에 디스플레이 되도록 각각 포맷된 다양한 상이한 디지털 컴포넌트를 포함할 수 있다. 디지털 컴포넌트는 배경 크리에이티브 컴포넌트 또는 리치 미디어 크리에이티브 컴포넌트 중 적어도 하나를 포함할 수 있다. 일부 구현에서, 디지털 컴포넌트들을 통합하기 위한 위치는 뉴스 기사, '방법' 튜토리얼 컨텐츠 또는 견해 부분과 같이 사용자가 게시자의 페이지를 방문하여 소비하는 대부분의 컨텐츠를 포함하는 컨텐츠 엘리먼트와 같은 게시자 페이지의 선택된 컨텐츠 엘리먼트에 인접한다.
일부 구현에서, 렌더링 라이브러리(110)는 게시자 페이지(예를 들어, 호스트 페이지 도메인)를 액세스하는 것이 배제되는 제1 도메인(예를 들어, 크리에이티브 도메인)을 나타내고, 바인더 라이브러리(108)는 제1 도메인과 분리된 제2 도메인을 나타낸다. 제2 도메인은 i) 렌더링 라이브러리(110)의 제1 도메인에 의해 액세스하도록 구성되고, ii) 게시자 페이지에 통합된 디지털 컴포넌트(예를 들어, 자산 도메인)에 대한 제3 도메인에 액세스하도록 구성되고, iii) 각각의 호스트 페이지 도메인, 제1 도메인 및 제3 도메인 사이의 통신을 오버랩하도록 구성된다. 본 문서에서 사용된 바와 같이, 설명된 도메인은 각각 프로그래밍된 명령들이 실행되어 해당 도메인의 특정 보안 컨텍스트에 맞는 동작을 수행하는 다른 컴퓨팅 환경을 나타낼 수 있다.
제3 도메인은 게시자 페이지(106) 및 호스트 페이지 도메인에 대한 제3자 액세스를 배제하도록 구성된 게시자 페이지(106)의 샌드박스 실행 환경(예를 들어, iframe)일 수 있다. 이 제3 도메인은 렌더링 라이브러리의 제1 도메인 및 컨텐츠 바인더 라이브러리의 제2 도메인과 분리되어 있다. 게시자 페이지(106)에 통합된 제3 도메인의 디지털 컴포넌트들은 바인더 라이브러리(108)에 의해 설정된 보안 통신 채널(예를 들어, 보안 링크(114))을 통해 렌더링 라이브러리(110)와 통신한다. 일부 구현에서, 보안 통신 채널은 주어진 시스템 내의 동일한 머신 또는 머신 세트상의 상이한 도메인(예를 들어, 제1 도메인 및 제3 도메인) 사이에서 통신하는데 사용된다.
도 3은 게시자 페이지(106)에서 디지털 컴포넌트를 배경으로서 렌더링하기 위한 렌더링 모듈(104) 및 서버(102)의 예시적인 컴퓨팅 아키텍처(300)의 블록도를 도시한다. 위에서 언급한 바와 같이, 바인더 라이브러리(108)는 게시자 페이지(106)를 요청하거나 요청한 사용자 디바이스의 유형에 기초하여 게시자 페이지(106)에서 새로운 배경 크리에이티브를 다르게 통합한다. 예를 들어, 렌더링 모듈(104)은 게시자 페이지(106)에서 디지털 컴포넌트를 렌더링하기 위해 상이한 세트의 컴퓨팅 규칙을 실행하는 컴퓨팅 아키텍처(300)를 포함할 수 있다. 일부 구현에서, 하나의 컴퓨팅 규칙 세트는 모바일 렌더링 모드에 대응하고 다른 컴퓨팅 규칙 세트는 비-모바일(예를 들어, 데스크탑) 렌더링 모드에 대응한다.
아키텍처(300)는 게시자 페이지(106)에서 디지털 컴포넌트를 통합하는 배경 크리에이티브를 위해 PrimaryFile 객체가 어떻게 구성될 수 있는지를 나타낸다. 메타 데이터(302)는 (예를 들어, 하위 객체를 통해) UserAgent 문자열을 검사 또는 질의하는 모델 팩토리(304)에 문자열 데이터를 제공하고, UserAgent 문자열의 값에 기초하여 모바일 PrimaryFile 객체(308) 또는 데스크탑 PrimaryFile 객체(310)를 생성한다. 예를 들어, 게시자 페이지(106)에서의 크리에이티브 게재(serving)는 크리에이티브가 프라이머리 파일의 메타 데이터에서 배경 크리에이티브라는 표시를 포함할 수 있다. 일부 구현에서, 배경 크리에이티브 및 관련 디지털 컴포넌트들에 대한 메타 데이터(302)는 렌더링 라이브러리(110)에 의해 관리되고 제공된다.
배경 크리에이티브는 "배경"으로 설정된 renderAs 값을 갖는 단일 프라이머리 자산을 포함할 수 있다. 모델 팩토리(304)는 renderAs 값을 식별하거나 획득하고 그 값을 신호 표시기로서 사용하여 상이한 유형의 PrimaryFile 모델 객체(308, 310)를 생성함으로써 크리에이티브 메타 데이터(302)로부터 모델 객체들을 생성한다. 각각의 PrimaryFile 모델 객체(308, 310)는 PrimaryFile 객체가 비-모바일(데스크탑) 디바이스 자산 또는 모바일 디바이스 자산으로 표시되어야 하는지 여부를 나타내는 상이한 URL(uniform resource locator) 조각을 가질 수 있다. 예를 들어, 모델 팩토리(304)는 UserAgent 문자열을 질의하여, 크리에이티브가 모바일 렌더링 또는 비-모바일 렌더링을 위해 제작되어야 하는지 여부를 결정하기 위한 renderAs 값을 식별하거나 획득할 수 있다.
renderAs 값에 기초하여, UserAgent 문자열이 크리에이티브가 모바일 환경(예를 들어, 스마트 폰의 디스플레이)에서 렌더링되어야 함을 나타내는 경우, 모델 팩토리(304)는 상단 배너 및 컷아웃(아래에 설명됨)을 포함하는 배경 크리에이티브를 위한 모바일 PrimaryFile 객체(308)를 생성할 수 있다. 마찬가지로, UserAgent 문자열이 크리에이티브가 비-모바일 환경(예를 들어, 데스크탑 컴퓨터의 디스플레이)에서 렌더링되어야 함을 나타내는 경우, 모델 팩토리(304)는 상단 배너 및 데스크탑 배경 화면을 포함하는 배경 크리에이티브를 위한 데스크탑 PrimaryFile 객체(310)를 생성할 수 있다.
설명된 아키텍처(300)의 컴퓨팅 규칙은 렌더링 모듈(104)을 사용하여 구현될 수 있다. 예를 들어, 렌더링 모듈(104)은 바인더 라이브러리(108)를 사용하여 게시자 페이지(106)에서 디지털 컴포넌트를 통합 및 디스플레이하기 위한 렌더링 레이아웃을 결정할 수 있다. 일부 구현에서, 렌더링 레이아웃은 렌더링 라이브러리(110)로부터 수신된 배경 크리에이티브에 의해 정의된 바와같이 디지털 컴포넌트의 메타 데이터에 기초하여 결정된다. 예를 들어, 바인더 라이브러리(108)는 크리에이티브의 UserAgent 문자열을 검사 또는 질의함으로써 또는 게시자 페이지에 배치된 하나 이상의 렌더링 라이브러리로부터 바인더 라이브러리(108)에 제공된 정보에 기초하여 게시자 페이지(106)에서 디지털 컴포넌트를 통합하고 디스플레이하기 위한 렌더링 레이아웃을 결정한다.
데이터 통합기와 관련된 배경 렌더러(renderer)는 서비스 제공자의 프로토콜 또는 DOM 문서를 포함하는 윈도우와 같은 도메인간 메시징 프로토콜을 사용하여 게시자 페이지(106)에서 바인더 라이브러리(108)와의 연결을 개시하도록 구성된다. 렌더러는 연결을 사용하여, 그 객체가 선택된 컨텐츠 엘리먼트 및 그 선택된 컨텐츠 엘리먼트의 프리젠테이션 속성과 관련하여 위치되거나 위치되어야 하는 경우와 같이, 파일 객체들에 관한 추가 메타 데이터와 함께 파일 PrimaryFile 객체(308, 310)의 URL을 바인더 라이브러리(108)로 전달한다. 일부 구현에서, 배경 렌더러는 디지털 컴포넌트를 포함하여, 요청된 크리에이티브 에셋들이 컨텐츠 엘리먼트 주위에 드로잉되거나 통합되도록 한다. 렌더러는 리턴 기능을 사용하여 게시자 페이지(106)에서 렌더링된 통합 자산에 대한 보안 연결 또는 링크(114)를 설정하기 위한 참조 컨텍스트를 획득하는 수단을 다시 전달할 수 있다.
도 4a는 "컨텐츠 헤더"로서 식별된 다수의 아이템/컨텐츠 엘리먼트를 포함하는 게시자 페이지(400)의 예시적인 컨텐츠를 도시한다. 도 4a의 표현은 디지털 컴포넌트를 배치하기 위한 게시자 페이지(106)의 특정 컨텐츠 엘리먼트를 선택하기 위해, 게시자 페이지의 컨텐츠를 찾기 위한 추가 컨텍스트를 제공하도록 참조될 수 있다. 위에서 논의된 바와 같이, 게시자 페이지(400)가 사용자 디바이스에 로딩될 때 배경 크리에이티브가 사용자에게 즉시 보여질 수 있도록 보장하기 위해 게시자 페이지(400)의 상단부에 있는 엘리먼트들이 후보로서 유지된다. 뷰 포트(402)는 컨텐츠 엘리먼트들(406)의 일부를 포함하고, 엘리먼트들(406)의 컨텐츠 헤더(408a, 408b)가 후보 컨텐츠 엘리먼트로서 유지되기 위해 오버랩되어야 하는 게시자 페이지(400)의 영역을 정의한다. 따라서, 사이트 헤더 엘리먼트(404)와 컨텐츠 헤더 (408a, 408b)는 뷰 포트(402)에 의해 정의된 바와 같이 게시자 페이지(400)의 상단과 오버랩되어 후보로서 유지되는 반면, 컨텐츠 헤더(410)는 후보 컨텐츠 엘리먼트로서 고려에서 버려지거나 필터링된 다른 엘리먼트를 나타낸다 .
도 4b 및 4c는 배경 크리에이티브의 일부로서 게시자 페이지에서 렌더링되는 디지털 컴포넌트의 예를 도시한다. 특히, 도 4b의 구현은 비-모바일 사용자 디바이스(예를 들어, 데스크탑/랩탑 컴퓨터)에서 디스플레이하도록 구성된 웹 사이트 또는 게시자 페이지(420)에서 렌더링된 배경 크리에이티브에 포함된 디지털 컴포넌트(428)의 예를 도시한다. 일부 구현에서, 메타 데이터(302)가 배경 크리에이티브가 데스크탑 환경에서의 디스플레이를 위한 것이고 및/또는 모드 파라미터가 비-모바일 사용자 디바이스가 페이지(420)를 요청하도록 지정한 것을 나타내는 경우 렌더링 라이브러리(110)는 페이지(420)에서 배경(background) 엘리먼트(422)의 통합만을 요청하도록 구성된다.
배경 엘리먼트(422)는 페이지(420)의 예시적인 뷰포트(426)에 대해 고정되고 수평으로 중심에 위치되도록 배치될 수 있어서, 배경 엘리먼트(422)의 상단은 게시자 페이지에서 최하단 헤더의 하단과 접하게 된다. 위에서 논의된 바와 같이, 시스템(100)은 적어도 2개의 모드, 예를 들어 모바일 모드(스마트 폰 유형 디바이스 용) 또는 비-모바일 모드(데스크탑/랩탑 유형 디바이스용)에서 디지털 컴포넌트들을 포함하는 배경 크리에이티브를 드로잉할 수 있다. 데스크탑/비-모바일 모드에서, 바인더 라이브러리(108)는 컨텐츠 엘리먼트(429a/b)의 수직 에지와 게시자 페이지(410)의 뷰포트(426)의 수직 에지 사이에 넓은 홈통(gutters)이 있음을 검출한다. 따라서, 이 모드에서, 바인더 라이브러리(108)는 디지털 컴포넌트, 즉 상단 배너(424) 및 데스크탑 배경 엘리먼트(422)를 통합하기 위한 2가지 유형의 배경 크리에이티브를 렌더링하도록 구성된다.
배경 엘리먼트(422)는 보안 샌드박스 iframe을 래핑하는 <div> 태그 및 iframe을 사용하여 페이지(420)에서 렌더링되는 디지털 컴포넌트들(428)을 로딩 및 재로딩하기 위한 렌더링 라이브러리(110)에 대한 보안 링크를 포함할 수 있다. <div> 태그는 컨텐츠 엘리먼트들이 배경의 상단에 드로잉되어 배경이 컨텐츠 엘리먼트를 가리지 않도록 DOM 트리의 본문 구조의 첫 번째 자식 앞에 삽입될 수 있다. 일부 구현에서, 닫기 버튼(미도시)은 예를 들어 배경 엘리먼트(422)의 오버레이 특징으로서 배경 엘리먼트(422)의 상단 우측 코너에 삽입될 수 있다. 닫기 버튼은 배경 엘리먼트(422)에 대한 div의 자식으로서 위치된다. 닫기 버튼을 제어하는 바인딩은 사용자 클릭을 검출하고 버튼이 클릭될 때 페이지(420)로부터 배경 크리에이티브를 제거하도록 바인더 라이브러리(108)에 통지하도록 구성된다.
도 4c의 구현에서, 배경 크리에이티브의 예는 모바일 디바이스를 위해 구성된 게시자 페이지(430)에서 렌더링된 것으로 도시되어있다. 모바일 렌더링의 맥락에서, 바인더 라이브러리(108)는 렌더링 모듈(104)에 의해 적어도 두 개의 자산, i) 상단 배너(432) 및 ii) 컷아웃(434)을 렌더링하는데 사용된다. 일부 구현에서, 렌더링 라이브러리(110)는 메타 데이터(302)가 배경 크리에이티브가 모바일 환경에서 디스플레이하기 위한 것이고 및/또는 모드 파라미터가 모바일 사용자 디바이스가 게시자 페이지(430)를 요청하도록 지정한 것을 나타내는 경우 컷아웃(434)이 페이지(430)에 삽입되도록 요청만 하도록 구성된다. 도 4c의 시각적 이미지(visuals)에서, 상단 배너(432) 및 컷아웃(434)이 하나의 스크린상에 도시되어 있다. 그러나, 컷아웃(434)이 모바일 사용자 디바이스에서 볼 수 있는 게시자 페이지의 임계 부분 아래(예를 들어, 페이지가 로딩되는 경우 컷아웃이 위치될 때 뷰포트의 접힘선(fold) 아래 또는 뷰포트의 하단 아래)에 렌더링되는 경우 상단 배너(432) 및 컷아웃(434)은 동시에 보이지 않을 수 있다.
시스템(100)이 (스마트 폰 유형 디바이스용) 모바일 모드에서 디지털 컴포넌트들을 포함하는 배경 크리에이티브를 삽입할 때, 바인더 라이브러리(108)는 데스크탑 모드와 다른 렌더링 세부 사항 및 계산 규칙을 사용한다. 예를 들어, 게시자 페이지의 컨텐츠 엘리먼트들은 일반적으로 게시자 페이지의 배경에 배경 컨텐츠 또는 배경 크리에이티브의 시각적 이미지를 렌더링하는 대신 모바일 디바이스에서 사용 가능한 디스플레이 화면을 훨씬 더 많이 차지하기 때문에, 시스템(100)은 대신에 바인더 라이브러리(108)를 사용하여 페이지에 삽입된 컷아웃(434)에서 배경 컨텐츠/시각적 이미지를 렌더링한다. 본 문서에서 사용된 바와같이, 컷아웃은 컨텐츠 부분(436a)(및 436b)을 분리하여 이를 게시자 페이지(430) 아래로 스크롤할 때 배경의 뷰를 사용자에게 제공하기 위해 게시자 페이지(430)의 플로우에 삽입된 엘리먼트이다. 따라서, 이 모바일 모드(스마트 폰 유형 디바이스용)에서, 바인더 라이브러리(108)는 모바일 사용자 디바이스에서 렌더링하기 위해 게시자 페이지(430)에서 디지털 컴포넌트(433)(또는 디지털 컴포넌트(433)의 다양한 부분)를 통합하도록 고유하게 구성된 2가지 유형의 자산, 즉 상단 배너(432) 및 모바일 컷아웃(434)을 렌더링하기 위한 컴퓨팅 규칙을 지정한다.
일부 구현에서, 바인더 라이브러리(108)는 게시자 페이지(430)의 컨텐츠 (436a/b)를 소비하는 동안 배경을 지나 스크롤하는 사용자 경험을 생성하기 위해 뷰포트(438)의 하단 에지 바로 아래에 컷아웃(434)을 삽입한다. 모바일 모드의 경우, 배경 크리에이티브의 디지털 컴포넌트를 배치하기 위한 특정 컨텐츠 엘리먼트를 선택하는 것은 모드 파라미터에 의해 지정된 사용자 디바이스(예를 들어, 모바일 사용자 디바이스)의 유형에 기초하여 게시자 페이지(430)의 심 엘리먼트를 식별하는 것을 포함할 수 있다. 심 엘리먼트는 게시자 페이지에 통합된 디지털 컴포넌트의 일부를 렌더링하기 위한 게시자 페이지(430)의 적어도 하나의 다른 위치를 나타낸다. 심 엘리먼트는 선택된 컨텐츠 엘리먼트에 인접한 디지털 컴포넌트의 일부를 렌더링하는데 사용되거나 그 선택된 컨텐츠 엘리먼트에 인접한 다른 상이한 디지털 컴포넌트를 렌더링하기 위해 사용될 수 있다.
모바일 모드에서, 심 엘리먼트는 컷아웃의 스페이서 <div> 태그를 직접 따를 수 있고, 바인더 라이브러리(108)는 게시자 페이지(430)의 어떤 컨텐츠 엘리먼트가 심 엘리먼트인지 여부를 결정할 수 있고 그 심 엘리먼트를 사용하여 게시자 페이지(430)에서 컷아웃(434)을 삽입하기 위한 위치를 결정할 수 있다. 컷아웃(434)은 렌더링 레이아웃/포맷의 모바일-특정 부분일 수 있다. 외관상, 컷아웃은 게시자 페이지(430)의 플로우에서 렌더링되는 엘리먼트로서, 페이지의 다른 컨텐츠 엘리먼트를 지나서 스크롤할 때 페이지의 배경을 사용자에게 노출한다. 실제로, 이 효과는 게시자 페이지(430)에 삽입된 스페이서 <div> 태그와 기정의된 치수에 기초하여 잘리는 고정된 배경 엘리먼트의 조합에 의해 수행된다. 데스크탑 모드의 배경 엘리먼트와 같이, 컷아웃(434)은 스페이서 div를 포함할 수 있지만, 절대적으로 위치된 iframe을 가질 수 있다. div는 게시자 페이지의 플로우에서 고정된 높이로 렌더링될 수 있으며, 이는 뷰포트 높이의 절반과 뷰포트 폭의 100%가 될 수 있다.
iframe은 스페이서 div의 자식으로서 렌더링될 수 있고 스페이서 div의 오버 플로우 파라미터는 스페이서를 지나 연장되는 iframe의 일부가 보이지 않도록 숨김으로 설정될 수 있다. 사용자가 스크롤할 때, 컷아웃(434)을 제어하는 바인딩은 스페이서가 게시자 페이지(430)의 하단에 있을 때 배경의 하단이 보이고, 스페이서가 상단의 상단에 있을 때 배경의 상단이 보이도록 배경의 위치를 변경할 수 있다. 일부 구현에서, 이러한 이동을 수행하는데 필요한 계산은, 배경이 뷰포트보다 짧은 경우, 스페이서 div가 뷰포트의 극단에 있을 때 빈 공간의 일부가 나타날 수 있다. 데스크탑 배경에서와 같이, 컷아웃(434)은 사용자 클릭을 검출하고 닫기 버튼의 사용자 클릭을 검출하는 것에 응답하여 배경 크리에이티브를 제거(destroy)하기 위한 인디케이터를 바인더 라이브러리(108)에 제공하도록 구성된 바인딩을 갖는 닫기 버튼을 포함할 수 있다.
도 5는 본 문서에 기술된 시스템 및 방법을 클라이언트 또는 서버 또는 복수의 서버로서 구현하는데 사용될 수 있는 컴퓨팅 디바이스(500, 550)의 블록도이다. 컴퓨팅 디바이스(500)는 랩탑, 데스크탑, 워크 스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내도록 의도된다. 컴퓨팅 디바이스(550)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트 폰, 스마트 워치, 헤드-웨어 디바이스 및 다른 유사한 컴퓨팅 디바이스와 같은 다양한 형태의 모바일 디바이스를 나타내도록 의도된다. 본 명세서에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것이며, 본 문서서에 기술되고 및/또는 청구된 구현을 제한하려는 것이 아니다.
컴퓨팅 디바이스(500)는 프로세서(502), 메모리(504), 저장 디바이스(506), 메모리(504) 및 고속 확장 포트(510)에 연결되는 고속 인터페이스(508), 및 저속 버스(514) 및 저장 디바이스(506)에 연결되는 저속 인터페이스(512)를 포함한다. 컴포넌트(502, 504, 506, 508, 510 및 512) 각각은 다양한 버스를 사용하여 상호 연결되며, 공통 마더 보드 상에 또는 다른 방식으로 적절히 장착될 수 있다. 프로세서(502)는 고속 인터페이스(508)에 연결된 디스플레이(516)와 같은 외부 입/출력 디바이스상의 GUI에 대한 그래픽 정보를 디스플레이하기 위해 메모리(504) 또는 저장 디바이스(506)에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(500) 내에서의 실행을 위한 명령들을 처리할 수 있다. 다른 구현에서, 다수의 프로세서 및/또는 다수의 버스가 적절하게 다수의 메모리 및 다수 유형의 메모리와 함께 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스(500)가 연결될 수 있으며, 각 디바이스는 예를 들어 서버 뱅크, 블레이드 서버 그룹, 또는 다중 프로세서 시스템과 같은 필요한 동작들의 일부를 제공한다.
메모리(504)는 컴퓨팅 디바이스(500) 내에 정보를 저장한다. 일 구현에서, 메모리(504)는 컴퓨터 판독 가능 매체이다. 일 구현에서, 메모리(504)는 휘발성 메모리 유닛(들)이다. 다른 구현에서, 메모리(504)는 비 휘발성 메모리 유닛(들)이다.
저장 디바이스(506)는 컴퓨팅 디바이스(500)에 대용량 저장 장치를 제공할 수 있다. 일 구현에서, 저장 디바이스(506)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현에서, 저장 디바이스(506)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크의 디바이스 또는 다른 구성를 포함하는 디바이스들의 어레이일 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 임베딩된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 바와 같은 하나 이상의 방법을 수행하는 명령들을 포함한다. 정보 매체는 메모리(504), 저장 디바이스(506), 또는 프로세서상의 메모리(502)와 같은 컴퓨터 판독 가능 또는 기계 판독 가능 매체이다.
고속 제어기(508)는 컴퓨팅 디바이스(500)에 대한 대역폭 집약적 동작을 관리하는 반면, 저속 제어기(512)는 보다 낮은 대역폭 집약적 동작을 관리한다. 이러한 임무할당은 예시일 뿐이다. 일 구현에서, 고속 제어기(508)는 예를 들어 그래픽 프로세서 또는 가속기를 통해 메모리(504), 디스플레이(516) 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(510)에 연결된다. 구현에서, 저속 제어기(512)는 저장 디바이스(506) 및 저속 확장 포트(514)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 예를 들어, 네트워크 어댑터를 통해 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입/출력 디바이스, 또는 스위치 또는 라우터와 같은 네트워킹 디바이스에 연결될 수 있다.
컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(520)로 구현되거나 이러한 서버 그룹에서 여러 번 구현될 수 있다. 그것은 또한 랙 서버 시스템(524)의 일부로서 구현될 수 있다. 또한, 그것은 랩탑 컴퓨터(522)와 같은 개인용 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(500)로부터의 컴포넌트는 디바이스(550)와 같은 모바일 디바이스(미도시)의 다른 컴포넌트와 결합될 수 있다. 이러한 디바이스 각각은 하나 이상의 컴퓨팅 디바이스(500, 550)를 포함할 수 있으며, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스(500, 550)로 구성될 수 있다.
컴퓨팅 디바이스(550)는 다른 컴포넌트 중에서도 프로세서(552), 메모리(564), 디스플레이(554)와 같은 입/출력 디바이스, 통신 인터페이스(566) 및 송수신기(568)를 포함한다. 디바이스(550)는 또한 추가적인 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트(550, 552, 564, 554, 566, 및 568) 각각은 다양한 버스를 사용하여 상호 연결되고, 컴포넌트 중 일부는 공통 마더 보드 상에 또는 다른 방식으로 적절히 장착될 수 있다.
프로세서(552)는 메모리(562)에 저장된 명령들을 포함하여 컴퓨팅 디바이스(550) 내에서 실행하기 위한 명령들을 처리할 수 있다. 프로세서는 또한 별도의 아날로그 및 디지털 프로세서를 포함할 수 있다. 프로세서는 예를 들어 사용자 인터페이스의 제어, 디바이스(550)에 의해 실행되는 애플리케이션, 및 디바이스(550)에 의한 무선 통신과 같은 디바이스(550)의 다른 컴포넌트의 조정을 제공할 수 있다.
프로세서(552)는 디스플레이(554)에 연결된 제어 인터페이스(558) 및 디스플레이 인터페이스(556)를 통해 사용자와 통신할 수 있다. 디스플레이(554)는 예를 들어 TFT LCD 디스플레이 또는 OLED 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(556)는 그래픽 및 기타 정보를 사용자에게 제시하기 위해 디스플레이(554)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(558)는 사용자로부터 명령을 수신하여 이를 프로세서(552)에 제출하기 위해 변환할 수 있다. 또한, 외부 인터페이스(562)는 다른 디바이스와 디바이스(550)의 근거리 통신을 가능하게 하기 위해 프로세서(552)와 통신하여 제공될 수 있다. 외부 인터페이스(562)는 예를 들어 도킹 절차를 통한 유선 통신, 또는 예를 들어 블루투스 또는 다른 그러한 기술을 통한 무선 통신을 위해 제공될 수 있다.
메모리(564)는 컴퓨팅 디바이스(550) 내에 정보를 저장한다. 일 구현에서, 메모리(564)는 컴퓨터 판독 가능 매체이다. 일 구현에서, 메모리(564)는 휘발성 메모리 유닛(들)이다. 다른 구현에서, 메모리(564)는 비-휘발성 메모리 유닛(들)이다. 확장 메모리(574)는 또한 예를 들어 SIMM 카드 인터페이스를 포함할 수 있는 확장 인터페이스(572)를 통해 디바이스(550)에 제공되고 연결될 수 있다. 이러한 확장 메모리(574)는 디바이스(550)를 위한 추가 저장 공간을 제공할 수 있거나, 디바이스(550)를 위한 애플리케이션 또는 다른 정보를 저장할 수도 있다. 구체적으로, 확장 메모리(574)는 전술한 프로세스를 수행하거나 보충하기 위한 명령들을 포함할 수 있고, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(574)는 디바이스(550)를 위한 보안 모듈로서 제공될 수 있고, 디바이스(550)의 보안 사용을 허용하는 명령들로 프로그램될 수 있다. 또한, SIMM 카드를 통해 식별 정보를 해킹 불가능한 방식으로 배치하는 것과 같은 추가 정보와 함께 보안 애플리케이션이 SIMM 카드를 통해 제공될 수 있다.
메모리는 예를 들어, 후술하는 바와 같이 플래시 메모리 및/또는 MRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 바와 같은 하나 이상의 방법을 수행하는 명령들을 포함한다. 정보 매체는 메모리(564), 확장 메모리(574) 또는 프로세서(552)의 메모리와 같은 컴퓨터 판독 또는 기계 판독 가능 매체이다.
디바이스(550)는 통신 인터페이스(566)를 통해 무선으로 통신할 수 있으며, 필요한 경우 디지털 신호 처리 회로를 포함할 수 있다. 통신 인터페이스(566)는 GSM 음성 호출, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어 무선 주파수 송수신기(568)를 통해 발생할 수 있다. 또한, 블루투스, WiFi 또는 다른 그러한 송수신기(미도시)를 사용하는 것과 같은 단거리 통신이 발생할 수 있다. 또한, GPS 수신기 모듈(570)은 추가 무선 데이터를 디바이스(550)에 제공할 수 있으며, 이는 디바이스(550)에서 실행되는 애플리케이션에 의해 적절하게 사용될 수 있다.
디바이스(550)는 또한 사용자로부터 음성 정보를 수신하고 이를 사용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(560)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(560)은 예를 들어 디바이스(550)의 핸드셋에서 스피커를 통하는 것과 같이 사용자를 위해 가청음을 생성할 수 있다. 이러한 사운드는 음성 전화 호출로부터의 사운드를 포함할 수 있고, 녹음된 사운드, 예를 들어, 음성 메시지, 음악 파일 등을 포함할 수 있고, 또한 디바이스(550)에서 동작하는 애플리케이션에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(550)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 휴대폰(580)으로 구현될 수 있다. 그것은 스마트 폰(582), 개인 휴대 정보 단말기 또는 다른 유사 모바일 디바이스의 일부로서 구현될 수도 있다.
여기에 설명된 시스템 및 기술의 다양한 구현은 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현은 특수하거나 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령을 수신하고, 이들로 데이터 및 명령을 전송하기 위해 결합된, 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템상에서 실행 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려진 이들 컴퓨터 프로그램은 프로그램 가능한 프로세서를 위한 기계 명령들을 포함하고, 고급 절차 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "기계 판독 가능 매체", "컴퓨터 판독 가능 매체"라는 용어는 기계 명령을 기계 판독 가능 신호로서 수신하는 기계 판독 가능 매체를 포함하여, 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예를 들어 자기 디스크, 광 디스크, 메모리, 프로그램 가능 프로세서에 기계 명령 및/또는 데이터를 제공하는데 사용되는 프로그램 가능 논리 디바이스(PLD))를 지칭한다. "기계 판독 가능 신호"라는 용어는 기계 명령 및/또는 데이터를 프로그램 가능 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 시스템 및 기술은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예를 들어 CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어 마우스 또는 트랙볼)를 갖는 컴퓨터상에서 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어 시각 피드백, 청각 피드백 또는 촉각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다.
본 명세서에 기술된 시스템 및 기술은 예를 들어, 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 사용자가 본 명세서에 기술된 시스템 및 기술의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트, 또는 이러한 백엔드, 미들웨어 또는 프론트 엔드 컨토넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 임의의 형태 또는 매체의 디지털 데이터 통신에 의해 상호 연결될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN"), 광역 통신망("WAN") 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다.
본 명세서에서 사용된 바와 같이, "모듈"이라는 용어는 컴퓨터의 프로세싱 유닛(들)/디바이스(들)으로 하여금 하나 이상의 기능을 실행하게 하는 프로그램 코드를 포함하는 하나 이상의 소프트웨어 프로그램을 실행하도록 구성된 하나 이상의 컴퓨터를 포함하는 것으로 의도되지만, 이에 한정되는 것은 아니다. "컴퓨터"라는 용어는 데스크탑 컴퓨터, 랩탑 컴퓨터, 메인 프레임 컴퓨터, 개인 휴대 정보 단말기, 서버, 핸드 헬드 디바이스, 스마트 폰, 태블릿 컴퓨터, 전자 판독기, 또는 데이터를 처리할 수 있는 임의의 다른 전자 디바이스와 같은 임의의 데이터 처리 또는 컴퓨팅 디바이스/시스템을 포함하는 것으로 의도된다.
많은 실시예들이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음을 이해할 것이다. 따라서, 다른 실시예는 다음의 청구 범위의 범위 내에 있다. 본 명세서에는 많은 특정 구현 세부 사항을 포함되어 있지만, 이들은 청구될 수 있는 범위의 제한으로서 해석되어서는 안되며, 특정 실시예에 특정될 수 있는 특징의 설명으로서 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에서 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다.
반대로, 단일 실시예와 관련하여 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명되고, 심지어 초기에 그렇게 주장되었다 하더라도, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 그 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행되도록 요구하거나, 도시된 모든 동작이 수행되는 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 전술한 실시예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품으로 패키지될 수 있음을 이해해야 한다.
주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음의 청구 범위의 범위 내에 있다. 예를 들어, 청구 범위에 기재된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성할 수 있다. 일 예로서, 첨부 도면에 도시된 일부 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 요구할 필요는 없다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지의 컨텐츠 엘리먼트들을 찾는(locate) 단계와;
    게시자 페이지의 각 컨텐츠 엘리먼트에 대해:
    컨텐츠 바인더 라이브러리를 사용하여, 컨텐츠 엘리먼트의 프리젠테이션 속성들을 결정하는 단계와, 상기 프리젠테이션 속성들은 (i) 컨텐츠 엘리먼트의 사이즈를 지정하는 사이즈 속성 및 (ii) 게시자 페이지의 컨텐츠 엘리먼트의 상대 위치를 포함하고;
    게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 검출하는 단계와;
    컨텐츠 바인더 라이브러리를 사용하여, 특정 컨텐츠 엘리먼트의 프리젠테이션 속성들을 사용하여 게시자 페이지에 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지로부터 특정 컨텐츠 엘리먼트를 선택하는 단계와;
    컨텐츠 바인더 라이브러리를 사용하여, 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하는 단계와, 상기 위치는 기준점 및 모드 파라미터에 기초하여 결정되고; 그리고
    컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지의 위치에 디스플레이 하기 위한 디지털 컴포넌트를 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 컨텐츠 바인더 라이브러리는,
    게시자 페이지의 위치에 디지털 컴포넌트를 렌더링하기 위한 보안 iframe을 삽입하고, 렌더링 라이브러리와 통신하고, 렌더링 라이브러리로부터 디지털 컴포넌트 수신하고, 그리고 디지털 컴포넌트가 게시자 페이지의 위치에 삽입된 보안 iframe을 사용하여 게시자 페이지에 통합되게 하도록 구성되고,
    상기 위치는 게시자 페이지의 특정 컨텐츠 엘리먼트에 인접하는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 특정 컨텐츠 엘리먼트를 선택하는 단계는,
    모드 파라미터에 의해 지정된 사용자 디바이스의 유형에 기초하여 게시자 페이지에서 컷아웃을 삽입하기 위한 제2 기준점을 식별하는 단계를 포함하고,
    상기 제2 기준점은,
    특정 컨텐츠 엘리먼트에 인접한 게시자 페이지에 통합된 디지털 컴포넌트의 일부, 또는
    게시자 페이지에 디스플레이하기 위해 제공된 다른 상이한 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 적어도 하나의 다른 위치를 나타내는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 게시자 페이지에서 제2 기준점을 식별하는 단계는,
    각 후보 컨텐츠 엘리먼트의 개별 깊이값에 기초하여 하나 이상의 후보 컨텐츠 엘리먼트를 식별하는 단계와, 각각의 개별 깊이값은 게시자 페이지의 루트 노드를 참조하여 계산되고;
    게시자 페이지의 제1 뷰포트 사이즈 영역(viewport-sized area)과 오버랩하는 하나 이상의 후보 컨텐츠 엘리먼트를 필터링하는 단계와;
    필터링에 응답하여, 나머지 후보 컨텐츠 엘리먼트의 세트 중에서 컨텐츠 엘리먼트를 선택하는 단계와, 상기 컨텐츠 엘리먼트는 컨텐츠 엘리먼트가 게시자 페이지의 루트 노드에 가장 근접함을 나타내는 개별 깊이값에 기초하여 선택되고; 그리고
    선택된 컨텐트 엘리먼트에 기초하여 게시자 페이지에서 제2 기준점을 식별하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제2항에 있어서,
    상기 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하는 단계는,
    렌더링 라이브러리로부터의 요청에 기초하여 게시자 페이지의 위치에 렌더링하기 위한 디지털 컴포넌트를 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제2항 또는 제5항에 있어서,
    상기 렌더링 라이브러리는 복수의 상이한 유형의 게시자 페이지에 디스플레이하기 위해 포맷된 복수의 디지털 컴포넌트를 포함하고,
    상기 복수의 디지털 컴포넌트는 배경(backdrop) 크리에이티브 컴포넌트 또는 리치 미디어 크리에이티브 컴포넌트 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 임의의 선행하는 항에 있어서,
    상기 모드 파라미터는 사용자 디바이스의 유형을 모바일 컴퓨팅 디바이스로서 지정하고, 상기 컨텐트 엘리먼트들은 모바일 컴퓨팅 디바이스를 위해 구성된 게시자 페이지에 디스플레이하기 위한 것이고, 그리고
    상기 게시자 페이지의 위치를 결정하는 단계는,
    각 컨텐츠 엘리먼트의 사이즈 및 모바일 컴퓨팅 디바이스를 위해 구성된 게시자 페이지에 디스플레이된 각 컨텐츠 엘리먼트의 개별 상대 위치를 지정하는 개별 사이즈 속성에 기초하여 위치를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제2항, 제5항 또는 제6항에 있어서,
    컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지에 디지털 컴포넌트를 통합하고 디스플레이하기 위한 렌더링 레이아웃을 결정하는 단계를 더 포함하고,
    상기 렌더링 레이아웃은 렌더링 라이브러리로부터 수신된 디지털 컴포넌트의 메타 데이터에 기초하여 결정되는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제2항, 제5항, 제6항 또는 제8항에 있어서,
    상기 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하는 단계는,
    렌더링 라이브러리로부터 디지털 컴포넌트를 제공하는 단계와, 상기 렌더링 라이브러리는 게시자 페이지에 액세스하는 것이 배제된 제1 도메인을 나타내고; 그리고
    컨텐츠 바인더 라이브러리에서 디지털 컴포넌트를 수신하는 단계를 포함하고,
    상기 컨텐츠 바인더 라이브러리는 제1 도메인과 별개이고, 렌더링 라이브러리의 제1 도메인에 의해 액세스되도록 구성되고, 그리고 게시자 페이지에 통합된 디지털 컴포넌트들의 제3 도메인에 액세스하도록 구성된 제2 도메인을 나타내는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 제3 도메인은 게시자 페이지에 대한 제3자 액세스를 배제하도록 구성된 게시자 페이지의 샌드박스 실행 환경이고;
    상기 제3 도메인은 렌더링 라이브러리의 제1 도메인 및 컨텐츠 바인더 라이브러리의 제2 도메인과 별개이고; 그리고
    상기 게시자 페이지에 통합된 제3 도메인의 디지털 컴포넌트들은 컨텐츠 바인더 라이브러리에 의해 설정된 보안 통신 채널을 통해 렌더링 라이브러리와 통신하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 컴퓨팅 시스템으로서,
    게시자 페이지에 디스플레이하기 위한 컨텐츠 엘리먼트들을 찾는 컨텐츠 바인더 라이브러리와, 상기 컨텐츠 바인더 라이브러리는:
    게시자 페이지에 디스플레이된 각 컨텐츠 엘리먼트에 대해, 컨텐츠 엘리먼트의 프리젠테이션 속성들을 결정하고, 상기 프리젠테이션 속성들은 (i) 컨텐츠 엘리먼트의 사이즈를 지정하는 사이즈 속성 및 (ii) 게시자 페이지의 컨텐츠 엘리먼트의 상대 위치를 포함하고; 그리고
    게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터에 관한 정보를 수신하도록 구성되고; 그리고
    컨텐츠 바인더 라이브러리의 게시자 페이지 및 컴퓨팅 로직과 통신하는 데이터 통합기를 포함하고, 상기 데이터 통합기는:
    특정 컨텐츠 엘리먼트의 프리젠테이션 속성들을 사용하여 게시자 페이지에서 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지로부터 특정 컨텐츠 엘리먼트를 선택하고;
    디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하고, 상기 위치는 기준점 및 모드 파라미터에 기초하여 결정되고; 그리고
    게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  12. 제11항에 있어서,
    컨텐츠 바인더 라이브러리와 통신하여 디지털 컴포넌트를 컨텐츠 바인더 라이브러리에 제공하도록 구성된 렌더링 라이브러리를 더 포함하고,
    상기 컨텐츠 바인더 라이브러리는 게시자 페이지의 위치에 디지털 컴포넌트를 렌더링하기 위한 보안 iframe을 삽입하고, 그리고 데이터 통합기가 게시자 페이지의 위치에 삽입된 보안 iframe을 사용하여 디지털 컴포넌트를 게시자 페이지에 통합하게 하도록 구성되고,
    상기 위치는 게시자 페이지의 특정 컨텐츠 엘리먼트에 인접하는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 제11항 또는 제12항에 있어서,
    상기 데이터 통합기는,
    모드 파라미터에 의해 지정된 사용자 디바이스의 유형에 기초하여 게시자 페이지에서 컷아웃을 삽입하기 위한 제2 기준점을 식별함으로써 특정 컨텐츠 엘리먼트를 선택하고, 상기 제2 기준점은:
    특정 컨텐츠 엘리먼트에 인접한 게시자 페이지에 통합된 디지털 컴포넌트의 일부, 또는
    게시자 페이지에 디스플레이하기 위해 제공된 다른 상이한 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 적어도 하나의 다른 위치를 나타내는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 제13항에 있어서,
    상기 데이터 통합기는,
    i) 각 후보 컨텐츠 엘리먼트의 개별 깊이값에 기초하여 하나 이상의 후보 컨텐츠 엘리먼트를 식별하고, 각각의 개별 깊이값은 게시자 페이지의 루트 노드를 참조하여 계산되고;
    ii) 게시자 페이지의 제1 뷰포트 사이즈 영역과 오버랩하는 하나 이상의 후보 컨텐츠 엘리먼트를 필터링하고;
    iii) 필터링에 응답하여, 나머지 후보 컨텐츠 엘리먼트의 세트 중에서 컨텐츠 엘리먼트를 선택하고, 상기 컨텐츠 엘리먼트는 컨텐츠 엘리먼트가 게시자 페이지의 루트 노드에 가장 근접함을 나타내는 개별 깊이값에 기초하여 선택되고; 그리고
    iv) 선택된 컨텐트 엘리먼트에 기초하여 게시자 페이지에서 제2 기준점을 식별함으로써, 게시자 페이지에서 제2 기준점을 식별하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제12항에 있어서,
    상기 데이터 통합기는,
    렌더링 라이브러리로부터의 요청에 기초하여 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 제12항 또는 제15항에 있어서,
    상기 렌더링 라이브러리는 복수의 상이한 유형의 게시자 페이지에 디스플레이하기 위해 포맷된 복수의 디지털 컴포넌트를 포함하고,
    상기 복수의 디지털 컴포넌트는 배경 크리에이티브 컴포넌트 또는 리치 미디어 크리에이티브 컴포넌트 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  17. 제12항, 제15항 또는 제16항에 있어서,
    상기 렌더링 라이브러리는 게시자 페이지에 액세스하는 것이 배제된 제1 도메인을 나타내고;
    상기 컨텐츠 바인더 라이브러리는 제1 도메인과 별개이고, 렌더링 라이브러리의 제1 도메인에 의해 액세스되도록 구성되고, 그리고 게시자 페이지에 통합된 디지털 컴포넌트의 제3 도메인에 액세스하도록 구성된 제2 도메인을 나타내는 것을 특징으로 하는 컴퓨팅 시스템.
  18. 제17항에 있어서,
    상기 제3 도메인은 게시자 페이지에 대한 제3자 액세스를 배제하도록 구성된 게시자 페이지의 샌드박스 실행 환경이고;
    상기 제3 도메인은 렌더링 라이브러리의 제1 도메인 및 컨텐츠 바인더 라이브러리의 제2 도메인과 별개이고; 그리고
    상기 게시자 페이지에 통합된 제3 도메인의 디지털 컴포넌트들은 컨텐츠 바인더 라이브러리에 의해 설정된 보안 통신 채널을 통해 렌더링 라이브러리와 통신하는 것을 특징으로 하는 컴퓨팅 시스템.
  19. 동작들을 수행하게 하는 하나 이상의 처리 디바이스에 의해 실행 가능한 명령들을 저장하기 위한 하나 이상의 비-일시적 기계 판독 가능 저장 디바이스로서, 상기 동작들은:
    컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지의 컨텐츠 엘리먼트들을 찾는 동작과;
    게시자 페이지의 각 컨텐츠 엘리먼트에 대해:
    컨텐츠 바인더 라이브러리를 사용하여, 컨텐츠 엘리먼트의 프리젠테이션 속성들을 결정하는 동작과, 상기 프리젠테이션 속성들은 (i) 컨텐츠 엘리먼트의 사이즈를 지정하는 사이즈 속성 및 (ii) 게시자 페이지의 컨텐츠 엘리먼트의 상대 위치를 포함하고;
    게시자 페이지를 요청하는 사용자 디바이스의 유형을 지정하는 모드 파라미터를 검출하는 동작과;
    컨텐츠 바인더 라이브러리를 사용하여, 특정 컨텐츠 엘리먼트의 프리젠테이션 속성들을 사용하여 게시자 페이지에 디지털 컴포넌트를 배치하기 위한 기준점으로서 게시자 페이지로부터 특정 컨텐츠 엘리먼트를 선택하는 동작과;
    컨텐츠 바인더 라이브러리를 사용하여, 디지털 컴포넌트를 렌더링하기 위한 게시자 페이지의 위치를 결정하는 동작과, 상기 위치는 기준점 및 모드 파라미터에 기초하여 결정되고; 그리고
    컨텐츠 바인더 라이브러리를 사용하여, 게시자 페이지의 위치에 디스플레이하기 위한 디지털 컴포넌트를 제공하는 동작을 포함하는 것을 특징으로 하는 비-일시적 기계 판독 가능 저장 디바이스.
  20. 제19항에 있어서,
    상기 컨텐츠 바인더 라이브러리는,
    게시자 페이지의 위치에 디지털 컴포넌트를 렌더링하기 위한 보안 iframe을 삽입하고,
    렌더링 라이브러리와 통신하여 렌더링 라이브러리로부터 디지털 컴포넌트 수신하고, 그리고
    디지털 컴포넌트가 게시자 페이지의 위치에 삽입된 보안 iframe을 사용하여 디지털 컴포넌트를 게시자 페이지에 통합되도록 구성되며,
    상기 위치는 게시자 페이지의 특정 컨텐츠 엘리먼트에 인접하는 것을 특징으로 하는 비-일시적 기계 판독 가능 저장 디바이스.
KR1020207022495A 2018-02-01 2019-01-28 디지털 컴포넌트 배경 렌더링 KR102350540B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/886,049 US10671798B2 (en) 2018-02-01 2018-02-01 Digital component backdrop rendering
US15/886,049 2018-02-01
PCT/US2019/015435 WO2019152319A1 (en) 2018-02-01 2019-01-28 Digital component backdrop rendering

Publications (2)

Publication Number Publication Date
KR20200104899A true KR20200104899A (ko) 2020-09-04
KR102350540B1 KR102350540B1 (ko) 2022-01-14

Family

ID=65409563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207022495A KR102350540B1 (ko) 2018-02-01 2019-01-28 디지털 컴포넌트 배경 렌더링

Country Status (6)

Country Link
US (2) US10671798B2 (ko)
EP (2) EP3596647B1 (ko)
JP (1) JP6975339B2 (ko)
KR (1) KR102350540B1 (ko)
CN (1) CN110506267B (ko)
WO (1) WO2019152319A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230036392A (ko) * 2021-09-07 2023-03-14 네이버 주식회사 위지위그 편집 도구를 제공하는 방법 및 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110531951B (zh) * 2019-08-30 2022-03-25 腾讯科技(深圳)有限公司 画面输出模式调整方法、装置、设备、系统及存储介质
US11108836B2 (en) 2019-10-15 2021-08-31 Relola, Inc. System and methods of de-centralized content collection, distribution, and control
CN113296757A (zh) * 2020-06-12 2021-08-24 阿里巴巴集团控股有限公司 集成开发环境布局的处理方法和系统
CN113655999B (zh) * 2021-08-05 2024-01-09 上海硬通网络科技有限公司 一种页面控件的渲染方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260767A1 (en) * 2003-06-19 2004-12-23 David Kedem Dynamic web advertisement and content display system
KR20050032035A (ko) * 2002-06-14 2005-04-06 까날 + 떼끄놀로지 Html 어플리케이션의 방송 방법
KR20120008385A (ko) * 2010-07-16 2012-01-30 주식회사 오비고 모바일 환경에서 복잡한 구조의 계층을 가지는 컨텐츠의 페이지 이동을 지원하기 위한 방법, 단말 장치 및 컴퓨터 판독 가능한 기록 매체
US9098471B2 (en) * 2011-12-29 2015-08-04 Chegg, Inc. Document content reconstruction

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199082B1 (en) * 1995-07-17 2001-03-06 Microsoft Corporation Method for delivering separate design and content in a multimedia publishing system
JP2002202931A (ja) * 2000-12-28 2002-07-19 K-Tai Net:Kk サーバ及び記録媒体
AUPR947701A0 (en) * 2001-12-14 2002-01-24 Activesky, Inc. Digital multimedia publishing system for wireless devices
US7072495B2 (en) * 2003-07-30 2006-07-04 Xerox Corporation System and method for measuring and quantizing document quality
US8099660B1 (en) * 2004-09-30 2012-01-17 Google Inc. Tool for managing online content
US7925973B2 (en) * 2005-08-12 2011-04-12 Brightcove, Inc. Distribution of content
US20070112567A1 (en) * 2005-11-07 2007-05-17 Scanscout, Inc. Techiques for model optimization for statistical pattern recognition
US20100153836A1 (en) * 2008-12-16 2010-06-17 Rich Media Club, Llc Content rendering control system and method
US7996777B2 (en) * 2006-04-20 2011-08-09 Google Inc. Syndicated trackable ad content
US8250082B2 (en) * 2006-06-23 2012-08-21 Microsoft Corporation Cross domain communication
WO2008067565A1 (en) * 2006-11-30 2008-06-05 Google Inc. Targeted content request
US20090031216A1 (en) * 2007-07-26 2009-01-29 Vio Worldwide Limited Preflighting for web publishing
US20090150239A1 (en) * 2007-09-21 2009-06-11 Louis Dorman Internet background advertising service
US8996682B2 (en) * 2007-10-12 2015-03-31 Microsoft Technology Licensing, Llc Automatically instrumenting a set of web documents
US20090313127A1 (en) * 2008-06-11 2009-12-17 Yahoo! Inc. System and method for using contextual sections of web page content for serving advertisements in online advertising
US8165915B1 (en) * 2008-07-23 2012-04-24 Google Inc. Advertisement customization
US8448074B2 (en) * 2009-05-01 2013-05-21 Qualcomm Incorporated Method and apparatus for providing portioned web pages in a graphical user interface
JP5462591B2 (ja) * 2009-10-30 2014-04-02 楽天株式会社 特有コンテンツ判定装置、特有コンテンツ判定方法、特有コンテンツ判定プログラム及び関連コンテンツ挿入装置
WO2011090550A1 (en) * 2009-12-28 2011-07-28 Google Inc. Distributing content
US8452710B2 (en) * 2009-12-31 2013-05-28 Ebay Inc. Secure expandable advertisements using an API and cross-domain communications
US20110258041A1 (en) * 2010-04-20 2011-10-20 LifeStreet Corporation Method and Apparatus for Landing Page Optimization
US9558289B2 (en) * 2010-09-30 2017-01-31 Microsoft Technology Licensing, Llc Securely rendering online ads in a host page
US9443257B2 (en) * 2010-10-21 2016-09-13 Yahoo! Inc. Securing expandable display advertisements in a display advertising environment
US9269096B2 (en) * 2011-05-23 2016-02-23 Microsoft Technology Licensing, Llc Advertisement rendering for multiple synced devices
US20130007602A1 (en) * 2011-06-29 2013-01-03 Apple Inc. Fixed layout electronic publications
WO2013035089A2 (en) * 2011-09-08 2013-03-14 Double Verify Inc. System and method for enhanced interaction between an iframe or a web page and an embedded iframe from a different domain
US20130339139A1 (en) * 2012-01-18 2013-12-19 High Impact Media Llc System and method for nonstandard creative content auctioning
WO2013134854A1 (en) * 2012-03-13 2013-09-19 Cognilore Inc. Method of navigating through digital content
CN102663126B (zh) * 2012-04-23 2014-11-12 北京奇虎科技有限公司 一种在移动终端中显示网页的方法及装置
US20170316467A1 (en) * 2012-07-20 2017-11-02 Oracle America, Inc. System and Methods for Determining Advertising Visibility on Web Pages
US20140095328A1 (en) * 2012-09-28 2014-04-03 Yahoo! Inc. Interactive reveal ad unit
US9582156B2 (en) * 2012-11-02 2017-02-28 Amazon Technologies, Inc. Electronic publishing mechanisms
US10007933B2 (en) * 2013-02-22 2018-06-26 Swoop Inc. Systems and methods for integrating dynamic content into electronic media
EP4224324A3 (en) * 2013-02-27 2023-09-27 Hitachi Vantara LLC Rain-based archival system with self-describing objects
US9436767B2 (en) * 2013-03-07 2016-09-06 Google Inc. Serving content items based on device rotational orientation
US10354294B2 (en) * 2013-08-28 2019-07-16 Google Llc Methods and systems for providing third-party content on a web page
US9881318B1 (en) * 2013-09-16 2018-01-30 Amazon Technologies, Inc. Attributing web-based user actions to multivariate test parameters associated with publisher content
US20150213516A1 (en) * 2014-01-25 2015-07-30 Leo Jeremias Computer system for displaying video ads on web pages
EP3172657A4 (en) * 2014-07-24 2017-12-27 Google LLC Content item slot location suggestions
WO2016058153A1 (en) * 2014-10-16 2016-04-21 Yahoo! Inc. Personalizing user interface (ui) elements
US9734519B2 (en) * 2014-12-29 2017-08-15 Excalibur Ip, Llc Native advertisement smart injection
CN104731589A (zh) * 2015-03-12 2015-06-24 用友网络科技股份有限公司 用户界面的自动生成方法及自动生成装置
US10261669B2 (en) * 2015-07-14 2019-04-16 Adobe Inc. Publishing electronic documents utilizing navigation information
CN106708480B (zh) * 2015-07-29 2021-02-26 腾讯科技(深圳)有限公司 管理平台实现方法和装置
KR102001193B1 (ko) 2015-09-16 2019-07-17 구글 엘엘씨 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법
US10152554B2 (en) * 2016-02-23 2018-12-11 Google Llc Detecting digital content visibility
US9680923B1 (en) * 2016-10-06 2017-06-13 Pranav Jain Platform and network for joint distribution of content by multiple publishers
US10311091B2 (en) * 2017-03-24 2019-06-04 Apple Inc. Generation and presentation of an overview of an electronic magazine issue
US20190080019A1 (en) * 2017-09-12 2019-03-14 Google Llc Predicting Non-Observable Parameters for Digital Components
US10939182B2 (en) * 2018-01-31 2021-03-02 WowYow, Inc. Methods and apparatus for media search, characterization, and augmented reality provision

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050032035A (ko) * 2002-06-14 2005-04-06 까날 + 떼끄놀로지 Html 어플리케이션의 방송 방법
US20040260767A1 (en) * 2003-06-19 2004-12-23 David Kedem Dynamic web advertisement and content display system
KR20120008385A (ko) * 2010-07-16 2012-01-30 주식회사 오비고 모바일 환경에서 복잡한 구조의 계층을 가지는 컨텐츠의 페이지 이동을 지원하기 위한 방법, 단말 장치 및 컴퓨터 판독 가능한 기록 매체
US9098471B2 (en) * 2011-12-29 2015-08-04 Chegg, Inc. Document content reconstruction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230036392A (ko) * 2021-09-07 2023-03-14 네이버 주식회사 위지위그 편집 도구를 제공하는 방법 및 시스템

Also Published As

Publication number Publication date
US20200311340A1 (en) 2020-10-01
US20190236115A1 (en) 2019-08-01
CN110506267A (zh) 2019-11-26
JP2021512415A (ja) 2021-05-13
EP3596647B1 (en) 2021-03-17
CN110506267B (zh) 2023-06-23
WO2019152319A1 (en) 2019-08-08
JP6975339B2 (ja) 2021-12-01
US10671798B2 (en) 2020-06-02
KR102350540B1 (ko) 2022-01-14
EP3855329A1 (en) 2021-07-28
EP3596647A1 (en) 2020-01-22
US11055474B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
KR102350540B1 (ko) 디지털 컴포넌트 배경 렌더링
US9378294B2 (en) Presenting source regions of rendered source web pages in target regions of target web pages
US8645849B2 (en) Method and apparatus for providing portioned web pages in a graphical user interface
US9600595B2 (en) Modification of windows across multiple displays
US20120297324A1 (en) Navigation Control Availability
RU2662632C2 (ru) Представление документов фиксированного формата в формате с измененной компоновкой
CN109408752B (zh) 在线文档展示方法、装置以及电子设备
US11360640B2 (en) Method, device and browser for presenting recommended news, and electronic device
US10572572B2 (en) Dynamic layout generation for an electronic document
CN106874023B (zh) 动态页面加载方法和装置
CN110968314A (zh) 一种页面生成方法及装置
CN110333919B (zh) 一种呈现社交对象信息的方法与设备
US9858246B1 (en) Determining and generating a number of images meeting particular size ranges and selecting an image for display in a placeholder of a network document
US9767079B1 (en) Serving expandable content items
US20180285940A1 (en) Web advertisement placement
CN114742013A (zh) 在线文档展示方法、装置和电子设备
CN110663028B (zh) 动态调整用户界面的面板
Ismail et al. An auto-response user interface for web pages

Legal Events

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