KR102001193B1 - 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법 - Google Patents

정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102001193B1
KR102001193B1 KR1020177031465A KR20177031465A KR102001193B1 KR 102001193 B1 KR102001193 B1 KR 102001193B1 KR 1020177031465 A KR1020177031465 A KR 1020177031465A KR 20177031465 A KR20177031465 A KR 20177031465A KR 102001193 B1 KR102001193 B1 KR 102001193B1
Authority
KR
South Korea
Prior art keywords
party content
content
party
placement
computing device
Prior art date
Application number
KR1020177031465A
Other languages
English (en)
Other versions
KR20170131683A (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 KR20170131683A publication Critical patent/KR20170131683A/ko
Application granted granted Critical
Publication of KR102001193B1 publication Critical patent/KR102001193B1/ko

Links

Images

Classifications

    • 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/0251Targeted advertisements
    • 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
    • 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/0273Determination of fees for advertising
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

적어도 하나의 양상은 정보 리소스 내의 콘텐츠 슬롯들의 배치를 자동으로 관리하는 방법에 관한 것이다. 이 방법은 컴퓨팅 디바이스로부터 콘텐츠에 대한 요청을 수신하고, 이에 응답하여 콘텐츠 슬롯 삽입 스크립트를 컴퓨팅 디바이스에 전송하는 데이터 처리 시스템을 포함한다. 콘텐츠 슬롯 삽입 스크립트는 실행될 때, 컴퓨팅 디바이스로 하여금 정보 리소스의 DOM (Document Object Model)트리에 포함된 하나 이상의 DOM 요소를 식별하게 하고, 제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하게 한다. 제 2 복수의 컴퓨터 실행 가능 명령어는 또한, 컴퓨팅 디바이스 상에서 실행될 때 컴퓨팅 디바이스로 하여금 후보 제 3 자 콘텐츠 배치 위치로부터 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택하여 상기 선택된 광고 배치 위치에 제 3 자 콘텐츠 아이템을 디스플레이하게 할 수 있다.

Description

정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법
관련 출원
본 출원은 2015년 9월 16일자로 출원된 발명의 명칭이 "정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법" 인 미국 특허 출원 제14/856181 호의 우선권 주장의 이익을 주장하며, 그 전체가 본 명세서에 참고로 포함된다.
인터넷과 같은 그러한 컴퓨터 네트워크 환경에서 제 3 자 콘텐츠 프로바이더는 최종 사용자 컴퓨팅 디바이스에 표시하기 위해 제 3 자 콘텐츠 아이템을 제공한다. 이러한 제 3 자 콘텐츠 아이템(예 : 광고)은 해당 퍼블리셔와 연결된 웹 페이지에 표시될 수 있다. 이러한 제 3 자 콘텐츠 아이템에는 해당 콘텐츠 아이템을 제공 한 제 3 자 콘텐츠 프로바이더를 식별하는 콘텐츠가 포함될 수 있다.
적어도 하나의 양상은 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하는 방법에 관한 것이다. 이 방법은 컴퓨팅 디바이스가 콘텐츠 퍼블리셔로부터 제 1 복수의 컴퓨터 실행 가능 명령을 포함하는 상기 정보 리소스를 수신함에 응답하여 상기 컴퓨팅 디바이스로 부터 콘텐츠에 대한 요청을 수신하는 하나 이상의 프로세서를 포함하는 데이터 처리 시스템을 포함한다. 상기 제 1 복수의 컴퓨터 실행 가능한 명령들은 상기 데이터 처리 시스템의 서버를 식별한다. 이 방법은 또한, 상기 데이터 처리 시스템(110)에 의해, 제 2 복수의 컴퓨터 실행 가능 명령들을 상기 컴퓨팅 디바이스(125)에 송신하는 것을 포함한다. 상기 제 2 복수의 컴퓨터 실행 가능 명령들은 상기 컴퓨팅 디바이스 상에서 실행될 때 상기 컴퓨팅 디바이스로 하여금, 상기 정보 리소스의 DOM(Document Object Model) 트리를 식별하고, 상기 DOM 트리에 포함된 하나 이상의 DOM 요소를 식별(435)하고; 그리고 상기 식별된 DOM 요소에 기초하여, 제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하도록 하는 것을 포함한다. 상기 제 2 복수의 컴퓨터 실행가능 명령들은 또한, 컴퓨팅 디바이스에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금 상기 후부 제 3 자 콘텐츠 배치 위치들 중에서 상기 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택하고 그리고 상기 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 아이템을 디스플레이하게 하는 것을 포함한다.
일부 구현 예들에서, 제 3 자 콘텐츠 배치 정책은 후보 제 3 자 콘텐츠 배치 위치들을 식별하기 위한 하나 이상의 규칙을 포함한다. 일부 구현 예들에서, 제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하는 것은 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 판단하는 것과, 그리고 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정함에 응답하여, 후보자의 제 3 자 콘텐츠 배치 위치를 결정하기 위한 명령들을 종결하는 것을 포함한다. 일부 구현 예들에서, DOM 트리에서 제 3 자 콘텐츠 배치 위치를 선택하는 것은 정보 리소스의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2 개의 인접한 DOM 요소 사이에 있는 제 3 자 콘텐츠 배치 위치를 선택하는 것을 포함한다.
일부 구현 예들에서, 상기 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 아이템을 디스플레이하는 것은, 상기 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액(revenue amount)을 식별하는 것과, 상기 수익액이 미리 결정된 임계치를 초과하는 것으로 결정하는 것과; 그리고 상기 수익액이 상기 미리 결정된 임계치를 초과하는 것으로 결정함에 응답하여, 디스플레이를 위해 상기 제 3 자 콘텐츠 아이템을 선택하는 것을 포함한다.
일부 구현 예들에서, 상기 제 2 복수의 컴퓨터 실행 가능 명령들은, 상기 컴퓨팅 디바이스상에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금, 상기 정보 리소스 상에 디스플레이될 다수의 기존의 제 3 자 콘텐츠 배치를 식별하게 하고, 상기 기존의 제 3 자 콘텐츠 배치들의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치보다 적음을 결정하고, 그리고 상기 기존의 제 3 자 콘텐츠 배치들의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치보다 적음을 결정함에 응답하여, 상기 제 3 자 콘텐츠 아이템을 상기 제 3 자 콘텐츠 배치 위치에 디스플레이하도록 하는 것을 더 포함하는 것을 포함한다.
일부 구현 예들에서, 상기 제 2 복수의 컴퓨터 실행 가능 명령들은, 상기 컴퓨팅 디바이스상에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금 상기 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 슬롯을 삽입하게 하고, 상기 제 3 자 콘텐츠 슬롯은 컴퓨팅 디바이스상에서 실행될 때 상기 컴퓨팅 디바이스로 하여금 데이터 처리 시스템으로부터 제 3 자 콘텐츠를 요청하게 하는 것을 더 포함하는 것을 포함한다.
일부 구현 예들에서, 상기 제 2 복수의 컴퓨터 실행 가능 명령들은, 상기 컴퓨팅 디바이스상에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금, 상기 데이터 처리 시스템으로부터 제 3 자 콘텐츠를 수신하게 하고; 그리고 상기 수신된 제 3 자 콘텐츠와 관련된 수익이 임계치를 초과하는 것으로 결정함에 응답하여, 상기 제 3 자 콘텐츠를 디스플레이하도록 결정하게 하는 것을 더 포함한다.
적어도 하나의 양상은 실시간으로 정보 리소스 내의 콘텐츠 슬롯들의 배치를 자동으로 관리하는 방법에 관한 것이다. 이 방법은 컴퓨팅 디바이스로부터 정보 리소스에 대한 요청을 수신하고 콘텐츠 슬롯 삽입 스크립트를 포함하는 정보 리소스를 컴퓨팅 디바이스에 전송하는 하나 이상의 프로세서를 포함하는 데이터 처리 시스템을 포함한다. 콘텐츠 슬롯 삽입 스크립트는 컴퓨팅 디바이스에서 실행될 때, 컴퓨팅 디바이스로 하여금 정보 리소스의 DOM(Document Object Model) 트리를 식별하고, DOM 트리에 포함된 하나 이상의 DOM 요소를 식별하고, 하나 이상의 후보를 결정하게할 수 있다 제 3 자 콘텐츠 배치 정책에 따라 제 3 자 콘텐츠 배치 위치 콘텐츠 슬롯 삽입 스크립트는 컴퓨팅 디바이스에서 실행될 때 컴퓨팅 디바이스로 하여금 후보 제 3 자 콘텐츠 배치 위치로부터 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택하게 하고 제 3 자 콘텐츠를 디스플레이하게할 수 있다 아이템을 선택한다.
일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 제 3 자 콘텐츠 배치 위치 후보를 식별하기 위한 하나 이상의 규칙을 포함한다. 규칙은 식별된 DOM 요소의 크기를 기반으로할 수 있다. 일부 구현 예에서, 제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하는 단계는 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정하는 단계와 미리 결정된 수의 제 3 자 콘텐츠 배치 결정에 응답하는 단계를 포함한다 후보자의 제 3 자 콘텐츠 배치 위치를 결정하기 위해 명령들을 종료해야한다. 일부 구현 예에서, DOM 트리에서 제 3 자 콘텐츠 배치 위치를 선택하는 것은 정보 리소스의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2 개의 인접한 DOM 요소 사이에 있는 제 3 자 콘텐츠 배치 위치를 선택하는 것을 포함한다 .
일부 구현 예에서, 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 아이템을 디스플레이하는 단계는 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액을 식별하는 단계, 수익액이 미리 결정된 임계치를 초과한다고 판정하는 단계, 상기 수익액이 상기 미리 결정된 임계치를 초과하는 것으로 결정하는 것에 응답하여 디스플레이하기 위한 제 3 자 콘텐츠 아이템을 생성하는 단계를 더 포함하는 방법. 일부 구현 예에서, 콘텐츠 슬롯 삽입 스크립트는 컴퓨팅 디바이스에서 실행될 때 컴퓨팅 디바이스로 하여금 정보 리소스 상에 디스플레이될 다수의 기존의 제 3 자 콘텐츠 배치를 식별하게 하고, 기존의 제 3 자 콘텐츠 배치의 수가 미리 결정된 수의 제 3 콘텐츠 배치보다 작고, 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 아이템을 디스플레이하는 것은 기존의 광고 배치의 수가 더 적음을 결정하는 것에 응답하여 미리 결정된 수의 광고 게재 위치보다
일부 구현 예에서, 컴퓨팅 디바이스에서 실행될 때 콘텐츠 슬롯 삽입 스크립트는 컴퓨팅 디바이스로 하여금 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 슬롯을 삽입하게할 수 있다. 제 3 자 콘텐츠 슬롯은 컴퓨팅 디바이스상에서 실행될 때 컴퓨팅 디바이스로 하여금 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 요청하게 하는 컴퓨터 실행 가능 명령을 포함한다. 일부 구현 예에서, 컴퓨팅 디바이스에서 실행될 때, 콘텐츠 슬롯 삽입 스크립트는 컴퓨팅 디바이스로 하여금 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 수신하게 하고, 제 3 자 콘텐츠 아이템을 디스플레이하도록 결정하도록 수신된 제 3 자 콘텐츠 아이템과 관련된 수익은 임계치를 초과한다.
적어도 하나의 양상은 정보 리소스 내의 콘텐츠 슬롯의 배치를 자동으로 관리하기 위한 시스템에 관한 것이다. 시스템은 컴퓨팅 디바이스상에서 실행되는 리소스 분석 모듈을 포함할 수 있고, 정보 리소스 디스플레이를 위한 콘텐츠에 대한 요청에 응답하여 정보 리소스의 DOM 트리에 포함된 하나 이상의 DOM(Document Object Model) 요소를 식별하도록 구성될 수 있다. 상기 시스템은 또한 컴퓨팅 디바이스상에서 실행되는 배치 위치 모듈을 포함하고 제 3 자 콘텐츠 배치 정책을 이용하여 제 3 자 콘텐츠 아이템을 삽입할 DOM 트리 내의 복수의 후보 제 3 자 콘텐츠 위치를 결정하도록 구성된다. 시스템은 또한 컴퓨팅 디바이스상에서 실행되는 위치 선택 모듈을 포함할 수 있고, 결정된 복수의 후보 제 3 자 콘텐츠 배치 위치 중 하나를 선택하도록 구성될 수 있다. 시스템은 또한 컴퓨팅 디바이스상에서 실행되는 콘텐츠 디스플레이 모듈을 포함할 수 있고 제 3 자 콘텐츠 아이템이 선택된 제 3 자 콘텐츠 배치 위치에 디스플레이되게 하도록 구성될 수 있다.
일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 제 3 자 콘텐츠 배치 위치 후보를 식별하기 위한 하나 이상의 규칙을 포함한다. 규칙은 식별된 DOM 요소의 크기를 기반으로할 수 있다. 일부 구현 예에서, 제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하는 단계는 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정하는 단계와 미리 결정된 수의 제 3 자 콘텐츠를 결정하는 것에 응답하는 단계를 포함할 수 있다 배치 위치, 후보 제 3 자 콘텐츠 배치 위치를 결정하기 위한 명령들을 종료한다. 일부 구현 예에서, DOM 트리에서 제 3 자 콘텐츠 배치 위치를 선택하는 것은 정보의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2 개의 인접한 DOM 요소 사이에 있는 제 3 자 콘텐츠 배치 위치를 선택하는 것을 포함할 수 있다 의지.
일부 구현 예에서, 제 3 자 콘텐츠 아이템이 선택된 제 3 자 콘텐츠 배치 위치에 디스플레이되도록 하는 단계는 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액을 식별하는 단계, 수익액이 미리 결정된 임계치를 초과하는 것으로 결정하는 단계, 상기 제 3 자 콘텐츠 아이템은 상기 수익액이 상기 미리 결정된 임계치를 초과하는 것으로 결정하는 것에 응답하여 디스플레이한다. 일부 구현 예에서, 콘텐츠 디스플레이 모듈은 정보 리소스 상에 디스플레이될 다수의 기존의 제 3 자 콘텐츠 배치를 식별하고, 기존의 제 3 자 콘텐츠 배치의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치보다 작은 지 여부를 결정할 수 있다 상기 제 3 자 콘텐츠 배치를 상기 선택된 제 3 자 콘텐츠 배치 위치에 표시하는 단계는, 상기 제 3 자 콘텐츠 배치의 개수가 미리 결정된 수의 제 3 자 콘텐츠 배치보다 적음을 결정하는 것에 응답하여 행해진 다.
일부 구현 예에서, 위치 선택 모듈은 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 슬롯을 삽입할 수 있다. 제 3 자 콘텐츠 슬롯은 컴퓨팅 디바이스상에서 실행될 때 컴퓨팅 디바이스로 하여금 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 요청하도록 하는 컴퓨터 실행 가능 명령을 포함한다. 일부 구현 예에서, 콘텐츠 디스플레이 모듈은 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 수신할 수 있고, 수신된 제 3 자 콘텐츠 아이템과 관련된 수익이 임계치를 초과한다고 결정한 것에 응답하여 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 결정할 수 있다값.
이들 및 다른 양상들 및 구현들은 아래에서 상세히 논의된다. 전술 한 정보 및 다음의 상세한 설명은 다양한 양상 및 구현의 예시적인 실시 예를 포함하고 청구된 양상 및 구현의 본질 및 특성을 이해하기 위한 개요 또는 프레임 워크를 제공한다. 도면은 다양한 측면들 및 구현들의 예시 및 추가적인 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부 도면은 일정한 비율로 도시하고자 한 것이 아니다. 다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다. 명확하게 하기 위해 모든 컴포넌트가 모든 도면에 표기되지는 않는다. 도면에서,
도 1은 클라이언트 디바이스들상에 정보 리소스들로 디스플레이하기 위한 제 3 자 콘텐츠를 제공하기 위한 환경의 구현을 나타내는 블록도이다.
도 2는 예시적인 구현 예에 따라, 정보 리소스에서 제 3 자 콘텐츠 슬롯들의 배치를 관리하기 위한 콘텐츠 슬롯 삽입 시스템의 일 구현을 나타내는 블록도이다.
도 3은 정보 리소스 및 여기에서 식별되는 추가적인 제 3 자 콘텐츠 배치 위치의 구조를 도시하는 블록도이다.
도 4는 예시적인 구현에 따라, 정보 리소스에서 추가적인 제 3 자 콘텐츠 슬롯을 삽입하는 방법을 도시하는 흐름도이다.
도 5는 여기에 기술되고 예시된 시스템의 요소들 및 방법을 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처의 예시적인 구현을 나타내는 블록도이다.
컴퓨터 네트워크 환경에서 정보 리소스의 콘텐츠의 디스플레이를 제어하는 방법, 장치 및 시스템과 관련된 다양한 개념 및 이들 구현의 보다 상세한 설명이 아래에 제공된다. 위에서 소개되고 아래에서보다 상세히 논의되는 다양한 개념들은 다양한 방식들 중 임의의 방식으로 구현될 수 있으며, 따라서, 전술 한 개념들이 임의의 특정 구현 방식에 한정되지 않는다.
페이지들과 같은 그러한 많은 정보 리소스들의 경우, 페이지들의 각 레이아웃은 사용자, 퍼블리셔 또는 광고주 또는 광고 네트워크와 같은 그러한 제 3 자에게 페이지 유틸리티를 최대화하지 않는다. 예를 들어, 사용자는 단자 하나의 제 3 자 콘텐츠 슬롯을 하나만 포함하는 웹 페이지를 방문할 수 있다. 이 경우, (리마케터들 또는 대규모이지만 간단한 브랜드 캠페인과 같은) 많은 제 3 자 콘텐츠 프로바이더들은 사용자가 웹 페이지를 방문하거나 웹 페이지에 액세스할 때 사용자에게 다가가길 원할 수 있다. 제 3 자 콘텐츠 프로바이더는 평균 제 3 자 콘텐츠 슬롯이 웹 페이지를 방문하는 사용자에게 콘텐츠를 제공하기 위해 웹 페이지 퍼블리셔가 얻는 수익보다 더 많은 액을 지불하고자 할 수 있다. 웹 페이지는 제 3 자 콘텐츠 아이템들 각각을 사용자에게 제시하고자하는 제 3 자 콘텐츠 프로바이더의 수보다 적은 제 3 자 콘텐츠 슬롯을 포함할 수 있다고 가정하면, 콘텐츠 퍼블리셔는 제 3 자 콘텐츠 프로바이더를 수용할 수 있도록 웹 페이지에 추가적인 제 3 자 콘텐츠 슬롯을 삽입하고, 동시에 사용자가 웹 페이지 방문으로 발생하는 수익을 높이기를 바랄수 있다. 또한 퍼블리셔는 퍼블리셔의 정보 리소스에 제 3 자 콘텐츠 아이템을 게시(posting)하는 요청이 증가함에 응답하여 제 3 자 콘텐츠 슬롯을 동적으로 추가적인할 수 있는 충분한 리소스가 없을 수 있다.
콘텐츠 퍼블리셔는 추가적인 제 3 자 콘텐츠 슬롯을 포함하도록 웹 페이지의 스크립트를 수동으로 수정함으로써 각 웹 페이지에 포함된 제 3 자 콘텐츠 슬롯의 수를 늘릴 수 있다. 그러나, 제 3 자 콘텐츠 슬롯의 수동 삽입은 콘텐츠 퍼블리셔가 (정보 리소스가 컴퓨팅 디바이스에 표시하기 위해 렌더링되는 시간에) 실시간으로 사용자에게 표시할 제 3 자 콘텐츠 슬롯 수를 제어할 수 없다. 예를 들어, 추가적인 제 3 자 콘텐츠 슬롯으로부터 생성된 수익이 미리 결정된 임계치보다 큰 경우 콘텐츠 퍼블리셔가 추가적인 제 3 자 콘텐츠 슬롯을 삽입하도록 선택할 수 있는 경우 콘텐츠 슬롯의 수동 삽입은 적합하지 않을 수 있다. 또한, 사용자에 기초하여 웹 페이지 상에 표시된 제 3 자 콘텐츠 슬롯의 수를 변경하는 경우, 다른 여러 파라미터 중에서도 특히 수익 차이는 콘텐츠 슬롯의 수동 삽입을 사용할 때 실시간으로 달성하지 못할 수도 있다. 더욱이, 다수의 웹 페이지들의 콘텐츠 퍼블리셔는 수동으로 각각의 웹 페이지를 업데이트하여 추가적인 콘텐츠 슬롯을 포함시켜야하는데, 이는 매우 시간 소모적일 수 있다.
본 발명은 최소한의 퍼블리셔 참여로 클라이언트 측에서 실시간으로 웹 페이지 상에서의 콘텐츠 슬롯의 배치를 자동적으로 관리하는 시스템 및 방법에 관한 것이다. 클라이언트 측에서의 콘텐츠 슬롯의 배치를 관리할 수 있게 함으로써 시스템은 광고주와 같은 그러한 사용자, 퍼블리셔 또는 콘텐츠 프로바이더의 다양한 목표에 기초하여 콘텐츠 슬롯의 배치를 최적화할 수 있다. 또한, 시스템은 역사적인 웹 페이지 인터액션들로부터 신호들을 식별하고 참여(engagement)를 증가시키기 위해 콘텐츠 슬롯의 배치를 조정(adapt)할 수 있다. 또한, 시스템은 삽입되는 콘텐츠 슬롯의 배치, 크기 및 포맷에 관한 지능적인 결정을 내릴 수 있다. 신호들은 웹페이지 형식, 웹 페이지가 표시되는 디바이스 유형 및 이미지, 비디오, 텍스트 블록, 제목/헤더 등을 비롯한 웹 페이지의 기타 요소들을 포함할 수 있다. 또한, 시스템은 사용자 참여를 증가시키기 위해 웹 페이지 내에 액션 또는 다른 콘텐츠 객체의 호출을 삽입할 수 있다.
본 발명에서, 데이터 처리 시스템은 웹 페이지 내에 삽입된 제 3 자 콘텐츠 슬롯의 수를 자동 및 동적으로 조정할 수 있다. 클라이언트 디바이스로부터 제 3 자 콘텐츠를 웹 페이지 상에 디스플레이하라는 요청에 응답하여, 데이터 처리 시스템은 클라이언트 디바이스에 콘텐츠 슬롯 삽입 스크립트를 전송할 수 있다. 콘텐츠 슬롯 삽입 스크립트는, 클라이언트 디바이스에서 실행될 때, 정보 리소스의 DOM(Document Object Model) 트리를 식별하고, DOM 트리에 포함된 하나 이상의 DOM 요소를 식별하고, 광고 배치 정책에 따라 하나 이상의 후보 광고 배치 위치를 결정할 수 있다. 콘텐츠 슬롯 삽입 스크립트는 또한 컴퓨팅 디바이스로 하여금 후보 광고 배치 위치들로부터 DOM 트리 내의 광고 배치 위치를 선택하고 선택된 광고 배치 위치에 광고를 디스플레이하게 할 수 있다. 콘텐츠 슬롯 삽입 스크립트를 사용하여, 데이터 처리 시스템은 클라이언트 디바이스가 웹 페이지에 액세스를 요구함에 응답하여 클라이언트 디바이스 상에 디스플레이될 웹 페이지에 삽입된 제 3 자 콘텐츠 슬롯들의 수를 자동적으로 및 동적으로 조정(예를 들어, 증가 또는 감소)시킬 수 있다. 이러한 방식으로, 하나 이상의 파라미터에 기초하여, 동일한 웹 페이지에는 콘텐츠 퍼블리셔의 개입 없이 여러 개의 클라이언트 디바이스상의 여러 개의 서로 다른 수의 제 3 콘텐츠 슬롯이 서비스될 수 있다.
도 1은 정보 리소스에서의 콘텐츠 슬롯의 배치를 자동적으로 관리하기 위한 환경의 일 구현을 나타낸 블록도이다. 환경(100)은 적어도 하나의 데이터 처리 시스템(110)을 포함한다. 데이터 처리 시스템(110)은 적어도 하나의 프로세서(또는 처리 회로) 및 메모리를 포함할 수 있다. 메모리는 프로세서상에서 실행될 때 프로세서로 하여금 여기에 설명된 하나 이상의 동작을 수행하게 하는 프로세서 실행 가능 명령들을 저장한다. 프로세서는 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등, 또는 이들의 조합 일 수 있다. 메모리는 전자, 광학, 자기 또는 프로세서에 프로그램 명령을 제공할 수 있는 임의의 다른 저장 디바이스 또는 전송 디바이스를 포함할 수 있지만, 이에 한정되는 것은 아니다. 메모리는 또한 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ASIC, FPGA, ROM, RAM, EEPROM,(EPROM), 플래시 메모리, 광 매체, 또는 프로세서가 명령을 판독할 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령들에는 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다. 데이터 처리 시스템(110)은 다양한 기능을 수행할 수 있는 하나 이상의 컴퓨팅 디바이스 또는 서버를 포함할 수 있다. 일부 구현 예에서, 데이터 처리 시스템(110)은 경매를 호스팅하도록 구성된 광고 경매 시스템을 포함할 수 있다. 일부 구현 예에서, 데이터 처리 시스템(110)은 광고 경매 시스템을 포함하지 않지만 네트워크(105)를 통해 광고 경매 시스템과 통신하도록 구성된다.
네트워크(105)는 인터넷, 로컬, 와이드, 메트로 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크, 음성 또는 데이터 이동 전화 통신 네트워크와 같은 그러한다른 컴퓨터 네트워크, 및 이들의 조합과 같은 그러한 컴퓨터 네트워크를 포함할 수 있다. 환경(100)의 데이터 처리 시스템(110)은 예를 들어, 네트워크(105)를 통해 적어도 하나의 콘텐츠 프로바이더 컴퓨팅 디바이스(115), 적어도 하나의 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 또는 적어도 하나의 클라이언트 디바이스(125)와 통신할 수 있다. 네트워크(105)는 클라이언트 디바이스(125), 데이터 처리 시스템(110), 및 예를 들어 웹 서버, 광고 서버 등과 같은 그러한 하나 이상의 콘텐츠 소스들 간에 정보를 중계하는 임의의 형태의 컴퓨터 네트워크일 수 있다. 예를 들어, 네트워크(105)는 근거리 통신망(LAN), 광역 통신망(WAN), 셀룰러 네트워크, 위성 네트워크 또는 다른 유형의 데이터 네트워크와 같은 그러한 인터넷 및/또는 다른 유형의 데이터 네트워크를 포함할 수 있다. 네트워크(105)는 또한 네트워크(105) 내에서 데이터를 수신 및/또는 송신하도록 구성된 임의의 수의 컴퓨팅 디바이스(예를 들어, 컴퓨터, 서버, 라우터, 네트워크 스위치 등)를 포함할 수 있다. 네트워크(105)는 임의의 수의 유선 및/또는 무선 접속을 더 포함할 수 있다. 예를 들어, 클라이언트 디바이스(125)는 (예를 들어, 광섬유 케이블, CAT5 케이블 등을 통해) 네트워크(105)의 다른 컴퓨팅 디바이스들에 유선 연결된 송수신기와 무선으로(예를 들어, WiFi, 셀룰러, 라디오 등을 통해) 통신할 수 있다.
콘텐츠 프로바이더 컴퓨팅 디바이스(115)는 클라이언트 디바이스(125)의 정보 리소스에 디스플레이하기 위한 광고와 같은 그러한 콘텐츠 아이템을 제공하도록 콘텐츠 프로바이더 엔티티에 의해 동작되는 서버 또는 다른 컴퓨팅 디바이스를 포함할 수 있다. 콘텐츠 프로바이더 컴퓨팅 디바이스(115)에 의해 제공되는 콘텐츠는 주요(primary) 콘텐츠(예컨대, 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)에 의해 제공되는 콘텐츠)를 포함하는 웹 사이트 또는 웹 페이지와 같은 그러한 정보 리소스 상에 디스플레이하기 위한 제 3 자 콘텐츠 아이템 또는 크리에이티브(예를 들어, 광고)를 포함할 수 있다. 콘텐츠 아이템은 또한, 검색 결과 웹 페이지에 표시될 수도 있다. 예를 들어, 콘텐츠 프로바이더 컴퓨팅 디바이스(115)는 콘텐츠 웹 페이지들(웹 페이지의 주요 콘텐츠를 제공하는 회사의 웹페이지 등)의 콘텐츠 슬롯에 디스플레이 또는 검색 엔진에 의해 제공되는 검색 결과 랜딩 페이지에 디스플레이하기 위한 광고들 또는 다른 콘텐츠 아이템의 소스를 제공하거나 포함할 수 있다. 콘텐츠 프로바이더 컴퓨팅 디바이스(115)와 연관된 콘텐츠 아이템은 스마트 폰 또는 다른 클라이언트 디바이스(125) 상의 애플리케이션(예를 들어, 게임 애플리케이션, GPS(global positioning system) 또는 지도(map)의 애플리케이션 또는 다른 유형의 애플리케이션)의 일부로서 디스플레이되는 콘텐츠와 같은 그러한 웹 페이지 이외의 정보 리소스들 상에 디스플레이될 수 있다.
콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)는 네트워크(105)를 통해 디스플레이하기 위한 주요 콘텐츠를 제공하기 위해 콘텐츠 퍼블리싱 엔티티에 의해 운영되는 서버들 또는 다른 컴퓨팅 디바이스들을 포함할 수 있다. 예를 들어, 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)는 웹 페이지 상에 디스플레이하기 위한 주요 콘텐츠를 제공하는 웹 페이지 운영자를 포함할 수 있다. 주요 콘텐츠는 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)에 의해 제공된 것 이외의 콘텐츠를 포함할 수 있고, 웹 페이지는 콘텐츠 프로바이더 컴퓨팅 디바이스(115)로부터의 제 3 자 콘텐츠 아이템(예를 들어, 광고)의 디스플레이를 위해 구성된 콘텐츠 슬롯을 포함할 수 있다. 예를 들어, 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)는 회사의 웹 사이트를 운영할 수 있고, 웹 사이트의 웹 페이지 상에 디스플레이하기 위해 그 회사에 관한 콘텐츠를 제공할 수 있다. 웹 페이지는 콘텐츠 프로바이더 컴퓨팅 디바이스(115)의 광고와 같은 그러한 제 3 자 콘텐츠 아이템의 디스플레이를 위해 구성된 콘텐츠 슬롯을 포함할 수 있다. 일부 구현 예에서, 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)는 검색 엔진 웹 사이트를 운영하는 검색 엔진 운영자의 검색 엔진 컴퓨팅 디바이스(예를 들어, 서버)를 포함한다. 검색 엔진 웹 페이지의 주요 콘텐츠(예를 들어, 결과 또는 방문 웹 페이지)는 검색 결과뿐만 아니라 콘텐츠 프로바이더 컴퓨팅 디바이스(115)로부터의 콘텐츠 아이템과 같은 그러한 콘텐츠 슬롯에 디스플레이된 제 3 자 콘텐츠 아이템을 포함할 수 있다. 일부 구현 예에서, 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)는 비디오 콘텐츠를 서비스하기 위한 서버를 포함할 수 있다.
클라이언트 디바이스들(125)은 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)에 의해 제공되는 콘텐츠(예를 들어, 주요 웹 페이지 콘텐츠 또는 다른 정보 리소스들) 및 콘텐츠 프로바이더에 의해 제공되는 콘텐츠(예를 들어, 웹 페이지의 콘텐츠 슬롯에 디스플레이되도록 구성된 광고와 같은 그러한 제 3 자 콘텐츠 아이템)와 같은 그러한 데이터를 표시하기 위해 네트워크(105) 컴퓨팅 디바이스(115)를 포함할 수 있다. 클라이언트 디바이스(125), 콘텐츠 프로바이더 컴퓨팅 디바이스(115) 및 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 개인 휴대 정보 단말기, 모바일 디바이스, 소비자 컴퓨팅 디바이스, 서버, 클라이언트, 텔레비전 용 셋톱박스, 비디오 게임 콘솔, 또는 네트워크(105)를 통해 통신하도록 구성된 임의의 다른 컴퓨팅 디바이스 일 수 있다. 클라이언트 디바이스들(125)은 최종 사용자가 콘텐츠를 수신하기 위한 요청을 제출할 수 있는 통신 디바이스 일 수 있다. 요청은 검색 엔진에 대한 요청 일 수 있으며, 요청에는 검색 쿼리가 포함될 수 있다. 일부 구현 예에서, 요청은 웹 페이지에 액세스하는 요청을 포함할 수 있다.
콘텐츠 프로바이더 컴퓨팅 디바이스(115), 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 및 클라이언트 디바이스(125)는 프로세서 및 메모리, 즉 처리 회로를 포함할 수 있다. 메모리는 프로세서상에서 실행될 때, 프로세서로 하여금 여기에 설명된 하나 이상의 동작을 수행하게 하는 머신 명령을 저장한다. 프로세서는 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등, 또는 이들의 조합을 포함할 수 있다. 메모리는 전자, 광학, 자기 또는 프로세서에 프로그램 명령을 제공할 수 있는 임의의 다른 저장 디바이스 또는 전송 디바이스를 포함할 수 있지만, 이에 한정되는 것은 아니다. 상기 메모리는 또한 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ASIC, FPGA, ROM, RAM, EEPROM,(EPROM), 플래시 메모리, 광 매체, 또는 프로세서가 명령을 판독할 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령들에는 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다.
콘텐츠 프로바이더 컴퓨팅 디바이스(115), 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 및 클라이언트 디바이스(125)는 또한 하나 이상의 사용자 인터페이스 디바이스를 포함할 수 있다. 일반적으로, 사용자 인터페이스 디바이스는 감각 정보(예를 들어, 디스플레이 상의 시각화, 하나 이상의 사운드 등)를 생성함으로써 사용자에게 데이터를 전달하고 및/또는 사용자로부터 수신된 감각 정보를 전자 신호로 변환하는 임의의 전자 디바이스(예 : 키보드, 마우스, 포인팅 디바이스, 터치 스크린 디스플레이, 마이크 등)를 지칭한다. 하나 이상의 사용자 인터페이스 디바이스는 다양한 구현 예들에 따라 콘텐츠 프로바이더 컴퓨팅 디바이스(115), 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 및 클라이언트 디바이스(125)의 하우징 내부(예를 들어, 내장 디스플레이, 마이크로폰 등)에 놓이거나 또는 콘텐츠 프로바이더 컴퓨팅 디바이스(115), 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 및 클라이언트 디바이스의 하우징의 외부(예를 들어, 모니터, 사용자 컴퓨팅 디바이스(115)에 연결된 스피커 등)에 놓일 수 있다. 예를 들어, 콘텐츠 프로바이더 컴퓨팅 디바이스(115), 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 및 클라이언트 디바이스(125)는 네트워크(105)를 통해 하나 이상의 콘텐츠 소스 및/또는 데이터 처리 시스템으로부터 수신된 웹 페이지 데이터를 사용하여 웹 페이지를 가시적으로 디스플레이하는 전자 디스플레이를 포함할 수 있다. 일부 구현 예에서, 콘텐츠 배치 캠페인 관리자 또는 광고주와 같은 그러한 제 3 자 콘텐츠 프로바이더는 콘텐츠 프로바이더 컴퓨팅 디바이스(115)를 통해 데이터 처리 시스템(110)과 통신할 수 있다. 일부 구현 예에서, 광고자는 콘텐츠 프로바이더 컴퓨팅 디바이스(115)의 사용자 인터페이스 디바이스상에 디스플레이되는 사용자 인터페이스를 통해 데이터 처리 시스템(110)과 통신할 수 있다.
데이터 처리 시스템(110)은 적어도 하나의 서버를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(110)은 적어도 하나의 데이터 센터 또는 서버 팜(server farm)에 위치한 복수의 서버를 포함할 수 있다. 일부 구현 예에서, 데이터 처리 시스템(110)은 제 3 자 콘텐츠 배치 시스템, 예컨대 광고 서버 또는 광고 배치 시스템을 포함할 수 있다. 데이터 처리 시스템(110)은 적어도 하나의 콘텐츠 요청 모듈(130), 적어도 하나의 콘텐츠 선택 모듈(135), 적어도 하나의 스크립트 프로바이더 모듈(140) 및 적어도 하나의 데이터베이스(145)를 포함할 수 있다. 콘텐츠 요청 모듈(130), 콘텐츠 선택 모듈(135) 및 스크립트 프로바이더 모듈(140)은 각각 적어도 하나의 처리 유닛, 서버, 가상 서버, 회로, 엔진, 에이전트, 어플라이언스 혹은, 네트워크(105)를 통해 데이터베이스(145) 및 다른 컴퓨팅 디바이스(예를 들어, 콘텐츠 프로바이더 컴퓨팅 디바이스(115), 콘텐츠 퍼블리셔 컴퓨팅 디바이스(120) 또는 클라이언트 디바이스(125))와 통신하도록 구성된 프로그래머블 논리 어레이와 같은 그러한 다른 논리 디바이스를 포함할 있다.
콘텐츠 요청 모듈(130), 콘텐츠 선택 모듈(135) 및 스크립트 프로바이더 모듈(140)은 적어도 하나의 컴퓨터 프로그램 또는 적어도 하나의 스크립트를 포함하거나 실행할 수 있다. 콘텐츠 요청 모듈(130), 콘텐츠 선택 모듈(135) 및 스크립트 프로바이더 모듈(140)은 별도의 컴포넌트들, 단일 컴포넌트 또는 데이터 처리 시스템(110)의 일부일 수 있다. 콘텐츠 요청 모듈(130), 콘텐츠 선택 모듈(135) 및 스크립트 프로바이더 모듈(140)은 소프트웨어 및 하나 이상의 스크립트를 실행하도록 구성된 하나 이상의 프로세서와 같은 그러한 하드웨어의 조합을 포함할 수 있다.
데이터 처리 시스템(110)은 또한 하나 이상의 콘텐츠 저장소 또는 데이터베이스(145)를 포함할 수 있다. 데이터베이스(145)는 데이터 처리 시스템(110)에 국부적일 수 있다. 일부 구현 예에서, 데이터베이스(145)는 데이터 처리 시스템(110)에 대해 원격일 수 있지만 네트워크(105)를 통해 데이터 처리 시스템(110)과 통신할 수 있다. 데이터베이스(145)는 다른 무엇보다도 특히, 클라이언트 디바이스(125)에 서비스하기 위해 웹 페이지, 웹 페이지 부분, 제 3 자 콘텐츠 아이템(예 : 광고) 및 콘텐츠 슬롯 삽입 스크립트를 포함할 수 있다.
콘텐츠 요청 모듈(130)은 클라이언트 디바이스(125)로부터 콘텐츠에 대한 요청을 수신할 수 있다. 콘텐츠에 대한 요청은 정보 리소스에 대한 요청, 하나 이상의 제 3 자 콘텐츠 아이템에 대한 요청, 콘텐츠 슬롯 삽입 스크립트에 대한 요청 또는 이들의 조합을 포함할 수 있다. 일부 구현 예에서, 콘텐츠에 대한 요청은 제 3 자 콘텐츠에 대한 요청을 포함할 수 있다. 일부 구현 예에서, 제 3 자 콘텐츠에 대한 요청은 제 3 자 콘텐츠가 디스플레이될 정보 리소스의 주소 또는 식별자를 포함할 수 있다. 제 3 자 콘텐츠에 대한 요청은 또한 콘텐츠에 대한 요청에 응답하여 제공할 콘텐츠를 결정하기 위해 데이터 처리 시스템(110)에 의해 사용될 수 있는 하나 이상의 파라미터를 포함하거나 식별할 수 있다. 파라미터는 요청된 콘텐츠를 삽입할 콘텐츠 슬롯의 크기를 식별할 수 있다. 파라미터는 정보 리소스와 관련된 유형의 콘텐츠, 요청된 제 3 자 콘텐츠 유형(예 : 텍스트, 이미지, 비디오 등), 클라이언트 디바이스 정보, 요청된 제 3 자 콘텐츠 아이템의 크기 정보 또는 그 조합을 포함할 수 있다. 일부 구현 예에서, 요청은 콘텐츠 슬롯 삽입 스크립트를 식별할 수 있다. 일부 구현 예에서, 콘텐츠에 대한 요청은 리소스 정보의 콘텐츠 퍼블리셔가 콘텐츠 슬롯 삽입 서비스에 가입하거나 그렇지 않으면 옵트 인(opted-in)되었음을 나타내는 식별자를 포함할 수 있다.
일부 구현 예에서, 콘텐츠에 대한 요청은 정보 리소스에 대한 요청을 포함할 수 있다. 정보 리소스에 대한 요청은 정보 리소스의 주소 또는 식별자를 포함할 수 있다. 예를 들어, 정보 리소스에 대한 요청은 웹 페이지와 같은 그러한 특정 리소스의 URL(Uniform Resource Locator)을 포함할 수 있다(예를 들어, "http://www.example.com"). 정보 리소스에 대한 요청은 또한 클라이언트 디바이스 정보(디바이스 유형, 디바이스 식별자 또는 이들의 조합 등)을 포함할 수 있다.
일부 구현 예에서, 콘텐츠에 대한 요청은 콘텐츠 슬롯 삽입 스크립트에 대한 요청을 포함할 수 있다. 일부 구현 예에서, 콘텐츠 슬롯 삽입 스크립트에 대한 요청은 요청된 스크립트의 표시, 리소스 정보의 어드레스 또는 식별자 또는 이들의 조합을 포함할 수 있다. 일부 구현 예에서, 콘텐츠 슬롯 삽입 스크립트에 대한 요청은 콘텐츠 슬롯 삽입 스크립트를 식별할 수 있다. 일부 구현 예에서, 콘텐츠 슬롯 삽입 스크립트에 대한 요청은 리소스 정보의 콘텐츠 퍼블리셔가 콘텐츠 슬롯 삽입 서비스에 가입하거나 그렇지 않으면 옵트 인되었음을 나타내는 식별자를 포함할 수 있다. 일부 구현 예에서, 콘텐츠 요청 모듈(130)은 콘텐츠에 대한 요청을 파싱하고 콘텐츠에 대한 요청을 콘텐츠 선택 모듈(135) 또는 스크립트 프로바이더 모듈(140)에 전달하도록 결정할 수 있다. 예를 들어, 콘텐츠 슬롯 삽입 스크립트가 수신된 콘텐츠에 대한 요청에 응답하여 클라이언트 디바이스(125)로 전송되도록 결정되면, 콘텐츠 요청 모듈(130)은 콘텐츠에 대한 요청을 스크립트 프로바이더 모듈(140)로 전송할 수 있다. 그렇지 않으면, 요청 모듈(130)은 콘텐츠 선택 모듈(135)에 콘텐츠에 대한 요청을 전송할 수 있다. 일부 구현들에서, 콘텐츠 요청 모듈(130)은 콘텐츠에 대한 요청을 콘텐츠 선택 모듈(135) 및 스크립트 프로바이더 모듈(140) 모두에 전송할 것을 결정할 수 있다. 콘텐츠 요청 모듈(130)은 콘텐츠에 대한 요청의 유형(예를 들어, 정보 리소스에 대한 요청, 제 3 자 콘텐츠에 대한 요청 또는 콘텐츠 슬롯 삽입 스크립트에 대한 요청, 콘텐츠에 대한 요청에서의 표시자(예를 들어, 콘텐츠 슬롯 삽입 스크립트를 나타내는 표시자 또는 정보 리소스가 콘텐츠 슬롯 삽입에 적합하다는 것을 나타내는 표시자), 콘텐츠에 대한 요청에 있는 정보 리소스 식별자 콘텐츠 또는 이들의 조합에 기초하여 클라이언트 디바이스(125)로 스크립트가 전송될지 여부를 결정할 수 있다. 일부 구현 예에서, 콘텐츠 요청 모듈(130)은 정보 리소스의 식별자를 정보 리소스 식별자들의 리스트(예를 들어, 콘텐츠 슬롯 삽입 스크립트)와 비교함으로써 스크립트를 클라이언트 디바이스(125)에 전송할지 여부를 결정할 수 있다. 일부 구현 예에서, 정보 리소스 식별자는 URL 일 수 있다. 일부 구현 예에서, 정보 리소스 식별자는 정보 리소스가 속하는 도메인 일 수 있다. 일부 구현 예에서, 정보 리소스 식별자는 정보 리소스를 호스팅하는 서버에 대응하는 IP 어드레스 일 수 있다. 일부 구현 예에서, 콘텐츠 요청 모듈(130)은 스크립트를 클라이언트 디바이스(125)에 전송할지 여부를 체크함이 없이 콘텐츠 선택 모듈(135)에 콘텐츠에 대한 요청을 자동으로 전달할 수 있다.
콘텐츠 선택 모듈(135)은 수신된 콘텐츠에 대한 요청에 응답하여 클라이언트 디바이스(125)에 전송될 콘텐츠를 결정하도록 구성될 수 있다. 콘텐츠 선택 모듈(135)은 콘텐츠에 대한 요청에 포함된 정보에 기초하여 클라이언트 디바이스(125)에 전송될 콘텐츠를 결정할 수 있다. 예를 들어, 정보 리소스에 대한 요청을 수신하면, 콘텐츠 선택 모듈(135)은 콘텐츠에 대한 요청에서의 정보 리소스의 주소 또는 식별자를 사용하여 클라이언트 디바이스에 전송할 콘텐츠를 결정할 수 있다. 하나 이상의 제 3 자 콘텐츠 아이템들에 대한 요청을 수신하는 경우, 콘텐츠 선택 모듈(135)은 제 3 자 콘텐츠(들)가 제시될 정보 리소스에 대한 어드레스 또는 식별자, 리소스에 대한 콘텐츠 유형 정보(예 : 스포츠, 뉴스, 음악, 영화, 여행 등), 제 3 자 콘텐츠 아이템(들)이 디스플레이될 슬롯(들)의 크기 정보, 클라이언트 디바이스 정보(예 : 디바이스 유형, 디바이스 식별자, 디바이스 위치 등)에 기초하여 제 3 자 콘텐츠 아이템 정보를 선택할 수 있다. 일부 구현 예에서, 제 3 자 콘텐츠에 대한 요청은 또한, 제 3 자 콘텐츠 아이템을 정보 리소스 상에 디스플레이하기 위한 최소 수익액(또는 최소 입찰가)을 포함할 수 있다. 일부 구현 예에서, 콘텐츠 선택 모듈(135)은 광고 경매 시스템과 통신할 수 있고, 클라이언트 디바이스로부터 수신된 제 3 자 콘텐츠에 대한 요청에 포함된 광고 경매 시스템 정보를 제공할 수 있다. 콘텐츠 선택 모듈(135)은 또한 제 3 자 콘텐츠에 대한 요청에 포함된 정보를 제공함에 응답하여 광고 경매 시스템으로부터 하나 이상의 제 3 자 콘텐츠 아이템을 수신할 수 있다. 일부 구현들에서, 콘텐츠 선택 모듈(135)은 데이터베이스(145)에 액세스하고 클라이언트 디바이스(125)에 전송하기 위해 콘텐츠를 검색할 수 있다.
일부 구현 예에서, 콘텐츠 선택 모듈(135)은 콘텐츠에 대한 요청에 응답하여 클라이언트 디바이스(125)에 스크립트를 전송할지 여부를 결정하도록 구성될 수 있다. 콘텐츠 선택 모듈(135)은 콘텐츠에 대한 요청의 유형(예를 들어, 정보 리소스에 대한 요청, 제 3 자 콘텐츠에 대한 요청 또는 콘텐츠 슬롯 삽입 스크립트에 대한 요청), 콘텐츠에 대한 요청의 표시자(예를 들어, 콘텐츠 슬롯 삽입 스크립트를 나타내는 표시자 또는 정보 리소스가 콘텐츠 슬롯 삽입에 적합하다는 것을 나타내는 표시자), 요청에 대한 정보 리소스 식별자 콘텐츠 또는 이들의 조합에 기초하여 클라이언트 디바이스(125)에 스크립트를 전송할지 여부를 결정할 수 있다. 일부 구현 예에서, 콘텐츠 선택 모듈(135)은 정보 리소스의 표시를 정보 리소스 식별자들 (예를 들어, 콘텐츠 슬롯 삽입 스크립트를 수신하기에 적합한 정보 리소스 식별자들)의 리스트와 비교함으로써 클라이언트 디바이스(125)에 스크립트를 전송할지 여부를 결정할 수 있다. 스크립트를 클라이언트 디바이스(125)에 전송하는 것으로 결정되면, 콘텐츠 선택 모듈(135)은 콘텐츠에 대한 요청 또는 그의 표시를 스크립트 프로바이더 모듈(140)에 전송할 수 있다. 일부 구현 예에서, 콘텐츠 선택 모듈(135)은 여전히 콘텐츠 슬롯 삽입 스크립트와 같은 그러한 스크립트와 함께 클라이언트 디바이스(125)에 전송할 제 3 자 콘텐츠 아이템을 선택할 수 있다.
스크립트 프로바이더 모듈(140)은 데이터베이스(145)로부터 콘텐츠 슬롯 삽입 스크립트를 검색하고 검색된 스크립트를 클라이언트 디바이스(125)(또는 클라이언트 디바이스(125)에 전송하기 위한 다른 개체)에 전송하도록 구성될 수 있다. 일부 구현 예에서, 콘텐츠 슬롯 삽입 스크립트는 개별적으로 또는 제 3 자 콘텐츠 아이템과 함께 클라이언트 디바이스(125)로 전송될 수 있다. 일부 구현 예에서, 스크립트 프로바이더 모듈(140), 콘텐츠 선택 모듈(135) 또는 데이터 처리 시스템(110)의 다른 엔티티는 요청된 정보 리소스와 함께 콘텐츠 슬롯 삽입 스크립트를 클라이언트 디바이스(125)에 전송할 수 있다. 예를 들어, 스크립트 프로바이더 모듈(140), 콘텐츠 선택 모듈(135) 또는 데이터 처리 시스템(110)의 다른 엔티티는 정보 리소스를 클라이언트 디바이스(125)에 보내기 전에 콘텐츠 슬롯 삽입 스크립트를 정보 리소스에 삽입할 수 있다.
콘텐츠 슬롯 삽입 스크립트는 컴퓨터 실행 가능 명령들을 포함할 수 있다. 컴퓨터 실행 가능한 명령들은 HTML(HyperText Markup Language), XHTML(Extensible HyperText Markup Language), XML(Extensible Markup Language), CSS(Cascading Style Sheets) 및 JavaScript와 같은 그러한 스크립트를 포함할 수 있다. 컴퓨터 실행 가능 명령들은 클라이언트 디바이스(125)가 콘텐츠 요청 모듈(130)에 의해 수신된 콘텐츠 요청을 전송하게 하는 어플리케이션과 같은 그러한 클라이언트 디바이스(125)의 어플리케이션 내에서 실행될 수 있다. 애플리케이션은 예를 들어 인터넷 브라우저, 모바일 애플리케이션, 게임 애플리케이션, GPS 애플리케이션, 또는 컴퓨터 실행 가능 명령을 판독하고 실행할 수 있는 임의의 다른 컴퓨터 프로그램을 포함할 수 있다. 간단히 요약하면, 클라이언트 디바이스(125)의 프로세서에 의해 실행될 때, 컴퓨터 실행 가능 명령들은 클라이언트 디바이스의 애플리케이션으로 하여금(a) 정보 리소스의 DOM(Document Object Model) 트리를 식별하고, (b)는 DOM 트리에 포함된 하나 이상의 DOM 요소를 식별하고,(c) 광고 배치 정책에 따라 하나 이상의 후보 광고 배치 위치를 결정하고,(d) 후보 광고 배치 위치들 중에서 DOM 트리에서의 광고 배치 위치를 선택하고, (e) 선택된 광고 배치 위치에 광고를 표시하게 할 수 있다. 콘텐츠 슬롯 삽입 스크립트의 기능들에 관한 부가적인 세부 사항들이 도 2, 3 및 4와 관련하여 여기에 제공된다.
도 2를 참조하면, 도 2는 예시적인 구현에 따라, 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 콘텐츠 슬롯 삽입 시스템(200)의 일 실시 예를 도시한 블록도이다. 콘텐츠 슬롯 삽입 시스템(200)은 어플리케이션(205), 정보 리소스(210), 리소스 분석 모듈(222), 배치 위치 모듈(225), 위치 선택 모듈(228) 및 콘텐츠 디스플레이 모듈(230)을 포함할 수 있다. 일부 구현 예에서, 리소스 분석 모듈(222), 배치 위치 모듈(225), 위치 선택 모듈(228) 및 콘텐츠 디스플레이 모듈(230)은 콘텐츠 슬롯 삽입 스크립트(220) 내의 모듈일 수 있다. 콘텐츠 슬롯 삽입 시스템(200)은 도 5와 관련하여 이하에서 설명되는 것과 같이 컴퓨팅 디바이스의 하나 이상의 프로세서에 의해 실행되거나 실행될 수 있다. 일부 구현 예에서, 리소스 분석 모듈(222), 배치 위치 모듈(225), 위치 선택 모듈(228) 및 콘텐츠 디스플레이 모듈(230) 중 어느 것은 어플리케이션(205), 정보 리소스(210) 또는 콘텐츠 슬롯 삽입 스크립트(220)의 일부일 수 있다. 애플리케이션(205)은 예를 들어 인터넷 브라우저, 모바일 애플리케이션, 게임 애플리케이션, GPS 애플리케이션, 또는 정보 리소스(210), 리소스 분석 모듈(222), 배치 위치 모듈(225), 위치 선택 모듈(228) 및 콘텐츠 듈디스플레이 모(230)에 포함된 컴퓨터 실행 가능 명령과 같은 그러한 컴퓨터 실행 가능 명령을 실행하거나 호출할 수 있는 임의의 다른 컴퓨터 프로그램을 포함할 수 있다. 정보 리소스(210)는 하나 이상의 콘텐츠 부분들(또는 콘텐츠 요소들)을 포함할 수 있다. 정보 리소스(210)는 하나 이상의 콘텐츠 요소들의 위치들을 특정할 수 있다. 일부 구현 예에서, 정보 리소스(210)는 하나 이상의 콘텐츠 요소의 형태, 크기, 위치 및/또는 다른 속성을 특정하는 DOM(Document Object Model) 트리를 포함할 수 있다. 일부 구현 예에서, 콘텐츠 요소들은 DOM 트리에 포함된 DOM 요소들에 대응할 수 있다.
애플리케이션(205)은 정보 리소스의 콘텐츠 퍼블리셔의 서버 또는 정보 리소스를 호스팅하는 서버로부터 정보 리소스(210)를 얻거나 수신할 수 있다. 예를 들어, 어플리케이션(205)은 정보 리소스(210)의 주소 또는 식별자를 포함하는 요청을 서버에 전송할 수 있고, 이에 응답하여 정보 리소스(210)를 수신할 수 있다. 서버가 도 1에 도시된 데이터 처리 시스템(110)인 몇몇 구현 예에서, 도 1에 도시된 바와 같이, 애플리케이션(205)은 정보 리소스(210)와 함께 콘텐츠 슬롯 삽입 스크립트(230)를 수신할 수 있다. 예를 들어, 어플리케이션(205)은 정보 리소스(210) 내에 삽입된 콘텐츠 슬롯 삽입 스크립트(220)를 수신할 수 있다.
일부 구현 예에서, 정보 리소스(210)를 수신하면, 애플리케이션(205)은 콘텐츠에 대한 요청을 데이터 처리 시스템(110)에 전송할 수 있다. 콘텐츠에 대한 요청은 제 3 자 콘텐츠 아이템에 대한 요청 일 수 있다. 예를 들어, 정보 리소스(210)는 애플리케이션(205)이 콘텐츠에 대한 요청을 생성하여 이를 데이터 처리 시스템(110)에 전송하게 하는 컴퓨터 실행 가능 명령을 포함할 수 있는 제 3 자 콘텐츠 슬롯을 포함할 수 있다. 제 3 자 콘텐츠 슬롯의 컴퓨터 실행 가능 명령이 정보 리소스(110)의 일부로서 실행될 때, 컴퓨터 실행 가능 명령은(클라이언트 디바이스(125)를 통해) 애플리케이션(205)이 데이터 처리 시스템(101)으로부터 제 3 자 콘텐츠 아이템을 요청하는 콘텐츠에 대한 요청을 전송하게 할 수 있다. 콘텐츠에 대한 요청은 정보 리소스(210)의 주소 또는 식별자, 정보 리소스 콘텐츠 유형의 표시, 제 3 자 콘텐츠 슬롯의 크기 정보, 클라이언트 디바이스 정보, 최소 퍼블리셔 수익값 또는 이들의 조합을 포함할 수 있다. 일부 구현 예에서, 콘텐츠에 대한 요청은 콘텐츠 슬롯 삽입 스크립트(220)의 표시를 포함할 수 있다. 일부 구현 예에서, 콘텐츠에 대한 요청은 콘텐츠 슬롯 삽입 스크립트(220)에 대한 요청을 포함할 수 있다.
콘텐츠에 대한 요청에 응답하여, 애플리케이션(205)은 데이터 처리 시스템(110) 또는 다른 서버로부터 콘텐츠 슬롯 삽입 스크립트(220)를 수신할 수 있다. 예를 들어, 애플리케이션(205)은 콘텐츠에 대한 요청을 데이터 처리 시스템(110)에 전송하기 위한 명령을 포함하고 있는 제 3 자 콘텐츠 슬롯 내에 삽입하기 위해 제 3 자 콘텐츠 아이템과 함께 콘텐츠 슬롯 삽입 스크립트(220)를 수신할 수 있다. 일부 구현 예에서, 애플리케이션(205)은 제 3 자 콘텐츠 아이템 없이 콘텐츠 슬롯 삽입 스크립트(220)를 수신할 수 있다. 일부 구현 예에서, 애플리케이션(205)은 정보 리소스에 삽입될 수 있는 하나 이상의 콘텐츠 슬롯에 삽입하기 위해 복수의 제 3 자 콘텐츠 아이템을 갖는 콘텐츠 슬롯 삽입 스크립트(220)를 수신할 수 있다. 애플리케이션(205)(또는 클라이언트 디바이스(125)의 프로세서)은 콘텐츠 슬롯 삽입 스크립트(220)를 실행할 수 있다. 일부 구현 예에서, 콘텐츠 슬롯 삽입 스크립트(220)를 실행하는 것은 리소스 분석 모듈(222), 배치 위치 모듈(225), 위치 선택 모듈(228), 콘텐츠 디스플레이 모듈(230) 또는 이들의 조합을 실행하는 것을 포함한다.
리소스 분석 모듈(222)은 클라이언트 디바이스(125)상에서 실행될 수 있는 하나 이상의 컴퓨터 실행 가능 명령을 포함할 수 있다. 리소스 분석 모듈(222)은 컴퓨팅 디바이스로 하여금 정보 리소스(210)의 DOM(Document Object Model) 트리를 식별하게 할 수 있다. 리소스 분석 모듈(222)은 클라이언트 디바이스(125)가 리소스 분석 모듈(222)에 의해 검사하기 위한 정보 리소스의 DOM 트리를 식별하게할 수 있다. 일부 구현 예에서, 정보 리소스(210)의 DOM 트리를 식별하는 것은 정보 리소스(210)의 DOM 트리에 액세스하는 것을 포함할 수 있다. 일부 구현 예에서, 리소스 분석 모듈(222)은 컴퓨팅 디바이스로 하여금 정보 리소스의 콘텐츠 퍼블리셔의 서버로부터 수신된 정보 리소스에 포함된 명령들부터 DOM 트리를 생성하게할 수 있다. 일부 구현 예에서, 애플리케이션(205)은 정보 리소스(210)의 DOM 트리를 생성하기 위한 컴퓨터 실행 가능 명령을 포함할 수 있다.
리소스 분석 모듈(222)은 클라이언트 디바이스(125)가 정보 리소스(210)의 DOM 트리를 검사함으로써 정보 리소스(210)의 DOM 트리에 포함된 하나 이상의 DOM 요소를 식별하게 할 수 있다. 일부 구현 예에서, DOM 트리에서 하나 이상의 요소를 식별하는 것은 DOM 트리의 하나 이상의 부모 노드를 식별하고, 식별된 부모 노드(들)와 관련된 가시적인 콘텐츠 아이템(들)을 나타내는 요소를 식별하는 것을 포함할 수 있다. 예를 들어, 리소스 분석 모듈(222)은 전체 정보 리소스(210)를 나타내는 DOM 트리에서 최상위 노드를 식별할 수 있다. 리소스 분석 모듈(222)은 정보 리소스(210)의 영역을 나타내는 DOM 트리의 서브 트리의 부모 노드를 식별할 수 있다. 그 다음, 리소스 분석 모듈(222)은 DOM 트리에서 식별된 노드(들)과 관련된 가시적인 콘텐츠 아이템들을 결정할 수 있다. 일부 구현 예에서, 리소스 분석 모듈(222)은 DOM 트리의 전부 또는 일부를 파싱함으로써(예를 들어, DOM 트리 또는 서브 트리의 부모 노드를 반드시 식별하지 않고서도) 가시적인 콘텐츠 아이템을 나타내는 DOM 트리의 요소를 결정할 수 있다.
리소스 분석 모듈(222)은, 예를 들어, DOM 트리 또는 DOM 트리의 일부분을 파싱(parsing) 또는 검사함으로써 가시적인 콘텐츠 아이템을 나타내는 DOM 트리에서의 하나 이상의 요소를 결정할 수 있다. 일부 구현 예에서, 리소스 분석 모듈(222)은 DOM 트리 내의 요소들의 타입, 이름 또는 다른 속성을 검사함으로써 정보 리소스(210) 내의 가시적인 콘텐츠 아이템을 식별할 수 있다. 가시적인 내용 아이템을 나타내는 요소의 예는 다른 무엇보다도 특히, 비 공백 문자, 이미지, <HR> 태그, <IFRAME> 태그 및 <EMBED> 태그, <OBJECT> 태그, <VIDEO > 태그를 포함한다. 일부 구현 예에서, 리소스 분석 모듈은 요소 또는 그 부모의 스타일 속성들을 검사함으로써 요소가 가시적인 콘텐츠 아이템을 나타내는지를 식별할 수 있다. 예를 들어, 주어진 요소 또는 그 부모와 관련된 "가시성"속성 또는 "오버 플로우"속성이 숨김으로 설정된 경우, 그 요소(또는 그와 관련된 아이템)는 정보 리소스(210)가 디스플레이될 때 보이지 않을 것이다. 또한, 정의되고 있는 "없음"또는 "클립"속성으로 설정된 "디스플레이"속성은 정보 리소스가 클라이언트 디바이스(125) 상에 디스플레이될 때 보이지 않는 요소(또는 그와 관련된 아이템)에 이르게 할 수 있다.
리소스 분석 모듈(222)은 또한 가시적인 콘텐츠 아이템을 나타내는 식별된 요소들의 경계들을 결정할 수 있다. 예를 들어, 리소스 분석 모듈(222)은 DOM 트리로부터 가시적인 콘텐츠 아이템을 나타내는 식별된 요소들 각각의 경계를 식별할 수 있다. 이러한 경계는 예를 들어 직사각형(또는 정사각형)의 2 개 이상의 코너 및/또는 좌측, 위측, 상부 및 하부 경계의 좌표에 의해 정의될 수 있다. 가시적인 콘텐츠 아이템을 나타내는 요소의 경계는 클라이언트 디바이스에서 렌더링될 때 가시적인 콘텐츠 아이템을 완전히 포함하는 사각형으로서 정의될 수 있다. 일부 구현에서, 그러한 경계의 좌표는 브라우저 창(pane)의 상단, 사이드 코너로부터의 절대 픽셀의 관점에서 표현될 수 있다. 가시적인 콘텐츠 아이템들을 나타내는 DOM 트리의 요소들을 식별하고 각 경계를 결정하면 기존의 가시적인 콘텐츠 아이템들의 범위(또는 크기) 측면에서 적합한 제 3 자 콘텐츠 배치를 결정 (또는 부적합한 제 3 자 콘텐츠 배치를 제거)할 수 있다. 예를 들어, 최소값을 초과하는 치수 파라미터를 갖는 가시적인 콘텐츠 아이템들은 추가적인 제 3 자 콘텐츠 배치 위치를 정착(anchoring)시키기 위해 선택될 수 있다.
DOM 트리에서 하나 이상의 요소를 식별할 때, 배치 위치 모듈(225)은 클라이언트 디바이스(125)상에서 실행될 때 제 3 자 콘텐츠 배치 정책에 기초하여 DOM 트리에서 복수의 후보 제 3 자 콘텐츠 배치 위치를 결정할 수 있다 . 일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 식별된 DOM 요소의 차원에 기초한 규칙을 포함할 수 있다. 일부 구현 예에서, 배치 위치 모듈(225)은 가시적인 콘텐츠 아이템을 나타내는 하나 이상의 식별된 DOM 요소를 선택할 수 있으며, 이 주위에서 제 3 자 콘텐츠 배치 위치가 정의될 수 있다. 배치 위치 모듈(225)은 각각의 크기(또는 경계 정보)에 기초하여 그러한 요소들을 선택할 수 있다. 예를 들어, 배치 위치 모듈(225)은 제 3 자 콘텐츠 아이템의 전형적인 폭 또는 높이보다 큰(또는 동일한) 각각의 폭 또는 높이를 갖는 가시적인 콘텐츠 아이템을 나타내는 요소를 선택할 수 있다. 그 후, 배치 위치 모듈(225)은 선택된 요소들에 인접한 후보 제 3 자 콘텐츠 배치 위치들을 결정할 수 있다. 일부 구현 예에서, 배치 위치 모듈(225)은 가시적인 콘텐츠 아이템들을 나타내는 식별된 DOM 요소들의 경계 정보(예컨대 좌표)를 분석함으로써 제 3 자 콘텐츠 아이템을 삽입하기 위한 후보 제 3 자 콘텐츠 배치 위치를 결정할 수 있다. 일부 구현 예에서, 배치 위치 모듈(225)은 (광고와 같은 그러한) 제 3 자 콘텐츠 아이템을 배치하기에 적절한 위치들 또는 영역들에 대한 미리 정의된 최소 크기 또는 치수 값들을 사용할 수 있다.
이제 도 3을 참조하면, 도 3은 배치 위치 모듈(225)에 의해 식별된 후보 제 3 자 콘텐츠 배치 위치를 포함하는 정보 리소스(300)의 레이아웃을 나타내는 블록도이다. 정보 리소스(예를 들어, 웹 페이지)(300)는 메인 프레임 부분(302) 및 사이드 프레임 부분(304)을 포함한다. 메인 프레임 부분(302)은 헤더 영역(310), 이미지 영역(312), 제 1 텍스트 영역(314) 및 제 2 텍스트 영역(316)을 포함한다. 헤더 영역(310)은 메인 프레임 부분(302)의 실질적인 부분을 가로 질러 연장된다. 측부 프레임 부분은 이미지 영역(306) 및 텍스트 영역(308)을 포함한다. 이러한 각 영역은 DOM 트리의 각 경계와 관련될 수 있다.
배치 위치 모듈(225)은 본래 정보 리소스(300)에 있는 DOM 요소의 차원에 기초하여 메인 프레임 부분(302)의 영역(311 및 313) 및 사이드 프레임 부분(304)의 영역(309)을 후보 제 3 자 콘텐츠 배치 위치로서 식별한다. 후보 배치 위치(311)는 헤더 영역(310)과 제 1 텍스트 영역(314) 사이에 배치된 수평으로 긴 사각형으로서 정의된다. 후보 배치 위치(313)는 제 1 텍스트 영역(314)과 제 2 텍스트 부분(316) 사이에 배치된 수평으로 긴 직사각형으로서 정의된다. 후보 배치 위치(309)는 텍스트 영역(308) 사이에(예를 들어, 아래에) 인접하게 측부 프레임 부(304)에 배열된 수직으로 긴 직사각형으로서 정의된다.
일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 결정될 후보 배치 위치의 최대 개수를 특정하는 규칙 또는 제약을 포함할 수 있다. 배치 위치 모듈(225)은 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정할 수 있고 미리 결정된 수의 후보 제 3 자 콘텐츠 배치 위치가 초과되었다는 결정에 응답하여 배치 위치 모듈(225)은 후보 제 3 자 콘텐츠 배치 위치를 결정하기 위한 명령을 종료할 수 있다. 예를 들어, 미리 결정된 수의 제 3 자 콘텐츠 배치 위치가 3과 같은 경우, 배치 위치 모듈(225)은 일단 제 1의 3개의 제 3 자 콘텐츠 배치 위치를 식별하면 제 3 자 콘텐츠 배치 위치 모듈은 배치 위치를 식별하는 프로세스를 종료할 수 있다 .
일부 구현에서, 제 3 자 콘텐츠 배치 정책은 후보 배치 위치에 제약을 가하는 다른 규칙을 포함할 수 있다. 예를 들어, 도 3의 예를 고려하면, 배치 위치 모듈(225)은 헤더 영역(310) 위 또는 사이드 프레임 부분(304)의 우측에 후보 배치 위치를 정의하지 않도록 구성될 수 있다. 일부 구현 예에서, 배치 정책은 이미지와 각각의 캡션 사이에서 (예를 들어, 이미지 부분(306)과 텍스트 부분(308) 사이)와 같은 그러한 혼란스러운 위치를 방지하는 규칙을 포함할 수 있다. 일부 구현 예에서, 배치 정책은 정보 리소스의 웹 사이트와 관련된 특징 또는 정보에 기초하여 제 3 자 콘텐츠 배치 위치를 선택하기 위한 규칙을 포함할 수 있다. 예를 들어, 제 3 자 배치 위치를 식별할 때, 배치 위치 모듈(225)은 클라이언트 디바이스로 하여금 웹 사이트 포맷, 웹 사이트 콘텐츠를 고려하고 그리고/또는 웹 사이트가 모바일에 최적화되었는지 여부를 고려하게할 수 있다. 예를 들어, 배치 위치 모듈(225)은 클라이언트 디바이스로 하여금 정보 리소스 내의 이미지 또는 비디오의 수에 기초하여 식별할 후보 제 3 자 배치 위치의 크기 및 수를 조정하게 할 수 있다. 또한, 배치 위치 모듈(225)은 클라이언트 디바이스가 웹 사이트가 모바일에 최적화되어 있는지를 식별하도록 배치 위치의 크기 및/또는 수를 감소시킬 수 있다. 또한, 배치 위치 모듈(225)은 클라이언트 디바이스로 하여금 제 3 자 배치 위치를 식별할 때 웹 사이트가 응답성 웹 디자인을 가지는지 여부를 결정하게 할 수 있다. 일부 구현 예에서, 배치 위치 모듈(225)은 클라이언트 디바이스로 하여금 웹 사이트의 다양한 웹 페이지(또는 슬라이드)를 통해 네비게이션하는데 사용되는 화살표, "다음"버튼 또는 다른 아이콘에 인접한 위치를 식별하는 것을 회피하게 하여 그러한 위치에 삽입된 광고와의 부주의한(inadvertent) 인터액션의 수를 감소시킬 수 있다.
일부 구현 예에서, 배치 위치 모듈(225)은 제 3 자 배치 위치를 결정하기 위해 퍼블리셔의 웹 사이트 또는 다른 웹 사이트에서 기존 또는 이전에 사용된 배치 위치에 대한 이력 성능 데이터(예 : 클릭률 데이터)를 사용할 수 있다. 예를 들어, 배치 위치 모듈(225)은 낮은 클릭-스루율을 초래하는 것으로 알려진 위치 또는 다수의 낮은 품질의 클릭율을 갖는 위치를 선택하는 것을 피할 수 있다. 일부 구현 예에서, 정보 리소스(210)는 제 3 자 배치 위치로서 사용될 수 있는 장소에 대한 문맥적인 힌트(주어진 위치에서의 잠재적인 광고 삽입을 나타내는 숨겨진 텍스트 등)를 포함할 수 있다. 배치 위치 모듈(225)(또는 콘텐츠 삽입 스크립트(220))은 후보 배치 위치를 식별하는데 있어 이러한 문맥적인 힌트를 사용하도록 구성될 수 있다.
위치 선택 모듈(228)은 클라이언트 디바이스상에서 실행될 때, 클라이언트 디바이스로 하여금 제 3 자 콘텐츠 슬롯(예를 들어, 광고 슬롯)을 삽입하기 위한 결정된 복수의 후보 제 3 자 콘텐츠 배치 위치 중 하나를 선택하게 할 수 있다. 예를 들어, 위치 선택 모듈(228)은 클라이언트 디바이스로 하여금 결정된 후보 배치 위치들 중에서, 정보 리소스의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2 개의 인접한 DOM 요소들 사이에 있는 제 3 자 콘텐츠 배치 위치를 선택하게 할 수 있다. 예를 들어, 미리 결정된 임계치는 정보 리소스(210)의 폭의 80%, 85%, 90% 또는 다른 퍼센티지값 일 수 있다. 도 3의 예를 고려하면, 예를 들어, 후보 배치 위치(311)는 헤더 영역(310)과 제 1 텍스트 영역(314) 사이에 배열된다. 미리 결정된 임계치가 정보 리소스의 폭의 30%이면, 헤더 영역(310)과 제 1 텍스트 영역(314)은 정보 리소스(310)의 폭의 30%를 초과하는 각각의 폭을 갖는다. 따라서, 위치 선택 모듈(228)은 후보 배치 위치(311)를 선택할 수 있다. 유사한 이유로, 제 1 텍스트 영역(314)과 제 2 텍스트 영역(316)의 폭을 비교함으로써, 위치 선택 모듈(228)은 클라이언트 디바이스로 하여금 후보 배치 위치(313)를 선택하게 할 수 있다. 일부 구현 예에서, 위치 선택 모듈(228)은 클라이언트 디바이스로 하여금 하나 이상의 기준에 기초하여 상기 결정된 후보 제 3 자 콘텐츠 배치 위치를 랭킹하게 하고, 결정된 후보 제 3 자 콘텐츠 배치 위치의 랭킹에 기초하여 제 3 자 콘텐츠 배치 위치를 선택하게 할 수 있다.
제 3 자 콘텐츠 배치 위치를 선택할 때, 위치 선택 모듈(228)(또는 콘텐츠 디스플레이 모듈(230))은 클라이언트 디바이스로 하여금 제 3 자 콘텐츠 슬롯(예를 들어, 광고 슬롯)을 상기 선택된 제 3 자 콘텐츠 배치 위치에 삽입할 수 있게 한다. 제 3 자 콘텐츠 슬롯은 클라이언트 디바이스(125)상에서 실행될 때 클라이언트 디바이스(125)가 데이터 처리 시스템(110)으로부터 제 3 자 콘텐츠 아이템(예를 들어, 광고)을 요청하게 하는 컴퓨터 실행 가능 명령을 포함할 수 있다. 클라이언트 디바이스(125)는 예를 들어 정보 리소스의 주소 또는 식별자, 정보 리소스와 관련된 콘텐츠 유형의 표시, 제 3 자 콘텐츠 슬롯에 대한 크기 정보, 클라이언트 디바이스 정보 또는 이들의 조합을 포함하는 콘텐츠에 대한 제 3 자 요청을 전송할 수 있다. 데이터 처리 시스템(110)에 전송된 콘텐츠에 대한 제 3 자 요청에 응답하여, 클라이언트 디바이스는 삽입된 제 3 자 콘텐츠 슬롯에서 디스플레이하기 위해 제 3 자 콘텐츠 아이템을 수신할 수 있다.
데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 수신하면, 콘텐츠 듈디스플레이 모듈(230)은 클라이언트 디바이스(125)가 상기 삽입된 제 3 자 콘텐츠 슬롯에 상기 수신된 제 3 자 콘텐츠를 디스프레이하게 할 수 있다. 일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스로 하여금 수신된 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액을 식별하게 하고 수익액을 미리 결정된 임계치와 비교하게할 수 있다. 수익액이 미리 결정된 임계치를 초과한다고 결정하면, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스(125)가 정보 리소스 내에서 디스플레이하기 위한 제 3 자 콘텐츠 아이템을 선택하게 할 수 있다.
일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스로 하여금 위치 선택 모듈(228)에 의해 정보 리소스(210)에 삽입된 복수의 제 3 자 콘텐츠 슬롯에 디스플레이하기 위해 복수의 제 3 자 콘텐츠 아이템과 관련된 수익액의 표시(들)를 수신하게 할 수 있다. 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스가 제 3 자 콘텐츠 슬롯의 서브 세트에서 디스플레이하기 위해 수익액에 기초하여 제 3 자 콘텐츠 아이템의 서브 세트를 선택하게 하도록 구성될 수 있다. 예를 들어, 도 3에 도시된 웹 페이지 레이아웃에서, 3 개의 제 3 자 콘텐츠 슬롯은 위치 선택 모듈(228)에 의해 배치 위치(311, 313, 309)에 삽입될 수 있다. 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스로 하여금 각각의 수익액의 표시를 갖는 3 개의 제 3 자 콘텐츠 아이템을 수신하게 하고, 위치(311, 313)에 삽입된 슬롯에서 디스플레이하기 위해 가장 높은 수익액을 갖는 2 개의 제 3 자 콘텐츠 아이템만을 선택하게 할 수 있다.
일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스가 수익액이 임계치를 초과한다고 판정하는 경우에도 상기 수신된 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 여전히 결정하게 할 수 있다. 예를 들어, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스(125)가 수신된 제 3 자 콘텐츠 아이템과 관련된 콘텐츠 유형, 제 3 자 콘텐츠 아이템(예 : 텍스트, 이미지 또는 동영상)의 유형, 제 3 자 콘텐츠 아이템과 관련된 클릭률 또는 기타 기준에 기초하여 (수익액이 임계치를 초과할 때) 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 결정하게할 수 있다. 일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스로 하여금 각각의 클릭율에 기초하여 수신된 제 3 자 콘텐츠 아이템을 필터링하도록 구성될 수 있다.
일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스(125)가 정보 리소스(210) 상에 디스플레이될 다수의 기존 제 3 자 콘텐츠 배치 위치(도 3의 이미지 영역(306) 및 텍스트 영역(308)등을 식별하게 할 수 있다. 예를 들어, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스가 임의의 추가적인 리소스를 삽입하기 전에 정보 리소스에 존재하는 광고 슬롯의 수를 체크 하도록 구성될 수 있다. 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스가 DOM 트리 또는 정보 리소스(210)의 소스 코드를 검사함으로써 기존의 제 3 자 콘텐츠 배치 위치의 수를 식별하게 수 있다. 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스로 하여금 기존의 제 3 자 콘텐츠 배치 위치의 수를 소정 수의 제 3 자 콘텐츠 배치 위치와 비교하게할 수 있다. 미리 결정된 수의 제 3 자 콘텐츠 배치 위치는 정보 리소스(210)에 포함될 수 있는 제 3 자 콘텐츠 배치 위치의 특정 수 또는 최대 수를 나타낼 수 있다. 일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스가 정보 리소스(210) 또는 애플리케이션(205)으로부터 소정 수의 제 3 자 콘텐츠 배치 위치를 획득하도록할 수 있다. 비교에 기초하여, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스(125)가 수신된 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 결정하게할 수 있다. 예를 들어, 기존의 제 3 자 콘텐츠 배치 위치의 수가 소정 수의 제 3 자 콘텐츠 배치 위치보다 작은 것으로 결정하면, 클라이언트 디바이스(125)는 수신된 제 3 자 콘텐츠 아이템을 디스플레이할 수 있다. 일부 구현 예에서, 클라이언트 디바이스(125)는 기존의 제 3 자 콘텐츠 배치 위치의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치 위치보다 크거나 같음을 결정할 때 제 3 자 콘텐츠 아이템을 표시하지 않기로 결정할 수 있다.
도 4는 예시적인 구현에 따라, 웹 페이지에 추가적인 제 3 자 콘텐츠 슬롯을 삽입하는 방법(400)을 나타내는 흐름도이다. 요약하면, 방법(400)은 클라이언트 디바이스가 각각의 퍼블리셔와 연관된 정보 리소스를 수신하는 것(블록 405) 및 제 3 자 콘텐츠에 대한 요청을 데이터 처리 시스템에 전송하는 것(블록 410)을 포함할 수 있다. 방법(400)은 데이터 처리 시스템이 제 3 자 콘텐츠에 대한 요청을 수신하는 것(블록 415) 및 이에 응답하여 콘텐츠 슬롯 삽입 스크립트를 클라이언트 디바이스에 전송하는 것(블록 420)을 포함할 수 있다. 방법(400)은 또한 클라이언트 디바이스가 데이터 처리 시스템으로부터 콘텐츠 슬롯 삽입 스크립트를 수신하는 것(블록 425)을 포함할 수 있다. 방법(400)은 또한 콘텐츠 슬롯 삽입 스크립트를 실행할 때 클라이언트 디바이스가 정보 리소스의 DOM 트리를 식별하고(블록 430), DOM 트리에서 하나 이상의 요소를 식별하고(블록 435), 제 3 자 콘텐츠를 디스플레이하기 위한 하나 이상의 후보 배치 위치를 식별하고(블록 440), 후보 배치 위치들 중 에서 배치 위치를 선택(블록 445)하고, 그리고 선택된 배치 위치들에 제 3 자 콘텐츠 아이템을 디스플레이하는 것을 포함한다.
방법(400)은 클라이언트 디바이스가 정보 리소스의 콘텐츠 퍼블리셔의 서버 또는 정보 리소스를 호스팅하는 서버로부터 정보 리소스를 수신하는 것(블럭 405)를 포함할 수 있다. 예를 들어, 클라이언트 디바이스 또는 그 애플리케이션은 정보 리소스의 어드레스 또는 식별자를 포함하는 요청을 서버에 송신할 수 있고, 이에 응답하여 정보 리소스를 수신할 수 있다. 서버가 데이터 처리 시스템 인 일부 구현 예에서, 클라이언트 디바이스는 정보 리소스와 함께 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있다. 예를 들어, 클라이언트 디바이스는 정보 리소스 내에 삽입된 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있다.
방법(400)은 클라이언트 디바이스가 정보 리소스를 수신하면, 콘텐츠에 대한 요청을 데이터 처리 시스템에 전송하는 것(블록 410)을 포함할 수 있다. 콘텐츠에 대한 요청은 제 3 자 콘텐츠 아이템에 대한 요청 일 수 있다. 예를 들어, 정보 리소스는 클라이언트 디바이스로 하여금 콘텐츠에 대한 요청을 생성하여 데이터 처리 시스템에 전송하게 하는 컴퓨터 실행 가능한 명령을 포함할 수 있는 제 3 자 콘텐츠 슬롯을 포함할 수 있다. 제 3 자 콘텐츠 슬롯의 컴퓨터 실행 가능 명령이 정보 리소스의 일부로서 실행될 때, 컴퓨터 실행 가능 명령은 클라이언트 디바이스로 하여금 제 3 자 콘텐츠 아이템을 요청하는 콘텐츠에 대한 요청을 데이터 처리 시스템에 전송하게 한다. 콘텐츠에 대한 요청은 정보 리소스의 주소 또는 식별자, 정보 리소스 콘텐츠 유형의 표시, 제 3 자 콘텐츠 슬롯의 크기 정보, 클라이언트 디바이스 정보, 최소 퍼블리셔 수익액 또는 이들의 조합을 포함할 수 있다. 일부 구현 예에서, 콘텐츠에 대한 요청은 콘텐츠 슬롯 삽입 스크립트의 표시를 포함할 수 있다. 일부 구현 예에서, 콘텐츠에 대한 요청은 콘텐츠 슬롯 삽입 스크립트에 대한 요청을 포함할 수 있다.
방법(400)은 데이터 처리 시스템이 콘텐츠에 대한 요청을 수신하는 것(블록 415)을 포함할 수 있으며, 이에 응답하여 콘텐츠 슬롯 삽입 스크립트를 클라이언트 디바이스에 송신하는 것(블록 420)을 포함할 수 있다. 전술 한 바와 같이, 도 1에 관하여, 데이터 처리 시스템은 콘텐츠에 대한 요청에 포함된 정보에 기초하여 콘텐츠 슬롯 삽입 스크립트가 클라이언트 디바이스에 전송되어야하는 결정할 수 있다. 일부 구현 예에서, 데이터 처리 시스템은 하나 이상의 제 3 자 콘텐츠 아이템과 함께 콘텐츠 슬롯 삽입 스크립트를 클라이언트 디바이스에 전송할 수 있다. 일부 구현 예에서, 데이터 처리 시스템은 제 3 자 콘텐츠 아이템을 전송하지 않고 클라이언트 디바이스에 콘텐츠 슬롯 삽입 스크립트를 전송함으로써 콘텐츠에 대한 요청에 응답할 수 있다.
방법(400)은 클라이언트 디바이스가 데이터 처리 시스템 또는 다른 서버로부터 콘텐츠 슬롯 삽입 스크립트를 수신하는 것을 포함할 수 있다. 예를 들어, 클라이언트 디바이스는 콘텐츠에 대한 요청을 데이터 처리 시스템에 전송하는 명령을 포함하는 제 3 자 콘텐츠 슬롯 내에 삽입하기 위해 제 3 자 콘텐츠 아이템과 함께 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 제 3 자 콘텐츠 아이템이 없이 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 정보 리소스에 삽입될 수 있는 하나 이상의 콘텐츠 슬롯에 삽입하기 위해 복수의 제 3 자 콘텐츠 아이템을 갖는 콘텐츠 슬롯 삽입 스크립트를 수신할 수 있다. 클라이언트 디바이스(또는 그 프로세서)는 콘텐츠 슬롯 삽입 스크립트를 실행할 수 있다.
방법(400)은 클라이언트 디바이스가 정보 리소스의 DOM 트리를 식별하는 것(블록 430)을 포함할 수 있다. 일부 구현 예에서, 정보 리소스의 DOM 트리를 식별하는 것은 DOM 트리를 포함하는 파일의 이름 또는 어드레스를 식별하고 파일을 개방하는 것을 포함할 수 있다. 일부 구현 예에서, 정보 리소스의 DOM 트리를 식별하는 것은 정보 리소스의 DOM 트리를 액세스하거나 파싱하는 것을 포함할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 정보 리소스의 콘텐츠 퍼블리셔의 서버로부터 수신된 정보 리소스에 포함된 명령들로부터 DOM 트리를 생성할 수 있다. 일부 구현 예에서, 클라이언트 디바이스의 애플리케이션은 정보 리소스의 DOM 트리를 생성하기 위한 컴퓨터 실행 가능 명령을 포함할 수 있다.
방법(400)은 클라이언트 디바이스가 정보 리소스의 DOM 트리를 검사함으로써 정보 리소스의 DOM 트리에 포함된 하나 이상의 DOM 요소를 식별하는 것(블록 435)을 포함할 수 있다. 클라이언트 디바이스는 DOM 트리 또는 그 일부를 파싱 또는 검사함으로써 가시적인 콘텐츠 아이템을 나타내는 하나 이상의 DOM 트리 요소를 결정할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 DOM 트리 내의 요소의 타입, 이름 또는 다른 속성을 검사함으로써 정보 리소스 내의 가시적인 콘텐츠 아이템을 식별할 수 있다. 가시적인 콘텐츠 아이템을 나타내는 요소의 예에는 무엇보다도 특히, 비 공백 문자, 이미지, <HR> 태그, <IFRAME> 태그 및 <EMBED> 태그, <OBJECT> 태그, <VIDEO > 태그 등이 있다. 일부 구현 예에서, 리소스 분석 모듈은 요소 또는 그 부모의 스타일 속성을 검사함으로써 요소가 가시적인 콘텐츠 아이템을 나타내는지를 식별할 수 있다. 예를 들어 '가시성'속성 또는 주어진 요소 또는 그 부모와 연관된 "가시성 속성" 또는 오버 플로우"속성이 숨김으로 설정된 경우, 상기 요소(또는 이와 관련된 아이템)는 정보 리소스가 디스플레이될 때 보이지 않을 것이다. 또한 정의되고 있는 "없음"또는 "클립"속성으로 설정된 "디스플레이" 속성은 정보 리소스가 클라이언트 디바이스 상에 디스플레이될 때 보이지 않는 요소(또는 그와 연관된 아이템)에 이르게 될 수 있다.
또한, 클라이언트 디바이스는 가시적인 콘텐츠 아이템들을 나타내는 식별된 요소들의 경계들을 결정할 수 있다. 예를 들어, 클라이언트 디바이스는 DOM 트리로부터 가시적인 콘텐츠 아이템을 나타내는 식별된 요소들 각각의 경계를 식별할 수 있다. 이러한 경계는 예를 들어 직사각형(또는 사각형)의 두 개 이상의 모서리 및/또는 왼쪽, 오른쪽, 위쪽 및 아래쪽 경계의 좌표로 정의할 수 있다. 가시적인 콘텐츠 아이템을 나타내는 요소의 경계는 클라이언트 디바이스에서 렌더링될 때 보이는 콘텐츠 아이템을 완전히 포함하는 사각형으로 정의될 수 있다. 일부 구현에서, 그러한 경계의 좌표는 브라우저 창의 상단, 사이드 코너로부터의 절대 픽셀의 관점에서 표현될 수 있다. 가시적인 콘텐츠 아이템들을 나타내는 DOM 트리의 요소들을 식별하고 각각의 경계를 결정하는 것은 추가적인 제 3 자 콘텐츠 배치 위치를 삽입할 때 중첩되지 않는 정보 리소스의 영역을 결정할 수있게한다.
방법(400)은 클라이언트 디바이스가 제 3 자 콘텐츠 배치 정책에 기초하여 DOM 트리에서 복수의 후보 제 3 자 콘텐츠 배치 위치를 결정하는 것(블록 440)을 포함할 수 있다. 일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 식별된 DOM 요소의 차원에 기초한 규칙을 포함할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 가시적인 콘텐츠 아이템을 나타내는 하나 이상의 식별된 DOM 요소를 선택할 수 있으며, 그 주위에서 제 3 자 콘텐츠 배치 위치를 정의할 수 있다. 클라이언트 디바이스는 각각의 크기(또는 경계 정보)에 기초하여 이러한 요소들을 선택할 수 있다. 예를 들어, 클라이언트 디바이스는 제 3 자 콘텐츠 아이템의 전형적인 폭 또는 높이보다 큰(또는 동일한) 각각의 폭 또는 높이를 갖는 가시적인 콘텐츠 아이템을 나타내는 요소를 선택할 수 있다. 그러면 클라이언트 디바이스는 선택된 요소에 인접한 후보 제 3 자 콘텐츠 배치 위치를 결정할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 가시적인 콘텐츠 아이템들을 나타내는 식별된 DOM 요소들의 경계 정보(좌표, 폭 또는 높이 등)를 분석함으로써 제 3 자 콘텐츠 아이템을 삽입하기 위한 후보 제 3 자 콘텐츠 배치 위치를 결정할 수 있다. 일부 구현 예에서, 클라이언트 디바이스(125)는(광고와 같은) 제 3 자 콘텐츠 아이템을 배치하기에 적절한 위치들 또는 영역들에 대한 미리 정의된 최소 크기 또는 치수값을 사용할 수 있다.
도 3과 관련하여 전술 한 바와 같이, 클라이언트 디바이스는 본래 정보 리소스(300)에 있는 DOM 요소의 차원에 기초하여 메인 프레임 부분(302)의 영역(311 및 313) 및 사이드 프레임 부분(304)의 영역(309)을 후보 제 3 자 콘텐츠 배치 위치로서 식별할 수 있다 . 예를 들어, 영역(311)은 헤더 부분(310)의 폭에 기초하여 식별될 수 있는 반면 영역(313)은 제 2 텍스트 부분(316)의 폭에 기초하여 식별될 수 있다.
일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 결정될 후보 배치 위치의 최대 개수를 특정하는 규칙 또는 제약을 포함할 수 있다. 클라이언트 디바이스는 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정할 수 있고, 미리 결정된 수의 후보 제 3 자 콘텐츠 배치 위치가 초과되었다는 결정에 응답하여 클라이언트 디바이스는 제 3 자 콘텐츠 배치 위치를 결정하기 위한 지시를 종료할 수 있다 . 예를 들어, 미리 결정된 수의 제 3 자 콘텐츠 배치 위치가 3과 같으면, 클라이언트 디바이스는 제 1의 3 개의 제 3 자 콘텐츠 배치 위치를 식별하면 클라이언트 디바이스는 후보 배치 위치를 식별하는 프로세스를 종료할 수 있다.
일부 구현 예에서, 제 3 자 콘텐츠 배치 정책은 후보 배치 위치의 위치에 제약을 가하는 다른 규칙을 포함할 수 있다. 예를 들어,도 3의 예를 고려하면, 클라이언트 디바이스는 헤더 영역(310) 위 또는 사이드 프레임 부분(304)의 우측에 후보 배치 위치를 정의하지 않도록 구성될 수 있다.
일부 구현 예에서, 배치 정책은 이미지와 각각의 캡션 사이에서(예를 들어, 이미지 부분(306) 및 텍스트 부분(308))사이에서와 같은 그러한 혼란스러운 위치를 방지하는 규칙을 포함할 수 있다. 일부 구현 예에서, 배치 정책은 정보 리소스의 웹 사이트와 관련된 특징 또는 정보에 기초하여 제 3 자 콘텐츠 배치 위치를 선택하기 위한 규칙을 포함할 수 있다. 예를 들어, 제 3 자 배치 위치를 식별할 때, 클라이언트 디바이스는 웹 사이트 포맷, 웹 사이트 콘텐츠를 고려하고 그리고/또는 웹 사이트가 모바일에 최적화되었는지 여부를 고려할 수 있다. 예를 들어, 클라이언트 디바이스는 정보 리소스 내의 이미지 또는 비디오의 수에 기초하여 식별할 제 3 자 배치 위치의 크기 및 수를 조정할 수 있다. 또한 클라이언트 디바이스는 웹 사이트가 모바일에 최적화되어 있는지 식별하기 위해 배치 위치의 크기 및/또는 수를 줄일 수 있다. 또한, 클라이언트 디바이스는 제 3 자 배치 위치를 식별할 때 웹 사이트가 응답형 웹 디자인을 가지는지 여부를 결정할 수 있다. 예를 들어, 클라이언트 디바이스는 웹 사이트의 다양한 웹 페이지(또는 슬라이드)를 탐색하는 데 사용되는 화살표, "다음"버튼 또는 다른 아이콘에 인접한 위치들을 피할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 제 3 자 배치 위치를 결정하기 위해 퍼블리셔 웹 사이트 또는 다른 웹 사이트에서의 기존 또는 이전에 사용된 배치 위치에 대한 이력 성능 데이터(예: 클릭률 데이터)를 사용할 수 있다. 예를 들어, 클라이언트 디바이스는 클릭률이 낮은 것으로 알려진 위치를 선택하는 것을 피할 수 있다. 일부 구현 예에서, 정보 리소스는 제 3 자 배치 위치로서 사용될 수 있는 장소에 대한 문맥적인 힌트(예를 들어, 주어진 위치에서 잠재적인 광고 삽입을 나타내는 숨겨진 텍스트 등)를 포함할 수 있다. 콘텐츠 삽입 스크립트는 클라이언트 디바이스가 후보 배치 위치를 식별하는데 있어, 그러한 문맥적 힌트를 읽고 사용하도록 구성될 수 있다.
방법(400)은 클라이언트 디바이스가 제 3 자 콘텐츠 슬롯을 삽입하기 위해 결정된 복수의 후보 제 3 자 콘텐츠 배치 위치 중 하나를 선택하는 것(블록 445)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스는 결정된 후보 배치 위치 중에서 정보 리소스의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2 개의 인접한 DOM 요소들 사이에 있는 제 3 자 콘텐츠 배치 위치를 선택할 수 있다. 예를 들어, 미리 결정된 임계치는 정보 리소스의 폭의 30%, 40%, 50% 또는 다른 퍼센티지 값일 수 있다. 도 3에 도시된 웹 페이지 레이아웃을 고려하면, 후보 배치 위치(311)는 헤더 영역(310)과 제 1 텍스트 영역(314) 사이에 배열된다. 미리 결정된 임계치가 정보 리소스의 폭의 30%이면, 헤더 영역(310)과 제 1 텍스트 영역(314)은 정보 리소스(310)의 폭의 30%를 초과하는 각각의 폭을 갖는다. 따라서, 클라이언트 디바이스는 후보 배치 위치(311)를 선택할 수 있다. 유사한 이유로 그리고 제 1 텍스트 영역(314)과 제 2 텍스트 영역(316)의 폭을 비교함으로써, 클라이언트 디바이스는 후보 배치 위치(313)를 선택할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 하나 이상의 기준에 기초하여 상기 결정된 후보 제 3 자 콘텐츠 배치 위치를 랭킹하고, 그리고 결정된 후보 제 3 자 콘텐츠 배치 위치의 랭킹에 기초하여 제 3 자 콘텐츠 배치 위치를 선택할 수 있다.
제 3 자 콘텐츠 배치 위치의 선택하에서, 클라이언트 디바이스(125)는 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 슬롯(예를 들어, 광고 슬롯)을 삽입할 수 있다. 제 3 자 콘텐츠 슬롯은 클라이언트 디바이스 상에서 실행될 때 클라이언트 디바이스가 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템(예를 들어, 광고)을 요청하게 하는 컴퓨터 실행 가능 명령을 포함할 수 있다. 클라이언트 디바이스는 예를 들어, 정보 리소스의 주소 또는 식별자, 정보 리소스와 관련된 콘텐츠 유형의 표시, 제 3 자 콘텐츠 슬롯에 대한 크기 정보, 클라이언트 디바이스 정보 또는 이들의 조합을 포함하는 콘텐츠에 대한 제 3 자 요청을 전송할 수 있다. 데이터 처리 시스템에 전송된 콘텐츠에 대한 제 3 자 요청에 응답하여, 클라이언트 디바이스는 삽입된 제 3 자 콘텐츠 슬롯에서 디스플레이하기 위해 제 3 자 콘텐츠 아이템을 수신할 수 있다.
방법(400)은 클라이언트 디바이스가 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 수신하고 상기 삽입된 제 3 자 콘텐츠 슬롯에 수신된 제 3 자 콘텐츠를 디스플레이하는 것(블록 450)을 포함할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 수신된 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액을 식별하고, 수익액을 미리 결정된 임계치와 비교할 수 있다. 수익액이 미리 결정된 임계치를 초과한다고 결정하면, 클라이언트 디바이스는 정보 리소스 내에서 디스플레이하기 위한 제 3 자 콘텐츠 아이템을 선택할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 정보 리소스에 삽입된 복수의 제 3 자 콘텐츠 슬롯에 디스플레이하기 위해 복수의 제 3 자 콘텐츠 아이템과 관련된 수익액의 표시(들)을 수신할 수 있다. 제 3 자 콘텐츠 슬롯의 서브 세트에서 디스플레이하기 위해, 수익액에 기초하여 제 3 자 콘텐츠 아이템의 서브 세트를 선택하도록 클라이언트 디바이스가 구성될 수 있다. 예를 들어, 도 3에 도시된 웹 페이지 레이아웃에서, 3개의 제 3 자 콘텐츠 슬롯은 클라이언트 디바이스에 의해 배치 위치(311, 313 및 309)에 삽입될 수 있다. 클라이언트 디바이스는 각각의 수익액의 표시를 갖는 3 개의 제 3 자 콘텐츠 아이템을 수신할 수 있고, 위치(311 및 313) 삽입된 슬롯에서 디스플레이를 하기 위해 가장 높은 수익액을 갖는 2 개의 제 3 자 콘텐츠 아이템만을 선택할 수 있다.
일부 구현 예에서, 클라이언트 디바이스는 수익액이 임계치를 초과한다고 판정하는 경우에도 상기 수신된 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 여전히 결정할 수 있다. 예를 들어, 클라이언트 디바이스는 수신된 제 3 자 콘텐츠 아이템과 관련된 콘텐츠 유형, 제 3 자 콘텐츠 아이템(예 : 텍스트, 이미지 또는 동영상)의 유형, 제 3 자 콘텐츠 아이템과 관련된 클릭률 또는 기타 기준에 기초하여 (수익액이 임계치를 초과할 때) 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 결정하게 할 수 있다. 일부 구현 예에서, 콘텐츠 디스플레이 모듈(230)은 클라이언트 디바이스로 하여금 각각의 클릭율에 기초하여 수신된 제 3 자 콘텐츠 아이템을 필터링하도록 구성될 수 있다.
일부 구현 예에서, 클라이언트 디바이스는 정보 리소스 상에 디스플레이될 다수의 기존 제 3 자 콘텐츠 배치 위치(도 3의 이미지 영역(306) 및 텍스트 영역(308)등을 식별할 수 있다. 예를 들어, 클라이언트 디바이스는 임의의 추가적인 리소스를 삽입하기 전에 정보 리소스에 존재하는 광고 슬롯의 수를 체크 하도록 구성될 수 있다. 클라이언트 디바이스는 DOM 트리 또는 정보 리소스의 소스 코드를 검사함으로써 기존의 제 3 자 콘텐츠 배치 위치의 수를 식별할 수 있다. 클라이언트 디바이스는 기존의 제 3 자 콘텐츠 배치 위치의 수를 소정 수의 제 3 자 콘텐츠 배치 위치와 비교할 수 있다. 미리 결정된 수의 제 3 자 콘텐츠 배치 위치는 정보 리소스에 포함될 수 있는 제 3 자 콘텐츠 배치 위치의 특정 수 또는 최대 수를 나타낼 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 정보 리소스 또는 애플리케이션으로부터 소정 수의 제 3 자 콘텐츠 배치 위치를 획득할 수 있다. 비교에 기초하여, 클라이언트 디바이스는 수신된 제 3 자 콘텐츠 아이템을 디스플레이할지 여부를 결정할 수 있다. 예를 들어, 기존의 제 3 자 콘텐츠 배치 위치의 수가 소정 수의 제 3 자 콘텐츠 배치 위치보다 작은 것으로 결정하면, 클라이언트 디바이스는 수신된 제 3 자 콘텐츠 아이템을 디스플레이할 수 있다. 일부 구현 예에서, 클라이언트 디바이스는 기존의 제 3 자 콘텐츠 배치 위치의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치 위치보다 크거나 같음을 결정할 때 제 3 자 콘텐츠 아이템을 표시하지 않기로 결정할 수 있다.
도 5는 일부 구현 예들에 따른 본 명세서에서 논의되는 컴퓨터 시스템들 중 임의의 컴퓨터 시스템을 구현하기 위해 사용될 수 있는 예시적 컴퓨터 시스템(500)의 전반적인 아키텍처를 보여준다(이러한 컴퓨터 시스템(500)에는 시스템(110)과 시스템(110)의 컴포넌트들, 예컨대 데이터-중심 기여도 모델 생성 모듈(120), 규칙 생성 모듈(125), 전환 확률 결정 모듈(130), 콘텐츠 선택 모듈(135) 및 기여도 데이터 디스플레이 모듈(138)이 포함됨). 컴퓨터 시스템(500)은 디스플레이를 위해 네트워크(115)를 통해 정보를 제공하는데 사용될 수 있다. 도 5의 컴퓨터 시스템(500)은, 메모리(525)에 통신가능하게 결합되어 있는 하나 이상의 프로세서들(520), 하나 이상의 통신 인터페이스들(505), 그리고 하나 이상의 출력 디바이스들(510)(예를 들어, 하나 이상의 디스플레이 유닛들), 그리고 하나 이상의 입력 디바이스들(515)을 포함한다. 프로세서들(520)은 데이터 프로세싱 시스템(110) 내에 포함될 수 있거나, 시스템(110)의 다른 컴포넌트들, 예컨대 데이터-중심 기여도 모델 생성 모듈(120), 규칙 생성 모듈(125), 전환 확률 결정 모듈(130), 콘텐츠 선택 모듈(135) 및 기여도 데이터 디스플레이 모듈(138) 내에 포함될 수 있다.
도 5의 컴퓨터 시스템(500)에서, 메모리(525)는 임의의 컴퓨터-판독가능 저장 매체들을 포함할 수 있고, 그리고 각각의 시스템들에 대해 본 명세서에서 설명되는 다양한 기능들을 구현하기 위한 프로세서-실행가능 명령들과 같은 컴퓨터 명령들을 저장할 수 있으며, 뿐만 아니라 이들과 관련된 임의의 데이터, 이들에 의해 발생된 임의의 데이터, 또는 통신 인터페이스(들) 혹은 입력 디바이스(들)를 통해 수신된 임의의 데이터를 (만약 존재한다면) 저장할 수 있다. 도 1의 시스템(110)을 다시 참조하면, 데이터 프로세싱 시스템(110)은, 하나 이상의 텍스트-기반 콘텐츠 아이템(text-based content item)들과, 이미지-기반 콘텐츠 아이템(image-based content item)들과, 텍스트-기반 콘텐츠 아이템들에 근거하여 이미지-기반 콘텐츠 아이템들을 생성하기 위해 사용될 하나 이상의 이미지들과, 그리고 이미지들, 텍스트-기반 콘텐츠 아이템들, 및 이미지-기반 콘텐츠 아이템들과 관련된 하나 이상의 통계치들에 관한 정보를 저장하기 위해, 메모리(525)를 포함할 수 있다. 메모리(525)는 데이터베이스(140)를 포함할 수 있다. 도 5에서 제시되는 프로세서(들)(520)는 메모리(525)에 저장된 명령들을 실행하기 위해 사용될 수 있으며, 이러한 것을 할 때, 프로세서(들)(520)는 또한, 명령들의 실행에 따라 프로세싱 및/또는 발생된 다양한 정보를 메모리에 기입할 수 있거나 이러한 다양한 정보를 메모리로부터 판독할 수 있다.
도 5 제시된 컴퓨터 시스템(500)의 프로세서(520)는 또한, 명령들의 실행에 따라 다양한 정보를 전송 혹은 수신하기 위해, 통신 인터페이스(들)(505)에 통신가능하게 결합될 수 있거나 통신 인터페이스(들)(505)를 제어할 수 있다. 예를 들어, 통신 인터페이스(들)(505)는 유선 혹은 무선 네트워크, 버스, 또는 다른 통신 수단에 결합될 수 있고, 따라서 컴퓨터 시스템(500)으로 하여금 다른 디바이스들(예를 들어, 다른 컴퓨터 시스템들)로부터 정보를 수신할 수 있게 하거나 다른 디바이스들에게 정보를 전송할 수 있게 한다. 도 1의 시스템에서는 명시적으로 보이고 있지는 않지만, 하나 이상의 통신 인터페이스들은 시스템(110)의 컴포넌트들 간의 정보 흐름을 용이하게 한다. 일부 구현 예들에서, 통신 인터페이스(들)는 (다양한 하드웨어 컴포넌트들 혹은 소프트웨어 컴포넌트들을 통해) 컴퓨터 시스템(500)의 적어도 일부 실시형태들에 대한 액세스 포털(access portal)로서 웹사이트를 제공하도록 구성될 수 있다. 통신 인터페이스들(505)의 예들은, 사용자가 데이터 프로세싱 시스템(110)과 통신할 수 있게 하는, 사용자 인터페이스들(예를 들어, 웹 페이지들)을 포함한다.
도 5에 제시된 컴퓨터 시스템(500)의 출력 디바이스들(510)은, 예를 들어, 명령들의 실행과 연계되어 다양한 정보가 보여질 수 있게 하거나 그렇지 않으면 지각될 수 있게 하기 위해 제공될 수 있다. 입력 디바이스(들)(515)는, 예를 들어, 사용자로 하여금 수동 조정을 하는 것, 선택을 하는 것, 데이터를 입력하는 것, 혹은 명령들의 실행 동안 임의의 다양한 방식으로 프로세서와 인터액션 할 수 있게 하기 위해 제공될 수 있다. 본 명세서에서 논의되는 다양한 시스템들을 위해 사용될 수 있는 전반적인 컴퓨터 시스템 아키텍처에 관한 추가적인 정보가 본 명세서에서 더 제공된다.
본 명세서에서 설명되는 주된 내용 및 동작들의 구현 예들은, 디지털 전자 회로로 구현될 수 있고, 또는 유형의 매체, 펌웨어, 혹은 하드웨어 상에서 실현되는 컴퓨터 소프트웨어로 구현될 수 있으며, 여기에는 본 명세서에서 개시되는 구조들이 포함되고, 또는 구조적 등가물들이 포함되고, 또는 이들 중 하나 이상의 것들의 조합들이 포함된다. 본 명세서에서 개시되는 주된 내용의 구현 예들은 하나 이상의 컴퓨터 프로그램들로서 구현될 수 있는바, 즉 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수 있고, 이들은 데이터 프로세싱 장치에 의한 실행을 위해 컴퓨터 저장 매체에 인코딩되고, 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 저장 매체에 인코딩된다. 프로그램 명령들은 인위적으로 발생되어 전파되는 신호에 인코딩될 수 있는바, 예를 들어, 머신에 의해 발생되는 전기적, 광학적, 혹은 전자기적 신호에 인코딩될 수 있는데, 이러한 신호는 데이터 프로세싱 장치에 의한 실행을 위해서 적절한 수신기 장치로 전송하기 위해 정보를 인코딩하도록 발생된다. 컴퓨터 저장 매체는, 컴퓨터-판독가능 저장 디바이스, 컴퓨터-판독가능 저장 기판, 랜덤 혹은 직렬 액세스 메모리 어레이 혹은 디바이스, 또는 이들 중 하나 이상의 것들의 조합일 수 있거나, 혹은 이러한 것들 내에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파되는 신호가 아니며, 컴퓨터 저장 매체는 인위적으로 발생되어 전파되는 신호에 인코딩되는 컴퓨터 프로그램 명령들의 소스 혹은 목적지일 수 있다. 컴퓨터 저장 매체는 또한, 하나 이상의 별개의 물리적 컴포넌트들 혹은 매체들(예를 들어, 복수의 CD들, 디스크들, 또는 다른 저장 디바이스들)일 수 있거나 또는 이러한 것들 내에 포함될 수 있다.
본 명세서에서 개시되는 특징들은 스마트 텔레비전 모듈(혹은 커넥티드 텔레비전 모듈(connected television module), 하이브리드 텔레비전 모듈(hybrid television module) 등) 상에서 구현될 수 있는바, 이것은 (예를 들어, 케이블, 인공위성, 공중파, 혹은 다른 신호들을 통해 수신된) 보다 더 전통적인 텔레비전 프로그래밍 소스들과 인터넷 연결을 통합하도록 구성된 프로세싱 모듈을 포함할 수 있다. 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나, 혹은 별개의 디바이스, 예를 들어, 셋-탑 박스(set-top box), 블루-레이(Blu-ray) 혹은 다른 디지털 미디어 플레이어(digital media player), 게임 콘솔(game console), 호텔 텔레비전 시스템, 및 다른 동반 디바이스(companion device)를 포함할 수 있다. 스마트 텔레비전 모듈은 웹에 있는, 지역 케이블 TV 채널에 있는, 인공위성 TV 채널에 있는, 혹은 로컬 하드 드라이브(local hard drive)에 저장된, 비디오들, 영화들, 사진들, 및 다른 콘텐츠를 시청자들이 검색 및 탐색하게 할 수 있도록 구성될 수 있다. 셋-탑 박스(Set-Top Box, STB) 혹은 셋-탑 유닛(Set-Top Unit, STU)은 정보 기기 디바이스(information appliance device)를 포함할 수 있는데, 이러한 정보 기기 디바이스는 튜너(tuner)를 포함할 수 있고 아울러 텔레비전 세트 및 외부 신호 소스에 연결될 수 있으며, 신호를 콘텐츠로 변환시키고, 그 다음에, 콘텐츠는 텔레비전 스크린 혹은 다른 디스플레이 디바이스 상에서 디스플레이되게 된다. 스마트 텔레비전 모듈은, 복수의 상이한 애플리케이션들, 예컨대 웹 브라우저 및 복수의 스트리밍 미디어 서비스(streaming media service)들, 커넥티드 케이블(connected cable) 혹은 인공위성 미디어 소스, 다른 웹 "채널들" 등에 대한 아이콘(icon)들을 포함하는 홈 스크린(home screen) 또는 탑 레벨 스크린(top level screen)을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 또한, 사용자에게 전자 프로그래밍 가이드(electronic programming guide)를 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈에 대한 동반 애플리케이션(companion application)은, 이용가능한 프로그램들에 대한 추가적인 정보를 사용자에게 제공하기 위해, 그리고 사용자로 하여금 스마트 텔레비전 모듈을 제어할 수 있게 하기 위해, 그리고 기타 등등을 위해, 모바일 컴퓨팅 디바이스 상에서 동작가능할 수 있다. 대안적 구현 예들에서, 이러한 특징들은 랩탑 컴퓨터 혹은 다른 개인용 컴퓨터, 스마트폰, 다른 모바일 폰, 핸드헬드 컴퓨터(handheld computer), 태블릿 PC 또는 다른 컴퓨팅 디바이스 상에서 구현될 수 있다.
본 명세서에서 설명되는 동작들은, 하나 이상의 컴퓨터-판독가능 저장 디바이스들 상에 저장된 데이터 혹은 다른 소스들로부터 수신된 데이터에 관해 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "데이터 프로세싱 장치", "데이터 프로세싱 시스템", "사용자 디바이스", 혹은 "컴퓨팅 디바이스"는 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들, 및 머신들을 포괄하며, 여기에는 예를 들어, 프로그래밍가능 프로세서, 컴퓨터, 시스템 온 칩(system on a chip), 혹은 다중 개체들, 또는 앞서의 것들의 조합들이 포함된다. 장치는 특수 목적 로직 회로를 포함할 수 있으며, 예를 들어, FPGA(Field Programmable Gate Array) 혹은 ASIC(Application-Specific Integrated Circuit)를 포함할 수 있다. 장치는 또한, 하드웨어에 추가적인하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있는데, 예를 들어, 프로세서 펌웨어(processor firmware), 프로토콜 스택(protocol stack), 데이터베이스 관리 시스템, 오퍼레이팅 시스템(operating system), 크로스-플랫폼 실행 환경(cross-platform runtime environment), 가상 머신(virtual machine), 혹은 이들 중 하나 이상의 것의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 다양한 서로 다른 컴퓨팅 모델 기반구조들을 실현하는바, 예를 들어, 웹 서비스들, 분산형 컴퓨팅(distributed computing) 및 그리드 컴퓨팅(grid computing) 기반구조들과 같은 것을 실현한다. 데이터-중심 기여도 모델 생성 모듈(120), 규칙 생성 모듈(125), 전환 확률 결정 모듈(130), 콘텐츠 선택 모듈(135), 및 기여도 데이터 디스플레이 모듈(138)은 하나 이상의 데이터 프로세서 장치들, 컴퓨팅 디바이스들, 혹은 프로세서들을 포함 혹은 공유할 수 있다.
컴퓨터 프로그램(이것은 또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 혹은 코드로서 알려져 있음)은 프로그래밍 언어의 임의의 형태로 작성될 수 있으며, 이러한 프로그래밍 언어는 컴파일러형 언어(compiled language) 혹은 해석형 언어(interpreted language), 선언형 언어(declarative language) 혹은 절차형 언어(procedural language)를 포함하고, 이러한 컴퓨터 프로그램은 임의의 형태로 전개(deploy)될 수 있으며, 여기에는 독립형 프로그램으로서 전개되는 것 또는 모듈, 컴포넌트, 서브루틴(subroutine), 오브젝트, 혹은 컴퓨팅 환경에서 사용하기에 적합한 다른 단위(unit)로서 전개되는 것이 포함된다. 컴퓨터 프로그램은 파일 시스템(file system)에서의 파일에 대응할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램들 혹은 데이터(예를 들어,마크업 언어 문서(markup language document)에 저장되는 하나 이상의 스크립들)를 보유하고 있는 파일의 일부분에 저장될 수 있거나 혹은 해당 프로그램에 대해 전용인 단일 파일에 저장될 수 있거나, 혹은 다중 통합 파일들(예를 들어, 하나 이상의 모듈들, 서브-프로그램들, 혹은 코드의 일부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 장소에 위치해 있거나 여러 장소에 걸쳐 분산되어 있고 통신 네트워크에 의해 상호연결되는, 복수의 컴퓨터들 혹은 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름(logic flow)들은, 하나 이상의 컴퓨터 프로그램들을 실행시켜 입력 데이터에 관해 동작하고 출력을 발생시킴으로써 동작들을 수행하도록 하는 하나 이상의 프로그래밍가능 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로에 의해 수행될 수 있고, 그리고 장치들은 또한, 특수 목적 로직 회로로서 구현될 수 있는데, 이러한 특수 목적 로직 회로는 예를 들어, FPGA(Field Programmable Gate Array) 또는 ASIC(Application-Specific Integrated Circuit)이다.
컴퓨터 프로그램의 실행을 위해 적합한 프로세서들은, 예를 들어, 범용 마이크로프로세서들과 특수 목적 마이크로프로세서들을 모두 포함하고, 그리고 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독-전용 메모리 혹은 랜덤 액세스 메모리 혹은 이들 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은, 명령들에 따라 동작들을 수행하기 위한 프로세서와, 그리고 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들을 포함할 것이고, 또는 이들로부터 데이터를 수신하는 것, 혹은 이들에게 데이터를 전송하는 것, 혹은 이러한 것을 모두 수행하기 위해 동작가능하게 결합될 것이며, 이러한 대용량 저장 디바이스들은 예를 들어, 자기 디스크들, 광자기 디스크들, 혹은 광학 디스크들이다. 그러나, 컴퓨터가 이러한 디바이스들을 반드시 가질 필요는 없다. 더욱이, 컴퓨터는 또 하나의 다른 디바이스 내에 내장될 수 있는데, 예를 들어, 모바일 전화기, 개인용 디지털 보조기기(Personal Digital Assistant, PDA), 모바일 오디오 혹은 비디오 플레이어, 게임 콘솔, 글로벌 위치결정 시스템(Global Positioning System, GPS) 수신기, 또는 휴대가능 저장 디바이스(예를 들어, 범용 직렬 버스(Universal Serial Bus, USB) 플래시 드라이브) 내에 내장될 수 있다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기 위해 적합한 디바이스들은 모든 형태의 비-휘발성 메모리, 매체들 및 메모리 디바이스들을 포함하는데, 여기에는 예를 들어, 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 혹은 탈착가능 디스크들; 광자기 디스크들; 그리고 CD-ROM 및 DVD-ROM 디스크들이 포함된다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보충될 수 있고, 혹은 특수 목적 로직 회로 내에 통합될 수 있다.
사용자와의 인터액션을 제공하기 위해, 본 명세서에서 설명되는 주된 내용의 구현 예들은, 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스와, 그리고 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스를 구비한 컴퓨터 상에서 구현될 수 있으며, 여기서 디스플레이 디바이스는 예를 들어, CRT(Cathode Ray Tube, 음극선관), 플라즈마(plasma), 또는 LCD(Liquid Crystal Display, 액정 디스플레이) 모니터이고, 포인팅 디바이스는 예를 들어, 마우스(mouse) 혹은 트랙볼(trackball)이다. 사용자와의 인터액션을 제공하기 위해 다른 종류의 디바이스들이 또한 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백(feedback)은 임의 형태의 감각적 피드백, 예컨대, 가시적 피드백, 청각적 피드백, 혹은 촉각적 피드백일 수 있고, 그리고 사용자로부터의 입력은 임의 형태로 수신될 수 있으며, 여기에는 음향 입력, 음성 입력, 혹은 촉각적 입력이 포함된다. 추가적인, 컴퓨터는, 사용자에 의해 사용되는 디바이스로 문서들을 전송함으로써 그리고 이러한 디바이스로부터 문서들을 수신함으로써 사용자와 인터액션할 수 있는데, 예를 들어, 사용자의 클라이언트 디바이스 상의 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저로 웹 페이지들을 전송함으로써 사용자와 인터액션할 수 있다.
본 명세서에서 설명되는 주된 내용의 구현 예들은, 백-엔드 컴포넌트(back-end component)를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 미들웨어 컴포넌트(middleware component)를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 프런트-엔드 컴포넌트(front-end component)를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는, 하나 이상의 이러한 백-엔드 컴포넌트들, 미들웨어 컴포넌트들, 혹은 프런트-엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있으며, 여기서 백-엔드 컴포넌트는 예를 들어, 데이터 서버이고, 미들웨어 컴포넌트는 예를 들어, 애플리케이션 서버이고, 프런트-엔드 컴포넌트(front-end component)는, 예를 들어, 클라이언트 컴퓨터이며, 클라이언트 컴퓨터는 그래픽 사용자 인터페이스 혹은 웹 브라우저를 가지며, 이것을 통해 사용자는 본 명세서에서 설명되는 주된 내용의 구현 예와 인터액션할 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의 형태 혹은 매체에 의해 상호연결될 수 있으며, 예를 들어, 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예들은, 로컬 영역 네트워크("LAN") 및 와이드 영역 네트워크("WAN"), 인터-네트워크(inter-network)(예를 들어, 인터넷(Internet)), 그리고 피어-투-피어 네트워크들(peer-to-peer networks)(예를 들어, 애드 혹 피어-투-피어 네트워크들(ad hoc peer-to-peer networks))을 포함한다.
시스템(500) 혹은 시스템(110)과 같은 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(110)은 하나 이상의 데이터 센터(data center)들 혹은 서버 팜(server farm)들 내에 하나 이상의 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로로부터 원격으로 위치하고 있으며 전형적으로 통신 네트워크를 통해 인터액션한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터들 상에서 실행되는 그리고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 일어난다. 일부 구현 예들에서, 서버는 데이터(예를 들어, HTML 페이지)를 (예컨대, 데이터를 디스플레이하기 위해서, 그리고 클라이언트 디바이스와 인터액션하는 사용자로부터 사용자 입력을 수신하기 위해) 클라이언트 디바이스에게 전송한다. 클라이언트 디바이스에서 발생된 데이터(예를 들어, 사용자 인터액션의 결과)는 클라이언트 디바이스로부터 서버에서 수신될 수 있다.
본 명세서가 다수의 특정 구현 예의 세부 사항들을 포함하고 있지만, 이러한 것들이 임의의 발명들의 범위 혹은 요구될 수 있는 것에 관한 한정의 의미로서 해석돼서는 안 되며, 오히려 본 명세서에서 설명되는 방법들 및 시스템들의 특정 구현 예들에 특정된 특징들에 관한 설명들로서 해석돼야 한다. 개별적 구현 예들의 맥락으로 본 명세서에서 설명되는 특정 특징들은 또한, 단일의 구현 예로 결합되어 구현될 수 있다. 반대로, 단일의 구현 예의 맥락으로 설명되는 다양한 특징들은 또한, 복수의 구현 예들로 따로따로 구현될 수 있거나 혹은 임의의 적절한 하위조합(subcombination)으로 구현될 수 있다. 더욱이, 특징들이 앞에서 특정 조합들로서 동작하는 것으로서 설명될 수 있어도, 그리고 심지어 초기에 그렇게 요구될 수 있을지라도, 요구되는 조합으로부터의 하나 이상의 특징들은, 일부 경우들에서, 조합으로부터 삭제될 수 있고, 그리고 요구되는 조합은 하위조합 혹은 하위조합의 변형이 될 수 있다.
유사하게, 동작들이 도면들에서 특정 순서로 도시되고 있지만, 이것이, 원하는 결과들을 달성하기 위해, 이러한 동작들이 순차적 순서로 혹은 제시된 특정 순서로 수행돼야 하는 것을 요구하는 것으로서 이해돼서는 안 되며, 또는 예시되는 모든 동작들이 수행돼야 하는 것을 요구하는 것으로서 이해돼서는 안 된다. 일부 경우들에서, 청구항들에 기재되는 동작들은 상이한 순서로 수행될 수 있고, 여전히 원하는 결과들을 달성할 수 있다. 추가적인적으로, 첨부되는 도면들에서 제시된 프로세스들은 원하는 결과들을 달성하기 위해 순차적 순서 혹은 제시된 특정 순서를 반드시 요구하는 것이 아니다.
특정 상황들에서, 멀티태스킹(multitasking) 및 병렬 프로세싱이 이로울 수 있다. 더욱이, 앞에서 설명된 구현 예들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현 예들에서 이러한 분리를 요구하는 것으로서 이해돼서는 안 되며, 그리고 설명되는 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합될 수 있고, 혹은 복수의 소프트웨어 제품들로서 패키징될 수 있음을 이해해야 한다. 예를 들어, 데이터-중심 기여도 모델 생성 모듈(120), 규칙 생성 모듈(125), 전환 확률 결정 모듈(130), 콘텐츠 선택 모듈(135) 및 기여도 데이터 디스플레이 모듈(138)은, 데이터 프로세싱 시스템(110)의 일부일 수 있고, 단일 모듈일 수 있고, 하나 이상의 프로세싱 모듈들을 갖는 로직 디바이스일 수 있고, 하나 이상의 서버들일 수 있고, 또는 검색 엔진의 일부일 수 있다.
일부 예시적 구현 예들 및 실시예들이 본 명세서에서 지금 설명되고 있지만, 앞서의 것은 예시적인 것이고 한정의 의미를 갖지 않으며 예를 보여 주기 위해 제시되는 것임은 명백하다. 특히, 본 명세서에서 제시되는 대부분의 예들이 방법의 동작들 혹은 시스템의 요소들의 특정 조합들을 포함하고 있지만, 이러한 동작들 및 요소들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 단지 하나의 구현 예와 연계되어 논의되는 동작들, 요소들, 및 특징들이 다른 구현 예들 혹은 실시예들에서의 유사한 역할로부터 배제되도록 의도되지 않는다.
본 명세서에서 사용되는 표현 및 용어는 설명을 위한 것이며, 한정의 의미로서 고려돼서는 안 된다. 본 명세서에서 사용되고 있는 표현 "포함하는", "포함하고", "가지는", "함유하는", "수반하는", "에 의해 특징지어지는", "인 것에 특징이 있는" 및 이들의 변형은, 이러한 표현들과 관련되어 나열되는 아이템들만으로 구성되는 대안적 구현 예들뿐만 아니라, 이러한 표현들과 관련되어 나열되는 아이템들, 그 등가물들, 및 추가적인 아이템들을 포괄하도록 의도된 것이다. 하나의 구현 예의 경우, 본 명세서에서 설명되는 시스템들 및 방법들은 설명되는 요소들, 동작들, 혹은 컴포넌트들 중 하나 이상의 것 혹은 이들 모두의 하나의 각각의 조합으로 구성된다.
본 명세서에서 단수 형태로 기재되는, 시스템들 및 방법들의 구현 예들 혹은 요소들 혹은 동작들에 관한 임의의 언급들은 또한, 이러한 요소들을 복수 개 포함하는 구현 예들을 포괄할 수 있고, 본 명세서에서 임의의 구현 예 혹은 요소 혹은 동작에 관한 복수 형태의 임의의 언급들도 또한 단일 요소만을 포함하는 구현 예들을 포괄할 수 있다. 단수 형태 혹은 복수 형태로의 언급들은 본 명세서에서 개시되는 시스템들 혹은 방법들, 이들의 컴포넌트들, 동작들, 혹은 요소들을 단일 구성들 혹은 복수 구성들로 한정하도록 의도되지 않았다. 임의의 동작 혹은 요소가 임의의 정보, 동작 혹은 요소에 근거한다는 언급들은 임의의 동작 혹은 요소가 임의의 정보, 동작 혹은 요소에 적어도 부분적으로 근거하는 구현 예들을 포함할 수 있다.
본 명세서에서 개시되는 임의의 구현 예는 임의의 다른 구현 예와 결합될 수 있고, 그리고 "구현 예", "일부 구현 예", "대안적 구현 예", "다양한 구현 예", "하나의 구현 예" 등에 관한 언급들은 반드시 상호간 배타적인 것이 아니고, 구현 예와 연계되어 설명되는 특정 특징, 구조, 혹은 특성이 적어도 하나의 구현 예에 포함될 수 있음을 나타내도록 의도된 것이다. 본 명세서에서 사용되는 바와 같은 이러한 용어들이 모두 동일 구현 예를 반드시 언급하는 것은 아니다. 본 명세서에서 개시되는 구현 예들 및 실시형태들과 일관되는 임의의 방식으로 임의의 구현 예는 임의의 다른 구현 예와 비배타적으로 혹은 배타적으로 결합될 수 있다.
용어 "또는" 및 "혹은"에 관한 언급은 비배타적 의미로서 해석될 수 있고, 이에 따라 "또는" 및 "혹은"을 사용하여 기술되는 임의의 요소들은 기술되는 요소들 중 단 하나의 요소, 하나보다 많은 요소들, 그리고 모든 요소들 중 어느 하나를 나타낼 수 있다.
도면들, 상세한 설명, 혹은 임의의 청구항에서의 기술적 특징들 이후에 참조 부호들이 기재되는 경우, 이러한 참조 부호들은 오로지 도면들, 상세한 설명, 및 청구항들의 이해를 증진시킬 목적으로 포함된 것이다. 따라서, 참조 부호들이 있든 없든 이것이 청구항에서의 임의의 요소들의 범위에 임의의 한정적 영향을 미치는 것이 아니다.
본 명세서에서 설명되는 시스템들 및 방법들은 그 특징들로부터 벗어남이 없이 다른 특정 형태들로 실현될 수 있다. 본 명세서에서 제공되는 예들이 광고 프로그램에 관한 것이지만, 본 명세서에서 설명되는 시스템들 및 방법들은, 이미지-기반 콘텐츠가 텍스트-기반 콘텐츠로부터 생성될 수 있는 임의의 수직형 기술분야에서의 임의의 프로그램에 적용될 수 있다. 앞서의 구현 예들은 본 명세서에서 설명되는 시스템들 및 방법들을 한정하는 것이라기보다는 오히려 예시하는 것이다. 따라서, 본 명세서에서 설명되는 시스템들 및 방법들의 범위는, 앞에서의 설명이 아니라 첨부되는 청구항들에 의해 나타나는 것이며, 청구항들의 의미 및 범위와 등가의 의미 및 범위 내에 있는 변형들도 본 발명에 포함된다.

Claims (15)

  1. 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하는 방법으로서,
    하나 이상의 프로세서를 포함하는 데이터 처리 시스템(110)에 의해, 컴퓨팅 디바이스(125)로부터, 상기 컴퓨팅 디바이스(125)가 콘텐츠 퍼블리셔로부터 상기 정보 리소스를 수신함(405)에 응답하여 콘텐츠에 대한 요청을 수신하는 단계(415)와, 상기 정보 리소스는 제 1 복수의 컴퓨터 실행 가능 명령들을 포함하고, 상기 제 1 복수의 컴퓨터 실행 가능 명령들은 상기 데이터 처리 시스템(110)의 서버를 식별하며;
    상기 데이터 처리 시스템(110)에 의해, 제 2 복수의 컴퓨터 실행 가능 명령들을 상기 컴퓨팅 디바이스(125)에 송신하는 단계(420)를 포함하며, 상기 콘텐츠에 대한 요청에 응답하여 상기 컴퓨팅 디바이스상에서 실행(425)을 위한 상기 제 2 복수의 컴퓨터 실행 가능 명령들은 상기 컴퓨팅 디바이스(125)로 하여금 자동으로:
    상기 정보 리소스의 DOM(Document Object Model) 트리를 식별하고(430);
    상기 DOM 트리에 포함된 하나 이상의 DOM 요소를 식별(435)하고;
    상기 식별된 DOM 요소에 기초하여, 제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하고(440);
    상기 후보 제 3 자 콘텐츠 배치 위치들 중에서 상기 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택하고(445) 상기 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 슬롯을 삽입하고; 그리고
    상기 제 3 자 콘텐츠 슬롯에 제 3 자 콘텐츠 아이템을 디스플레이(450)하도록 하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 제 3 자 콘텐츠 배치 정책은 식별된 DOM 요소의 차원에 기초한 후보 제 3 자 콘텐츠 배치 위치를 식별하기 위한 하나 이상의 규칙을 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 후보 제 3 자 콘텐츠 배치 위치들 중에서 상기 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택하는 것은, 상기 정보 리소스의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2개의 인접 DOM 요소들 사이의 제 3 자 콘텐츠 배치 위치를 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 제 3 자 콘텐츠 슬롯에 제 3 자 콘텐츠 아이템을 디스플레이하는 것은,
    상기 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액(revenue amount)을 식별하는 것과;
    상기 수익액이 미리 결정된 임계치를 초과하는 것으로 결정하는 것과; 그리고
    상기 수익액이 상기 미리 결정된 임계치를 초과하는 것으로 결정함에 응답하여, 디스플레이를 위해 상기 제 3 자 콘텐츠 아이템을 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    제 3 자 콘텐츠 배치 정책에 따라 하나 이상의 후보 제 3 자 콘텐츠 배치 위치를 결정하는 것은,
    미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정하는 것과; 그리고
    상기 미리 결정된 수의 제 3 자 콘텐츠 배치 위치를 결정하는 것에 응답하여, 후보 제 3 자 콘텐츠 배치 위치를 결정하기 위한 명령들을 종료하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 제 2 복수의 컴퓨터 실행 가능 명령들은, 상기 컴퓨팅 디바이스상에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금,
    상기 정보 리소스 상에 디스플레이될 다수의 기존의 제 3 자 콘텐츠 배치를 식별하게 하고,
    상기 기존의 제 3 자 콘텐츠 배치들의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치보다 적음을 결정하고; 그리고
    상기 기존의 제 3 자 콘텐츠 배치들의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치보다 적음을 결정함에 응답하여, 상기 제 3 자 콘텐츠 슬롯을 삽입하도록 하는 것을 더 포함하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 제 3 자 콘텐츠 슬롯은 컴퓨팅 디바이스상에서 실행될 때 상기 컴퓨팅 디바이스로 하여금 데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 요청하게 하는 컴퓨터 실행 가능 명령들을 포함하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 제 2 복수의 컴퓨터 실행 가능 명령들은, 상기 컴퓨팅 디바이스상에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금,
    상기 데이터 처리 시스템으로부터 제 3 자 콘텐츠를 수신하게 하고; 그리고
    상기 수신된 제 3 자 콘텐츠와 관련된 수익이 임계치를 초과하는 것으로 결정함에 응답하여, 상기 제 3 자 콘텐츠를 디스플레이하도록 결정하게 하는 것을 더 포함하는 것을 특징으로 하는 방법.
  9. 정보 리소스들내의 콘텐츠 슬롯들의 배치를 자동으로 관리하는 시스템으로서,
    리소스 분석 모듈(222), 배치 위치 모듈(225), 위치 선택 모듈(228) 및 디스플레이 모듈(230)을 포함하는 컴퓨터 실행 가능 명령들을 저장하는 메모리를 포함하고, 상기 컴퓨터 실행 가능 명령들은 컴퓨팅 디바이스(125)에서 정보 리소스에서의 콘텐츠 슬롯들의 배치를 자동으로 관리하도록 정보 리소스와 관련된 콘텐츠에 대해 상기 컴퓨팅 디바이스에 의해 생성된 요청에 응답하여 상기 컴퓨팅 디바이스(125)상에서 실행하기 위한 것이고,
    상기 리소스 분석 모듈(222)은 상기 콘텐츠에 대한 요청에 응답하여 상기 컴퓨팅 디바이스(125) 상에서 실행될 때, 상기 정보 리소스의 문서 객체 모델(DOM) 트리에 포함된 하나 이상의 DOM 요소를 식별하고,
    상기 배치 위치 모듈(225)은 상기 콘텐츠에 대한 요청에 응답하여 상기 컴퓨팅 디바이스(125) 상에서 실행될 때, 제 3 자 콘텐츠 배치 정책을 사용하여, 상기 식별된 DOM 요소에 기초하여 제 3 자 콘텐츠 아이템을 삽입할 상기 DOM 트리내의 복수의 후보 제 3 자 콘텐츠 위치들을 결정하고;
    상기 위치 선택 모듈(228)은 상기 콘텐츠에 대한 요청에 응답하여 상기 컴퓨팅 디바이스(125) 상에서 실행될 때, 상기 결정된 복수의 후보 제 3 자 콘텐츠 배치 위치들 중에서 상기 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택하고 상기 선택된 제 3 자 콘텐츠 배치 위치에 제 3 자 콘텐츠 슬롯을 삽입하며; 그리고
    상기 디스플레이 모듈(230)은 상기 콘텐츠에 대한 요청에 응답하여 상기 컴퓨팅 디바이스(125) 상에서 실행될 때, 제 3 자 콘텐츠 아이템이 상기 제 3 자 콘텐츠 슬롯에 디스플레이하는 것을 특징으로 하는 시스템.
  10. 제 9 항에 있어서,
    상기 제 3 자 콘텐츠 배치 정책은 후보 제 3 자 콘텐츠 배치 위치들을 식별하기 위한 하나 이상의 규칙을 포함하며, 상기 규칙은 상기 식별된 DOM 요소의 차원에 기초하는 것을 특징으로 하는 시스템.
  11. 제 9 항에 있어서,
    상기 결정된 복수의 후보 제 3 자 콘텐츠 배치 위치들 중에서 상기 DOM 트리 내의 제 3 자 콘텐츠 배치 위치를 선택할 때, 상기 위치 선택 모듈(228)은 정보 리소스의 폭의 미리 결정된 임계치보다 큰 폭을 갖는 2 개의 인접한 DOM 요소 사이에 있는 제 3 자 콘텐츠 배치 위치를 선택하도록 구성된 것을 포함하는 것을 특징으로 하는 시스템.
  12. 제 9 항에 있어서,
    상기 제 3 자 콘텐츠 슬롯에 제 3 자 콘텐츠 아이템을 디스플레이할 때, 상기 디스플레이 모듈은,
    상기 제 3 자 콘텐츠 아이템을 디스플레이하는 것에 대응하는 수익액을 식별하고;
    상기 수익액이 미리 결정된 임계치를 초과하는 지를 판단하고;
    상기 수익액이 상기 미리 결정된 임계치를 초과함을 결정함에 응답하여, 디스플레이할 상기 제 3 자 콘텐츠 아이템을 선택하는 단계를 더 포함하는 것을 특징으로 하는 시스템.
  13. 제 9 항에 있어서,
    상기 디스플레이 모듈은,
    상기 정보 리소스 상에 디스플레이될 기존의 제 3 자 콘텐츠 배치들의 수를 식별하고;
    상기 기존의 제 3 자 콘텐츠 배치들의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치들의 수보다 적은지를 결정하고; 그리고
    상기 기존의 제 3 자 콘텐츠 배치들의 수가 미리 결정된 수의 제 3 자 콘텐츠 배치들의 수보다 적음을 결정함에 응답하여, 상기 제3자 콘텐츠 슬롯을 상기 선택된 제 3 자 콘텐츠 배치 위치에 삽입하도록 구성된 것을 특징으로 하는 시스템.
  14. 제 9 항에 있어서,
    상기 디스플레이 모듈은,
    데이터 처리 시스템으로부터 제 3 자 콘텐츠 아이템을 수신하고; 그리고
    상기 수신된 제 3 자 콘텐츠 아이템과 연관된 수익이 임계치를 초과하는 것으로 결정함에 응답하여 상기 제 3 자 콘텐츠 아이템을 디스플레이하기로 결정하도록 구성된 것을 특징으로 하는 시스템.
  15. 제 9 항에 있어서,
    상기 제 3 자 콘텐츠 슬롯은,
    상기 컴퓨터 디바이스 상에서 실행될 때, 컴퓨팅 디바이스로 하여금 데이터 처리 시스템으로부터 제 3 자 콘텐츠를 요청하게 하는 프로그램 명령들을 포함하는 것을 특징으로 하는 시스템.
KR1020177031465A 2015-09-16 2016-08-29 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법 KR102001193B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/856,181 2015-09-16
US14/856,181 US12002072B1 (en) 2015-09-16 2015-09-16 Systems and methods for automatically managing placement of content slots in an information resource
PCT/US2016/049240 WO2017048496A1 (en) 2015-09-16 2016-08-29 Systems and methods for automatically managing placement of content slots in an information resource

Publications (2)

Publication Number Publication Date
KR20170131683A KR20170131683A (ko) 2017-11-29
KR102001193B1 true KR102001193B1 (ko) 2019-07-17

Family

ID=56896793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031465A KR102001193B1 (ko) 2015-09-16 2016-08-29 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법

Country Status (8)

Country Link
US (2) US12002072B1 (ko)
EP (1) EP3274950B1 (ko)
JP (1) JP6851317B2 (ko)
KR (1) KR102001193B1 (ko)
CN (2) CN114663126A (ko)
DE (1) DE112016001596T5 (ko)
GB (1) GB2554248A (ko)
WO (1) WO2017048496A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6921647B2 (ja) * 2017-06-27 2021-08-18 キヤノン株式会社 クライアントデバイス、画像処理システム、画像の表示方法および、プログラム
US10979235B2 (en) 2017-10-20 2021-04-13 Dropbox, Inc. Content management system supporting third-party code
US10878019B2 (en) 2017-10-20 2020-12-29 Dropbox, Inc. Hosted storage for third-party services
US11113411B2 (en) 2017-10-20 2021-09-07 Dropbox, Inc. Authentication security model for a content management system
US10671798B2 (en) * 2018-02-01 2020-06-02 Google Llc Digital component backdrop rendering
US11210710B2 (en) * 2019-01-15 2021-12-28 Wp Company Llc Techniques for inserting advertising content into digital content
KR102324802B1 (ko) 2020-04-01 2021-11-10 구글 엘엘씨 컨텐츠 요청 데이터의 암호화를 위한 시스템 및 방법
WO2024065690A1 (zh) * 2022-09-30 2024-04-04 华为技术有限公司 一种音频广告投放的方法、设备及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150066665A1 (en) * 2013-08-28 2015-03-05 Google Inc. Methods and systems for providing third-party content on a web page

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907566B1 (en) 1999-04-02 2005-06-14 Overture Services, Inc. Method and system for optimum placement of advertisements on a webpage
AU1084401A (en) * 1999-10-13 2001-04-23 Bluestreak.Com Method of delivering information over a network
US6496803B1 (en) 2000-10-12 2002-12-17 E-Book Systems Pte Ltd Method and system for advertisement using internet browser with book-like interface
US7213200B2 (en) 2002-04-23 2007-05-01 International Business Machines Corporation Selectable methods for generating robust XPath expressions
KR101159788B1 (ko) 2005-03-12 2012-06-26 주진용 웹페이지를 이용한 인터넷 광고방법과 광고시스템
US8176414B1 (en) * 2005-09-30 2012-05-08 Google Inc. Document division method and system
US20090007171A1 (en) 2005-11-30 2009-01-01 Qwest Communications International Inc. Dynamic interactive advertisement insertion into content stream delivered through ip network
KR20080042051A (ko) 2008-04-14 2008-05-14 주식회사 이사칠리얼미디어 광고 제공 시스템
JP5183384B2 (ja) 2008-09-18 2013-04-17 キヤノン株式会社 レイアウト処理方法、レイアウト処理装置、レイアウト制御プログラム
US20100332328A1 (en) 2008-10-29 2010-12-30 Srinivasa Dharmaji Browser Cache Based Ad Insertion
JP2010134854A (ja) 2008-12-08 2010-06-17 Ntt Docomo Inc 情報提供システム、情報閲覧支援システム及び情報提供方法
US20100241497A1 (en) 2009-03-18 2010-09-23 Dan Rittman Method, system and computer software for advertisement, using symbols as characters interface
US20100332319A1 (en) * 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Methods and Systems for Dynamic Serving of Advertisements in a Game or Virtual Reality Environment
JP5366720B2 (ja) 2009-08-31 2013-12-11 三菱電機株式会社 映像蓄積再生装置、再生権引渡システム、及び再生権引渡方法
JP2011108146A (ja) 2009-11-20 2011-06-02 Sony Corp 情報処理装置、情報処理方法、プログラムおよび情報処理システム
WO2011072048A2 (en) 2009-12-08 2011-06-16 Adxpose, Inc. Methods for capturing and reporting metrics regarding ad placement
US8543452B2 (en) 2009-12-15 2013-09-24 EarDish Corporation Monetary distribution of behavioral demographics and fan-supported distribution of commercial content
WO2011111167A1 (ja) 2010-03-09 2011-09-15 ヤフー株式会社 情報配信方法、情報配信システム及び情報配信プログラム
US8375305B1 (en) 2010-05-14 2013-02-12 Amazon Technologies, Inc. Placement of user interface elements based on a window entry or exit point
US20110295678A1 (en) * 2010-05-28 2011-12-01 Google Inc. Expanding Ad Group Themes Using Aggregated Sequential Search Queries
EP2599011A4 (en) 2010-07-30 2017-04-26 Hewlett-Packard Development Company, L.P. Selection of main content in web pages
US20130212498A1 (en) 2010-07-30 2013-08-15 Suk Hwan Lim Selecting Content Within a Web Page
CN102012937A (zh) * 2010-12-08 2011-04-13 萨·约翰尼 用于将广告发布在超文本文档中的图像上的方法和系统
CN102102937A (zh) 2011-03-17 2011-06-22 安徽尊贵电器集团有限公司 一种冷柜及其冷柜箱体
US8539338B2 (en) 2011-04-11 2013-09-17 Microsoft Corporation Cooperative rendering cache for mobile browser
US20130339139A1 (en) 2012-01-18 2013-12-19 High Impact Media Llc System and method for nonstandard creative content auctioning
US8738448B2 (en) 2012-02-08 2014-05-27 Google Inc. Web page ad slot identification
WO2013181671A1 (en) 2012-06-01 2013-12-05 Airpush, Inc. Method, system and format for providing dynamic single full-page mobile ads
CN103778125B (zh) * 2012-10-17 2017-04-19 阿里巴巴集团控股有限公司 网页投放内容的分析方法和装置及自动投放方法和装置
US9535887B2 (en) * 2013-02-26 2017-01-03 Google Inc. Creation of a content display area on a web page
US20150254219A1 (en) 2014-03-05 2015-09-10 Adincon Networks LTD Method and system for injecting content into existing computerized data
US10430827B2 (en) * 2014-08-15 2019-10-01 Facebook, Inc. Maintaining information describing a group of online system users specified by a third-party system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150066665A1 (en) * 2013-08-28 2015-03-05 Google Inc. Methods and systems for providing third-party content on a web page

Also Published As

Publication number Publication date
DE112016001596T5 (de) 2017-12-28
CN108140195B (zh) 2022-02-25
US20210133823A1 (en) 2021-05-06
EP3274950B1 (en) 2024-01-03
US12002072B1 (en) 2024-06-04
JP6851317B2 (ja) 2021-03-31
CN114663126A (zh) 2022-06-24
CN108140195A (zh) 2018-06-08
GB201717422D0 (en) 2017-12-06
WO2017048496A1 (en) 2017-03-23
JP2018527632A (ja) 2018-09-20
KR20170131683A (ko) 2017-11-29
GB2554248A (en) 2018-03-28
EP3274950A1 (en) 2018-01-31

Similar Documents

Publication Publication Date Title
KR102001193B1 (ko) 정보 리소스에서 콘텐츠 슬롯들의 배치를 자동으로 관리하기 위한 시스템 및 방법
US11907360B2 (en) Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
US10838609B2 (en) Systems and methods for dynamically appending supplemental content to an information resource responsive to scroll activity
KR102216628B1 (ko) 클라이언트 디바이스들에서 실행되는 어플리케이션들에 의한 컨텐츠 아이템들의 제시의 부적절한 구현을 검출하기 위한 시스템 및 방법
US9535887B2 (en) Creation of a content display area on a web page
CN108140196B (zh) 使用客户端生成的点击标识符减少内容项交互的时延的系统和方法
US20200183559A1 (en) Systems and methods for attributing a scroll event in an infinite scroll graphical user interface
KR20160123377A (ko) 크리에이티브의 랜딩 페이지와 함께 기능적 확장들을 제공하는 방법들 및 시스템들
US11080767B2 (en) Systems and methods for creating an interstitial ad experience within a scrolling content frame
US20160342574A1 (en) Allotment of placement locations for supplemental content in dynamic documents
US11694237B2 (en) Systems and methods for dynamically inserting content item slots in an information resource
US11886546B2 (en) Systems and methods for dynamically restricting the rendering of unauthorized content included in information resources
CN113961830A (zh) 利用网页脚本对网站的客户端会话进行分段的系统和方法
US10049170B1 (en) Methods and systems for selectively preventing third-party content from being displayed using undefined publisher identifier

Legal Events

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