KR20170131679A - 모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링 - Google Patents

모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링 Download PDF

Info

Publication number
KR20170131679A
KR20170131679A KR1020177031378A KR20177031378A KR20170131679A KR 20170131679 A KR20170131679 A KR 20170131679A KR 1020177031378 A KR1020177031378 A KR 1020177031378A KR 20177031378 A KR20177031378 A KR 20177031378A KR 20170131679 A KR20170131679 A KR 20170131679A
Authority
KR
South Korea
Prior art keywords
mobile
content
features
content item
item
Prior art date
Application number
KR1020177031378A
Other languages
English (en)
Other versions
KR102028089B1 (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 KR20170131679A publication Critical patent/KR20170131679A/ko
Application granted granted Critical
Publication of KR102028089B1 publication Critical patent/KR102028089B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • 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/06Buying, selling or leasing transactions
    • G06Q30/08Auctions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • H04W4/003
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

디바이스 필터에 기초하여 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링하기 위한 방법, 장치 및 시스템. 모바일 애플리케이션은 운영 체제, 운영 체제 버전, 하나 이상의 클라이언트 디바이스의 하드웨어 구성 등에 따라서 하나 이상의 디바이스와 호환불가능할 수 있다. 비호환 콘텐츠 아이템을 제거하기 위하여, 대응하는 모바일 애플리케이션에 대한 요구된 피쳐들의 세트를 여러 공지된 모바일 디바이스를 식별하는 데이터 구조체로부터의 데이터 및 피쳐들의 연관된 세트와 비교함으로써 디바이스 필터가 생성될 수 있다. 모바일 애플리케이션에 대한 요구된 피쳐들의 세트는 최소 운영 체제 버전, 하나 이상의 적정 국가, 및/또는 모바일 디바이스의 하나 이상의 피쳐를 포함할 수 있다. 디바이스 필터는 비교한 것에 기초하여 해당 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스에 대한 식별자들의 세트를 포함할 수 있다.

Description

모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링
본 명세서에서 설명되는 구현형태는 디바이스 필터에 기초한 경매를 위해, 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링아웃하는 것에 관련된다.
인터넷 또는 다른 네트워크와 같은 네트워크 환경에서, 당사자(first-party) 콘텐츠 제공자는 리소스, 예를 들어 웹페이지, 문서, 애플리케이션, 및/또는 다른 리소스에 관한 공용 프리젠테이션에 대한 정보를 제공할 수 있다. 당사자 콘텐츠는, 인터넷을 거쳐 클라이언트 디바이스에 프리젠테이션하기 위하여, 예를 들어 리소스 서버를 거쳐서 당사자 콘텐츠 제공자에 의해 제공되는 텍스트, 비디오, 및/또는 오디오 정보를 포함할 수 있다. 당사자 콘텐츠는 클라이언트 디바이스 또는 클라이언트 디바이스에서 실행되는 독립형 애플리케이션(예를 들어, 비디오 게임, 채팅 프로그램 등)에 의해 요청되는 웹페이지일 수 있다. 당사자 콘텐츠 제공자에 의해 제공된 당사자 콘텐츠와 함께 클라이언트 디바이스에 프리젠테이션되도록, 추가적인 제 3 자 콘텐츠가 또한 제 3 자 콘텐츠 제공자에 의해 제공될 수 있다. 예를 들어, 제 3 자 콘텐츠는 웹페이지와 같이 요청된 리소스와 공동으로 나타나거나(예를 들어, 검색 엔진으로부터의 검색 결과 웹페이지, 온라인 물품을 포함하는 웹페이지, 소셜 네트워킹 서비스의 웹페이지 등) 또는 애플리케이션과 공동으로 나타나는(예를 들어, 게임 내의 광고) 공용 서비스 알림 또는 광고일 수 있다. 따라서, 리소스를 시청하는 사용자는, 리소스의 대상인 당사자 콘텐츠 및 리소스의 대상에 관련되거나 관련되지 않을 수 있는 제 3 자 콘텐츠에 액세스할 수 있다.
본 명세서에서 설명되는 구현형태는 디바이스 필터에 기초한 경매를 위해, 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링아웃하는 것에 관련된다. 모바일 애플리케이션은 운영 체제, 운영 체제 버전, 하나 이상의 클라이언트 디바이스의 하드웨어 구성 등에 따라서 하나 이상의 클라이언트 디바이스와는 호환불가능할 수 있다. 대응하는 모바일 애플리케이션의 클라이언트 디바이스와의 비호환성에 기초하여 콘텐츠 아이템을 제거하기 위하여, 대응하는 모바일 애플리케이션에 대한 요청된 피쳐들의 세트를 여러 공지된 모바일 디바이스를 식별하는 데이터 구조체로부터의 데이터 및 공지된 모바일 디바이스들 각각에 대한 피쳐들의 연관된 세트와 비교함으로써 디바이스 필터가 생성될 수 있다. 일부 실례들에서, 모바일 애플리케이션에 대한 요청된 피쳐들의 세트는 최소 운영 체제 버전, 하나 이상의 적정 국가, 및/또는 모바일 디바이스의 하나 이상의 피쳐를 포함할 수 있다. 디바이스 필터는 비교한 것에 기초하여 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스에 대한 식별자들의 세트를 포함할 수 있고, 요청하는 모바일 디바이스에 대한 디바이스 피쳐들의 세트를 식별하는 데이터 또는 해당 모바일 디바이스에 대한 식별자에 기초하여 콘텐츠 아이템을 필터링아웃하기 위해 사용될 수 있다.
하나의 구현형태는 모바일 애플리케이션에 대한 요청된 피쳐들의 세트에 액세스하는 단계 및 피쳐들의 세트와 각각 연관된 공지된 모바일 디바이스의 세트를 식별하는 데이터 구조체에 액세스하는 단계를 포함하는 방법에 관련된다. 본 발명의 방법은, 요청된 피쳐들의 세트를 상기 데이터 구조체의 공지된 모바일 디바이스들의 세트 중 각각에 대한 상기 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초하여 디바이스 필터를 생성하는 단계를 더 포함한다. 디바이스 필터는, 비교한 것에 기초하여 해당 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스들의 세트 중 하나 이상에 대한 식별자들의 세트를 포함할 수 있다. 본 발명의 방법은 모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계를 더 포함한다. 상기 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자를 포함한다. 본 발명의 방법은, 생성된 디바이스 필터 및 상기 요청의 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자에 기초하여, 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함한다. 본 발명의 방법은, 콘텐츠 아이템 경매를 통해서, 적정 콘텐츠 아이템들의 필터링된 세트로부터 제 2 콘텐츠 아이템을 선택하는 단계 및 수신된 요청에 응답하여, 선택된 제 2 콘텐츠 아이템을 상기 모바일 디바이스로 서비스하는 단계를 더 포함한다.
다른 구현형태는 하나 이상의 프로세서 및 하나 이상의 스토리지 디바이스를 포함하는 시스템에 관련된다. 하나 이상의 스토리지 디바이스는 하나 이상의 프로세서가 여러 동작을 수행하게 하는 명령들을 포함한다. 이러한 동작은, 모바일 애플리케이션들의 세트의 각각에 대해 요구된 피쳐들의 세트에 액세스하는 단계 및 피쳐들의 세트와 각각 연관된 공지된 모바일 디바이스들의 세트를 식별하는 데이터 구조체에 액세스하는 단계를 포함한다. 요청된 피쳐들의 세트는 최소 운영 체제 버전을 포함한다. 이러한 동작은, 모바일 애플리케이션들의 세트의 각각에 대한 요청된 피쳐들의 세트를 상기 데이터 구조체의 공지된 모바일 디바이스들의 세트의 각각에 대한 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초하여 디바이스 필터를 생성하는 단계를 더 포함한다. 디바이스 필터는, 모바일 애플리케이션들의 상기 세트 중 하나와 호환되지 않는 공지된 모바일 디바이스들의 세트 중 하나 이상에 대한 식별자들의 세트를 포함한다. 이러한 동작은, 모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계를 더 포함한다. 상기 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자를 포함한다. 이러한 동작은, 요청된 피쳐들의 세트의 상기 최소 운영 체제 버전을 상기 디바이스 피쳐들의 세트의 운영 체제 버전 또는 상기 모바일 디바이스에 대한 식별자와 연관된 운영 체제 버전과 비교한 것에 기초하여, 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션들의 세트 중 제 1 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 필터링아웃하는 단계를 포함한다. 이러한 동작은, 생성된 디바이스 필터 및 상기 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 요청의 상기 모바일 디바이스에 대한 식별자에 기초하여, 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 잔여 세트로부터 상기 모바일 애플리케이션들의 세트 중 제 2 모바일 애플리케이션과 연관된 제 2 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함한다. 이러한 동작은, 콘텐츠 아이템 경매를 통해서, 적정 콘텐츠 아이템들의 필터링된 잔여 세트로부터 제 3 콘텐츠 아이템을 선택하는 단계 및 수신된 요청에 응답하여, 선택된 제 3 콘텐츠 아이템을 상기 모바일 디바이스로 서비스하는 단계를 더 포함한다.
또 다른 구현형태는, 하나 이상의 프로세서에 의해 실행되면 하나 이상의 프로세서가 여러 동작을 수행하게 하는 명령들을 저장하는 컴퓨터 판독가능 저장 디바이스에 관련된다. 이러한 동작은, 모바일 애플리케이션에 대한 애플리케이션 스토어로부터 요청된 피쳐들의 세트에 액세스하는 단계 및 피쳐들의 세트와 각각 연관된 공지된 모바일 디바이스들의 세트를 식별하는 데이터 구조체에 액세스하는 단계를 포함한다. 이러한 동작은, 요청된 피쳐들의 세트를 상기 데이터 구조체의 공지된 모바일 디바이스들의 세트 중 각각에 대한 상기 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초하여 디바이스 필터를 생성하는 단계를 더 포함한다. 디바이스 필터는, 비교한 것에 기초하여 해당 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스들의 세트 중 하나 이상에 대한 식별자들의 세트를 포함할 수 있다. 이러한 동작은, 모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계를 더 포함한다. 상기 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자를 포함한다. 이러한 동작은, 생성된 디바이스 필터 및 상기 요청의 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자에 기초하여, 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함한다. 이러한 동작은, 콘텐츠 아이템 경매를 통해서, 적정 콘텐츠 아이템들의 필터링된 세트로부터 제 2 콘텐츠 아이템을 선택하는 단계 및 수신된 요청에 응답하여, 선택된 제 2 콘텐츠 아이템을 상기 모바일 디바이스로 서비스하는 단계를 더 포함한다.
하나 이상의 구현형태들의 세부사항들은 첨부 도면들 및 다음의 설명에서 진술된다. 본 발명의 다른 피쳐들, 양태들, 및 이점들은 상세한 설명, 도면, 청구항으로부터 명확해질 것이다.
도 1은 컴퓨터 네트워크를 통해 정보를 제공하는 시스템의 일 구현형태를 묘사하는 개요다;
도 2는 모바일 클라이언트 디바이스의 디스플레이에 표시되며 제 3 자 콘텐츠를 포함하는 당사자 리소스의 일 구현형태의 예시도이다;
도 3은 모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링을 위한 시스템의 일 구현형태의 블록도이다;
도 4는 콘텐츠 아이템 선택 시스템에 대한 디바이스-기반 필터를 생성하기 위한 프로세스의 일 구현형태의 흐름도이다;
도 5는 디바이스-기반 필터를 사용하여 콘텐츠 아이템을 필터링하기 위한 프로세스의 일 구현형태의 흐름도이다; 그리고
도 6은 본 명세서에서 설명되고 예시된 시스템 및 방법의 다양한 요소들을 구현하기 위해 채택될 수 있는 컴퓨터 시스템에 대한 범용 아키텍처를 도시하는 블록도이다.
도면 중 일부 또는 전부는 예시를 위해 개략적으로 도시된다는 것이 이해될 것이다. 도면들은 이들이 청구항의 범위와 의미를 한정하기 위해서 사용되지 않을 것이라는 것을 명확하게 이해하면서 하나 이상의 실시예를 예시하기 위해서 제공된다.
다음 내용은 컴퓨터 네트워크에 정보를 제공하기 위한 방법, 장치, 및 시스템의 다양한 개념 및 그 구현 형태들에 대한 더 상세한 설명이다. 전술된 내용에서 소개되고 이하 더 상세히 설명될 다양한 개념들은, 설명된 개념들이 임의의 특정 구현 방식으로 한정되지 않기 때문에 여러 방법 중 임의의 방법을 사용하여 구현될 수 있다. 특정한 구현형태 및 적용예의 예들은 주로 예시를 위해서 제공된다.
I. 개요
컴퓨팅 디바이스(예를 들어, 클라이언트 디바이스)는 웹페이지, 문서, 애플리케이션, 등과 같은 리소스를 표시할 수 있다. 일부 구현형태들에서, 컴퓨팅 디바이스는 해당 리소스에 대응하는 웹페이지 서버와 같은 서버와 통신하여 인터넷을 통해 리소스에 액세스할 수 있다. 이러한 리소스는 당사자 콘텐츠 제공자로부터의 리소스의 대상인 당사자 콘텐츠를 포함하고, 광고 또는 다른 콘텐츠와 같이 제 3 자에 의해 제공된 추가적 콘텐츠를 더 포함할 수 있다. 일 구현형태에서, 웹페이지에 액세스하려는 요청에 응답하여, 웹페이지 서버 및/또는 클라이언트 디바이스는 콘텐츠 아이템 선택 시스템과 같은 데이터 처리 시스템과 통신해서, 예컨대 제 3 자 콘텐츠 아이템이 리소스와 함께 제공되게 요청하기 위한 리소스의 코드를 실행함으로써, 콘텐츠 아이템이 요청된 웹페이지와 함께 제공되도록 요청할 수 있다. 콘텐츠 아이템 선택 시스템은 제 3 자 콘텐츠 아이템을 선택하고, 해당 콘텐츠 아이템이 요청된 웹페이지와 함께 클라이언트 디바이스의 디스플레이에 제공되게 하는 데이터를 제공할 수 있다. 일부 실례들에서, 콘텐츠 아이템은 선택되고 검색 질의 응답과 연관된 리소스와 함께 서비스된다. 예를 들어, 검색 엔진은 검색 결과를 검색 결과 웹페이지 상에 반환할 수 있고, 검색 질의와 연관된 제 3 자 콘텐츠 아이템들을 검색 결과 웹페이지의 하나 이상의 콘텐츠 아이템 슬롯 내에 포함할 수 있다.
제 3 자 콘텐츠 아이템은, 예컨대 콘텐츠 아이템이 클릭됨으로써 제 3 자 콘텐츠 아이템이 선택되면, 컴퓨팅 디바이스가 데이터를 취출하고/하거나 링크에 의해 표시된 주소로 송신하도록 지시하는 링크를 포함할 수 있다. 예를 들면, 일부 콘텐츠 아이템은 제 3 자 콘텐츠 아이템의 제 3 자의 웹페이지로의 링크, 제 3 자의 애플리케이션을 설치하기 위한 애플리케이션 스토어 또는 웹사이트로의 링크, 및/또는 데이터를 콘텐츠 아이템 선택 시스템으로 송신하기 위한 콘텐츠 아이템 선택 시스템으로의 링크를 포함할 수 있고, 이러한 콘텐츠 아이템 선택 시스템은 이제 컴퓨팅 디바이스를 후속 목적지, 예컨대 제 3 자 콘텐츠 아이템의 제 3 자의 웹페이지로 리디렉팅한다.
모바일 애플리케이션과 같은 애플리케이션을 표시하거나 실행하기 위해서 컴퓨팅 디바이스(예를 들어, 클라이언트 디바이스)도 역시 사용될 수 있다. 애플리케이션은 당사자 콘텐츠 제공자로부터의 애플리케이션의 대상인 당사자 콘텐츠를 포함할 수 있고, 광고 또는 다른 콘텐츠와 같이 제 3 자에 의해 제공된 추가적 콘텐츠를 더 포함할 수 있다. 일 구현형태에서, 애플리케이션을 사용하는 것에 응답하여, 리소스 서버 및/또는 클라이언트 디바이스는 콘텐츠 아이템 선택 시스템과 같은 데이터 처리 시스템과 통신하여 콘텐츠 아이템이 애플리케이션의 사용자 인터페이스 및/또는 그 외의 것과 함께 제공되도록 요청할 수 있다. 콘텐츠 아이템 선택 시스템은 제 3 자 콘텐츠 아이템을 선택하고, 해당 콘텐츠 아이템이 해당 애플리케이션과 함께 클라이언트 디바이스의 디스플레이에 프리젠테이션되게 하는 데이터를 제공할 수 있다.
일부 실례들에서, 디바이스 식별자는 클라이언트 디바이스와 연관될 수 있다. 디바이스 식별자는, 리소스 및/또는 콘텐츠 아이템에 대한 후속 요청 동안 디바이스를 식별하기 위한, 클라이언트 디바이스와 연관된 무작위 숫자일 수 있다. 일부 실례들에서, 디바이스 식별자는, 클라이언트 디바이스와 관련된 정보를 저장하고/하거나 클라이언트 디바이스가 해당 정보를 콘텐츠 아이템 선택 시스템 및/또는 리소스 서버로 송신하게 하도록 구성될 수 있다(예를 들어, 센서 데이터의 값, 웹 브라우저 타입, 운영 체제, 이력 리소스 요청, 이력 콘텐츠 아이템 요청 등).
본 명세서에서 논의되는 시스템이 사용자에 대한 개인 정보를 수집하거나, 개인 정보를 활용할 수 있는 경우, 사용자에게는 프로그램 또는 피쳐들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 전문분야, 사용자의 선호사항, 또는 사용자의 현재 위치에 대한 정보)를 수집하도록 제어하거나, 사용자와 더 많이 관련될 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할 것인지 및/또는 어떻게 수신할 것인지를 제어하는 기회가 제공될 수 있다. 또한, 특정 데이터는 저장되거나 사용되기 전에, 개인을 식별할 수 있는 정보가 제거되도록 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 아이덴티티는 개인을 식별할 수 있는 정보가 해당 사용자에 대해 결정될 수 없도록 처리될 수 있고, 또는 위치 정보가 얻어지는 경우 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 일반화될 수 있다(예를 들어 도시명, 우편 번호, 또는 주 수준으로). 따라서, 사용자는 사용자에 대한 정보가 어떻게 수집되고 콘텐츠 서버에 의해 사용되는지에 대한 제어권을 가질 수 있다.
일부 구현형태들에서, 디바이스 식별자는 범용적으로 고유한 디바이스 식별자(UDID), 예컨대 광고주에 대한 식별자(identifier for advertiser; IDFA) 또는 AdID일 수 있다. 다른 구현형태들에서, 디바이스 식별자는 디바이스의 하드웨어 및/또는 소프트웨어 특성과 연관된 식별자, 예컨대 모바일 장비 식별자(mobile equipment identifier; MEID), 국제 이동 장비 식별자(international mobile equipment identifier IMEI), 집적 회로 카드 식별자(integrated circuit card identifier; ICCID), 디바이스 일련 번호, 디바이스의 하드웨어 및/또는 소프트웨어 특성에 기초하여 생성된 식별자(예를 들어, 적어도 부분적으로, 운영 체제 버전, 디바이스 모델, 펌웨어 버전(들), 설치된 애플리케이션(들), 메모리 용량, 및/또는 스토리지 공간에 기초하는 식별자) 등일 수 있다. 이러한 디바이스 식별자는 콘텐츠 아이템과 상호작용할 경우 쿠키 또는 다른 식별자로서 사용될 수 있다.
요청된 리소스와 함께 프리젠테이션하기 위한 제 3 자 콘텐츠 아이템을 인터넷 또는 다른 네트워크를 통해 제공하는 경우, 제 3 자 콘텐츠 제공자는 콘텐츠 아이템 관리 서비스를 이용하여 제 3 자 콘텐츠 아이템을 선택하는 것과 서비스하는 것을 제어하거나 그렇지 않으면 영향을 미칠 수 있다. 예를 들면, 제 3 자 콘텐츠 제공자는 제 3 자 콘텐츠 아이템을 선택 할 때에 사용되는 선택 기준들(예컨대 키워드) 및 대응하는 입찰 값을 특정할 수 있다. 입찰 값은 경매에서 리소스와 함께 프리젠테이션하기 위한 콘텐츠 아이템을 선택하고 서비스하기 위해 콘텐츠 아이템 선택 시스템에 의해 이용될 수 있다. 예를 들어, 제 3 자 콘텐츠 제공자는 경매에서 사용자가 제공자의 콘텐츠 아이템을 거래하는 경우 일정 량의 돈을 지불한다는 합의(예를 들어, 제공자는 사용자가 제공자의 콘텐츠 아이템을 클릭한다면 $3를 지불하겠다고 합의함)에 상당하는 응찰을 할 수 있다. 다른 예들에서, 제 3 자 콘텐츠 제공자는 경매에서, 콘텐츠 아이템이 선택되고 서비스된다면 일정 량의 돈을 지불한다는 합의(예를 들어, 제공자는 콘텐츠 아이템이 선택되고 서비스될 때마다 $0.005을 지불한다고 합의하거나, 콘텐츠 아이템이 선택되거나 클릭될 때마다 $0.05를 지불하기로 합의함)에 상당하는 응찰을 할 수 있다. 일부 실례들에서, 콘텐츠 아이템 선택 시스템은 콘텐츠 아이템 상호작용 데이터를 사용하여 제 3 자 콘텐츠 제공자의 콘텐츠 아이템의 성능을 결정한다. 예를 들어, 사용자는 다른 것보다 특정 웹페이지 상의 제 3 자 콘텐츠 아이템에 더 많이 클릭하는 경향이 있을 수 있다. 따라서, 제 3 자 콘텐츠 아이템에 대한 경매 입찰은 고성능 웹페이지, 웹페이지의 카테고리, 및/또는 다른 기준들에 대해 더 높을 수 있는 반면에, 저성능 웹페이지, 웹페이지의 카테고리, 및/또는 다른 기준들에 대해서는 입찰이 더 낮을 수 있다.
일부 실례들에서, 제 3 자 콘텐츠 아이템에 대한 하나 이상의 성능 메트릭이 결정될 수 있고, 이러한 성능 메트릭의 표시는 콘텐츠 아이템 관리 계정에 대한 사용자 인터페이스를 통해 제 3 자 콘텐츠 제공자에게 제공될 수 있다. 예를 들어, 성능 메트릭은 CPI(cost per impression) 또는 CPM(cost per thousand impressions)을 포함할 수 있는데, 여기에서 노출(impression)은, 예를 들어 콘텐츠 아이템이 리소스와 함께 프리젠테이션되게 서비스되도록 선택될 때마다 카운트될 수 있다. 일부 실례들에서, 성능 메트릭은, 콘텐츠 아이템에 대한 클릭수를 노출 횟수로 나눈 것으로 정의되는 CTR(click-through rate)을 포함할 수 있다. 또 다른 성능 메트릭, 예컨대 CPA(cost per action)(액션이 콘텐츠 아이템 또는 그 안의 링크를 클릭하는 것, 제품의 구입, 콘텐츠 아이템의 소개(referral) 등일 수 있는 경우), CVR(conversion rate), CPC(cost per click-through)(콘텐츠 아이템이 클릭될 때 카운트됨), CPS(cost per sale), CPL(cost per lead), 실효 CPM(eCPM), 및/또는 다른 성능 메트릭이 사용될 수 있다.
일부 실례들에서, 웹페이지 또는 다른 리소스(예를 들어 애플리케이션과 같음)는 선택되고 서비스되는 제 3 자 콘텐츠 아이템이 그 안에 디스플레이될 수 있는 하나 이상의 콘텐츠 아이템 슬롯을 포함한다. 웹페이지 또는 다른 리소스에 대한 콘텐츠 아이템 슬롯을 정의하는 코드(예를 들어, JavaScrip®, HTML 등)는 콘텐츠 아이템 선택 시스템으로부터의 제 3 자 콘텐츠 아이템이 해당 웹페이지와 함께 제공되도록 요청하기 위한 명령을 포함할 수 있다. 일부 구현형태들에서, 코드는 하나 이상의 파라미터를 포함할 수 있는 콘텐츠 아이템 요청 URL(예를 들어, /page/contentitem?devid=abc123&devnfo=A34r0)을 가지는 이미지 요청을 포함할 수 있다. 일부 구현형태들에서, 이러한 파라미터는 "devid=abc123" 및/또는 "devnfo=A34r0."와 같은 인코딩된 스트링일 수 있다.
리소스와 함께 서비스될 제 3 자 콘텐츠 아이템을 콘텐츠 아이템 선택 시스템에 의해 선택하는 것은, pCTR(predicted click through rate), pCVR(predicted conversion rate), 해당 콘텐츠 아이템과 연관된 입찰 등과 같은 여러 영향 인자에 기초할 수 있다. 이러한 영향 인자는 점수와 같은 값을 생성하기 위하여 사용될 수 있고, 이러한 값에 대해서 다른 콘텐츠 아이템에 대한 다른 점수가 경매 전체에 걸쳐 콘텐츠 아이템 선택 시스템에 의해 비교될 수 있다.
어떤 리소스, 예컨대 웹페이지에 대한 콘텐츠 아이템 슬롯에 대한 경매가 이루어지는 동안에, 다양한 제 3 자 콘텐츠 아이템에 대해서 여러 상이한 타입의 입찰 값이 제 3 자 콘텐츠 제공자에 의해 이용될 수 있다. 예를 들어, 경매는 사용자가 해당 제 3 자 콘텐츠 아이템을 클릭하는지 여부, 사용자가 제 3 자 콘텐츠 아이템의 프리젠테이션에 기초하여 특정 액션을 수행하는지 여부, 제 3 자 콘텐츠 아이템이 선택되고 서비스되는지 여부에 기초한 입찰, 및/또는 다른 타입의 입찰을 포함할 수 있다. 예를 들어, 제 3 자 콘텐츠 아이템이 선택되고 서비스되는지 여부에 기초한 입찰은 저액 입찰(예를 들어, $0.005)일 수 있는 반면에 사용자가 특정한 액션을 수행하는지 여부에 기초한 입찰은 고액 입찰(예를 들어, $5)일 수 있다. 일부 실례들에서, 입찰은 입찰의 타입과 연관된 확률을 설명하도록 조절되거나 및/또는 다른 이유에 대해서 조절될 수 있다. 예를 들어, 사용자가 특정한 액션을 수행할 확률은 낮을 수 있는 반면에(예컨대 0.2%), 선택되고 서비스되는 제 3 자 콘텐츠 아이템의 확률은 100%일 수 있다(예를 들어, 선택되고 서비스되는 콘텐츠 아이템은 이것이 경매 도중에 선택된다면 발생할 것이기 때문에, 입찰은 조절되지 않는다). 따라서, 점수 또는 정규화된 값과 같은 값이 입찰 값 및 확률 또는 다른 수정 값에 기초하여 경매에서 사용되도록 생성될 수 있다. 종래의 예에서, 제 3 자 콘텐츠 아이템이 선택되고 서비스되는지 여부에 기초한 입찰에 대한 값 또는 점수는 $0.005*1.00=0.005 일 수 있고, 사용자가 특정한 액션을 수행하는지 여부에 기초한 입찰에 대한 값 또는 점수는 $5*0.002=0.01 일 수 있다. 발생되는 수입을 최대화하기 위해, 콘텐츠 아이템 선택 시스템은 경매로부터 최고 값을 가지는 제 3 자 콘텐츠 아이템을 선택할 수 있다. 앞선 예에서, 콘텐츠 아이템 선택 시스템은 사용자가 특정한 액션을 수행하는지 여부에 기초한 입찰과 연관된 콘텐츠 아이템을, 해당 입찰과 연관된 더 높은 값 또는 점수 때문에 선택할 수 있다.
제 3 자 콘텐츠 아이템이 콘텐츠 아이템 선택 시스템에 의해 선택되면, 클라이언트 디바이스의 디스플레이 상으로의 제 3 자 콘텐츠 아이템의 프리젠테이션에 영향을 주기 위한 데이터가 네트워크를 사용하여 클라이언트 디바이스로 제공될 수 있다.
일부 실례들에서, 콘텐츠 아이템은 클라이언트 디바이스에 대한 모바일 애플리케이션과 연관될 수 있다. 콘텐츠 아이템은 클릭-투-다운로드 타입 콘텐츠 아이템일 수 있다(예를 들어, 모바일 애플리케이션을 다운로드하기 위한 랜딩 페이지로의 링크 및/또는 모바일 애플리케이션의 애플리케이션 스토어의 랜딩 페이지로의 링크를 가짐). 소비자가 이용할 수 있는 클라이언트 디바이스가 굉장히 다양하기 때문에, 특정 모바일 애플리케이션은 하나 이상의 클라이언트 디바이스와 호환되지 않을 수 있다. 예를 들면, 어떤 모바일 애플리케이션은 운영 체제, 운영 체제 버전, 하나 이상의 클라이언트 디바이스의 하드웨어 구성 등 때문에 하나 이상의 클라이언트 디바이스와 호환불가능할 수 있다. 클라이언트 디바이스가 해당 콘텐츠 아이템과 연관된 모바일 애플리케이션과 호환되지 않으면, 이후 해당 콘텐츠 아이템을 선택하여 해당 클라이언트 디바이스로 서비스하는 것은 유용성이 떨어질 수 있다. 더욱이, 적정 콘텐츠 아이템의 경매를 수행하기 전에 클라이언트 디바이스에 대해서 호환되지 않는 모바일 애플리케이션과 연관된 콘텐츠 아이템을 제거하기 위한 레이턴시를 감소시킬 수도 있다. 즉, 요청하는 클라이언트 디바이스와의 비호환성에 기초해서 콘텐츠 아이템을 제거하면, 경매 내의 적정 콘텐츠 아이템의 개수가 감소될 수 있고, 따라서 콘텐츠 아이템 선택 시스템이 클라이언트 디바이스로부터의 요청에 응답하여 어떤 콘텐츠 아이템을 선택하고 서비스할 수 있는 속도가 증가될 수 있다.
대응하는 모바일 애플리케이션의 클라이언트 디바이스와의 비호환성에 기초하여 콘텐츠 아이템을 제거하기 위하여, 대응하는 모바일 애플리케이션에 대한 요청된 피쳐들의 세트를 여러 공지된 모바일 디바이스를 식별하는 데이터 구조체로부터의 데이터 및 공지된 모바일 디바이스들 각각에 대한 피쳐들의 연관된 세트와 비교함으로써 디바이스 필터가 생성될 수 있다. 일부 실례들에서, 모바일 애플리케이션에 대한 요청된 피쳐들의 세트는 최소 운영 체제 버전, 하나 이상의 적정 국가, 및/또는 모바일 디바이스의 하나 이상의 피쳐를 포함할 수 있다. 디바이스 필터는 비교한 것에 기초하여 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스에 대한 식별자들의 세트를 포함할 수 있고, 요청하는 모바일 디바이스에 대한 디바이스 피쳐들의 세트를 식별하는 데이터 또는 해당 모바일 디바이스에 대한 식별자에 기초하여 콘텐츠 아이템을 필터링아웃하기 위해 사용될 수 있다.
따라서, 디바이스 필터는 모바일 디바이스를 머신 러닝에 기초해서 반응성 식별하는 것이 아니라, 해당 콘텐츠 아이템을 위해 변환할 수 없는 모바일 디바이스를 사전에 식별할 수 있다(예를 들어, 대응하는 모바일 애플리케이션을 설치함). 더욱이, 어떤 콘텐츠 아이템에 대해서 변환될 수 없는 모바일 디바이스를 사전에 식별하면, 콘텐츠 아이템을 비호환 디바이스로 서비스함으로써 생성되었을 추가 데이터를 제거하기 때문에 머신 러닝 모델의 속도가 개선될 수 있다.
전술된 내용이 콘텐츠 아이템과 연관된 모바일 애플리케이션과의 클라이언트 디바이스 비호환성에 기초하여 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링하는 것의 개요를 제공했지만, 이러한 시스템을 구현하기 위한 더 특정한 구현예 및 시스템이 이제 설명될 것이다.
II. 콘텐츠 아이템을 선택하고 서비스하기 위한 시스템의 구현예의 개요
도 1은 네트워크(106)와 같은 적어도 하나의 컴퓨터 네트워크를 통해 정보를 제공하기 위한 시스템(100)의 일 구현형태의 블록도이다. 네트워크(106)는 근거리 네트워크(LAN), 광역 네트워크(WAN), 공중 교환 전화 네트워크(PSTN)와 같은 전화 네트워크, 무선 링크, 인트라넷, 인터넷, 또는 이들의 조합을 포함할 수 있다. 시스템(100)은 콘텐츠 아이템 선택 시스템(108)과 같은 적어도 하나의 데이터 처리 시스템을 더 포함할 수 있다. 콘텐츠 아이템 선택 시스템(108)은, 네트워크(106)를 통해서 예를 들어 리소스 서버(104), 클라이언트 디바이스(110), 및/또는 제 3 자 콘텐츠 서버(102)와 통신하기 위한 적어도 하나의 로직 디바이스, 예컨대 데이터 프로세서를 포함하는 컴퓨팅 디바이스를 포함할 수 있다. 콘텐츠 아이템 선택 시스템(108)은, 본 명세서에서 설명되는 하나 이상의 동작을 수행하며 메모리 디바이스에 저장되는 명령을 실행하도록 구성되는 하나 이상의 데이터 프로세서, 예컨대 콘텐츠 배치 프로세서를 포함할 수 있다. 다르게 말하면, 콘텐츠 아이템 선택 시스템(108)의 하나 이상의 데이터 프로세서 및 메모리 디바이스가 처리 모듈을 구성할 수 있다. 프로세서는 마이크로프로세서, 주문형 집적회로(ASIC), 필드-프로그래밍가능 게이트 어레이(FPGA) 등, 또는 이들의 조합을 포함할 수 있다. 메모리는 프로세서에게 프로그램 명령을 제공할 수 있는 전자적, 광학적, 자기적, 또는 임의의 다른 저장 또는 송신 디바이스를 포함할 수도 있으나, 이에 한정되는 것은 아니다. 메모리는 플로피 디스크, 콤팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다기능 디스크(DVD), 자기적 디스크, 메모리 칩, 판독-전용 메모리(ROM), 랜덤-액세스 메모리(RAM), 전기적 소거가능 프로그래밍가능한 판독-전용 메모리(EEPROM), 소거가능한 프로그래밍가능 판독 전용 메모리(EPROM), 플래시 메모리, 광학적 미디어, 또는 프로세서가 명령을 판독할 수 있는 임의의 다른 적합한 메모리를 포함할 수 있다. 명령은 ActionScript®, C, C++, C#, Java®, JavaScript®, JSON, Perl®, HTML, HTML5, XML, Python®, 및 Visual Basic®과 같지만 이들로 한정되는 것은 아닌 임의의 적합한 컴퓨터 프로그래밍 언어로부터의 코드를 포함할 수 있다. 프로세서는 명령들을 처리하고 하나 이상의 콘텐츠 아이템이 리소스 서버(104) 및/또는 클라이언트 디바이스(110)로 프리젠테이션되는 것에 영향을 주기 위한 데이터를 출력할 수 있다. 처리 회로에 더하여, 콘텐츠 아이템 선택 시스템(108)은 데이터를 저장하도록 구성되는 하나 이상의 데이터베이스를 포함할 수 있다. 콘텐츠 아이템 선택 시스템(108)은 네트워크(106)를 통해 데이터를 수신하고 콘텐츠 아이템 선택 시스템(108)으로부터의 데이터를 네트워크(106) 상의 다른 디바이스들 중 임의의 것으로 제공하도록 구성되는 인터페이스를 더 포함할 수 있다. 콘텐츠 아이템 선택 시스템(108)은 광고 서버 또는 다른 서버와 같은 서버를 포함할 수 있다.
클라이언트 디바이스(110)는 컴퓨터, 랩탑, 데스크탑, 스마트 폰, 태블릿, 개인 휴대용 단말기, 텔레비전 세트용 셋-톱 박스, 스마트 텔레비전, 또는 네트워크(106)를 통해서 다른 디바이스와 통신하도록 구성되는 서버 디바이스와 같은 하나 이상의 디바이스를 포함할 수 있다. 디바이스는 데이터 프로세서 및 메모리를 포함하는 임의의 형태의 휴대용 전자 디바이스일 수 있다. 메모리는 프로세서에 의해 실행되면 프로세서가 본 명세서에서 설명되는 동작 중 하나 이상을 수행하게 하는 기계 명령을 저장할 수 있다. 메모리는 하나 이상의 리소스, 콘텐츠 아이템 등을 컴퓨팅 디바이스에 프리젠테이션하는 것에 영향을 주기 위한 데이터도 역시 저장할 수 있다. 프로세서는 마이크로프로세서, 주문형 집적회로(ASIC), 필드-프로그래밍가능 게이트 어레이(FPGA) 등, 또는 이들의 조합을 포함할 수 있다. 메모리는 프로세서에게 프로그램 명령을 제공할 수 있는 전자적, 광학적, 자기적, 또는 임의의 다른 저장 또는 송신 디바이스를 포함할 수도 있으나, 이에 한정되는 것은 아니다. 메모리는 플로피 디스크, 콤팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다기능 디스크(DVD), 자기적 디스크, 메모리 칩, 판독-전용 메모리(ROM), 랜덤-액세스 메모리(RAM), 전기적 소거가능 프로그래밍가능한 판독-전용 메모리(EEPROM), 소거가능한 프로그래밍가능 판독 전용 메모리(EPROM), 플래시 메모리, 광학적 미디어, 또는 프로세서가 명령을 판독할 수 있는 임의의 다른 적합한 메모리를 포함할 수 있다. 명령은 ActionScript®, C, C++, C#, HTML, Java®, JavaScript®, Perl®, Python®, Visual Basic®, 및 XML과 같지만 이들로 한정되는 것은 아닌 임의의 적합한 컴퓨터 프로그래밍 언어로부터의 코드를 포함할 수 있다.
클라이언트 디바이스(110)는 다른 컴퓨팅 디바이스로부터 네트워크(106)를 거쳐 콘텐츠를 취출하기 위한 소프트웨어 애플리케이션(예를 들어, 웹 브라우저 또는 다른 애플리케이션)을 실행할 수 있다. 이러한 애플리케이션은 리소스 서버(104)로부터 당사자 콘텐츠를 취출하도록 구성될 수 있다. 일부 경우에, 클라이언트 디바이스(110)에서 실행되는 애플리케이션은 그 자체가 당사자 콘텐츠(예를 들어, 게임, 미디어 플레이어 등)일 수 있다. 일 구현형태에서, 클라이언트 디바이스(110)는 클라이언트 디바이스의 디스플레이에 브라우저 윈도우를 제공하는 웹 브라우저 애플리케이션을 실행할 수 있다. 브라우저 윈도우를 제공하는 웹 브라우저 애플리케이션은 웹 주소와 같은 URL(uniform resource locator)의 입력을 입력 디바이스(예를 들어, 포인팅 디바이스, 키보드, 터치 스크린, 또는 다른 형태의 입력 디바이스)로부터 수신함으로써 작동할 수 있다. 그러면, 웹 브라우저 애플리케이션으로부터의 명령을 실행하는 클라이언트 디바이스의 하나 이상의 프로세서는 네트워크(106)에 연결되고 URL 주소에 의해 참조되는 다른 디바이스(예를 들어, 리소스 서버(104))로부터 데이터를 요청할 수 있다. 그러면, 다른 디바이스는 웹페이지 데이터 및/또는 다른 데이터를 클라이언트 디바이스(110)로 제공하고, 이것은 시각적 인덱스들이 클라이언트 디바이스(110)의 디스플레이에 의해 디스플레이되게 한다. 따라서, 브라우저 윈도우는 취출된 당사자 콘텐츠, 예컨대 다양한 웹사이트로부터의 웹페이지를 디스플레이하여 당사자 콘텐츠와의 사용자 상호작용을 가능하게 한다.
리소스 서버(104)는 컴퓨팅 디바이스, 예컨대 웹페이지 또는 다른 리소스(예를 들어, 물품, 코멘트 쓰레드, 음악, 비디오, 그래픽, 검색 결과, 정보 피드들 등)와 같은 리소스를 호스팅하도록 구성되는 서버를 포함할 수 있다. 리소스 서버(104)는 컴퓨터 서버(예를 들어, 파일 전송 프로토콜(FTP) 서버, 파일 공유 서버, 웹 서버 등)이거나 서버들의 조합(예를 들어, 데이터 센터, 클라우드 컴퓨팅 플랫폼 등)일 수 있다. 리소스 서버(104)는 리소스 데이터 또는 다른 콘텐츠(예를 들어, 텍스트 문서, PDF 파일, 및 다른 형태의 전자 문서)를 클라이언트 디바이스(110)로 제공할 수 있다. 일 구현형태에서, 클라이언트 디바이스(110)는 네트워크(106)를 통해 리소스 서버(104)에 액세스하여, 리소스 서버(104)의 리소스의 프리젠테이션에 영향을 주기 위한 데이터를 요청할 수 있다.
하나 이상의 제 3 자 콘텐츠 제공자는 제 3 자 콘텐츠 아이템에 대한 데이터를 네트워크(106)를 통해 콘텐츠 아이템 선택 시스템(108) 및/또는 다른 컴퓨팅 디바이스로 직접적으로 또는 간접적으로 제공하기 위한 제 3 자 콘텐츠 서버(102)를 포함할 수 있다. 콘텐츠 아이템은 클라이언트 디바이스(110)의 디스플레이에 제공될 수 있는 임의의 포맷일 수 있고, 예를 들어 그래픽, 텍스트, 이미지, 오디오, 비디오 등일 수 있다. 콘텐츠 아이템은 또한 포맷들의 조합(하이브리드)일 수도 있다. 콘텐츠 아이템은 배너 콘텐츠 아이템, 사이성(interstitial) 콘텐츠 아이템, 팝업 콘텐츠 아이템, 리치 미디어(rich media) 콘텐츠 아이템, 하이브리드 콘텐츠 아이템, Flash® 콘텐츠 아이템, 교차-도메인 아이프레임(iframe) 콘텐츠 아이템 등일 수 있다. 또한, 콘텐츠 아이템은 하이퍼링크, 메타데이터, 링크, 머신에 의해 실행가능한 명령, 주석 등과 같은 임베딩된 정보를 포함할 수 있다. 일부 실례들에서, 제 3 자 콘텐츠 서버(102)는 콘텐츠 아이템 선택 시스템(108)에 통합될 수 있고, 및/또는 제 3 자 콘텐츠 아이템에 대한 데이터는 콘텐츠 아이템 선택 시스템(108)의 데이터베이스에 저장될 수 있다.
일 구현형태에서, 콘텐츠 아이템 선택 시스템(108)은 네트워크(106)를 통하여 리소스와 함께 제공할 콘텐츠 아이템에 대한 요청을 수신할 수 있다. 수신된 요청은 리소스 서버(104), 클라이언트 디바이스(110), 및/또는 임의의 다른 컴퓨팅 디바이스로부터 수신될 수 있다. 리소스 서버(104)는, 콘텐츠 아이템 선택 시스템(108)이 리소스 서버(104)에 당사자 콘텐츠 제공자의 하나 이상의 리소스와 함께 제 3 자 콘텐츠 아이템을 제공하게 하는 명령을 포함할 수 있는 당사자 콘텐츠 제공자에 의해 소유되거나 실행될 수 있다. 일 구현형태에서, 리소스는 웹페이지를 포함할 수 있다. 클라이언트 디바이스(110)는 사용자에 의해 작동되는 컴퓨팅 디바이스(디바이스 식별자로 표현됨)일 수 있으며, 이것은 리소스 서버(104)의 리소스에 액세스할 경우, 콘텐츠 아이템이 예를 들면 리소스와 함께 제공되게 하는 요청을 콘텐츠 아이템 선택 시스템(108)에 할 수 있다. 콘텐츠 아이템 요청은 요청 디바이스 정보(예를 들어, 웹 브라우저 타입, 운영 체제 타입, 요청 디바이스로부터의 하나 이상의 이전의 리소스 요청, 요청 디바이스에 의해 수신되는 하나 이상의 이전의 콘텐츠 아이템, 요청 디바이스에 대한 언어 셋팅, 요청 디바이스의 지리적 위치, 요청 디바이스에서의 시각, 요청 디바이스에서의 요일, 요청 디바이스에서의 월일, 요청 디바이스에서의 연월일 등) 및 리소스 정보(예를 들어, 요청된 리소스의 URL, 요청된 리소스의 콘텐츠의 하나 이상의 키워드, 리소스의 콘텐츠의 텍스트, 리소스의 타이틀, 리소스의 카테고리, 리소스의 타입 등)를 포함할 수 있다. 콘텐츠 아이템 선택 시스템(108)이 수신하는 정보는 클라이언트 디바이스(110)를 나타내는 디바이스 식별자(예를 들어, 랜덤 번호)를 보유하는 하이퍼텍스트 전송 프로토콜(HTTP) 쿠키를 포함할 수 있다. 일부 구현형태들에서, 디바이스 정보 및/또는 리소스 정보는 콘텐츠 아이템 요청 URL에 첨부될 수 있다(예를 들어, contentitem.item/page/contentitem?devid=abc123&devnfo=A34r0). 일부 구현형태들에서, 디바이스 정보 및/또는 리소스 정보는 콘텐츠 아이템 요청 URL에 첨부되기 전에 인코딩될 수 있다. 요청 디바이스 정보 및/또는 리소스 정보는, 요청된 리소스와 함께 서비스되고 클라이언트 디바이스(110)의 디스플레이에 제공될 제 3 자 콘텐츠 아이템을 선택하기 위해서 콘텐츠 아이템 선택 시스템(108)에 의해 이용될 수 있다.
일부 실례들에서, 리소스 서버(104)의 리소스는 검색 엔진 피쳐를 포함할 수 있다. 검색 엔진 피쳐는 입력 피쳐(입력 텍스트 박스 등)를 통해서 검색 질의(예를 들어, 텍스트의 스트링)를 수신할 수 있다. 검색 엔진은 검색 질의에 기초한 관련 검색 결과에 대해서 문서(예를 들어, 다른 리소스, 예컨대 웹페이지 등)의 인덱스를 검색할 수 있다. 검색 결과는 제 2 리소스로서 송신되어, 관련 검색 결과, 예컨대 검색 결과 웹페이지를 클라이언트 디바이스(110)의 디스플레이에 제공할 수 있다. 검색 결과는 웹페이지 타이틀, 하이퍼링크 등을 포함할 수 있다. 또한, 하나 이상의 제 3 자 콘텐츠 아이템이 검색 결과 웹페이지의 콘텐츠 아이템 슬롯 내에 검색 결과와 함께 제공될 수 있다. 이에 따라서, 리소스 서버(104) 및/또는 클라이언트 디바이스(110)는 콘텐츠 아이템 선택 시스템(108)으로부터의 하나 이상의 콘텐츠 아이템이 검색 결과 웹페이지의 콘텐츠 아이템 슬롯 내에 제공되도록 요청할 수 있다. 콘텐츠 아이템 요청은 추가적 정보, 예컨대 사용자 디바이스 정보, 리소스 정보, 콘텐츠 아이템의 양, 콘텐츠 아이템에 대한 포맷, 검색 질의 스트링, 검색 질의 스트링의 키워드, 질의에 관련된 정보(예를 들어, 지리적 위치 정보 및/또는 시간 정보) 등을 포함할 수 있다. 일부 구현형태들에서, 혼동을 피하기 위해서 검색 결과 및 제 3 자 콘텐츠 아이템 사이에 경계가 이루어질 수 있다.
일부 구현형태들에서, 제 3 자 콘텐츠 제공자는 콘텐츠 아이템 선택 시스템(108)에 의한 콘텐츠 아이템의 선택 및 서비스제공을 관리할 수 있다. 예를 들어, 제 3 자 콘텐츠 제공자는, 콘텐츠 아이템을 서빙하는 것과 관련된 하나 이상의 콘텐츠 아이템 조건 또는 제약을 포함할 수 있는 사용자 인터페이스를 통해서, 입찰 값 및/또는 선택 기준을 설정할 수 있다. 제 3 자 콘텐츠 제공자는 콘텐츠 아이템 및/또는 콘텐츠 아이템들의 세트가 특정 지리적 위치 또는 지역, 특정 언어, 특정 운영 체제, 특정 웹 브라우저 등과 연관된 디바이스 식별자를 가지는 사용자 디바이스(110)에 대해서 선택되고 서비스되어야 한다고 규정할 수 있다. 다른 구현형태에서, 제 3 자 콘텐츠 제공자는, 웹페이지, 문서 등과 같은 리소스가 특정 키워드, 어구 등과 매칭되거나 이것과 관련된 콘텐츠를 포함하는 경우에 콘텐츠 아이템 또는 콘텐츠 아이템들의 세트가 선택되고 서비스되어야 한다고 규정할 수 있다. 제 3 자 콘텐츠 제공자는 여러 콘텐츠 아이템들에 대해 하나의 입찰 값을 설정할 수 있고, 콘텐츠 아이템들의 서브세트에 대해 입찰 값을 설정할 수 있으며, 및/또는 각각의 콘텐츠 아이템에 대한 입찰 값을 설정할 수 있다. 또한, 제 3 자 콘텐츠 제공자는 사용자가 해당 제 3 자 콘텐츠 아이템을 클릭하는지 여부, 사용자가 제 3 자 콘텐츠 아이템의 프리젠테이션에 기초하여 특정 액션을 수행하는지 여부, 제 3 자 콘텐츠 아이템이 선택되고 서비스되는지 여부에 기초한 입찰 값의 타입, 예컨대 입찰 및/또는 다른 타입의 입찰을 설정할 수 있다.
III. 콘텐츠 아이템의 디바이스 -기반 필터링을 위한 시스템의 구현형태
전술된 내용이 콘텐츠 아이템을 선택하고 클라이언트 디바이스(110)로 서비스하기 위한 시스템(100)의 개요를 제공했지만, 디바이스-기반 필터를 사용하여 어떤 클라이언트 디바이스에 대한 콘텐츠 아이템을 필터링, 선택, 및 서비스하기 위한 시스템의 구현형태들이 도 2 내지 도 5를 참조하여 더 상세히 설명될 것이다.
도 2는 리소스(210)가 클라이언트 디바이스(200)의 디스플레이(202)에 의해 디스플레이될 수 있는 모바일 클라이언트 디바이스(200), 예컨대 스마트폰 또는 태블릿을 도시한다. 리소스(210)는 클라이언트 디바이스(200)에서 실행중인 모바일 웹 브라우저를 통해서 디스플레이되는 웹페이지일 수 있고, 또는 리소스(210)는 클라이언트 디바이스(200)에서 실행중인 애플리케이션일 수 있다. 일부 구현형태들에서, 클라이언트 디바이스(200)는 리소스(210)가 모바일 웹 브라우저를 통해 클라이언트 디바이스(200)의 디스플레이(202)에 당사자 콘텐츠(212)(예를 들어, 웹페이지, 웹사이트, 또는 애플리케이션 콘텐츠)를 디스플레이하게 하는 코드를 실행할 수 있다. 일부 구현형태들에서, 리소스(210)는 하나 이상의 제 3 자 콘텐츠 아이템(214)이 당사자 콘텐츠(212)와 함께 제공되도록 요청하기 위한 코드를 더 포함할 수 있다. 그러면, 이러한 명령을 실행하는 클라이언트 디바이스(200)의 하나 이상의 프로세서는 네트워크(106)와 같은 네트워크에 연결된 다른 디바이스(예를 들어, 콘텐츠 아이템 선택 시스템(108))로부터 데이터(302)를 요청할 수 있다. 그러면, 다른 디바이스는 제 3 자 콘텐츠 아이템(214)을 클라이언트 디바이스(200)에 디스플레이하기 위한 데이터(304)를 제공할 수 있고, 이것은 시각적 인덱스들이 클라이언트 디바이스(200)의 디스플레이(202)에 의해 디스플레이되게 한다.
일부 실례들에서, 클라이언트 디바이스(200)의 사용자는 제 3 자 콘텐츠 아이템(214)과 상호작용할 수 있다. 제 3 자 콘텐츠 아이템(214)과의 상호작용은 제 3 자 콘텐츠 아이템(214)과 연관된 링크를 포함할 수 있다. 링크는, 제 3 자 콘텐츠 아이템(214)과 연관된 웹페이지 또는 제 3 자 콘텐츠 아이템(214)의 제 3 자에 대한 메인 웹페이지와 같은 제 3 자 리소스로의 링크일 수 있고, 또는 링크는 모바일 애플리케이션에 대한 실행가능한 파일을 다운로드하기 위한 랜딩 페이지에 대한 링크, 예컨대 애플리케이션 스토어 또는 별개의 웹사이트로부터 모바일 애플리케이션에 대한 랜딩 페이지로의 링크일 수 있다. 제 3 자 콘텐츠 아이템(214)과 상호작용하면, 모바일 웹 브라우저는 해당 링크의 웹페이지에 대한 데이터를 취출하고, 모바일 애플리케이션에 대한 실행가능한 파일을 다운로드하기 위한 랜딩 페이지를 취출하거나, 해당 모바일 애플리케이션에 대한 실행가능한 파일을 다운로드할 수 있다.
도 3은, 모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링을 위한, 콘텐츠 아이템 선택 모듈(120) 및 콘텐츠 아이템 필터 모듈(130)을 포함하는 도 1의 콘텐츠 아이템 선택 시스템(108)의 일부의 구현 형태의 블록도를 도시한다. 콘텐츠 아이템 선택 시스템(108)은 하나 이상의 데이터베이스, 예컨대 애플리케이션 데이터베이스(140), 디바이스 데이터베이스(150), 디바이스 필터 데이터베이스(160), 및/또는 분석 데이터베이스(170)를 더 포함한다.
데이터베이스(140, 150, 160, 170)는 콘텐츠 아이템 필터 모듈(130)에 대한 데이터를 저장하고 및/또는 데이터를 해당 모듈로 제공할 수 있다. 데이터베이스(140, 150, 160, 170)는 정적 스토리지 디바이스, 예컨대 ROM, 고상 드라이브(SSD), 플래시 메모리(예를 들어, EEPROM, EPROM 등), 자기적 디스크, 광학적 디스크 등, 복수 개의 정적 스토리지 디바이스, 클라우드 스토리지 시스템, 서버, 및/또는 데이터를 저장하고 제공할 수 있는 임의의 다른 전자 디바이스를 포함할 수 있다. 도 3에 도시되는 구현형태가 데이터베이스(140, 150, 160, 170)를 개별 데이터베이스로 도시하고 있지만, 데이터베이스(140, 150, 160, 170)는 단일의 데이터베이스 또는 데이터베이스들의 세트로 통합될 수 있다는 것이 이해되어야 한다.
콘텐츠 아이템 선택 모듈(120)은 네트워크(106)를 통해 콘텐츠 아이템 요청(302)을 수신하도록 구성된다. 도 1의 클라이언트 디바이스(110) 또는 도 2의 클라이언트 디바이스(200)와 같은 클라이언트 디바이스 또는 리소스 서버(104)와 같은 리소스 서버는 콘텐츠 아이템 요청(302)을 네트워크(106)를 통해서 콘텐츠 아이템 선택 시스템(108)으로 전송할 수 있다. 콘텐츠 아이템 요청(302)은 클라이언트 디바이스의 특성(예를 들어, 클라이언트 디바이스와 연관된 고유 식별자, 클라이언트 디바이스의 타입, 클라이언트 디바이스의 디스플레이 타입, 디스플레이의 크기 등) 및/또는 콘텐츠 아이템과 함께 제공될 리소스의 특성(예를 들어, 리소스의 URL, 리소스의 콘텐츠의 하나 이상의 키워드, 리소스의 콘텐츠의 텍스트, 리소스의 타이틀, 리소스의 카테고리, 리소스의 타입, 리소스의 속성, 리소스의 상호작용 레벨, 리소스의 랭킹, 리소스의 대중성, 해당 리소스와 연관된 발행자(publisher)의 카테고리, 해당 리소스와 연관된 발행자의 타입, 해당 리소스와 연관된 발행자의 속성 등)을 나타내는 하나 이상의 파라미터를 포함할 수 있다. 일부 구현형태들에서, 전술된 파라미터들은 콘텐츠 아이템 요청 URL에 첨부되거나 그 안에 포함될 수 있다(예를 들어, /page/contentitem?devid=abc123&devnfo=A34r0).
콘텐츠 아이템 요청(302)에 응답하여, 콘텐츠 아이템 선택 모듈(120)은 콘텐츠 아이템(304)을 선택하고 서비스하도록 구성된다. 일부 구현형태들에서, 콘텐츠 아이템 선택 모듈(120)은 경매를 수행하도록 구성된다. 즉, 콘텐츠 아이템 선택 모듈(120)은, 콘텐츠 아이템 요청(302)에 적어도 부분적으로 기초하여 하나 이상의 콘텐츠 아이템에 대한 점수와 같은 하나 이상의 값을 생성하고, 서비스될 하나 이상의 콘텐츠 아이템을 선택할 수 있다. 일부 실례들에서, 콘텐츠 아이템 선택 모듈(120)은 값들의 순위를 결정하고(예를 들어, 가장 큰 값부터 가장 작은 값까지), 이러한 랭킹에 기초하여 어떤 값과 연관된 콘텐츠 아이템을 선택한다(예를 들어, 최고 순위를 가지는 값 또는 점수와 연관된 콘텐츠 아이템을 선택함).
선택된 콘텐츠 아이템(304)을 디스플레이하기 위한 데이터는 송신되거나 콘텐츠 아이템 선택 모듈(120)에 의해서 네트워크(106)를 거쳐 클라이언트 디바이스 및/또는 리소스 서버로 서비스될 수 있다. 이러한 데이터는 데이터베이스로부터 액세스될 수 있는 그래픽 데이터, 텍스트 데이터, 이미지 데이터, 오디오 데이터, 비디오 데이터 등을 포함할 수 있다.
일부 구현형태들에서, 콘텐츠 아이템 필터 모듈(130)은 경매가 콘텐츠 아이템 선택 모듈(120)에 의해 수행될 수 있도록 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링할 수 있다. 콘텐츠 아이템 필터 모듈(130)은 요청 디바이스가 콘텐츠 아이템과 연관된 애플리케이션을 설치할 수 있는지 여부에 기초하여 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 제거한다. 즉, 클라이언트 디바이스, 예컨대 도 2의 클라이언트 디바이스(200)가 해당 콘텐츠 아이템과 연관된 애플리케이션을 설치할 수 없으면, 이후 콘텐츠 아이템 필터 모듈(130)은 적정 콘텐츠 아이템들의 세트로부터 해당 콘텐츠 아이템을 제거하여, 콘텐츠 아이템 선택 모듈(120)이 경매를 수행할 때에 제거된 콘텐츠 아이템을 아예 고려조차 하지 않게 한다.
콘텐츠 아이템 필터 모듈(130)은 하나 이상의 디바이스 필터에 기초하여 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템들을 필터링한다. 하나 이상의 디바이스 필터는 디바이스 필터 데이터베이스(160)로부터 저장되고 및/또는 액세스될 수 있다. 디바이스 필터는 투플(tuple)들의 세트 또는 목록을 포함할 수 있다. 투플은 애플리케이션과 연관된 제 1 고유 식별자 및 해당 애플리케이션과 호환되지 않는 대응하는 공지된 모바일 디바이스를 식별하는 제 2 고유 식별자, 예컨대 <ApplnID, DeviceID>를 포함할 수 있다. 일부 실례들에서, 투플은 해당 애플리케이션에 대한 최소 운영 체제 버전을 식별하는 제 3 고유 식별자를 더 포함할 수 있다. 일부 실례들에서, 여러 공지된 모바일 디바이스가 유사한 피쳐, 유사한 운영 체제 버전 등을 가지는 경우, 여러 공지된 모바일 디바이스는 단일의 고유 식별자와 연관될 수 있다. 일부 실례들에서, 대응하는 공지된 모바일 디바이스를 식별하는 각각의 고유 식별자는 디바이스 모델, 디바이스 제조사, 디바이스 브랜드, 및/또는 디바이스 피쳐에 기초할 수 있다.
콘텐츠 아이템 선택 시스템(108)에 의해 수신된 콘텐츠 아이템 요청(302)은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 모바일 디바이스에 대한 식별자를 포함할 수 있다. 일부 구현형태들에서, 콘텐츠 아이템 필터 모듈(130)은 모바일 디바이스에 대한 식별자(예를 들어, IMEI, ESN, MEID 등)를 사용하여 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정할 수 있다. 일부 실례들에서, 모바일 디바이스에 대한 식별자는, 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정하기 위하여 사용될 수 있는 디바이스 모델, 제조사, 및/또는 브랜드에 대응할 수 있다. 다른 구현형태들에서, 콘텐츠 아이템 필터 모듈(130)은 디바이스 피쳐들의 세트를 식별하는 데이터를 디바이스 데이터베이스(150)로부터 얻어진 공지된 디바이스들의 세트와 비교하여, 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정할 수 있다.
대응하는 공지된 모바일 디바이스에 대한 고유 식별자가 결정되면, 콘텐츠 아이템 필터 모듈(130)은 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 디바이스 필터 데이터베이스(160) 내에 저장된 투플들의 식별자와 비교하여 해당 요청을 전송하는 공지된 모바일 디바이스와 호환되지 않는 애플리케이션들과 연관되는 식별자들의 세트를 결정할 수 있다. 어떤 애플리케이션과 연관된 콘텐츠 아이템은 콘텐츠 아이템을 해당 애플리케이션과 연관시키는 데이터, 예컨대 연관된 애플리케이션의 고유 식별자에 대한 메타데이터를 포함할 수 있다. 콘텐츠 아이템 필터 모듈(130)은 경매에 대한 적정 콘텐츠 아이템들의 세트를 비호환 애플리케이션과 연관된 식별자들의 세트와 비교하고, 이러한 비교에 기초하여 적정 콘텐츠 아이템들의 세트로부터 하나 이상의 콘텐츠 아이템을 필터링아웃한다. 그러면 콘텐츠 아이템들의 나머지 또는 필터링된 세트는 경매를 위해서 콘텐츠 아이템 선택 모듈(120)로 전송될 수 있다. 콘텐츠 아이템 선택 모듈(120)은 콘텐츠 아이템 경매를 통해서 적정 콘텐츠 아이템들의 필터링된 세트로부터 하나의 콘텐츠 아이템을 선택하고, 선택된 콘텐츠 아이템(304)을 요청에 응답하여 공지된 모바일 디바이스에 서비스한다.
콘텐츠 아이템 필터 모듈(130)도 디바이스 필터 데이터베이스(160)의 하나 이상의 콘텐츠 아이템 필터를 생성할 수 있다. 하나 이상의 콘텐츠 아이템 필터들의 투플을 생성하기 위하여, 콘텐츠 아이템 필터 모듈(130)은 애플리케이션 데이터베이스(140)로부터 어떤 애플리케이션에 대한 요청된 피쳐들의 세트에 액세스한다. 일부 실례들에서, 애플리케이션 데이터베이스(140)는 로컬 데이터베이스일 수 있고 또는 애플리케이션 데이터베이스(140)는 콘텐츠 아이템 필터 모듈(130)에 비해 원격 데이터베이스일 수 있다. 일부 실례들에서, 애플리케이션 데이터베이스(140)는 애플리케이션 스토어일 수 있다. 일부 구현형태들에서, 애플리케이션 스토어는 콘텐츠 아이템 경매를 수행하는 엔티티와 별개인 엔티티에 의해 제어된다. 요청된 피쳐들의 세트는 API를 사용하여 취출되어 애플리케이션 스토어와 상호작용할 수 있다. 다른 구현형태들에서, 요청된 피쳐들의 세트는 정보를 통해서 애플리케이션 스토어의 해당 애플리케이션에 대한 랜딩 페이지로부터 액세스될 수 있다. 요청된 피쳐들의 세트는 하나 이상의 하드웨어 피쳐(예를 들어, 카메라, 특정 카메라 확대 레벨, 근거리장 통신 등), 하나 이상의 소프트웨어 피쳐(예를 들어, 다른 애플리케이션, 플러그인 등), 운영 체제 타입, 최소 운영 체제 버전, 적정 국가들의 목록 또는 세트 등을 포함할 수 있다.
콘텐츠 아이템 필터 모듈(130)도 피쳐들의 세트와 각각 연관되는 하나 이상의 공지된 모바일 디바이스를 식별하는 데이터 구조체에 액세스한다. 데이터 구조체는, 공지된 모바일 디바이스의 각각(또는 유사한 모바일 디바이스들의 세트)에 대한 고유 식별자 및 피쳐들의 세트를 나타내는 데이터 또는 공지된 모바일 디바이스에 대한 다른 데이터를 포함하는 테이블 또는 다른 데이터 구조체일 수 있다. 예를 들면, 피쳐들의 세트는 하나 이상의 하드웨어 피쳐, 하나 이상의 소프트웨어 피쳐, 운영 체제 타입, 운영 체제 버전, 모바일 캐리어, 모델명, 제조사 등을 포함할 수 있다. 데이터 구조체의 피쳐들의 세트는 하나 이상의 디바이스 제조사에 의해 제공되고 및/또는 다른 데이터베이스로부터 취출될 수 있다.
어떤 애플리케이션에 대한 요청된 피쳐들의 액세스된 세트 및 하나 이상의 공지된 모바일 디바이스에 대한 데이터 구조체의 피쳐들의 세트를 사용하여, 콘텐츠 아이템 필터(130)는 요청된 피쳐들의 세트를 공지된 모바일 디바이스들 각각에 대한 피쳐들의 연관된 세트들 각각과 비교함으로써 디바이스 필터를 생성한다. 즉, 공지된 모바일 디바이스들 각각에 대한 세트 피쳐들이 해당 애플리케이션에 대한 요청된 피쳐들의 세트의 세트 피쳐들과 매칭되거나 초과하지 않으면, 이후 공지된 모바일 디바이스(또는 모바일 디바이스들의 세트)에 대한 고유 식별자가 디바이스 필터에 추가된다(예를 들어, 해당 애플리케이션 식별자 및 디바이스 식별자의 투플을 추가함으로써). 공지된 모바일 디바이스들의 세트의 피쳐가 해당 애플리케이션에 대한 요청된 피쳐들의 세트의 피쳐와 매칭되거나 이를 초과하면, 이후 공지된 모바일 디바이스에 대한 고유 식별자는 디바이스 필터에 포함되지 않는다.
일부 구현형태들에서, 콘텐츠 아이템 필터(130)는, 콘텐츠 아이템 요청(302)이 클라이언트 디바이스로부터 수신되거나 및/또는 어떤 애플리케이션과 연관된 콘텐츠 아이템이 적정 콘텐츠 아이템들의 세트의 일부인 경우 취출되도록 디바이스 필터 데이터베이스(160)에 생성된 디바이스 필터를 저장한다.
일부 구현형태들에서, 분석 데이터베이스(170)도 콘텐츠 아이템 필터(130)에 의해 액세스될 수 있다. 분석 데이터베이스(170)는 하나 이상의 콘텐츠 아이템의 노출(impression) 및 하나 이상의 콘텐츠 아이템에 대한 변환을 나타내는 데이터를 포함할 수 있다. 디바이스 필터 중 하나 이상의 대상인 애플리케이션과 연관된 콘텐츠 아이템들의 경우, 콘텐츠 아이템 필터(130)는 분석 데이터베이스(170)에 액세스하여 디바이스 필터에 포함되었던 공지된 모바일 디바이스 중 하나 이상에 대응하는 여러 변환(예를 들어, 다운로드 및/또는 설치)을 결정할 수 있다. 변환의 개수가 미리 결정된 번호(예를 들어, 10)보다 크면, 이후 공지된 모바일 디바이스에 대한 식별자는 디바이스 필터로부터 제거될 수 있다. 따라서, 미리 결정된 개수의 변환이 발생했는지 여부에 기초하여, 어떤 필터링된 디바이스가 해당 애플리케이션과 호환되지 않는지 여부를 점검하기 위해서 분석 데이터가 사용될 수 있다.
일부 구현형태들에서, 콘텐츠 아이템 필터(130)는 최소 운영 체제 버전, 요청 디바이스와 연관된 위치, 및/또는 요청 디바이스의 캐리어에 기초하여 콘텐츠 아이템을 필터링할 수도 있다. 예를 들면, 콘텐츠 아이템 필터(130)는, 해당 모바일 애플리케이션에 대한 요청된 피쳐들의 세트의 최소 운영 체제 버전을 요청 디바이스로부터 수신되는 디바이스 피쳐들의 세트의 운영 체제 버전 및/또는 요청 디바이스에 대한 식별자와 연관된 운영 체제 버전과 비교한 것에 기초하여, 적정 콘텐츠 아이템들의 세트로부터 하나의 모바일 애플리케이션과 연관된 콘텐츠 아이템을 필터링아웃할 수 있다. 일부 구현형태들에서, 콘텐츠 아이템 필터(130)는 애플리케이션의 최소 운영 체제 버전을 공지된 모바일 디바이스들 각각에 대한 최소 운영 체제 버전과 비교함으로써, 별개의 최소 운영 체제 버전 디바이스 필터를 생성할 수 있다. 최소 운영 체제 버전 디바이스 필터는, 콘텐츠 아이템 요청(302)이 클라이언트 디바이스로부터 수신되는 경우 및/또는 어떤 애플리케이션과 연관된 콘텐츠 아이템이 적정 콘텐츠 아이템들의 세트의 일부인 경우 취출되도록 디바이스 필터 데이터베이스(160)에 저장될 수 있다.
콘텐츠 아이템 필터(130)는, 해당 모바일 애플리케이션에 대한 적정 국가들의 세트(또는, 일부 실례들에서, 부적정 국가들의 세트)를 요청 디바이스로부터 수신된 위치를 식별하는 데이터 및/또는 요청 디바이스에 대한 모바일 캐리어를 식별하는 데이터에 비교한 것에 기초하여, 적정 콘텐츠 아이템의 세트로부터 모바일 애플리케이션과 연관된 콘텐츠 아이템을 필터링아웃할 수 있다. 캐리어를 식별하는 데이터는 모바일 디바이스의 홈 위치를 나타낼 수 있다(예를 들어, Verizon®은 미국에 홈 위치를 가지는 모바일 디바이스를 나타내고, O2는 영국에 홈 위치를 가지는 모바일 디바이스를 나타내는 등).
일부 구현형태들에서, 콘텐츠 아이템 요청(302)이 클라이언트 디바이스로부터 수신되면, 콘텐츠 아이템 필터(130)는 우선 요청 클라이언트 디바이스가 최소 운영 체제 버전 요구 사항을 만족하지 않는 콘텐츠 아이템을 필터링아웃할 수 있다. 예를 들면, 콘텐츠 아이템 필터(130)는 어떤 모바일 애플리케이션에 대한 요청된 피쳐들의 세트의 최소 운영 체제 버전을 요청 디바이스로부터 수신된 디바이스 피쳐들의 세트의 운영 체제 버전 및/또는 어떤 요청 디바이스에 대한 식별자와 연관된 운영 체제 버전과 비교할 수 있다. 일부 구현형태들에서, 콘텐츠 아이템 필터(130)는 디바이스 필터 데이터베이스(160)로부터 최소 운영 체제 버전 디바이스 필터를 취출하고 사용하여, 최소 운영 체제 버전에 기초하여 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링아웃할 수 있다.
그러면, 콘텐츠 아이템 필터(130)는 적정 콘텐츠 아이템들의 잔여 세트로부터 요청 클라이언트 디바이스가 적정 국가들의 세트를 만족하지 않는 콘텐츠 아이템을 필터링아웃할 수 있다. 콘텐츠 아이템 필터(130)는 어떤 모바일 애플리케이션에 대한 적정 국가들의 세트(또는, 일부 실례들에서, 부적정 국가들의 세트)를 요청 디바이스로부터 수신된 위치를 식별하는 데이터 및/또는 요청 디바이스에 대한 모바일 캐리어를 식별하는 데이터와 비교한다.
마지막으로, 콘텐츠 아이템 필터(130)는 하나 이상의 디바이스 필터에 기초하여 적정 콘텐츠 아이템들의 잔여 세트로부터 콘텐츠 아이템을 필터링아웃할 수 있다. 즉, 콘텐츠 아이템 필터(130)는 요청 디바이스에 대한 식별자(예를 들어, IMEI, ESN, MEID 등)를 사용하여 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정할 수 있다. 일부 실례들에서, 요청 디바이스에 대한 식별자는 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정하기 위하여 사용될 수 있는 디바이스 모델, 제조사, 및/또는 브랜드에 대응할 수 있다. 다른 구현형태들에서, 콘텐츠 아이템 필터 모듈(130)은 디바이스 피쳐들의 세트를 식별하는 데이터를 디바이스 데이터베이스(150)로부터의 공지된 디바이스들의 세트와 비교하여 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정한다. 요청 디바이스에 대한 대응하는 공지된 모바일 디바이스에 대한 고유 식별자가 결정되면, 콘텐츠 아이템 필터 모듈(130)은 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 디바이스 필터 데이터베이스(160) 내에 저장된 투플들의 식별자와 비교하여 해당 요청을 전송하는 공지된 모바일 디바이스와 호환되지 않는 애플리케이션들과 연관되는 식별자들의 세트를 결정한다. 그러면, 비호환 애플리케이션과 연관된 식별자들의 세트와 연관된 임의의 콘텐츠 아이템이 적정 콘텐츠 아이템들의 잔여 세트로부터 필터링아웃된다.
그러면, 잔여 적정 콘텐츠 아이템(또는 이러한 콘텐츠 아이템에 대한 식별자, 예컨대 고유한 콘텐츠 아이템 ID)의 결과적으로 얻어지는 세트가 콘텐츠 아이템 선택 모듈(120)로 전송된다. 콘텐츠 아이템 요청(302)에 응답하여, 예컨대 경매를 수행하는 것을 통하여 콘텐츠 아이템 선택 모듈(120)은 콘텐츠 아이템(304)을 선택하고 서비스한다. 즉, 콘텐츠 아이템 선택 모듈(120)은 적정 콘텐츠 아이템들의 잔여 세트의 하나 이상의 콘텐츠 아이템에 대한 하나 이상의 값, 예컨대 점수를, 콘텐츠 아이템 요청(302)에 적어도 부분적으로 기초하여 생성하고, 서비스될 하나 이상의 콘텐츠 아이템을 선택한다. 일부 실례들에서, 콘텐츠 아이템 선택 모듈(120)은 값들의 순위를 결정하고(예를 들어, 가장 큰 값부터 가장 작은 값까지), 이러한 랭킹에 기초하여 어떤 값과 연관된 콘텐츠 아이템을 선택한다(예를 들어, 최고 순위를 가지는 값 또는 점수와 연관된 콘텐츠 아이템을 선택함).
선택된 콘텐츠 아이템(304)을 디스플레이하기 위한 데이터는 송신되거나 콘텐츠 아이템 선택 모듈(120)에 의해서 네트워크(106)를 거쳐 요청 디바이스 및/또는 리소스 서버로 서비스된다. 이러한 데이터는 데이터베이스로부터 액세스될 수 있는 그래픽 데이터, 텍스트 데이터, 이미지 데이터, 오디오 데이터, 비디오 데이터 등을 포함할 수 있다.
도 4는 디바이스 필터를 생성하기 위해서 콘텐츠 아이템 선택 시스템에 의해 구현될 수 있는 예시적인 프로세스(400)를 도시한다. 프로세스(400)는 어떤 애플리케이션에 대한 요청된 피쳐들의 세트에 액세스하는 단계를 포함한다(블록 402). 요청된 피쳐들의 세트는 애플리케이션 데이터베이스로부터 액세스될 수 있다. 일부 실례들에서, 애플리케이션 데이터베이스는 로컬 데이터베이스일 수 있고 또는 애플리케이션 데이터베이스는 콘텐츠 아이템 선택 시스템에 비해 원격 데이터베이스일 수 있다. 일부 실례들에서, 애플리케이션 데이터베이스는 애플리케이션 스토어일 수 있다. 일부 구현형태들에서, 애플리케이션 스토어는 콘텐츠 아이템 경매를 수행하는 콘텐츠 아이템 선택 시스템과 별개인 엔티티에 의해 제어된다. 요청된 피쳐들의 세트는 API를 사용하여 취출되어 애플리케이션 스토어와 상호작용할 수 있다. 다른 구현형태들에서, 요청된 피쳐들의 세트는 정보를 통해서 애플리케이션 스토어의 해당 애플리케이션에 대한 랜딩 페이지로부터 액세스될 수 있다. 요구된 피쳐들의 세트는 하나 이상의 하드웨어 피쳐(예를 들어, 카메라, 특정 카메라 확대 레벨, 근거리장 통신 등), 하나 이상의 소프트웨어 피쳐(예를 들어, 다른 애플리케이션, 플러그인 등), 운영 체제 타입, 최소 운영 체제 버전, 적정 국가들의 목록 또는 세트 등을 포함할 수 있다.
프로세스(400)는 피쳐들의 세트와 각각 연관되는 복수 개의 공지된 모바일 디바이스를 식별하는 데이터 구조체에 액세스하는 단계를 포함한다(블록 404). 데이터 구조체는, 공지된 모바일 디바이스의 각각(또는 유사한 모바일 디바이스들의 세트)에 대한 고유 식별자 및 피쳐들의 세트를 나타내는 데이터 또는 공지된 모바일 디바이스에 대한 다른 데이터를 포함하는 테이블 또는 다른 데이터 구조체일 수 있다. 예를 들면, 피쳐들의 세트는 하나 이상의 하드웨어 피쳐, 하나 이상의 소프트웨어 피쳐, 운영 체제 타입, 운영 체제 버전, 모바일 캐리어, 모델명, 제조사 등을 포함할 수 있다. 데이터 구조체의 피쳐들의 세트는 하나 이상의 디바이스 제조사에 의해 제공되고 및/또는 다른 데이터베이스로부터 취출될 수 있다.
프로세스(400)는 디바이스 필터를 생성하는 단계를 포함한다(블록 406). 디바이스 필터를 생성하는 것은 요청된 피쳐들의 세트를 상기 데이터 구조체의 공지된 모바일 디바이스들의 세트 중 각각에 대한 상기 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초한다. 일부 구현형태들에서, 디바이스 필터는, 비교한 것에 기초하여 해당 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스들의 세트 중 하나 이상에 대한 식별자들의 세트를 포함할 수 있다. 즉, 공지된 모바일 디바이스들 각각에 대한 세트 피쳐들이 해당 애플리케이션에 대한 요청된 피쳐들의 세트의 세트 피쳐들과 매칭되거나 초과하지 않으면, 이후 공지된 모바일 디바이스(또는 모바일 디바이스들의 세트)에 대한 고유 식별자가 디바이스 필터에 추가된다(예를 들어, 해당 애플리케이션 식별자 및 디바이스 식별자의 투플을 추가함으로써). 공지된 모바일 디바이스에 대한 세트의 피쳐가 해당 애플리케이션에 대한 요청된 피쳐들의 세트의 피쳐와 매칭되거나 이를 초과하면, 이후 공지된 모바일 디바이스에 대한 고유 식별자는 디바이스 필터에 포함되지 않는다.
디바이스 필터는 투플(tuple)들의 세트 또는 목록을 포함할 수 있다. 투플은 애플리케이션과 연관된 제 1 고유 식별자 및 해당 애플리케이션과 호환되지 않는 대응하는 공지된 모바일 디바이스를 식별하는 제 2 고유 식별자, 예컨대 <ApplnID, DeviceID>를 포함할 수 있다. 일부 실례들에서, 투플은 해당 애플리케이션에 대한 최소 운영 체제 버전을 식별하는 제 3 고유 식별자를 더 포함할 수 있다. 일부 실례들에서, 여러 공지된 모바일 디바이스가 유사한 피쳐, 유사한 운영 체제 버전 등을 가지는 경우, 여러 공지된 모바일 디바이스는 단일의 고유 식별자와 연관될 수 있다. 일부 실례들에서, 대응하는 공지된 모바일 디바이스를 식별하는 각각의 고유 식별자는 디바이스 모델, 디바이스 제조사, 디바이스 브랜드, 및/또는 디바이스 피쳐에 기초할 수 있다.
프로세스(400)는 생성된 디바이스 필터를 저장하는 것을 더 포함한다(블록 408). 생성된 디바이스 필터는 도 3의 디바이스 필터 데이터베이스(160)와 같은 디바이스 필터 데이터베이스에 저장될 수 있다.
도 5는 디바이스-기반 필터를 사용하여 콘텐츠 아이템을 필터링하기 위해서 콘텐츠 아이템 선택 시스템에 의해 구현될 수 있는 예시적인 프로세스(500)를 도시한다. 프로세스(500)는 어떤 애플리케이션에 대한 요청된 피쳐들의 세트에 액세스하는 단계를 포함한다(블록 502). 요청된 피쳐들의 세트는 애플리케이션 데이터베이스로부터 액세스될 수 있다. 일부 실례들에서, 애플리케이션 데이터베이스는 로컬 데이터베이스일 수 있고 또는 애플리케이션 데이터베이스는 콘텐츠 아이템 선택 시스템에 비해 원격 데이터베이스일 수 있다. 일부 실례들에서, 애플리케이션 데이터베이스는 애플리케이션 스토어일 수 있다. 일부 구현형태들에서, 애플리케이션 스토어는 콘텐츠 아이템 경매를 수행하는 콘텐츠 아이템 선택 시스템과 별개인 엔티티에 의해 제어된다. 요청된 피쳐들의 세트는 API를 사용하여 취출되어 애플리케이션 스토어와 상호작용할 수 있다. 다른 구현형태들에서, 요청된 피쳐들의 세트는 정보를 통해서 애플리케이션 스토어의 해당 애플리케이션에 대한 랜딩 페이지로부터 액세스될 수 있다. 요청된 피쳐들의 세트는 하나 이상의 하드웨어 피쳐(예를 들어, 카메라, 특정 카메라 확대 레벨, 근-거리장 통신 등), 하나 이상의 소프트웨어 피쳐(예를 들어, 다른 애플리케이션, 플러그인 등), 운영 체제 타입, 최소 운영 체제 버전, 적정 국가들의 목록 또는 세트 등을 포함할 수 있다.
프로세스(500)는 피쳐들의 세트와 각각 연관되는 복수 개의 공지된 모바일 디바이스를 식별하는 데이터 구조체에 액세스하는 단계를 포함한다(블록 504). 데이터 구조체는, 공지된 모바일 디바이스의 각각(또는 유사한 모바일 디바이스들의 세트)에 대한 고유 식별자 및 피쳐들의 세트를 나타내는 데이터 또는 공지된 모바일 디바이스에 대한 다른 데이터를 포함하는 테이블 또는 다른 데이터 구조체일 수 있다. 예를 들면, 피쳐들의 세트는 하나 이상의 하드웨어 피쳐, 하나 이상의 소프트웨어 피쳐, 운영 체제 타입, 운영 체제 버전, 모바일 캐리어, 모델명, 제조사 등을 포함할 수 있다. 데이터 구조체의 피쳐들의 세트는 하나 이상의 디바이스 제조사에 의해 제공되고 및/또는 다른 데이터베이스로부터 취출될 수 있다.
프로세스(500)는 디바이스 필터를 생성하는 단계를 포함한다(블록 506). 디바이스 필터를 생성하는 것은 요청된 피쳐들의 세트를 상기 데이터 구조체의 공지된 모바일 디바이스들의 세트 중 각각에 대한 상기 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초한다. 일부 구현형태들에서, 디바이스 필터는, 비교한 것에 기초하여 해당 모바일 애플리케이션과 호환되지 않는 공지된 모바일 디바이스들의 세트 중 하나 이상에 대한 식별자들의 세트를 포함할 수 있다. 즉, 공지된 모바일 디바이스들 각각에 대한 세트 피쳐들이 해당 애플리케이션에 대한 요청된 피쳐들의 세트의 세트 피쳐들과 매칭되거나 초과하지 않으면, 이후 공지된 모바일 디바이스(또는 모바일 디바이스들의 세트)에 대한 고유 식별자가 디바이스 필터에 추가된다(예를 들어, 해당 애플리케이션 식별자 및 디바이스 식별자의 투플을 추가함으로써). 공지된 모바일 디바이스들의 세트의 피쳐가 해당 애플리케이션에 대한 요청된 피쳐들의 세트의 피쳐와 매칭되거나 이를 초과하면, 이후 공지된 모바일 디바이스에 대한 고유 식별자는 디바이스 필터에 포함되지 않는다.
디바이스 필터는 투플(tuple)들의 세트 또는 목록을 포함할 수 있다. 투플은 애플리케이션과 연관된 제 1 고유 식별자 및 해당 애플리케이션과 호환되지 않는 대응하는 공지된 모바일 디바이스를 식별하는 제 2 고유 식별자, 예컨대 <ApplnID, DeviceID>를 포함할 수 있다. 일부 실례들에서, 투플은 해당 애플리케이션에 대한 최소 운영 체제 버전을 식별하는 제 3 고유 식별자를 더 포함할 수 있다. 일부 실례들에서, 여러 공지된 모바일 디바이스가 유사한 피쳐, 유사한 운영 체제 버전 등을 가지는 경우, 여러 공지된 모바일 디바이스는 단일의 고유 식별자와 연관될 수 있다. 일부 실례들에서, 대응하는 공지된 모바일 디바이스를 식별하는 각각의 고유 식별자는 디바이스 모델, 디바이스 제조사, 디바이스 브랜드, 및/또는 디바이스 피쳐에 기초할 수 있다.
일부 구현형태들에서, 요청된 피쳐들의 세트에 액세스하는 것(블록 502), 데이터 구조체에 액세스하는 것(블록 504) 및 디바이스 필터를 생성하는 것(블록 508)은 생략될 수 있고, 프로세스(500)는 생성된 디바이스 필터에 액세스함으로써, 예컨대 디바이스 필터 데이터베이스에 저장된 생성된 디바이스 필터에 액세스함으로써 시작될 수 있다.
프로세스(500)는 모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계(블록 508)를 포함한다. 이러한 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자를 포함할 수 있다. 디바이스 피쳐들의 세트는 하나 이상의 하드웨어 피쳐, 하나 이상의 소프트웨어 피쳐, 운영 체제 타입, 운영 체제 버전, 모바일 캐리어, 모델명, 제조사 등을 포함할 수 있다. 모바일 디바이스에 대한 식별자는 IMEI, ESN, MEID, 디바이스 모델, 제조사, 및/또는 브랜드를 포함할 수 있다.
프로세스(500)는 최소 운영 체제 버전에 기초하여 어떤 모바일 애플리케이션과 연관된 콘텐츠 아이템을 필터링아웃하는 단계를 포함할 수 있다(블록 510). 적정 콘텐츠 아이템들의 세트로부터 콘텐츠 아이템을 필터링아웃하는 것은 요구된 피쳐들의 세트의 상기 최소 운영 체제 버전을 상기 디바이스 피쳐들의 세트의 운영 체제 버전 또는 상기 모바일 디바이스에 대한 식별자와 연관된 운영 체제 버전과 비교한 것에 기초한다. 일부 구현형태들에서, 미리 생성된 최소 운영 체제 버전 디바이스 필터가 취출되고 요청 모바일 디바이스가 호환되지 않는 콘텐츠 아이템을 필터링아웃하기 위하여 사용될 수 있다.
프로세스(500)는 또한 적정 국가들의 세트에 기초하여 콘텐츠 아이템을 필터링아웃하는 단계를 포함할 수 있다(블록 512). 적정 국가들의 세트에 기초하여 콘텐츠 아이템을 필터링아웃하는 것은, 해당 모바일 애플리케이션에 대한 적정 국가들의 세트(또는, 일부 실례들에서, 부적정 국가들의 세트)를 요청 디바이스로부터 수신된 위치를 식별하는 데이터 및/또는 요청 디바이스에 대한 모바일 캐리어를 식별하는 데이터에 비교한 것에 기초한다. 캐리어를 식별하는 데이터는 모바일 디바이스의 홈 위치를 나타낼 수 있다(예를 들어, Verizon®은 미국에 홈 위치를 가지는 모바일 디바이스를 나타내고, O2는 영국에 홈 위치를 가지는 모바일 디바이스를 나타내는 등). 위치 데이터는 GPS 데이터, 가려진(obscured) GPS 데이터, 무선 액세스 포인트 데이터 등일 수 있다.
프로세스(500)는 하나 이상의 디바이스 필터에 기초하여 콘텐츠 아이템을 필터링아웃하는 단계를 포함한다(블록 514). 하나 이상의 디바이스 필터에 기초하여 콘텐츠 아이템을 필터링아웃하는 것은, 생성된 디바이스 필터 및 디바이스 피쳐들의 세트를 식별하는 데이터 또는 요청의 모바일 디바이스에 대한 식별자에 기초한다. 모바일 디바이스에 대한 식별자(예를 들어, IMEI, ESN, MEID 등)는 요청 디바이스에 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정하기 위하여 사용될 수 있다. 일부 실례들에서, 모바일 디바이스에 대한 식별자는, 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정하기 위하여 사용될 수 있는 디바이스 모델, 제조사, 및/또는 브랜드에 대응할 수 있다. 다른 구현형태들에서, 디바이스 피쳐들의 세트를 식별하는 데이터를 디바이스 데이터베이스로부터 공지된 디바이스들의 세트와 비교하는 것은 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 결정하기 위하여 수행될 수 있다. 대응하는 공지된 모바일 디바이스에 대한 고유 식별자가 결정되면, 프로세스(500)는 대응하는 공지된 모바일 디바이스에 대한 고유 식별자를 디바이스 필터의 식별자, 예컨대 투플과 비교하여, 해당 요청을 전송하는 공지된 모바일 디바이스와 호환되지 않는 애플리케이션과 연관된 식별자들의 세트를 결정한다. 어떤 애플리케이션과 연관된 콘텐츠 아이템은 콘텐츠 아이템을 해당 애플리케이션과 연관시키는 데이터, 예컨대 연관된 애플리케이션의 고유 식별자에 대한 메타데이터를 포함할 수 있다. 프로세스(500)는 경매에 대한 적정 콘텐츠 아이템들의 세트를 비호환 애플리케이션과 연관된 식별자들의 세트와 비교하고, 이러한 비교에 기초하여 적정 콘텐츠 아이템들의 세트로부터 하나 이상의 콘텐츠 아이템을 필터링아웃한다.
프로세스(500)는 콘텐츠 아이템 경매를 통해서 적정 콘텐츠 아이템들의 필터링된 세트로부터 콘텐츠 아이템을 선택하는 단계를 포함한다(블록 516). 프로세스(500)는 수신된 요청에 응답하여 선택된 콘텐츠 아이템을 모바일 디바이스로 서비스하는 단계를 더 포함한다(블록 518). 선택된 콘텐츠 아이템을 디스플레이하기 위한 데이터는 네트워크를 통해 요청 디바이스 및/또는 리소스 서버로 송신되거나 서비스된다. 이러한 데이터는 데이터베이스로부터 액세스될 수 있는 그래픽 데이터, 텍스트 데이터, 이미지 데이터, 오디오 데이터, 비디오 데이터 등을 포함할 수 있다.
도 6은 클라이언트 디바이스(110), 콘텐츠 아이템 선택 시스템(108), 제 3 자 콘텐츠 서버(102), 리소스 서버(104) 등을 구현하기 위하여 사용될 수 있는 컴퓨터 시스템(600)의 블록도이다. 컴퓨팅 시스템(600)은 정보를 통신하기 위한 버스(605) 또는 다른 통신 컴포넌트 및 정보를 처리하기 위하여 버스(605)에 커플링되는 프로세서(610)를 포함한다. 컴퓨팅 시스템(600)은 정보를 처리하기 위하여 버스에 커플링되는 하나 이상의 프로세서(610)를 더 포함할 수 있다. 컴퓨팅 시스템(600)은 프로세서(610)에 의하여 실행될 정보 및 명령을 저장하기 위하여 버스(605)에 커플링되는, RAM 또는 다른 동적 스토리지 디바이스와 같은 메인 메모리(615)를 더 포함한다. 메인 메모리(615)는 프로세서(610)에 의하여 명령이 실행되는 도중에 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해서도 사용될 수 있다. 컴퓨팅 시스템(600)은 프로세서(610)에 대한 정적 정보 및 명령을 저장하기 위하여 버스(605)에 커플링되는 ROM(620) 또는 다른 정적 스토리지 디바이스를 더 포함할 수 있다. 고상 디바이스, 자기적 디스크 또는 광학적 디스크와 같은 스토리지 디바이스(625)가 정보 및 명령을 영구적으로 저장하기 위하여 버스(605)에 커플링된다. 컴퓨팅 디바이스(600)는 디지털 컴퓨터, 예컨대 랩탑, 데스크탑, 워크스테이션, 개인 휴대정보 단말기, 서버, 블레이드 서버(blade server), 메인프레임(mainframe), 셀룰러 전화기, 스마트 폰, 모바일 컴퓨팅 디바이스(예를 들어, 노트패드, e-리더기 등) 등을 포함할 수도 있으나, 이에 한정되지는 않는다.
컴퓨팅 시스템(600)은 사용자에게 정보를 디스플레이하기 위하여, 버스(605)를 통해 디스플레이(635), 예컨대 액정 디스플레이(LCD), 박막-트랜지스터 LCD(TFT), 유기 광 방출 다이오드(OLED) 디스플레이, LED 디스플레이, 전자 종이 디스플레이, 플라즈마 디스플레이 패널(PDP), 및/또는 다른 디스플레이 등에 커플링될 수 있다. 영숫자 키와 다른 키들을 포함하는 키보드와 같은 입력 디바이스(630)는 정보 및 커맨드 셀렉션(command selection)을 프로세서(610)로 통신하기 위하여 버스(605)에 커플링될 수 있다. 다른 구현형태에서, 입력 디바이스(630)는 터치 스크린 디스플레이에서와 같이 디스플레이(635)와 통합될 수 있다. 입력 디바이스(630)는, 지시 정보와 커맨드 셀렉션을 프로세서(610)로 통신하고 디스플레이(635) 상에서의 커서 움직임을 제어하기 위한, 마우스, 트랙볼, 또는 커서 방향 키와 같은 커서 콘트롤을 포함할 수 있다.
다양한 구현형태에 따르면, 본 명세서에서 설명되는 프로세스 및/또는 방법은 프로세서(610)가 메인 메모리(615)에 보유된 명령들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(600)에 의해 구현될 수 있다. 이러한 명령들은 스토리지 디바이스(625)와 같은 다른 컴퓨터에 의해 판독가능한 매체로부터 메인 메모리(615)로 독출될 수 있다. 메인 메모리(615)에 보유된 명령들의 정렬을 실행하면, 컴퓨팅 시스템(600)은 본 명세서에서 설명되는 예시적인 프로세스 및/또는 방법 단계를 수행하게 된다. 메인 메모리(615)에 보유된 명령들을 실행하기 위하여, 다중 처리 장치 내의 하나 이상의 프로세서가 채용될 수도 있다. 대안적인 구현형태들에서, 예시적인 구현형태에 영향을 주기 위하여 소프트웨어 명령 대신에 또는 이와 조합되어 유선 회로부가 사용될 수도 있다. 따라서, 구현형태는 하드웨어 회로와 소프트웨어의 임의의 특정한 조합으로 한정되지 않는다.
비록 컴퓨팅 시스템(600)의 일 구현형태가 도 6에서 설명되었지만, 본 명세서에서 설명된 기술 요지 및 기능성 동작의 구현형태는, 디지털 전자 회로부의 다른 타입에서, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에 개시된 구조 및 그들의 구조적 균등물을 포함하는 하드웨어에서, 또는 이들 중 하나 이상의 조합에서 구현될 수 있다.
본 명세서에서 설명된 기술 요지 및 동작의 구현형태는, 디지털 전자 회로부에서, 또는 유형적 매체에 구현된 컴퓨터 소프트웨어, 펌웨어에서, 또는 본 명세서에 기술된 구조 및 그들의 구조 균등물을 포함하는 하드웨어에서, 또는 이들 중 하나 이상의 조합에서 구현될 수 있다. 본 명세서에서 설명된 기술 요지의 구현형태들은, 데이터 처리 장치에 의한 실행을 위해, 또는 그 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 스토리지 매체에 인코딩된, 하나 이상의 컴퓨터 프로그램들, 즉, 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수 있다. 이와 달리 또는 이에 추가하여, 프로그램 명령은 인위적으로 생성된 전파된 신호, 예를 들어 데이터 처리 장치에 의해 실행되기 위해 적합한 수신기 장치로 송신되도록 정보를 인코딩하기 위해 생성되는 머신에 의해 생성된 전기적, 광학적, 또는 전자기 신호 위에 인코딩될 수 있다. 컴퓨터 스토리지 매체는 컴퓨터에 의해 판독가능한 스토리지 디바이스, 컴퓨터에 의해 판독가능한 스토리지 기판, 랜덤 또는 시리얼 액세스 메모리 어레이 또는 디바이스, 또는 이들의 하나 이상의 조합이거나 이들 안에 포함될 수 있다. 더욱이, 컴퓨터 스토리지 매체는 전파된 신호가 아니지만, 컴퓨터 스토리지 매체는 인위적으로 생성된 전파된 신호 내에 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 스토리지 매체는 하나 이상의 별개의 컴포넌트 또는 미디어(예를 들어, 다수의 CD, 디스크, 또는 다른 스토리지 디바이스)이거나 이들 안에 포함될 수 있다. 따라서, 컴퓨터 스토리지 매체는 유형적(tangible)이기도 하고 비-일시적이기도 하다.
본 명세서에 설명된 동작들은 데이터 처리 장치에 의하여 하나 이상의 컴퓨터에 의해 판독가능한 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에서 수행될 수 있다.
"데이터 처리 장치," "컴퓨팅 디바이스," 또는 "처리 회로"라는 용어는 예를 들어 프로그래밍가능한 프로세서, 컴퓨터, 시스템 온 칩, 또는 다수의 칩, 프로그래밍된 프로세서의 일부, 또는 이들의 조합을 포함하는, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 머신을 망라한다. 이러한 장치는 주문형 로직 회로부, 예를 들어 FPGA 또는 ASIC을 포함할 수 있다. 이러한 장치는 하드웨어에 추가하여, 관심 대상인 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 교차-플랫폼 런타임 환경, 가상 머신, 또는 이들의 하나 이상의 조합을 구성하는 코드를 더 포함할 수 있다. 이러한 장치 및 실행 환경은 다양한 상이한 계산 모델 기반구조, 예컨대 웹 서비스, 분산형 컴퓨팅 및 그리드 컴퓨팅 기반구조를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려짐)은 컴파일되거나 해석된 언어, 선언적 또는 절차적 언어를 포함하는 프로그래밍 언어의 임의의 형태로 작성될 수 있으며, 이것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 유닛을 포함하는 임의의 형태로 구현될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수도 있지만 대응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)의 일부에, 문제가 되는 프로그램 전용의 단일 파일 내에, 또는 여러 개의 조율된 파일들(예를 들어, 하나 이상의 모듈, 서브-프로그램, 또는 코드의 일부를 저장하는 파일) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 위치되거나 여러 사이트들에 걸쳐서 분산되고 통신 네트워크에 의하여 상호접속되는 여러 컴퓨터들 상에서 실행되도록 구현될 수 있다.
컴퓨터 프로그램을 실행하기에 적합한 프로세서는, 예를 들어, 범용 및 주문형 마이크로프로세서 양자 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독-전용 메모리 또는 랜덤 액세스 메모리 또는 이들 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 본질적인 구성 요소는 명령에 따라서 동작을 수행하기 위한 프로세서 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 스토리지 디바이스, 예를 들어, 자기적, 자기-광학적 디스크, 또는 광학적 디스크를 포함하거나, 이것으로부터 데이터를 수신하거나 이것으로 데이터를 전송하거나, 또는 이들 모두를 하기 위하여 이것에 동작가능하도록 커플링될 것이다. 그러나, 컴퓨터는 이러한 디바이스를 가져야 하는 것은 아니다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 이름을 대면 모바일 전화기, 개인 휴대정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기, 또는 휴대용 스토리지 디바이스, 예를 들어, 범용 시리얼 버스(USB) 플래시 드라이브 내에 임베딩될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는, 예를 들자면 반도체 메모리 디바이스, 예를 들어 EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기적 디스크, 예를 들어 내부 하드 디스크 또는 착탈식 디스크; 자기-광학적 디스크; 및 CD-ROM 및 DVD 디스크를 포함하는 비-휘발성 메모리, 미디어 및 메모리 디바이스의 모든 형태를 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로부에 의하여 보충되거나 그 내부에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 본 명세서에서 설명된 기술 요지의 구현형태는 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 CRT(cathode ray tube), 또는 LCD 모니터 및 사용자가 입력을 컴퓨터에 제공할 수 있도록 사용하는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 포함하는 컴퓨터 상에 구현될 수 있다. 디바이스의 다른 종류가 사용자와의 상호작용을 제공하기 위하여 역시 사용될 수 있다; 예를 들어, 사용자에게 제공된 피드백은 감지 피드백의 임의의 형태, 예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있다; 그리고 사용자로부터의 입력은 음향, 발화, 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서가 많은 특정한 구현형태의 세부사항을 포함하지만, 이것은 청구될 수도 있는 것의 범위에 대한 한정으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특유한 피쳐를 설명하는 것으로서 해석되어야 한다. 또한, 개별 구현형태들의 콘텍스트에서 본 명세서에서 설명된 특정 피쳐들은 단일 구현형태에서 조합되어 구현될 수 있다. 반대로, 단일 구현형태의 콘텍스트에서 설명되는 다양한 피쳐들도 다수의 구현형태들에서 별개로 또는 임의의 적합한 서브컴비네이션에서 역시 구현될 수 있다. 더구나, 비록 피쳐들이 특정한 조합들로 작용하는 것으로 위에서 설명될 수도 있고 그와 같이 처음에 청구된 경우에도, 청구된 조합들로부터의 하나 이상의 피쳐들은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 서브컴비네이션 또는 서브컴비네이션의 변형예를 위한 것일 수도 있다.
이와 유사하게, 동작들이 도면들에서 특정한 순서로 묘사되는 반면에, 원하는 결과들을 획득하기 위하여 이러한 동작들이 도시된 특정한 순서로 또는 순차적인 순서로 수행되어야 하거나, 또는 도시된 모든 동작들이 수행되어야 한다고 요구하는 것으로 이해되어서는 안 된다. 어떤 상황들에서는, 멀티태스킹 및 병렬 처리가 이로울 수도 있다. 더구나, 위에서 설명된 구현형태들에서의 여러 시스템 컴포넌트들의 분리는 모든 구현형태들에서 그러한 분리를 요구한다고 이해되지 않아야 하고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 통합될 수 있거나 또는 유형의 매체에 구현된 다수의 소프트웨어 제품들로 패키지화될 수 있다는 것이 이해되어야 한다.
"또는"이라는 표현은 "또는"을 사용하여 기술된 임의의 용어가 설명된 용어들 중 하나, 두 개 이상, 또는 전부 중 임의의 것을 표시할 수 있도록 포괄하는 것으로 해석될 수 있다.
따라서, 기술 요지의 특정 구현형태들이 설명되었다. 다른 구현형태들은 다음의 청구항들의 범위 내에 있다. 일부 경우들에서, 청구항들에서 언급된 액션들은 다른 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 또한, 첨부 도면에서 묘사된 프로세스들은 바람직한 결과를 획득하기 위하여 반드시 도시된 특정 순서, 또는 순차적인 순서를 요구하는 것이 아니다. 어떤 구현예들에서는, 멀티태스킹 및 병렬 처리가 이로울 수도 있다.
청구항은 그렇지 않다고 언급되지 않는 한 기술된 순서 또는 구성 요소들로 한정되는 것으로 이해되어서는 안 된다. 형태와 세부 사항에 있어서의 다양한 변경이 첨부된 청구항들의 사상 및 범위로부터 벗어나지 않으면서 당업자에 의해 이루어질 수 있다는 것이 이해되어야 한다. 후속하는 청구항의 사상 및 범위에 속하는 모든 구현형태들과 그들의 균등물이 청구된다.

Claims (20)

  1. 방법으로서,
    모바일 애플리케이션에 대한 요구된 피쳐들의 세트에 액세스하는 단계;
    피쳐들의 세트와 각각 연관된 복수 개의 공지된 모바일 디바이스를 식별하는 데이터 구조체에 액세스하는 단계;
    요구된 피쳐들의 세트를 상기 데이터 구조체의 복수 개의 공지된 모바일 디바이스들 각각에 대한 상기 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초하여 디바이스 필터를 생성하는 단계로서, 상기 디바이스 필터는 상기 비교한 것에 기초하여 상기 모바일 애플리케이션과 호환되지 않는 상기 복수 개의 공지된 모바일 디바이스 중 하나 이상에 대한 식별자들의 세트를 포함하는, 디바이스 필터를 생성하는 단계;
    모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계로서, 상기 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자를 포함하는, 요청을 수신하는 단계;
    생성된 디바이스 필터 및 상기 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 요청의 상기 모바일 디바이스에 대한 식별자에 기초하여, 콘텐츠 아이템 경매를 위한 적정(eligible) 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 필터링아웃하는 단계;
    상기 콘텐츠 아이템 경매를 통해서, 적정 콘텐츠 아이템들의 필터링된 세트로부터 제 2 콘텐츠 아이템을 선택하는 단계; 및
    수신된 요청에 응답하여, 선택된 제 2 콘텐츠 아이템을 상기 모바일 디바이스로 서비스하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 복수 개의 공지된 모바일 디바이스 각각에 대한 피쳐들의 세트는 모델명, 제조사, 및 운영 체제를 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 요구된 피쳐들의 세트는 최소 운영 체제 버전을 포함하고,
    상기 방법은,
    상기 요구된 피쳐들의 세트의 최소 운영 체제 버전을 디바이스 피쳐들의 세트의 운영 체제 버전 또는 상기 모바일 디바이스에 대한 식별자와 연관된 운영 체제 버전과 비교한 것에 기초하여, 상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 상기 적정 콘텐츠 아이템들의 세트로부터 필터링아웃하는 단계를 더 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템은, 상기 콘텐츠 아이템 경매 이전에 상기 적정 콘텐츠 아이템들의 세트로부터 필터링아웃되는, 방법.
  5. 제 1 항에 있어서,
    상기 모바일 애플리케이션에 대한 요구된 피쳐들의 액세스된 세트는 애플리케이션 스토어에서 유래하는, 방법.
  6. 제 5 항에 있어서,
    상기 애플리케이션 스토어는 상기 콘텐츠 아이템 경매를 수행하는 엔티티와 별개인 엔티티에 의해 제어되는, 방법.
  7. 제 1 항에 있어서,
    상기 요청은 상기 모바일 디바이스의 위치를 식별하는 데이터를 더 포함하고,
    상기 방법은,
    상기 모바일 애플리케이션에 대한 적정 국가들의 세트에 액세스하는 단계; 및
    상기 모바일 디바이스의 위치를 식별하는 데이터를 상기 적정 국가들의 세트와 비교한 것에 기초하여, 콘텐츠 아이템 경매를 위한 상기 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션과 연관된 제 3 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 생성된 디바이스 필터는 복수 개의 투플(tuple)을 포함하고,
    상기 복수 개의 투플들의 세트는, 상기 모바일 애플리케이션을 식별하는 제 1 고유 식별자, 상기 모바일 애플리케이션과 호환되지 않는 복수 개의 공지된 모바일 디바이스 중 하나 이상의 대응하는 것을 식별하는 제 2 고유 식별자, 및 운영 체제 버전을 식별하는 제 3 고유 식별자를 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 요청은 상기 모바일 디바이스의 모바일 캐리어(mobile carrier)를 식별하는 데이터를 더 포함하고,
    상기 방법은,
    상기 모바일 애플리케이션에 대한 적정 국가들의 세트에 액세스하는 단계; 및
    상기 모바일 디바이스의 모바일 캐리어를 식별하는 데이터를 상기 적정 국가들의 세트와 비교한 것에 기초하여, 콘텐츠 아이템 경매를 위한 상기 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션과 연관된 제 3 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함하는, 방법.
  10. 시스템으로서,
    하나 이상의 프로세서; 및
    명령을 저장하는 하나 이상의 스토리지 디바이스를 포함하고,
    상기 명령은 상기 하나 이상의 프로세서에 의해 실행되면 상기 하나 이상의 프로세서가:
    모바일 애플리케이션들의 세트의 각각에 대해 요구된 피쳐들의 세트에 액세스하는 단계로서, 상기 요구된 피쳐들의 세트는 최소 운영 체제 버전을 포함하는, 요구된 피쳐들의 세트에 액세스하는 단계;
    피쳐들의 세트와 각각 연관된 복수 개의 공지된 모바일 디바이스를 식별하는 데이터 구조체에 액세스하는 단계;
    모바일 애플리케이션들의 세트의 각각에 대해 요구된 피쳐들의 세트를 상기 데이터 구조체의 복수 개의 공지된 모바일 디바이스 각각에 대한 피쳐들의 연관된 세트와 비교한 것에 기초하여 디바이스 필터를 생성하는 단계로서, 상기 디바이스 필터는 상기 모바일 애플리케이션들의 세트 중 하나와 호환되지 않는 복수 개의 공지된 모바일 디바이스 중 하나 이상에 대한 식별자들의 세트를 포함하는, 디바이스 필터를 생성하는 단계;
    모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계로서, 상기 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 모바일 디바이스에 대한 식별자를 포함하는, 요청을 수신하는 단계;
    상기 요구된 피쳐들의 세트의 상기 최소 운영 체제 버전을 상기 디바이스 피쳐들의 세트의 운영 체제 버전 또는 상기 모바일 디바이스에 대한 식별자와 연관된 운영 체제 버전과 비교한 것에 기초하여, 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션들의 세트 중 제 1 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 필터링아웃하는 단계;
    생성된 디바이스 필터 및 상기 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 요청의 상기 모바일 디바이스에 대한 식별자에 기초하여, 상기 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 잔여 세트로부터 상기 모바일 애플리케이션들의 세트 중 제 2 모바일 애플리케이션과 연관된 제 2 콘텐츠 아이템을 필터링아웃하는 단계;
    상기 콘텐츠 아이템 경매를 통해서 상기 적정 콘텐츠 아이템들의 필터링된 잔여 세트로부터 제 3 콘텐츠 아이템을 선택하는 단계; 및
    수신된 요청에 응답하여, 선택된 제 3 콘텐츠 아이템을 상기 모바일 디바이스로 서비스하는 단계를 포함하는 동작을 수행하게 하는, 시스템.
  11. 제 10 항에 있어서,
    상기 복수 개의 공지된 모바일 디바이스 각각에 대한 피쳐들의 세트는 모델명, 제조사, 및 운영 체제를 포함하는, 시스템.
  12. 제 10 항에 있어서,
    상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템은, 상기 콘텐츠 아이템 경매 이전에 상기 적정 콘텐츠 아이템들의 세트로부터 필터링아웃되는, 시스템.
  13. 제 10 항에 있어서,
    상기 모바일 애플리케이션에 대한 요구된 피쳐들의 액세스된 세트는 애플리케이션 스토어에서 유래하는, 시스템.
  14. 제 13 항에 있어서,
    상기 애플리케이션 스토어는 상기 콘텐츠 아이템 경매를 수행하는 엔티티와 별개인 엔티티에 의해 제어되는, 시스템.
  15. 제 10 항에 있어서,
    상기 요청은 상기 모바일 디바이스의 위치를 식별하는 데이터를 더 포함하고,
    상기 하나 이상의 스토리지 디바이스는, 상기 하나 이상의 프로세서에 의해 실행되면, 상기 하나 이상의 프로세서가:
    상기 모바일 애플리케이션에 대한 적정 국가들의 세트에 액세스하는 단계; 및
    상기 모바일 디바이스의 위치를 식별하는 데이터를 상기 적정 국가들의 세트와 비교한 것에 기초하여, 상기 콘텐츠 아이템 경매에 대한 적정 콘텐츠 아이템들의 세트로부터 제 4 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함하는 동작을 수행하게 하는 명령을 저장하는, 시스템.
  16. 제 10 항에 있어서,
    상기 생성된 디바이스 필터는 복수 개의 투플을 포함하고,
    상기 복수 개의 투플들의 세트는, 상기 모바일 애플리케이션을 식별하는 제 1 고유 식별자, 및 상기 모바일 애플리케이션과 호환되지 않는 복수 개의 공지된 모바일 디바이스 중 하나 이상의 대응하는 것을 식별하는 제 2 고유 식별자를 포함하는, 시스템.
  17. 제 10 항에 있어서,
    상기 요청은 상기 모바일 디바이스의 모바일 캐리어를 식별하는 데이터를 더 포함하고,
    상기 하나 이상의 스토리지 디바이스는, 상기 하나 이상의 프로세서에 의해 실행되면, 상기 하나 이상의 프로세서가:
    상기 모바일 애플리케이션에 대한 적정 국가들의 세트에 액세스하는 단계; 및
    상기 모바일 디바이스의 모바일 캐리어를 식별하는 데이터를 상기 적정 국가들의 세트와 비교한 것에 기초하여, 상기 콘텐츠 아이템 경매에 대한 적정 콘텐츠 아이템들의 세트로부터 제 4 콘텐츠 아이템을 필터링아웃하는 단계를 더 포함하는 동작을 수행하게 하는 명령을 저장하는, 시스템.
  18. 명령을 저장하는 컴퓨터 판독가능 저장 디바이스로서,
    상기 명령은 하나 이상의 프로세서에 의해 실행되면, 하나 이상의 프로세서가:
    애플리케이션 스토어로부터 모바일 애플리케이션에 대한 요구된 피쳐들의 세트에 액세스하는 단계;
    피쳐들의 세트와 각각 연관된 복수 개의 공지된 모바일 디바이스를 식별하는 데이터 구조체에 액세스하는 단계;
    요구된 피쳐들의 세트를 상기 데이터 구조체의 복수 개의 공지된 모바일 디바이스들 각각에 대한 상기 데이터 구조체의 피쳐들의 연관된 세트와 비교한 것에 기초하여 디바이스 필터를 생성하는 단계로서, 상기 디바이스 필터는 상기 비교한 것에 기초하여 상기 모바일 애플리케이션과 호환되지 않는 상기 복수 개의 공지된 모바일 디바이스 중 하나 이상에 대한 식별자들의 세트를 포함하는, 디바이스 필터를 생성하는 단계;
    모바일 디바이스로부터 콘텐츠 아이템에 대한 요청을 수신하는 단계로서, 상기 요청은 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 모바일 디바이스에 대한 식별자를 포함하는, 요청을 수신하는 단계;
    생성된 디바이스 필터 및 상기 디바이스 피쳐들의 세트를 식별하는 데이터 또는 상기 요청의 상기 모바일 디바이스에 대한 식별자에 기초하여, 콘텐츠 아이템 경매를 위한 적정 콘텐츠 아이템들의 세트로부터 상기 모바일 애플리케이션과 연관된 제 1 콘텐츠 아이템을 필터링아웃하는 단계;
    상기 콘텐츠 아이템 경매를 통해서, 적정 콘텐츠 아이템들의 필터링된 세트로부터 제 2 콘텐츠 아이템을 선택하는 단계; 및
    수신된 요청에 응답하여, 선택된 제 2 콘텐츠 아이템을 상기 모바일 디바이스로 서비스하는 단계를 포함하는 동작을 수행하게 하는, 컴퓨터 판독가능 저장 디바이스.
  19. 제 18 항에 있어서,
    상기 복수 개의 공지된 모바일 디바이스 각각에 대한 피쳐들의 세트는 모델명, 제조사, 및 운영 체제를 포함하는, 컴퓨터 판독가능 저장 디바이스.
  20. 제 19 항에 있어서,
    상기 생성된 디바이스 필터는 복수 개의 투플을 포함하고,
    상기 복수 개의 투플들의 세트는, 상기 모바일 애플리케이션을 식별하는 제 1 고유 식별자, 및 복수 개의 공지된 모바일 디바이스 중 하나 이상의 대응하는 것을 식별하는 제 2 고유 식별자를 포함하는, 컴퓨터 판독가능 저장 디바이스.
KR1020177031378A 2015-08-20 2015-08-20 모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링 KR102028089B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/087655 WO2017028304A1 (en) 2015-08-20 2015-08-20 Device-based filtering of content items associated with mobile applications

Publications (2)

Publication Number Publication Date
KR20170131679A true KR20170131679A (ko) 2017-11-29
KR102028089B1 KR102028089B1 (ko) 2019-10-02

Family

ID=58051030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031378A KR102028089B1 (ko) 2015-08-20 2015-08-20 모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링

Country Status (8)

Country Link
US (1) US20170055145A1 (ko)
EP (1) EP3286641A4 (ko)
JP (1) JP6557357B2 (ko)
KR (1) KR102028089B1 (ko)
CN (1) CN108351787B (ko)
DE (1) DE112015006537T5 (ko)
GB (1) GB2554583A (ko)
WO (1) WO2017028304A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107124714B (zh) * 2017-04-13 2021-02-23 北京珠穆朗玛移动通信有限公司 数据发送方法及数据发送终端
US10812532B2 (en) 2017-06-15 2020-10-20 Palo Alto Networks, Inc. Security for cellular internet of things in mobile networks
US10693918B2 (en) 2017-06-15 2020-06-23 Palo Alto Networks, Inc. Radio access technology based security in service provider networks
US11050789B2 (en) 2017-06-15 2021-06-29 Palo Alto Networks, Inc. Location based security in service provider networks
US10721272B2 (en) * 2017-06-15 2020-07-21 Palo Alto Networks, Inc. Mobile equipment identity and/or IOT equipment identity and application identity based security enforcement in service provider networks
US10834136B2 (en) 2017-06-15 2020-11-10 Palo Alto Networks, Inc. Access point name and application identity based security enforcement in service provider networks
US10708306B2 (en) 2017-06-15 2020-07-07 Palo Alto Networks, Inc. Mobile user identity and/or SIM-based IoT identity and application identity based security enforcement in service provider networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120129503A1 (en) * 2010-11-19 2012-05-24 MobileIron, Inc. Management of Mobile Applications
US20120191560A1 (en) * 2011-01-26 2012-07-26 Google Inc. Auction-Based Application Launching
KR20140068940A (ko) * 2011-09-07 2014-06-09 마이크로소프트 코포레이션 애플리케이션용 콘텐츠 핸들링 기법
KR20150070227A (ko) * 2012-10-10 2015-06-24 구글 인코포레이티드 이전에 결정된 디바이스 위치들에 기초한 콘텐츠의 제공

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7846023B2 (en) * 2003-03-27 2010-12-07 Microsoft Corporation Application-centric user interface techniques
EP2054789A4 (en) * 2006-04-03 2013-01-16 Kontera Technologies Inc IN MOBILE DEVICES IMPLEMENTED CONTEXTUAL ADVERTISING TECHNIQUES
US8340635B2 (en) * 2009-03-16 2012-12-25 Apple Inc. Capability model for mobile devices
US20110179045A1 (en) * 2010-01-19 2011-07-21 Microsoft Corporation Template-Based Management and Organization of Events and Projects
US20110029881A1 (en) * 2010-10-11 2011-02-03 Nevolution Digital, Llc Devices and methods for providing software programs compatible with a computer system for download by a user
US9424018B2 (en) * 2011-03-21 2016-08-23 Microsoft Technology Licensing, Llc Filtering and promoting application store applications
CN102799443B (zh) * 2011-05-23 2016-06-01 联想(北京)有限公司 信息处理方法、服务器和终端设备
US9055120B1 (en) * 2011-12-16 2015-06-09 Google Inc. Device capability filtering
CN103455340A (zh) * 2012-05-30 2013-12-18 Tcl集团股份有限公司 一种Android系统的应用程序加载方法及系统
US9510141B2 (en) * 2012-06-04 2016-11-29 Apple Inc. App recommendation using crowd-sourced localized app usage data
CN103914492B (zh) * 2013-01-09 2018-02-27 阿里巴巴集团控股有限公司 查询词融合方法、商品信息发布方法和搜索方法及系统
US20140222561A1 (en) * 2013-02-04 2014-08-07 Facebook, Inc. Cross-Platform Advertisement Targeting
US8868689B1 (en) * 2013-05-17 2014-10-21 Google Inc. Device configuration based content selection
US9459863B2 (en) * 2013-10-11 2016-10-04 Google Inc. System for assessing an application for tablet compatibility and quality
CN103617543B (zh) * 2013-11-25 2018-05-08 百度在线网络技术(北京)有限公司 应用程序的推荐方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120129503A1 (en) * 2010-11-19 2012-05-24 MobileIron, Inc. Management of Mobile Applications
US20120191560A1 (en) * 2011-01-26 2012-07-26 Google Inc. Auction-Based Application Launching
KR20140068940A (ko) * 2011-09-07 2014-06-09 마이크로소프트 코포레이션 애플리케이션용 콘텐츠 핸들링 기법
KR20150070227A (ko) * 2012-10-10 2015-06-24 구글 인코포레이티드 이전에 결정된 디바이스 위치들에 기초한 콘텐츠의 제공

Also Published As

Publication number Publication date
EP3286641A1 (en) 2018-02-28
WO2017028304A1 (en) 2017-02-23
KR102028089B1 (ko) 2019-10-02
US20170055145A1 (en) 2017-02-23
GB201717800D0 (en) 2017-12-13
CN108351787A (zh) 2018-07-31
EP3286641A4 (en) 2018-11-21
GB2554583A (en) 2018-04-04
JP6557357B2 (ja) 2019-08-07
DE112015006537T5 (de) 2018-02-15
CN108351787B (zh) 2021-10-15
JP2018519566A (ja) 2018-07-19

Similar Documents

Publication Publication Date Title
KR102028089B1 (ko) 모바일 애플리케이션과 연관된 콘텐츠 아이템의 디바이스-기반 필터링
KR102152994B1 (ko) 광고 내의 광고주 식별자의 자동 검증
US9766861B2 (en) State-specific external functionality for software developers
US10891650B2 (en) Matching conversions from applications to selected content items
JP5053298B2 (ja) モバイル装置上に広告を行うためのシステム
US10438168B2 (en) Facilitating dynamic customization of reporting tools in an on-demand services environment
US10785327B2 (en) Client device application interaction monitoring
US11586684B2 (en) Serving multiple content items responsive to a single request
US9720889B1 (en) Systems and methods for detecting auto-redirecting online content
US11232119B2 (en) Serving content items in content item slots based on a referral query location
US20150134414A1 (en) Survey driven content items
US20190138566A1 (en) Optimized digital components
US10594820B2 (en) Conditionally joining data from cookies
US10896173B2 (en) Content management in an on-demand environment
US11115529B2 (en) System and method for providing and managing third party content with call functionality
US9928224B1 (en) Assigning slots to content in a pipeline
US10606907B1 (en) Interactive browsable content items
JP7223164B2 (ja) データインテグリティの最適化
WO2020122943A1 (en) Systems and methods for a query handling engine for processing queries to provide a diverse set of query results
EP3295412A1 (en) System and method for providing and managing third party content with call functionality

Legal Events

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