KR20210005255A - 동적 애플리케이션 콘텐츠 분석 - Google Patents

동적 애플리케이션 콘텐츠 분석 Download PDF

Info

Publication number
KR20210005255A
KR20210005255A KR1020207034908A KR20207034908A KR20210005255A KR 20210005255 A KR20210005255 A KR 20210005255A KR 1020207034908 A KR1020207034908 A KR 1020207034908A KR 20207034908 A KR20207034908 A KR 20207034908A KR 20210005255 A KR20210005255 A KR 20210005255A
Authority
KR
South Korea
Prior art keywords
content
application
digital component
previous
current
Prior art date
Application number
KR1020207034908A
Other languages
English (en)
Other versions
KR102446963B1 (ko
Inventor
존 니콜라스 두켈리스
투나 토크오즈
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020227032466A priority Critical patent/KR102626275B1/ko
Publication of KR20210005255A publication Critical patent/KR20210005255A/ko
Application granted granted Critical
Publication of KR102446963B1 publication Critical patent/KR102446963B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • H04L51/12
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • H04L67/22
    • 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/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • H04N21/4542Blocking scenes or portions of the received content, e.g. censoring scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

클라이언트 디바이스의 애플리케이션(예: 네이티브 애플리케이션) 내에 디스플레이되는 콘텐츠를 분석하고, 애플리케이션 내의 콘텐츠 제시에 관한 결정을 내리는 장치를 포함하는 방법, 시스템 및 장치. 일 양태에서, 프로세스는 애플리케이션 내에서 발생하는 이벤트를 식별하는 것을 포함한다. 이벤트는 애플리케이션에 의한 콘텐츠의 디스플레이의 표시일 수 있다. 디스플레이될 콘텐츠는 애플리케이션으로부터 수신된다. 콘텐츠를 표현하는 정보가 서버에 전송된다. 응답이 서버로부터 수신된다. 응답은 애플리케이션 내에 디스플레이할 콘텐츠의 적절성을 표시한다.

Description

동적 애플리케이션 콘텐츠 분석
인터넷은 다양한 리소스에 대한 액세스를 제공한다. 예를 들어, 비디오 및/또는 오디오 파일뿐만 아니라 특정한 주제 또는 특정한 뉴스 기사의 웹페이지는 인터넷을 통해 액세스될 수 있다. 리소스는 특정한 주제 또는 특정한 뉴스 기사와 관련된 콘텐츠를 제시할 수 있다. 콘텐츠는 특정한 플랫폼 또는 특정한 유형의 디바이스용으로 개발된 네이티브 애플리케이션과 같은 애플리케이션을 사용하여 액세스될 수 있다.
본 명세서는 애플리케이션에 디스플레이되는 동적 콘텐츠를 분석하고, 분석에 기초하여 애플리케이션 내에서 제시할 추가 콘텐츠를 선택하는 것과 관련된 기술을 설명한다.
클라이언트 디바이스의 웹브라우저 내에 디스플레이되는 콘텐츠를 분석하는 기법이 존재한다. 예를 들어, 서버는 예를 들어 웹 서버로부터 콘텐츠를 요청함으로써 클라이언트 디바이스에 디스플레이되기 전에 소스로부터 콘텐츠를 검색할 수 있다. 그 다음 서버는 검색된 콘텐츠를 분석하여 예를 들어 악성 코드, 성인물, 증오 표현 등과 같은 바람직하지 않은 콘텐츠가 포함되어 있는지 식별할 수 있다.
그러나 웹브라우저가 아닌 애플리케이션에 디스플레이되는 콘텐츠를 분석하는 것은 기술적으로 어렵다. 웹브라우저와 달리, 콘텐츠가 애플리케이션에 디스플레이되기 전에 콘텐츠의 소스를 식별하는 것이 반드시 가능하지는 않다. 따라서 악의적 애플리케이션 개발자와 같은 "나쁜 행위자"가 바람직하지 않은 콘텐츠를 검색하고 해당 콘텐츠를 사용자에게 디스플레이하는 애플리케이션을 배포할 가능성이 있다. 이 문제는 동적 콘텐츠의 존재로 인해 더욱 복잡해진다. 동적 콘텐츠는 특정한 사용자를 위해 빈번하게 업데이트 및/또는 커스터마이징될 수 있으며, 다른 시간에 또는 다른 클라이언트 디바이스에 디스플레이될 때 달라질 수 있다. 예를 들어, 애플리케이션 내에서 해당 콘텐츠를 렌더링할 때 용납불가능한 지연을 일으키지 않고 동적 콘텐츠를 분석하는 것은 어려울 수 있다.
또한 애플리케이션 자체 외부의 서버에서 직접 애플리케이션 콘텐츠를 가져오지 못할 수 있다. 예를 들어, 일부 콘텐츠는 클라이언트 디바이스에서 애플리케이션에 로그인한 사용자를 위해 커스터마이징될 수 있다. 이러한 콘텐츠는 애플리케이션 외부에서 사용할 수 없다. 일부 콘텐츠는 애플리케이션을 열거나 콘텐츠를 로딩할 때 애플리케이션에 의해 요청되며 애플리케이션이 라이브 상태이고 콘텐츠를 요청한 경우에만 분석에 사용될 수 있다. 예를 들어, 애플리케이션은 애플리케이션 내에 제시할 웹사이트로부터 콘텐츠를 요청할 수 있다. 애플리케이션이 웹페이지와 같은 특정 URL(Uniform Resource Locator)에 연결되어 있지 않기 때문에, 결정적인 데이터 소스가 없다. 또한, 애플리케이션은 오프라인 상태일 때(예: 애플리케이션이 콘텐츠를 얻을 수 있는 네트워크에 연결되지 않은 경우) 콘텐츠를 제시할 수 있으므로, 웹브라우저에 제시되는 웹 콘텐츠와 비교하여 애플리케이션의 콘텐츠를 분석하기가 더 어려워진다.
또한 애플리케이션 퍼블리셔로부터 애플리케이션에 제시될 콘텐츠를 얻고 애플리케이션에 콘텐츠가 제시되기 전에 콘텐츠를 분석하는 것도 비효율적일 수 있다. 예를 들어 악의적 행위자가 분석을 위해 오해의 소지가 있는 콘텐츠를 제공하는 동시에 애플리케이션 자체에 다른 콘텐츠를 제공할 수 있다.
본 개시는 클라이언트 디바이스의 애플리케이션(예: 전통적인 브라우저가 아닌) 내에 디스플레이되는 콘텐츠를 분석하게 한다. 특히, 클라이언트 디바이스는 콘텐츠가 애플리케이션 내에 디스플레이되는(또는 디스플레이될) 시기를 식별하고, 콘텐츠의 적절성 분석을 위해 콘텐츠(또는 그 해시 값)를 서버에 전송한다. 서버의 콘텐츠 분석에 따라, 클라이언트 디바이스는 애플리케이션 내의 콘텐츠 디스플레이와 관련된 추가 결정을 내릴 수 있다. 이러한 방식으로, 콘텐츠를 렌더링할 때 용납가능하지 않은 지연없이 애플리케이션 내에 디스플레이될 콘텐츠가 신속하게 분석될 수 있다. 콘텐츠 자체가 아닌 해시 값을 분석을 위해 서버로 전송함으로써 콘텐츠의 비밀을 유지할 수 있다.
또한, 다른 콘텐츠, 예를 들어 디지털 컴포넌트가 상기 콘텐츠와 함께 제시되도록 선택될 수 있다. 애플리케이션의 콘텐츠가 동적일 수 있으므로(예: 자주 변경됨), 콘텐츠가 이전에 분석된 콘텐츠에 비해 변경되었는지 여부가 결정될 수 있다. 그렇지 않은 경우, 이전 콘텐츠 분석을 사용하여 디지털 컴포넌트를 선택할 수 있다. 콘텐츠가 변경된 경우, 일부 디지털 컴포넌트 예를 들어, 하나 이상의 선택 기준을 갖는 디지털 컴포넌트를 제공하기 전에 콘텐츠가 분석되어야 할 수 있고, 상기 하나 이상의 선택 기준은 성인물, 증오 표현과 같은 특정한 유형의 콘텐츠가 디지털 컴포넌트에 제시되지 않을 수 있음을 표시한다. 이 분석은 시간이 걸릴 수 있으므로, 성인물, 증오 표현을 포함하는 임의의 유형의 콘텐츠가 제시될 수 있는 디지털 컴포넌트가 제시를 위해 제공될 수 있고, 제시될 수 있는 콘텐츠의 유형에 제한을 포함하는 디지털 컴포넌트는 제시에 부적절한 것으로 간주될 수 있다. 이는 디지털 컴포넌트를 제공하고 제시할 때 지연을 감소시키고, 디지털 컴포넌트에 대한 선택 기준을 준수하고 이러한 디지털 컴포넌트에 부적절한 콘텐츠가 제시되는 것을 방지할 수 있다.
일반적으로, 본 명세서에 기술된 본 발명의 일 혁신적 양태는 클라이언트 디바이스의 애플리케이션 내에 디스플레이될 콘텐츠를 분석하는 방법에 이용될 수 있다. 방법은 클라이언트 디바이스에 의해 수행될 수 있으며 애플리케이션 내에서 발생하는 이벤트를 식별하는 단계를 포함한다. 이벤트는 애플리케이션에 의한 콘텐츠의 디스플레이의 표시이다. 디스플레이될 콘텐츠는 애플리케이션으로부터 수신된다. 콘텐츠를 표현하는 정보가 서버에 전송된다. 응답이 서버로부터 수신된다. 응답은 애플리케이션 내에 디스플레이할 콘텐츠의 적절성을 표시한다. 이 양태의 다른 구현예는 상기 방법의 양태를 수행하도록 구성된 대응 장치, 시스템 및 컴퓨터 저장 디바이스에 인코딩된 컴퓨터 프로그램을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태에서, 상기 콘텐츠를 표현하는 정보는 상기 콘텐츠의 적어도 일부에 대해 해시 함수를 수행함으로써 생성된 해시 값을 포함한다.
일부 양태는 상기 응답이 상기 콘텐츠가 디스플레이에 적절하지 않음을 표시하는 경우, 상기 애플리케이션 내에 상기 콘텐츠의 디스플레이를 방지하는 단계를 더 포함할 수 있다. 일부 양태는 상기 응답이 상기 콘텐츠가 상기 애플리케이션 내에 디스플레이하기에 적절하다고 표시하는 경우, 추가 콘텐츠를 수신하는 단계 및 상기 콘텐츠가 애플리케이션 내에 디스플레이되는 경우 상기 클라이언트 디바이스에 상기 추가 콘텐츠를 디스플레이하는 단계를 포함할 수 있다. 이벤트는 화면 업데이트 이벤트일 수 있다.
일반적으로, 본 명세서에 기술된 주제의 다른 혁신적 양태는 방법으로 구현될 수 있고, 상기 방법은 클라이언트 디바이스로부터, 상기 클라이언트 디바이스에서 실행되고 상기 하나 이상의 데이터 프로세싱 장치에 의해 직접 액세스될 수 없는 애플리케이션에 의해 디스플레이된 현재 콘텐츠를 표현하는 정보를 수신하는 단계를 포함한다. 하나 이상의 데이터 프로세싱 장치는 상기 수신된 정보에 기초하여, 상기 애플리케이션에 의해 디스플레이되는 상기 현재 콘텐츠가 하나 이상의 클라이언트 디바이스에서 상기 애플리케이션에 의해 이전에 디스플레이되었던 이전 콘텐츠로부터 변경되었는지 여부를 결정한다. 하나 이상의 데이터 프로세싱 장치는 상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되었는지 여부에 기초한 정보에 대해 응답하며, 상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되지 않았다는 결정에 응답하여, 상기 이전 콘텐츠에 대해, 상기 이전 콘텐츠의 적어도 일부가 할당되었던 콘텐츠 카테고리를 각각 표시하는 하나 이상의 라벨을 획득하는 단계를 포함한다. 상기 하나 이상의 라벨은 (i) 상기 정보가 수신되기 전에 수행되었던, 그리고 (ii) 상기 이전 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위해 화이트리스트에 있음을 표시하는 상기 이전 콘텐츠의 이전 분석에 기초하여 상기 이전 콘텐츠에 할당된다. 또한, 응답은 상기 하나 이상의 라벨에 기초하여, 상기 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위해 화이트리스트에 있음을 표시하는 상기 하나 이상의 라벨이 할당된 콘텐츠와 함께만 제시될 자격이 있는 제한된 디지털 컴포넌트의 세트를 선택하는 단계, 상기 제한된 디지털 컴포넌트의 세트로부터, 상기 애플리케이션에서 상기 현재 콘텐츠와 함께 제시하기 위해 상기 제한된 디지털 컴포넌트 중 하나 이상을 선택하는 단계; 및 상기 선택된 하나 이상의 제한된 디지털 컴포넌트를 상기 정보가 수신되었던 상기 클라이언트 디바이스에 제공하는 단계를 포함한다. 상기 현재 콘텐츠가 변경되었다는 결정에 응답하여, 제시될 자격이 있는 비제한 디지털 컴포넌트가 상기 제한된 디지털 컴포넌트 중 하나 이상이 아닌, 콘텐츠가 화이트리스트 있는지 여부와 관계없이 선택된다. 이 양태의 다른 구현예는 상기 방법의 양태를 수행하도록 구성된 대응 장치, 시스템 및 컴퓨터 저장 디바이스에 인코딩된 컴퓨터 프로그램을 포함한다.
이들 또는 다른 실시예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다. 일부 양태에서, 비제한 디지털 컴포넌트를 선택하는 것은 콘텐츠가 화이트리스트에 있는지 여부에 관계없이 제시될 자격이 있는 비제한 디지털 컴포넌트의 세트를 식별하는 단계 및 상기 비제한 디지털 컴포넌트에 대한 하나 이상의 배포 기준에 기초하여, 상기 비제한 디지털 컴포넌트로부터 비제한 디지털 컴포넌트를 선택하는 단계를 포함한다.
일부 양태는 상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되었다는 결정에 응답하여, 상기 애플리케이션의 현재 콘텐츠를 분석하는 단계 및 상기 분석에 기초하여, 상기 현재 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위한 화이트리스트에 있음을 표시하는 적어도 하나의 라벨을 상기 현재 콘텐츠에 할당하는 단계를 포함할 수 있다.
일부 양태에서, 상기 하나 이상의 라벨 중 적어도 하나는 상기 현재 콘텐츠가 부적절한 콘텐츠의 주어진 카테고리를 포함하는 것으로 분류되었음을 표시한다. 상기 제한된 디지털 컴포넌트의 세트를 선택하는 단계는 주어진 디지털 컴포넌트가 하나 이상의 선택 기준을 가진다고 결정하는 단계, 상기 하나 이상의 선택 기준은 상기 주어진 디지털 컴포넌트가 부적절한 콘텐츠의 상기 주어진 카테고리를 포함하는 콘텐츠가 제시될 자격이 없음을 표시하며 및 주어진 디지털 컴포넌트가 하나 이상의 선택 기준을 가진다고 결정에 응답하여 상기 제한된 디지털 컴포넌트의 세트에 상기 주어진 디지털 컴포넌트가 포함되지 않는다고 결정하는 단계를 포함하며, 상기 하나 이상의 선택 기준은 상기 주어진 디지털 컴포넌트가 부적절한 콘텐츠의 상기 주어진 카테고리를 포함하는 콘텐츠가 제시될 자격이 없음을 표시한다.
일부 양태에서, 상기 현재 콘텐츠를 표현하는 정보는 상기 현재 콘텐츠의 적어도 일부에 대해 해시 함수를 수행함으로써 생성된 해시 값을 포함하며 그리고 상기 수신된 정보에 기초하여, 상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되었는지 여부를 결정하는 단계는 상기 해시 값을 상기 이전 콘텐츠에 대한 이전 해시 값과 비교하는 것을 포함한다.
일부 양태에서, 상기 현재 콘텐츠를 표현하는 정보는 다수의 해시 값을 포함하고, 각각의 해시 값은 상기 애플리케이션에 의해 디스플레이되는 상기 현재 콘텐츠의 일부를 표현한다. 일부 양태에서, 상기 애플리케이션은 화면 업데이트 이벤트 검출에 응답하여 상기 애플리케이션에 의해 디스플레이되는 콘텐츠를 표현하는 정보를 제공한다.
본 명세서에 기술된 본 발명은 다음의 이점들을 실현하도록 특정한 실시예들에서 구현될 수 있다. 애플리케이션 콘텐츠가 변경되었는지 여부를 결정함으로써, 애플리케이션 콘텐츠와 함께 제시하기 위한 추가 콘텐츠, 예를 들어 디지털 컴포넌트를 선택하는 것이 콘텐츠 선택 시간에 애플리케이션 콘텐츠를 분석하는 것보다 훨씬 빠르게 이루어질 수 있다. 이렇게 하면 콘텐츠를 제공하고 제시할 때 지연을 감소시키고, 추가 콘텐츠를 기다리는 동안 애플리케이션 내에서 발생하는 오류도 감소시킬 수 있다. 콘텐츠 선택 시간에 애플리케이션 콘텐츠가 변경되었는지 여부를 결정함으로써, 시스템은 동적으로 변경되는 콘텐츠를 제시하는 애플리케이션의 경우에도 제한된 디지털 컴포넌트에 부적절한 콘텐츠가 제시되지 않도록 할 수 있다. 애플리케이션 내에서 발생하는 이벤트의 식별을 사용하여 콘텐츠를 표현하는 정보를 서버로 전송하면, 콘텐츠가 서버에 직접 액세스할 수 없는 경우에도 서버에서 콘텐츠를 분석할 수 있다. 또한, 적절한 콘텐츠를 디스플레이할 때 상당한 지연 시간 없이, 애플리케이션 내에 부적절한 콘텐츠가 디스플레이될 가능성을 줄일 수 있다.
전술한 주제의 다양한 구성 및 이점이 도면과 관련하여 아래에 설명된다. 추가 구성 및 이점은 본 명세서 및 청구 범위에 기술된 주제로부터 명백하다.
도 1은 예시적 디지털 컴포넌트 배포 시스템이 애플리케이션의 콘텐츠를 분석하고, 상기 분석에 기초하여 애플리케이션에서 제시할 디지털 컴포넌트를 배포하는 환경의 블록도이다.
도 2는 애플리케이션에 의해 제시될 콘텐츠의 적절성을 표시하는 응답을 획득하기 위한 예시적 프로세스를 도시하는 흐름도이다.
도 3은 애플리케이션에 의해 디스플레이된 콘텐츠에 기초하여 애플리케이션에 의한 제시를 위한 디지털 컴포넌트를 선택하고 제공하는 예시적 프로세스를 도시하는 흐름도이다.
다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다.
일반적으로, 본 명세서에 기술된 시스템 및 기법은 클라이언트 디바이스의 애플리케이션(예: 네이티브 애플리케이션) 내에 디스플레이되는 콘텐츠를 분석할 수 있다. 그 다음, 시스템은 애플리케이션 내에서 콘텐츠 제시와 관련된 결정을 내릴 수 있다. 예를 들어, 분석에 기초하여 애플리케이션 내에서 제시할 추가 콘텐츠를 선택할 수 있다.
디지털 컴포넌트와 같은 추가 콘텐츠는 추가 콘텐츠가 제시되지 않는 콘텐츠의 유형, 카테고리 및/또는 등급을 표시하는 하나 이상의 연관된 선택 기준을 가질 수 있다. 예를 들어, 디지털 컴포넌트의 퍼블리셔는 증오 표현으로 분류되거나 폭력적인 이미지가 포함된 콘텐츠가 디지털 컴포넌트에 디스플레이되는 것을 금지할 수 있다. 특정한 사용자에 대해 커스터마이징되거나, 자주 업데이트되거나, 애플리케이션이 라이브 상태일 때 다른 소스로부터 요청된 등 애플리케이션 내에 제시되는 콘텐츠가 동적이기 때문에, 애플리케이션의 콘텐츠가 일부 추가 콘텐츠가 제시되기에 적합하지 않은 텍스트, 이미지 또는 기타 콘텐츠를 포함하는지 여부를 정확하게 결정하기가 어려울 수 있다. 애플리케이션의 콘텐츠와 함께 제시될 수 있는 추가 콘텐츠에 관한 더 빠른 결정을 내리기 위해, 본 명세서에 기술된 시스템 및 기법은 애플리케이션에 의해 제시된 현재 콘텐츠가 애플리케이션에 의해 제시된 이전 콘텐츠로부터 변경되었는지 여부에 기초하여 추가 콘텐츠를 선택할 수 있다.
예를 들어, 시스템은 클라이언트 디바이스의 애플리케이션에 의해 디스플레이되는(또는 디스플레이될) 현재 콘텐츠의 표시를 수신할 수 있다. 시스템은 현재 콘텐츠가 동일한 클라이언트 디바이스 또는 다른 클라이언트 디바이스에서 애플리케이션에 의해 제시되었던 이전 콘텐츠로부터 변경되었는지 여부를 결정할 수 있다. 현재 콘텐츠가 이전 콘텐츠와 동일한 경우, 이전 콘텐츠의 이전 분석 결과를 사용하여 애플리케이션 내에서 제시할 추가 콘텐츠를 선택할 수 있다. 예를 들어, 이전 분석에 기초하여 이전 콘텐츠와 함께 제시될 자격이 있는 추가 콘텐츠가 선택될 수 있다. 현재 콘텐츠가 이전 콘텐츠와 다른 경우, 시스템은 현재 콘텐츠의 주제나 등급에 관계없이 제시될 자격이 있는 비제한 콘텐츠를 선택할 수 있다. 이러한 방식으로, 시스템은 현재 콘텐츠와 함께 제시할 추가 콘텐츠를 선택하기 전에 현재 콘텐츠가 분석될 때까지 기다릴 필요가 없으므로, 콘텐츠를 선택하고 제시할 때 지연을 감소시킨다.
도 1은 예시적 디지털 컴포넌트 배포 시스템(150)이 애플리케이션의 콘텐츠를 분석하고, 상기 분석에 기초하여 애플리케이션에서 제시할 디지털 컴포넌트(116)를 배포하는 환경(100)의 블록도이다. 이 문서 전체에서 사용된 문구 "디지털 컴포넌트"는 디지털 콘텐츠 또는 디지털 정보(예: 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 콘텐츠 유닛)의 개별 유닛을 지칭한다. 디지털 컴포넌트(116)는 물리적 메모리 디바이스에 단일 파일 또는 파일들의 집합으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있으며, 광고 정보를 포함할 수 있어 광고가 디지털 컴포넌트의 한 유형이도록 한다. 예를 들어, 디지털 컴포넌트는 애플리케이션 콘텐츠를 보충하기 위한 콘텐츠일 수 있다. 더 구체적으로, 디지털 컴포넌트는 애플리케이션 콘텐츠와 관련된 디지털 콘텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 애플리케이션 콘텐츠와 동일한 토픽 또는 관련 토픽에 관련될 수 있다). 따라서, 디지털 컴포넌트 배포 시스템(150)에 의한 디지털 컴포넌트의 제공은 애플리케이션 콘텐츠를 보충하고 일반적으로 향상시킬 수 있다.
디지털 컴포넌트 배포 시스템(150)은 클라이언트 디바이스(110)에서 동작하는 애플리케이션(111)에 의한 제시를 위해 디지털 컴포넌트(116)를 하나 이상의 클라이언트 디바이스(110)에 전송할 수 있다. 클라이언트 디바이스(110)는 예를 들어, 근거리 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 모바일 네트워크 또는 그들의 조합과 같은 데이터 통신 네트워크(120)를 통해 통신할 수 있는 전자 디바이스다. 예시적 클라이언트 디바이스(110)는 퍼스널 컴퓨터, 모바일 통신 디바이스, 예를 들어, 스마트폰 및 네트워크(120)를 통해 데이터를 송수신할 수 있는 기타 디바이스를 포함한다. 클라이언트 디바이스(110)는 특정한 플랫폼 또는 특정한 디바이스를 위해 개발된 네이티브 애플리케이션과 같은 다양한 애플리케이션을 포함할 수 있다. 예를 들어, 애플리케이션(111)은 특정한 스마트폰 또는 특정한 모바일 디바이스 운영 체제를 위해 개발된 네이티브 애플리케이션일 수 있다.
애플리케이션(111)은 클라이언트 디바이스(110)의 사용자에게 예를 들어 텍스트, 이미지 및/또는 비디오와 같은 콘텐츠를 제시할 수 있다. 예를 들어, 스포츠 뉴스 애플리케이션은 뉴스, 점수, 기사, 하이라이트 비디오, 스포츠 이벤트 중에 찍은 사진 또는 기타 스포츠 관련 콘텐츠를 제시할 수 있다. 애플리케이션(111)은 또한 콘텐츠와 함께 디지털 컴포넌트를 제시할 수 있다. 예를 들어, 애플리케이션(111)의 애플리케이션 페이지(117)는 애플리케이션 콘텐츠(예: 스포츠 콘텐츠)를 제시하기 위한 콘텐츠 영역(118) 및 하나 이상의 디지털 컴포넌트(116)를 제시하기 위한 하나 이상의 디지털 컴포넌트 슬롯(119)을 포함할 수 있다.
애플리케이션(111)은 네트워크(120)를 통해 디지털 컴포넌트 요청(115)을 디지털 컴포넌트 배포 시스템(150)에 제출하여 예를 들어, 디지털 컴포넌트 슬롯(119)에 제시하기 위해 디지털 컴포넌트를 요청할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 디지털 컴포넌트 요청(115)은 애플리케이션(111)에 의해 디스플레이되거나 디스플레이될 콘텐츠를 표현하는 정보를 포함할 수 있다.
디지털 컴포넌트 배포 시스템(150)은 클라이언트 디바이스(110)로부터 디지털 컴포넌트 요청(115)을 수신하고 요청에 응답하여 클라이언트 디바이스(110)에 디지털 컴포넌트(116)를 제공하는 하나 이상의 프론트엔드 서버(152)를 포함한다. 디지털 컴포넌트 배포 시스템(150)은 또한 하나 이상의 애플리케이션 콘텐츠 분석 서버(160) 및 하나 이상의 디지털 컴포넌트 선택 서버(170)를 포함하는 백엔드서버를 포함한다. 프런트엔드 서버(152)는 예를 들어 LAN 또는 WAN과 같은 내부 데이터 통신 네트워크를 통해 백엔드 서버와 통신할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 클라이언트 디바이스(110)에서 동작하는 애플리케이션(111)에 의해 디스플레이되는 콘텐츠를 분석한다. 예를 들어, 아래에서 더 자세히 설명되는 바와 같이, 애플리케이션(111)이 디지털 컴포넌트 요청(115)을 디지털 컴포넌트 배포 시스템(150)에 제출할 때, 디지털 컴포넌트 요청(115)은 상기 요청에 응답하여 선택된 디지털 컴포넌트가 제시될 애플리케이션의 콘텐츠 또는 콘텐츠에 대한 하나 이상의 해시 값을 포함할 수 있다. 그 다음, 콘텐츠 분석을 사용하여 애플리케이션 콘텐츠와 함께 제시할 디지털 컴포넌트를 선택할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠에 포함된 콘텐츠의 유형, 카테고리 및/또는 등급을 표시하기 위해 콘텐츠에 라벨(또는 다른 데이터)을 할당하기 위해 애플리케이션 콘텐츠를 분석할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠의 텍스트를 분석하여, 텍스트에 저속한 언어, 증오 표현, 특정한 단어 또는 특정 토픽이 포함되어 있는지 여부를 결정할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 텍스트의 단어 또는 문구를 저속한 단어 또는 문구의 목록, 증오 표현 단어 또는 문구의 목록 및/또는 콘텐츠가 라벨링될 수 있는 다른 단어 또는 구의 목록과 비교할 수 있다. 그 다음, 애플리케이션 콘텐츠 분석 서버(160)는 텍스트가 그러한 언어 또는 토픽을 포함하는지 여부를 표시하는 라벨을 애플리케이션 콘텐츠에 할당할 수 있다. 예를 들어, 텍스트에 저속한 단어가 포함된 경우, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠에 저속한 언어가 포함되어 있음을 표시하는 "저속한 언어"라는 라벨을 애플리케이션 콘텐츠에 할당할 수 있다.
일부 구현예에서, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠의 해시 값을 분석하여, 텍스트에 저속한 언어, 증오 표현, 특정한 단어 또는 특정 토픽이 포함되어 있는지 여부를 결정할 수 있다. 예를 들어, 아래에서 더 상세히 설명되는 바와 같이, 애플리케이션(111)은 해시 함수를 사용하여 텍스트에 대한 해시 값을 계산하는 해시 엔진(114)을 포함할 수 있다. 애플리케이션(111)은 예를 들어 실제 텍스트가 아닌 디지털 컴포넌트 요청(115)에 해시 값을 포함할 수 있다. 해시 값의 사용은 디지털 컴포넌트 요청(115)을 가로채는(또는 그렇지 않으면 수신하는) 당사자가 해시 값으로부터 애플리케이션 콘텐츠(118)를 도출하는 것이 어려울 수 있기 때문에(불가능하지 않은 경우) 애플리케이션 콘텐츠(118)의 비밀을 보존할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠에 포함된 이미지를 분석할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 특정한 오브젝트(예: 무기, 알코올, 약물 또는 약물 도구 등) 및/또는 특정한 유형의 콘텐츠, 예를 들어 혈액, 과도한 피부 등의 존재를 검출하기 위해 이미지(들)에 대해 오브젝트 검출 기법, 오브젝트 인식 기법 및 또는 컴퓨터 비전 분석을 사용할 수 있다. 그 다음, 애플리케이션 콘텐츠 분석 서버(160)는 이미지(들)가 특정한 오브젝트들 또는 특정한 유형의 콘텐츠를 포함하는지 여부를 표시하는 라벨을 애플리케이션 콘텐츠에 할당할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠에 포함된 오디오 콘텐츠를 분석할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 예를 들어, 오디오 전사 기법을 이용하여 오디오를 텍스트로 변환하고, 애플리케이션 콘텐츠에 포함된 텍스트가 분석되는 방식과 유사하게 변환된 텍스트를 분석할 수 있다. 그 다음, 애플리케이션 콘텐츠 분석 서버(160)는 오디오가 임의의 저속한 언어, 증오 표현, 특정한 단어 또는 특정한 토픽을 포함하는지 여부를 표시하는 라벨을 애플리케이션 콘텐츠에 할당할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠에 포함된 비디오(들)를 분석할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠 분석 서버(160)가 이미지를 분석하는 것과 유사한 방식으로 비디오의 하나 이상의 프레임을 샘플링하고 각 프레임을 분석할 수 있다. 유사하게, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠 분석 서버(160)가 오디오 콘텐츠에 대해 변환된 텍스트를 분석하는 것과 유사한 방식으로 비디오에 포함된 오디오를 텍스트로 변환하고 변환된 텍스트를 분석할 수 있다. 그 다음, 애플리케이션 콘텐츠 분석 서버(160)는 각 이미지 프레임 및 변환된 텍스트에 대한 라벨을 애플리케이션 콘텐츠에 할당할 수 있다. 애플리케이션 콘텐츠 분석 서버(160)는 또한 이미지(들) 및 변환된 텍스트의 조합에 기초하여 애플리케이션 콘텐츠에 라벨을 할당할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 이미지와 텍스트에서 인식된 오브젝트가 동일한 토픽에 대응하는 것으로 결정하고, 애플리케이션 콘텐츠가 상기 토픽과 관련이 있음을 표시하는 라벨을 애플리케이션 콘텐츠에 할당할 수 있다.
애플리케이션 분석 콘텐츠 서버(160)는 또한 콘텐츠에 포함된 텍스트, 이미지(들), 오디오 및/또는 비디오의 분석에 기초하여 애플리케이션 콘텐츠에 등급을 할당할 수 있다. 예를 들어, 애플리케이션 분석 콘텐츠 서버(160)는 특정 시청자 또는 특정 연령대에 대한 애플리케이션 콘텐츠의 적절성에 기초하여 등급을 할당할 수 있다. 특정 예에서, 애플리케이션 분석 콘텐츠 서버(160)는 애플리케이션 콘텐츠에서 식별된 단어, 이미지에서 인식된 콘텐츠의 오브젝트 또는 유형에 기초하여 애플리케이션 콘텐츠에 G, PG, Teen 또는 Mature와 같은 ESRB(Electronic Software Rating Board) 시스템 등급을 할당할 수 있다. 다른 예에서, 등급은 모든 시청자에게 적절하거나 모든 시청자에게 적절하지 않을 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 또한 애플리케이션 콘텐츠의 분석에 기초하여, 제한된 디지털 컴포넌트가 제시될 자격이 있는 애플리케이션 콘텐츠를 포함하는 화이트리스트에 애플리케이션 콘텐츠를 포함할지 여부를 결정할 수 있다. 아래에 더 자세히 기술될 바와 같이, 제한된 디지털 컴포넌트는 화이트리스트에 포함된 애플리케이션 콘텐츠와 함께만 제시될 수 자격이 있는 디지털 컴포넌트이다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 화이트리스트에 하나 이상의 등급, 예를 들어 G 또는 PG만을 갖는 애플리케이션 콘텐츠를 포함할 수 있다. 청소년 등급 이상이 할당된 애플리케이션 콘텐츠는 화이트리스트에 포함되지 않을 수 있다. 애플리케이션 콘텐츠 분석 서버(160)는 화이트리스트에 있는 애플리케이션 콘텐츠에, 애플리케이션 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위해 화이트리스트에 있음을 표시하는 하나 이상의 라벨을 할당할 수 있다.
다른 예에서, 화이트리스트는 애플리케이션 콘텐츠 분석 서버(160)에 의해 분석되고 상기 분석에 기초하여 애플리케이션 콘텐츠에 하나 이상의 라벨이 할당된 애플리케이션 콘텐츠를 포함할 수 있다. 아래에 더 자세히 기술될 바와 같이, 라벨을 사용하여 해당 라벨을 포함하는 애플리케이션 콘텐츠와 함께 제시될 자격이 있는 제한된 디지털 컴포넌트를 선택하는 동시에 해당 라벨을 포함하는 애플리케이션 콘텐츠와 함께 제시될 자격이 없는 제한된 디지털 컴포넌트를 선택하지 않는다.
애플리케이션 분석 콘텐츠 서버(160)는 애플리케이션 콘텐츠, 애플리케이션 콘텐츠에 대한 식별자, 애플리케이션 콘텐츠가 수신되었던 애플리케이션에 대한 식별자 및/또는 콘텐츠에 대한 라벨을 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장할 수 있다. 애플리케이션 콘텐츠의 식별자는 콘텐츠를 포함하는 애플리케이션 페이지에 대한 URI(Uniform Resource Identifier)를 포함할 수 있다. 다른 예에서, 애플리케이션 콘텐츠에 대한 식별자는 예를 들어 애플리케이션 콘텐츠가 수신될 때 프런트 엔드 서버(152)에 의해 또는 애플리케이션 콘텐츠가 분석될 때 애플리케이션 콘텐츠 분석 서버(160)에 의해 애플리케이션 콘텐츠에 할당된 고유 키일 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)가 현재 콘텐츠가 애플리케이션으로부터 수신된 이전 애플리케이션 콘텐츠와 일치한다고 결정하면, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠에 이전 애플리케이션 콘텐츠의 식별자를 할당할 수 있다.
일부 애플리케이션은 콘텐츠의 여러 부분, 예를 들어 동적 콘텐츠의 여러 부분을 포함할 수 있다. 예를 들어, 소셜 네트워킹 애플리케이션은 소셜 네트워킹 애플리케이션에 로그인한 사용자에 대해 선택된 다수의 메시지 또는 업데이트를 포함하는 뉴스 피드 또는 메시지 피드를 생성할 수 있다. 이 예에서, 애플리케이션 콘텐츠 애플리케이션 분석 서버(160)는 콘텐츠의 각 부분, 예를 들어 각각의 메시지 또는 업데이트를 분석하고, 상기 분석에 기초하여 콘텐츠의 각 부분에 라벨을 할당할 수 있다. 애플리케이션 콘텐츠 애플리케이션 분석 서버(160)는 또한 콘텐츠의 각 부분에 고유 식별자를 할당하고, 콘텐츠, 식별자 및 콘텐츠의 각 부분에 대한 라벨을 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 또한 애플리케이션 콘텐츠 및/또는 애플리케이션 콘텐츠의 일부의 해시 값을 계산할 수 있다. 애플리케이션 콘텐츠 분석 서버(160)는 콘텐츠의 해시 값을 계산하기 위해 해시 함수를 사용할 수 있다. 예를 들어, 분석 서버(160)는 MD5, SHA-512, SHA-256 또는 SHA-1 해시 함수 또는 다른 적절한 해시 함수를 사용할 수 있다. 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 애플리케이션 콘텐츠의 각 부분에 대한 해시 값을 저장할 수 있다. 예를 들어, 애플리케이션 콘텐츠 데이터 저장 유닛(164)은 애플리케이션 콘텐츠의 각 부분에 대해 애플리케이션 콘텐츠에 대한 식별자, 애플리케이션 콘텐츠를 제시하는 애플리케이션에 대한 식별자, 애플리케이션 콘텐츠에 대한 해시 값 및 애플리케이션 콘텐츠에 할당된 각 라벨을 포함하는 행을 포함하는 하나 이상의 테이블 또는 데이터베이스를 포함할 수 있다. 예시적 테이블(165)은 애플리케이션 콘텐츠의 각 부분에 대해, 콘텐츠에 대한 식별자, 콘텐츠에 대한 해시 값 및 콘텐츠에 대한 하나 이상의 라벨을 포함한다.
애플리케이션 콘텐츠 분석 서버(160)는 또한 현재 애플리케이션 콘텐츠의 해시 값과 이전 애플리케이션 콘텐츠의 해시 값을 비교하여 애플리케이션의 콘텐츠가 변경되었는지 여부를 결정할 수 있다. 예를 들어, 애플리케이션 페이지의 현재 버전에 대해 결정된 해시 값이 동일한 애플리케이션 페이지의 이전 버전에 대해 계산된 해시 값(또는 동일한 애플리케이션 페이지의 여러 이전 버전에 대한 해시 값)과 다른 경우, 애플리케이션은 콘텐츠 분석 서버(160)는 애플리케이션 페이지의 콘텐츠가 변경되었다고 결정할 수 있다. 현재 버전의 해시 값이 이전 버전과 일치하는 경우, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 페이지의 콘텐츠가 변경되지 않았다고 결정할 수 있다.
디지털 컴포넌트 선택 서버(170)는 클라이언트 디바이스(110)로부터 수신된 디지털 컴포넌트 요청(115)에 응답하여 제시하기 위해 제공할 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트는 디지털 컴포넌트 데이터 저장 유닛(172)에 저장될 수 있다. 디지털 컴포넌트는 제한된 디지털 컴포넌트와 비제한 디지털 컴포넌트를 포함할 수 있다. 제한된 디지털 컴포넌트는 화이트리스트에 있는 콘텐츠와 함께만 제시될 자격이 있는 디지털 컴포넌트이다. 예를 들어, 제한된 디지털 컴포넌트는 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위해 화이트리스트에 있음을 표시하는 하나 이상의 라벨이 할당된 콘텐츠와 함께만 제시될 수 있다.
제한된 디지털 컴포넌트는 또한 제한된 디지털 컴포넌트가 제시될 자격이 없는 콘텐츠를 특정하는 하나 이상의 연관된 선택 기준을 가질 수 있다. 예를 들어, 디지털 컴포넌트 퍼블리셔(140)는 자신의 디지털 컴포넌트가 콘텐츠의 특정 유형, 카테고리 및/또는 등급과 함께 제시되는 것을 허용하지 않을 수 있다. 제한된 디지털 컴포넌트에 대한 선택 기준은 PG보다 높은 등급, 피, 무기 또는 총을 포함하는 콘텐츠, 저속한 언어를 포함한 콘텐츠와 같이 콘텐츠의 제외된 유형, 카테고리 및/또는 등급을 특정할 수 있다. 디지털 컴포넌트 요청(115)의 애플리케이션 콘텐츠에 대한 라벨이 제한된 디지털 컴포넌트에 대한 제외된 콘텐츠를 포함하는 경우, 제한된 디지털 컴포넌트는 디지털 컴포넌트 요청에 응답하여 선택에 적절하지 않을 것이다.
비제한 디지털 컴포넌트는 콘텐츠가 화이트리스트에 있는지 여부에 관계없이 제시될 자격이 있는 디지털 컴포넌트이다. 예를 들어, 일부 디지털 컴포넌트 퍼블리셔(140)는 그들의 디지털 컴포넌트가 임의의 유형, 카테고리 또는 콘텐츠 등급과 함께 제시되도록 할 수 있다.
제한 및 비제한 디지털 컴포넌트는 디지털 컴포넌트 요청(115)에 응답하여 제공할 디지털 컴포넌트를 선택하기 위해 디지털 컴포넌트 선택 서버(170)에 의해 사용되는 하나 이상의 배포 기준을 가질 수 있다. 이 배포 기준은 애플리케이션의 콘텐츠, 애플리케이션 자체, 클라이언트 디바이스와 관련된 데이터(예: 지리적 위치 또는 사용자 또는 클라이언트 디바이스) 또는 기타 적절한 기준과 관련될 수 있다. 예를 들어, 디지털 컴포넌트 퍼블리셔(140)는 디지털 컴포넌트가 특정한 키워드를 포함하는 애플리케이션 콘텐츠와 함께 특정한 애플리케이션에서 또는 특정한 지리적 영역에 위치된 클라이언트 디바이스에서 동작하는 애플리케이션에서 제시될 자격이 있음을 특정할 수 있다. 아래에 더 자세히 기술될 바와 같이, 디지털 컴포넌트 선택 서버(170)는 현재 애플리케이션 콘텐츠가 이전 애플리케이션 콘텐츠로부터 변경되었는지 여부에 기초하여 자격이 있는 디지털 컴포넌트의 세트를 식별한 다음, 배포 기준에 기초하여 상기 자격이 있는 디지털 컴포넌트로부터 하나 이상의 디지털 컴포넌트를 선택할 수 있다.
애플리케이션(111)은 이벤트 검출기(112), 콘텐츠 엔진(113) 및 해시 엔진(114)을 포함할 수 있다. 일부 구현예에서, 이벤트 검출기(112), 콘텐츠 엔진(113) 및 해시 엔진(114)은 소프트웨어 개발자 키트(SDK)에 포함된다. 예를 들어, 애플리케이션 개발자는 디지털 컴포넌트 배포 시스템(150)(또는 다른 시스템)으로부터 SDK를 다운로드하고, 애플리케이션(111)에 SDK를 포함시켜 애플리케이션(111)이 디지털 컴포넌트 배포 시스템(150)으로부터 디지털 컴포넌트를 요청할 수 있도록 할 수 있다.
이벤트 검출기(112)는 애플리케이션(111) 내에서 발생하는 이벤트를 검출할 수 있다. 이벤트 검출기(112)는 애플리케이션(111)에 의한 콘텐츠의 디스플레이를 표시하는 이벤트를 검출할 수 있다. 예를 들어, 이벤트 검출기(112)는 애플리케이션(111)이 콘텐츠, 예를 들어, 애플리케이션에 의해 현재 제시되고 있지 않는 콘텐츠를 제시하기 위해 화면을 업데이트할 화면 업데이트 이벤트를 검출할 수 있다. 특정 예에서, 이벤트 검출기(112)는 애플리케이션 페이지가 서버로부터 로드되거나 다운로드되는 시기를 검출할 수 있다. 다른 예에서, 이벤트 검출기(112)는 웹뷰가 생성되고 활성화될 시기를 검출할 수 있다. 또 다른 예에서, 픽셀은 웹뷰에 포함될 수 있고 이벤트 검출기(112)는 픽셀이 뷰어에게 보이는 시기를 결정할 수 있다.
이벤트 검출기(112)가 애플리케이션(111)에 의한 콘텐츠의 디스플레이를 표시하는 이벤트를 검출하면, 콘텐츠 엔진(113)은 애플리케이션(111)에 의해 디스플레이되는(또는 디스플레이될) 콘텐츠를 표현하는 정보를 디지털 컴포넌트 배포 시스템(150)에 전송한다. 애플리케이션(111)이 콘텐츠와 함께 디지털 컴포넌트를 제시할 경우, 콘텐츠 엔진(113)은 콘텐츠와 함께 제시할 하나 이상의 디지털 컴포넌트를 요청하는 디지털 컴포넌트 요청의 정보를 전송할 수 있다.
콘텐츠 엔진(113)은 콘텐츠를 표현하는 정보로서, 콘텐츠 자체, 콘텐츠에 대한 하나 이상의 해시 값, 또는 콘텐츠의 일부 부분과 콘텐츠의 다른 부분에 대한 하나 이상의 해시 값의 조합을 전송할 수 있다. 해시 값을 전송할 때, 해시 엔진(114)은 하나 이상의 해시 함수를 사용하여 콘텐츠에 기초한 해시 값을 계산할 수 있다. 이러한 해시 함수는 애플리케이션 콘텐츠 분석 서버(160)에 의해 사용되는 것과 동일한 해시 함수일 수 있으므로, 콘텐츠 엔진(113)에 의해 전송된 해시 값이 애플리케이션 콘텐츠 분석 서버(160)에 의해 계산된 해시 값과 비교되도록 한다.
콘텐츠 엔진(113)은 특정한 유형의 콘텐츠에 대해 콘텐츠의 실제 콘텐츠 또는 해시 값을 전송하도록 구성될 수 있다. 예를 들어, 일부 애플리케이션은 애플리케이션 퍼블리셔(130)(또는 사용자)가 서드파티에게 전송하기를 원하지 않을 수 있는 민감한 또는 개인 데이터를 제시한다. 특정 예에서, 은행 애플리케이션은 사용자의 금융 데이터를 제시할 수 있다. 이 예에서, 콘텐츠 엔진(113)은 사용자의 금융 데이터가 디지털 컴포넌트 배포 시스템(150)으로 전송되지 않도록 텍스트 자체가 아닌 애플리케이션의 텍스트를 표현하는 하나 이상의 해시 값을 전송하도록 구성될 수 있다. 뉴스 리포트 애플리케이션과 같은 다른 애플리케이션은 개인 데이터나 민감한 데이터를 제시하지 않을 수 있다. 이러한 애플리케이션을 위한 콘텐츠 엔진(113)은 텍스트의 해시 값이 아닌 텍스트 자체를 전송하도록 구성될 수 있다.
애플리케이션(111)에서 텍스트를 표현하는 해시 값을 전송할 때, 해시 엔진(114)은 모든 텍스트에 대한 해시 값을 계산할 수 있다. 해시 엔진(114)은 또한 개별 단어 그룹, 예를 들어 개별 쌍 또는 단어에 대한 각각의 해시 값을 계산할 수 있다. 콘텐츠 엔진(113)은 콘텐츠를 표현하는 정보와 함께 모든 텍스트에 대한 해시 값 및/또는 텍스트 그룹에 대한 해시 값을 전송할 수 있다.
일부 이미지는 민감한 데이터나 개인 데이터를 표현하는 텍스트를 포함할 수 있다. 이러한 이미지를 제시할 수 있는 애플리케이션의 경우, 콘텐츠 엔진(113)은 예를 들어 광학 문자 인식(OCR) 기법을 사용하여 이미지의 텍스트를 인식하도록 구성될 수 있다. 이미지를 디지털 컴포넌트 배포 시스템(150)으로 전송하기 전에, 콘텐츠 엔진(113)은 예를 들어 이미지 블러링 기법을 사용하여 이미지 내의 텍스트 및/또는 다른 민감한 또는 개인 데이터를 가릴 수 있다. 콘텐츠 엔진(113)은 또한 해시 엔진(114)이 이미지 내의 텍스트에 대한 하나 이상의 해시 값을 계산하도록 할 수 있다. 그 다음, 콘텐츠 엔진(113)은 콘텐츠를 표현하는 정보에, 블러링된 이미지 및 텍스트에 대한 해시 값(들)을 포함할 수 있다.
전술한 바와 같이, 일부 애플리케이션, 예를 들어 소셜 네트워킹 애플리케이션은 콘텐츠의 여러 부분, 예를 들어 동적 콘텐츠의 여러 부분을 포함할 수 있다. 이러한 애플리케이션의 경우, 콘텐츠 엔진(113)은 콘텐츠의 각 부분에 대한 데이터, 예를 들어 콘텐츠의 각 부분에 대한 하나 이상의 해시 값을 전송할 수 있다. 이러한 방식으로, 애플리케이션 콘텐츠 분석 서버(160)는 각 부분이 이전에 분석되고 라벨이 할당된 콘텐츠의 일부와 일치하는지 여부를 결정할 수 있다.
콘텐츠 엔진(113)은 애플리케이션의 콘텐츠를 표현하는 정보를 포함하는 디지털 컴포넌트 요청(115)을 생성하고 콘텐츠 배포 시스템(150)에 전송할 수 있다. 디지털 컴포넌트 요청(115)은 또한 추가 데이터(예: 애플리케이션에 대한 식별자) 및 콘텐츠에 대한 식별자(예: 콘텐츠를 포함하는 애플리케이션 페이지에 대한 URI), 컨텍스트 데이터(예: 클라이언트 디바이스(110)의 지리적 위치) 및/또는 기타 적절한 데이터를 포함할 수 있다.
디지털 컴포넌트 배포 시스템(150)이 디지털 컴포넌트 요청(115)을 수신하는 경우, 애플리케이션 콘텐츠 분석 서버(160)는 디지털 컴포넌트 요청(115)의 데이터에 의해 표현된 현재 콘텐츠가 디지털 컴포넌트 요청이 수신되었던 클라이언트 디바이스(110)에서 또는 다른 클라이언트 디바이스에서 애플리케이션에 의해 이전에 제시되었던 이전 콘텐츠로부터 변경되었는지 여부를 결정할 수 있다. 이를 위해, 디지털 컴포넌트 배포 시스템(150)은 현재 콘텐츠에 대한 하나 이상의 해시 값을 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장된 하나 이상의 해시 값과 비교할 수 있다.
일부 구현예에서, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장된 애플리케이션에 대한 이전 콘텐츠가 있는지 여부를 결정할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 콘텐츠에 대한 식별자를 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장된 콘텐츠에 대한 식별자와 비교할 수 있다. 일치하는 경우, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 데이터가 저장된 콘텐츠의 하나 이상의 이전 콘텐츠 버전로부터 현재 콘텐츠가 변경되었는지 여부를 결정할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠에 대한 하나 이상의 해시 값을 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장된 이전 콘텐츠에 대한 하나 이상의 대응하는 해시 값과 비교함으로써 콘텐츠가 변경되었는지 여부를 결정할 수 있다. 디지털 컴포넌트 요청(115)이 예를 들어 해시 값(들)이 아닌 현재 콘텐츠에 포함된 경우, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠에 대한 해시 값(들)을 계산할 수 있다. 일부 구현에서, 애플리케이션 콘텐츠 분석 서버(160)는 전체로서, 예를 들어 현재 콘텐츠 전체에 대한 현재 콘텐츠에 대한 전체 해시 값을 이전 콘텐츠에 대한 전체 해시 값과 비교한다. 해시 값이 일치하면, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠가 이전 콘텐츠로부터 변경되지 않은 것으로 결정할 수 있다. 해시 값이 일치하지 않는 경우, 어플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠가 이전 콘텐츠로부터 변경되었다고 결정할 수 있다.
애플리케이션 콘텐츠가 여러 번 변경될 수 있으므로, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠에 대한 해시 값(들)을 분석된 애플리케이션 콘텐츠의 여러 이전 버전 각각에 대한 대응 해시 값(들)과 비교할 수 있다. 예를 들어, 애플리케이션은 콘텐츠의 보다 최신 버전이 삭제되면, 이전 버전의 콘텐츠(예를 들어, 가장 최신의 두 버전보다 이전 버전)로 되돌릴 수 있다. 현재 콘텐츠가 분석된 이전 버전과 일치하는 경우, 이전 버전의 분석을 사용하여 디지털 컴포넌트(들)를 선택할 수 있다.
일부 구현예에서, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠에 대한 다수의 해시 값을 이전 콘텐츠에 대한 다수의 대응하는 해시 값과 비교한다. 예를 들어, 애플리케이션이 콘텐츠의 다수의 개별 부분(예: 여러 뉴스 피드 게시물)을 포함하는 경우, 현재 콘텐츠의 버전 로부터 각 개별 부분에 대한 해시 값은 이전 콘텐츠의 버전 로부터 각 부분에 대한 대응하는 해시 값과 비교될 수 있다. 현재 콘텐츠에 대한 하나 이상의 해시 값이 이전 콘텐츠에 대한 대응하는 해시 값과 일치하지 않는 경우, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠가 이전 콘텐츠로부터 변경된 것으로 결정할 수 있다. 현재 콘텐츠에 대한 모든 해시 값이 이전 콘텐츠의 대응하는 해시 값과 일치하는 경우, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠가 이전 콘텐츠로부터 변경된 것으로 결정할 수 있다.
설명하기 위해, 소셜 네트워킹 게시물이 다수의 사용자의 뉴스 피드에 제시될 수 있다. 이 게시물은 게시물을 고유하게 식별하는 식별자를 가질 수 있다. 게시물이 제1 사용자를 위해 소셜 네트워킹 애플리케이션에 의해 제시될 때, 애플리케이션 콘텐츠 분석 서버(160)는 게시물의 콘텐츠를 분석하여 하나 이상의 라벨을 할당하고 콘텐츠의 해시를 계산할 수 있다. 이후 게시물을 작성한 사용자가 게시물을 수정할 수 있다. 수정된 게시물은 제2 사용자에게 제시될 수 있다. 수정된 게시물의 해시 값은 원래 게시물의 해시 값과 다를 것이다. 따라서, 제2 사용자가 사용자의 뉴스 피드에서 다수의 게시물을 보고 있다면, 애플리케이션 콘텐츠 분석 서버(160)는 불일치하는 해시 값에 기초하여 이 특정한 게시물이 이전 버전으로부터 변경된 것으로 결정할 것이다.
이러한 방식으로 콘텐츠의 개별 부분 각각을 분석하면 애플리케이션 콘텐츠 분석 서버(160)에 대한 계산 부담을 줄일 수 있다. 예를 들어, 현재 콘텐츠가 콘텐츠의 다수의 개별 부분을 결합하여 생성되었다고 가정한다. 또한 콘텐츠의 개별 부분의 일부 또는 전부가 애플리케이션 콘텐츠 분석 서버(160)에 의해 이전에 분석되었지만, 이들 부분이 이전에 애플리케이션 콘텐츠 분석 서버(160)에 의해 발견되지 않은 방식으로 결합된다고 가정한다. 애플리케이션 콘텐츠 분석 서버(160)가 현재 콘텐츠 전체를 분석해야 하는 필요성은 콘텐츠의 개별 부분의 일부 또는 전부에 대한 이전 분석 결과를 사용함으로써 피할 수 있으며, 이에 따라 계산 부담을 줄일 수 있다.
일부 구현예에서, 현재 콘텐츠에 대한 해시 값을 이전 콘텐츠에 대한 해시 값과 비교하는 대신, 애플리케이션 콘텐츠 분석 서버(160)는 실제 콘텐츠를 비교할 수 있다. 그러나, 이것은 해시 값을 비교하는 것보다 더 많은 시간이 소요될 수 있으며, 결과적으로 디지털 컴포넌트 요청(115)에 응답하여 디지털 컴포넌트(116)를 제공할 때 지연이 증가한다.
일부 구현예에서, 애플리케이션 콘텐츠 분석 서버(160)는 디지털 컴포넌트 요청(115)의 데이터에 의해 표현되는 현재 콘텐츠에 대한 식별자를 갖지 않을 수 있다. 이러한 예에서, 애플리케이션 콘텐츠 분석 서버(160)는 현재 콘텐츠에 대한 해시 값과 애플리케이션 콘텐츠 데이터 저장 유닛(164)에 저장된 애플리케이션(111)의 각 이전 콘텐츠에 대한 해시 값을 비교할 수 있다. 일치하는 것이 있으면, 일치하는 콘텐츠의 라벨을 사용하여 디지털 컴포넌트를 선택할 수 있다. 그렇지 않은 경우, 디지털 컴포넌트 요청(115)에 응답하여 비제한 디지털 컴포넌트가 제공될 수 있고, 애플리케이션 콘텐츠 분석 서버(160)는 전술한 바와 같이 분석에 기초하여 콘텐츠를 분석하고 콘텐츠에 라벨을 할당할 수 있다. 그 다음 라벨을 사용하여 동일한 콘텐츠에 대한 후속 디지털 컴포넌트 요청에 대해 제한된 디지털 컴포넌트를 선택할 수 있다.
애플리케이션의 새로운 애플리케이션 페이지와 같이 콘텐츠가 처음 수신되는 경우 애플리케이션 콘텐츠 분석 서버(160)는 콘텐츠가 변경된 것처럼 콘텐츠를 처리할 수 있다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)는 콘텐츠를 분석하고 분석에 기초하여 콘텐츠에 라벨을 할당할 수 있다. 애플리케이션 콘텐츠 분석 서버(160)는 또한 전술한 바와 같이 콘텐츠에 대한 하나 이상의 해시 값을 계산할 수 있다.
애플리케이션 콘텐츠 분석 서버(160)가 현재 콘텐츠가 이전 콘텐츠로부터 변경되었다고 결정하면, 디지털 컴포넌트 선택 서버(170)는 콘텐츠가 화이트리스트에 있는지 여부와 관계없이 제공될 수 있는 비제한 디지털 컴포넌트의 세트(제한된 디지털 컴포넌트가 아닌)를 식별할 수 있다. 디지털 컴포넌트 선택 서버(170)는 디지털 컴포넌트 요청에 응답하여 제공하기 위해, 예를 들어, 비제한 디지털 컴포넌트에 대한 선택 기준에 기초하여, 비제한 디지털 컴포넌트 중 하나 이상을 선택할 수 있다. 이것은 디지털 컴포넌트 선택 서버(170)가 현재 콘텐츠가 제한된 디지털 컴포넌트에 적절한지 여부를 결정하기 위해 분석될 현재 콘텐츠를 기다리지 않고 디지털 컴포넌트를 제공할 수 있게 한다. 현재 콘텐츠는 적어도 일부 디지털 컴포넌트에 적절하지 않을 수 있는 알려지지 않은 콘텐츠가 포함되어 있으므로, 제한된 디지털 컴포넌트는 분석이 완료될 때까지 부적절할 수 있다. 이렇게하면 디지털 컴포넌트 요청에 대한 응답으로 디지털 컴포넌트를 제공할 때 지연을 감소시킨다.
어플리케이션 콘텐츠 분석 서버(160)가 현재 콘텐츠가 이전 콘텐츠로부터 변경되지 않았다고 결정하면, 디지털 컴포넌트 선택 서버(170)는 이전 콘텐츠의 이전 분석에 기초하여 이전 콘텐츠에 할당되었던 하나 이상의 라벨을 획득할 수 있다. 그 다음, 디지털 컴포넌트 선택 서버(170)는 하나 이상의 라벨을 포함하는 콘텐츠와 제공될 자격이 있는 제한된 디지털 컴포넌트의 세트를 선택할 수 있다. 예를 들어, 라벨 중 하나가 이전 콘텐츠가 알코올을 포함한다고 표시하면, 디지털 컴포넌트 선택 서버(170)는 알코올을 포함하는 콘텐츠와 함께 제공될 자격이있는 제한된 디지털 컴포넌트를 선택할 수 있다. 그 다음, 디지털 컴포넌트 선택 서버(170)는 제한된 디지털 컴포넌트에 대한 선택 기준에 기초하여, 디지털 컴포넌트 요청(115)에 응답하여 제공하기 위해, 제한된 디지털 컴포넌트의 세트에서 제한된 디지털 컴포넌트 중 하나 이상을 선택할 수 있다.
디지털 컴포넌트 선택 서버(170)는 선택된 디지털 컴포넌트(들)를 프론트엔드 서버(152)에 제공할 수 있다. 차례로, 프론트엔드 서버(152)는 디지털 컴포넌트 요청(115)이 수신되었던 클라이언트 디바이스(110)에 선택된 디지털 컴포넌트(들)를 제공할 수 있다. 애플리케이션(111)은 수신된 디지털 컴포넌트(들), 예를 들어, 디지털 컴포넌트 슬롯에 현재 콘텐츠와 함께 제시할 수 있다.
도 1의 예에서, 디지털 컴포넌트 요청(115)은 애플리케이션 식별자 "앱 1", 애플리케이션(111)에 의해 제시될 현재 콘텐츠를 식별하는 콘텐츠 식별자 "페이지 1" 및 현재 콘텐츠에 대한 해시 값 "3hx9mg7"을 포함한다. 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 데이터 저장 유닛(164)에서 표(165)의 점선 박스에 도시된 바와 같이 앱 1의 페이지 1에 대한 이전 콘텐츠를 식별할 수 있다. 애플리케이션 콘텐츠 분석 서버(160)는 디지털 컴포넌트 요청에 포함된 해시 값과 표(165)에 포함된 해시 값을 비교할 수 있다. 이 예에서 2개의 해시 값이 일치하므로, 디지털 컴포넌트 선택 서버(170)는 일치하는 이전 콘텐츠에 대한 라벨(들), 즉 성인 및 약물의 등급을 획득할 수 있다. 디지털 컴포넌트 선택 서버(170)는 R 등급을 갖고 약물을 포함하는 콘텐츠와 함께 제공될 자격이 있는 제한된 디지털 컴포넌트를 선택할 수 있다. 이 예에서, 디지털 컴포넌트 3는 이 디지털 컴포넌트가 증오 표현 또는 피를 포함하는 콘텐츠와 함께 제시되는 것에서만 제외되기 때문에 자격이 있다. 디지털 컴포넌트 2는 또한 이 디지털 컴포넌트는 제한되지 않고, 콘텐츠의 유형 또는 등급에 관계없이 콘텐츠와 함께 제공될 수 있으므로 자격이 있다. 해시 값이 일치하지 않는 경우, 디지털 컴포넌트 2는 비제한 디지털 컴포넌트이므로 제시될 자격이 있을 수 있지만, 디지털 컴포넌트 3은 제한된 디지털 컴포넌트이므로 자격이 없을 수 있다.
애플리케이션(111)은 또한 해시 데이터 저장 유닛(109), 예를 들어 해시 데이터베이스를 포함한다. 클라이언트 디바이스(110)에 의해 제공되는 콘텐츠를 분석한 후, 디지털 컴포넌트 배포 시스템(150)은 콘텐츠에 대한 해시(들) 및 각 해시에 대한 라벨(들)을 해시 데이터 저장 유닛(109)에 저장하기 위해 클라이언트 디바이스(110)에 제공할 수 있다. 애플리케이션(111)이 디지털 컴포넌트 요청(115)을 전송할 때, 해시 엔진(114)은 애플리케이션(111)에 의해 제시된(또는 제시될) 콘텐츠의 해시(들)를 해시 데이터 저장 유닛(109)의 해시와 비교할 수 있다. 일치하는 경우, 콘텐츠 엔진(113)은 디지털 컴포넌트 요청(115)에 해시 자체가 아닌 각각의 일치하는 해시에 대한 라벨(들)을 포함할 수 있다. 이러한 방식으로, 디지털 컴포넌트 선택 서버(170)는 해시 또는 콘텐츠를 분석하지 않고 라벨(들)을 사용하여 디지털 컴포넌트를 선택할 수 있다.
이것은 또한 애플리케이션(111)이 오프라인 상태일 때 애플리케이션(111)이 디지털 컴포넌트를 제시할 수 있게 한다. 예를 들어, 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트 요청(115)에 응답하여 디지털 컴포넌트 세트를 애플리케이션(111)에 제공할 수 있다. 각각의 디지털 컴포넌트에 대해, 디지털 컴포넌트 배포 시스템(150)은 또한 예를 들어 애플리케이션(111)의 콘텐츠에 대한 라벨에 기초하여, 디지털 컴포넌트가 제시될 수 있는 시기를 정의하는 규칙 세트를 제공할 수 있다. 애플리케이션(111)이 오프라인 상태이거나 네트워크(120)의 대역폭이 낮은 경우(예를 들어, 클라이언트 디바이스(110)가 셀 타워 또는 다른 네트워크 액세스 포인트로부터 너무 멀리 떨어져 있기 때문에), 콘텐츠 엔진(113)은 해시 데이터 저장 유닛(109)에 저장된 해시에 대한 라벨을 사용하여 디지털 컴포넌트가 제시될 수 있는지 여부를 결정하고, 그렇다면, 제시할 디지털 컴포넌트를 선택한다. 콘텐츠 엔진(113)은 애플리케이션(111)이 온라인 상태이고 대역폭이 높을 경우에도 이 기법을 사용하여 예를 들어 디지털 컴포넌트를 제시할 때 지연을 감소시킬 수 있다.
예를 들어, 애플리케이션(111)에 의해 제시되는 콘텐츠의 해시(들)가 해시 데이터 저장 유닛(109)의 대응하는 해시(들)와 일치하면, 콘텐츠 엔진(113)은 각 디지털 컴포넌트에 대한 규칙 및 해시에 대한 라벨을 사용하여 제시할 디지털 컴포넌트를 선택한다. 콘텐츠의 하나 이상의 해시가 해시 데이터 저장 유닛(109)에 저장된 해시와 일치하지 않는 경우, 콘텐츠 엔진(113)은 비제한 디지털 컴포넌트를 선택하거나 디지털 컴포넌트를 제시하지 않기로 결정할 수 있다(예를 들어, 비제한 디지털 컴포넌트가 디지털 컴포넌트의 세트에 제공되지 않는 경우).
콘텐츠 엔진(113)은 또한 애플리케이션(111)에 의해 제시된 콘텐츠의 해시(들)를 해시 데이터 저장 유닛(109)의 해시와 비교하여, 디지털 컴포넌트 배포 시스템(150)으로부터 디지털 컴포넌트를 대기할지 여부를 결정할 수 있다. 예를 들어, 콘텐츠의 해시가 해시 데이터 저장 유닛(109)에 저장된 해시와 일치하지 않는 경우, 콘텐츠 엔진(113)은 콘텐츠에 라벨을 할당하기 위해 콘텐츠가 분석될 필요가 있을 수 있으므로 디지털 컴포넌트를 제시하지 않을 것으로 결정할 수 있다.
일부 구현예에서, 클라이언트 디바이스(110)는 애플리케이션 콘텐츠 분석 서버(160)와 유사하게 애플리케이션(111)의 콘텐츠를 분석하는 온-디바이스 콘텐츠 분석 엔진을 포함할 수 있다. 온-디바이스 콘텐츠 분석 엔진은 이벤트 검출기(112), 콘텐츠 엔진(113) 및 해시 엔진(114)과 함께 SDK에 포함될 수 있다. 온-디바이스 콘텐츠 분석 엔진은 분석에 기초하여 콘텐츠에 라벨을 할당할 수 있다. 온-디바이스 콘텐츠 분석 엔진은 클라이언트 디바이스의 제한된 메모리를 덜 차지하도록 애플리케이션 콘텐츠 분석 서버(160)보다 더 집중되거나 덜 광범위할 수 있다. 예를 들어, 온-디바이스 콘텐츠 분석 엔진은 콘텐츠에서 찾은 텍스트만 분석하고 분석에 기초하여 텍스트에 라벨을 할당할 수 있다. 이 예에서, 콘텐츠 엔진(113)은 텍스트의 해시와 함께 라벨을 디지털 컴포넌트 배포 시스템(150)에 전송할 수 있다. 미래의 디지털 컴포넌트 요청을 위해, 콘텐츠 엔진(113)은 예를 들어 애플리케이션 콘텐츠 분석 서버(160)에 의해 수행되는 분석을 간소화하기 위해, 분석된 텍스트에 대한 해시 및 라벨을 유사하게 제공할 수 있다.
일부 구현예에서, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션의 콘텐츠가 변경되는지 여부 및/또는 얼마나 자주 변경되는지를 추적한다. 예를 들어, 애플리케이션 콘텐츠 분석 서버(160)가 특정한 애플리케이션 페이지(또는 애플리케이션 콘텐츠의 다른 식별 가능한 부분)에 대한 디지털 컴포넌트 요청을 수신할 때마다, 애플리케이션 콘텐츠 분석 서버(160)는 전술한 바와 같이 콘텐츠가 변경되었는지 여부를 결정할 수 있다. 각 애플리케이션 페이지 또는 애플리케이션 콘텐츠의 다른 부분에 대해, 애플리케이션 콘텐츠 분석 서버(160)는 예를 들어 일정 기간 동안 변경된 횟수의 카운트를 유지할 수 있다. 그 다음, 애플리케이션 콘텐츠 분석 서버(160)는 카운트에 기초하여 예를 들어 카운트가 임계치를 초과하는 경우 이를 동적인 것으로 할당함으로써, 애플리케이션 페이지 또는 애플리케이션 콘텐츠의 다른 부분을 정적 또는 동적인 것으로 분류할 수 있다. 다른 예에서, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션 콘텐츠 분석 서버(160)가 콘텐츠가 분석된 지난 N(예를 들어, 100, 200 또는 다른 적절한 횟수)번 동안 콘텐츠가 변경되지 않았다고 결정한 경우 애플리케이션 페이지 또는 애플리케이션 콘텐츠의 다른 부분을 정적인 것으로 분류할 수 있다.
정적 애플리케이션 콘텐츠의 경우, 애플리케이션 콘텐츠 분석 서버(160)는 애플리케이션의 실제 콘텐츠가 애플리케이션 콘텐츠 분석 서버(160)에 사용가능하지 않는 경우 이전에 할당된 라벨을 사용하여 디지털 컴포넌트를 선택할 수 있고, 이는 디지털 컴포넌트가 제한될 수 있는 콘텐츠를 포함하도록 상기 디지털 컴포넌트가 변경될 가능성이 작기 때문이다. 애플리케이션 콘텐츠 분석 서버(160)는 예를 들어 애플리케이션 페이지 또는 애플리케이션 콘텐츠의 다른 부분에 대해 수신된 디지털 컴포넌트 요청의 임계 수 이후 또는 주기적으로 콘텐츠를 분석함으로써, 콘텐츠가 정적인 상태로 유지되도록 통계적 샘플링을 수행할 수 있다.
도 2는 애플리케이션에 의해 제시될 콘텐츠의 적절성을 표시하는 응답을 획득하기 위한 예시적 프로세스(200)를 도시하는 흐름도이다. 프로세스(200)는 예를 들어, 도 1의 클라이언트 디바이스(110)에 의해 구현될 수 있다. 또한, 프로세스(200)의 동작은 비일시적 컴퓨터 판독가능 매체에 저장된 명령어로 구현될 수 있으며, 하나 이상의 데이터 프로세싱 장치에 의한 명령어의 실행은 상기 하나 이상의 데이터 프로세싱 장치로 하여금 프로세스(200)의 동작을 수행하게 한다.
애플리케이션(111) 내에서 발생하는 이벤트가 식별된다(202). 이벤트는 클라이언트 디바이스에서 동작하는 애플리케이션에 의한 콘텐츠의 디스플레이의 표시일 수 있다. 애플리케이션에 의한 콘텐츠의 디스플레이를 표시하는 이벤트는 애플리케이션이 이전에 애플리케이션에서 제공하지 않았던 콘텐츠를 제시하기 위해 화면을 업데이트하는 화면 업데이트 이벤트일 수 있다. 예를 들어, 이벤트는 업데이트된 콘텐츠(예: 업데이트된 소셜 네트워킹 콘텐츠 또는 업데이트된 스포츠 이벤트 점수)를 제시하기 위해 콘텐츠를 새로 고침하라는 사용자 요청 또는 현재 제시되고 있는 애플리케이션 페이지와 다른 애플리케이션 페이지를 다운로드하여 제시하라는 사용자 요청에 의해 개시될 수 있다. 상기 기술된 바와 같이, 애플리케이션에 포함된 SDK를 통해 이벤트가 검출될 수 있다. 다른 예에서, 애플리케이션은 이벤트가 발생하고 있음을 표시하는 데이터를 SDK에 제공하는 코드를 포함할 수 있다.
디스플레이될 콘텐츠가 애플리케이션으로부터 수신된다(204). 예를 들어, 애플리케이션의 SDK 또는 동일한 클라이언트 디바이스에서 동작하는 다른 애플리케이션은 애플리케이션에 의해 디스플레이될 콘텐츠를 획득할 수 있다. SDK는 콘텐츠가 애플리케이션에 제공될 때 콘텐츠를 획득하는 스크립트 또는 래퍼 함수를 포함할 수 있다.
콘텐츠를 표현하는 정보가 서버, 예를 들어 디지털 컴포넌트 배포 시스템(150) 또는 그 구성 서버(152, 160, 170) 중 임의의 서버에 전송된다(206). 정보는 애플리케이션 내에서 발생하는 이벤트 식별에 대한 응답으로 전송될 수 있다. 상기 기술된 바와 같이, 콘텐츠를 표현하는 정보는 콘텐츠 자체, 콘텐츠에 기초하여 계산된 해시 값 또는 이들의 조합을 포함할 수 있다. 예를 들어, 콘텐츠를 표현하는 정보는 콘텐츠의 이미지, 오디오 및/또는 비디오를 포함할 수 있다. 텍스트의 경우, 콘텐츠를 표현하는 정보는 텍스트 자체 또는 텍스트에 기초하여 계산된 예를 들어 텍스트 전체 및/또는 텍스트의 개별 그룹에 대한 하나 이상의 해시 값을 포함할 수 있다.
서버로부터 응답이 수신된다(208). 응답은 애플리케이션 내에 디스플레이할 콘텐츠의 적절성을 표시한다. 예를 들어, 서버는 콘텐츠를 표현하는 정보를 분석하고, 분석에 기초하여 콘텐츠에 라벨을 할당할 수 있다. 상기 기술된 바와 같이, 라벨은 애플리케이션 콘텐츠에 포함된 콘텐츠의 유형, 카테고리 및/또는 등급을 표시할 수 있다.
서버로부터 수신된 응답에 기초하여 추가 동작이 수행될 수 있다. 예를 들어, 애플리케이션(또는 애플리케이션의 SDK)은 응답이 콘텐츠가 디스플레이하기에 적절하지 않다는 것을 표시하는 경우 애플리케이션 내에 콘텐츠 표시를 차단할 수 있다. 특정한 예에서, 콘텐츠에 성인 등급이 할당되고, 애플리케이션의 사용자가 특정 연령(예: 18 세) 미만인 경우, 애플리케이션은 콘텐츠의 표시를 차단할 수 있다. 다른 예에서, 응답이 콘텐츠가 특정한 유형의 콘텐츠, 예를 들어 악성 코드 또는 증오 표현을 포함함을 표시하는 경우, 애플리케이션은 콘텐츠의 디스플레이를 차단할 수 있다.
응답이 콘텐츠가 애플리케이션 내에서 디스플레이하기에 적절함을 표시하는 경우 애플리케이션 내에서 디스플레이하기 위해 추가 콘텐츠가 수신될 수 있다. 예를 들어, 서버는 위에서 설명한 콘텐츠 분석에 기초하여 애플리케이션 내에 제시할 하나 이상의 제한된 디지털 컴포넌트를 식별할 수 있다. 서버는 식별된 디지털 컴포넌트(들)를 애플리케이션에 제공할 수 있다(예: 응답과 함께). 애플리케이션은 콘텐츠와 함께 디지털 컴포넌트를 제시할 수 있다.
도 3은 애플리케이션에 의해 제시될 다른 콘텐츠에 기초하여 애플리케이션에 의한 제시를 위한 콘텐츠를 선택하고 제공하는 예시적 프로세스(300)를 도시하는 흐름도이다. 프로세스(300)는 예를 들어, 도 1의 디지털 컴포넌트 배포 시스템(150)에 의해 구현될 수 있다. 또한, 프로세스(300)의 동작들은 비일시적 컴퓨터 판독가능 매체에 저장된 명령어들로서 구현될 수 있으며, 하나 이상의 데이터 프로세싱 장치에 의한 명령어들의 실행은 상기 하나 이상의 데이터 프로세싱 장치로 하여금 프로세스(300)의 동작들을 수행하게 한다.
애플리케이션에 의해 디스플레이된 현재 콘텐츠를 표현하는 정보가 클라이언트 디바이스(110)로부터 수신된다(302). 현재 콘텐츠는 애플리케이션(111)에 의해 현재 제시되거나 예를 들어 애플리케이션에서 발생하는 이벤트에 응답하여 제시될 콘텐츠일 수 있다. 상기 기술된 바와 같이, 콘텐츠를 표현하는 정보는 콘텐츠 자체, 콘텐츠에 기초하여 계산된 해시 값 또는 이들의 조합을 포함할 수 있다.
애플리케이션의 콘텐츠는 애플리케이션 외부에서 직접 액세스할 수 없다. 예를 들어, 콘텐츠는 예를 들어 애플리케이션 자체에 의해 애플리케이션에 로그인된 특정한 사용자를 위해 커스터마이징될 수 있다. 특정한 예에서, 콘텐츠는 애플리케이션에 로그인한 사용자에게 제시하기 위해 선택된 소셜 네트워킹 게시물을 포함할 수 있다. 다른 예에서, 콘텐츠는 자주 업데이트되어, 미리 콘텐츠를 획득하는 것이 제시되는 콘텐츠를 표현하지 않도록 할 수 있다. 예를 들어 콘텐츠는 주식 시세, 스포츠 경기 점수 또는 하루 종일 변경될 수 있는 뉴스 콘텐츠를 포함할 수 있다.
애플리케이션에 의해 디스플레이된 현재 콘텐츠가 하나 이상의 클라이언트 디바이스에서 애플리케이션에 의해 이전에 제시된 이전 콘텐츠로부터 변경되었는지 여부가 결정된다(304). 예를 들어, 동일한 콘텐츠가 서로 다른 클라이언트 디바이스에서 여러 사용자에게 제시될 수 있다. 일부 동적 콘텐츠는 시간이 지남에 따라 변경되어, 하나의 클라이언트 디바이스에서 애플리케이션에 의해 제시되는 콘텐츠가 다른 클라이언트 디바이스에서 애플리케이션에 의해 제시되는 콘텐츠와 다를 수 있다. 일부 콘텐츠는 애플리케이션에 로그인한 사용자에 기초하여 커스터마이징되어 콘텐츠가 사용자마다 다를 수 있다.
전술한 바와 같이, 이전 콘텐츠와 현재 콘텐츠에 대해 하나 이상의 해시 값이 계산될 수 있다. 해시 값이 서로 비교되어 현재 콘텐츠가 이전 콘텐츠로부터 변경되었는지 여부를 결정할 수 있다. 예를 들어, 현재 콘텐츠에 대해 전체 해시 값을 계산하고 이전 콘텐츠에 대해 전체 해시 값을 계산할 수 있다. 해시 값이 일치하면, 현재 콘텐츠가 이전 콘텐츠로부터 변경되지 않은 것이다. 즉, 현재 콘텐츠가 이전 콘텐츠와 일치하는 것이다. 해시 값이 일치하지 않으면, 현재 콘텐츠가 이전 콘텐츠로부터 변경된 것이다. 즉, 현재 콘텐츠가 이전 콘텐츠와 일치하지 않는 것이다.
현재 콘텐츠가 이전 콘텐츠로부터 변경되었는지 여부에 기초하여 응답이 이루어진다. 현재 콘텐츠가 이전 콘텐츠로부터 변경되지 않은 경우 동작(306-312)이 수행된다. 현재 콘텐츠가 이전 콘텐츠로부터 변경된 경우 동작(314-320)이 수행된다.
현재 콘텐츠가 이전 콘텐츠로부터 변경되지 않았다는 결정에 응답하여, 이전 콘텐츠에 대한 하나 이상의 라벨이 획득된다(306). 이전 콘텐츠의 이전 분석에 기초하여 하나 이상의 라벨을 이전 콘텐츠에 할당될 수 있다. 예를 들어, 이전 콘텐츠를 표현하는 정보는 현재 콘텐츠가 수신되기 전에 애플리케이션으로부터 수신되었을 수 있다. 전술한 바와 같이, 이전 콘텐츠를 표현하는 정보를 분석할 수 있으며, 분석에 기초하여 이전 콘텐츠에 하나 이상의 라벨이 할당될 수 있다.
상기 기술된 바와 같이, 각 라벨은 상기 분석에 기초하여 이전 콘텐츠의 적어도 일부가 할당되었던 카테고리, 유형 또는 등급을 표시할 수 있다. 하나 이상의 라벨은 이전 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위한 화이트리스트에 있는지 여부를 표시하는 라벨을 포함할 수 있다.
제한된 디지털 컴포넌트 세트는 하나 이상의 라벨에 기초하여 선택된다(308). 제한된 디지털 컴포넌트는 제한된 디지털 컴포넌트의 제시를 위해 콘텐츠가 화이트리스트에 있음을 표시하는 하나 이상의 라벨이 할당되었던 콘텐츠와 함께만 제시될 수 있는 디지털 컴포넌트이다. 각각의 제한된 디지털 컴포넌트는 디지털 컴포넌트가 제시되지 것이 금지된 콘텐츠의 카테고리, 유형 및/또는 등급을 표시하는 하나 이상의 선택 기준과 연관될 수 있다. 하나 이상의 라벨을 선택 기준과 비교하여 제한된 디지털 컴포넌트 세트를 선택할 수 있다. 예를 들어, 제한된 디지털 컴포넌트가 이전 콘텐츠의 하나 이상의 라벨이 할당된 콘텐츠와 함께 제공될 자격이 있음을 표시하는 선택 기준을 가진 각 제한된 디지털 컴포넌트는 제한된 디지털 컴포넌트 세트에 포함되도록 선택될 수 있다. 제한된 디지털 컴포넌트에 제한된 디지털 컴포넌트가 이전 콘텐츠에 대한 라벨 중 하나에 의해 특정된 콘텐츠와 함께 제시에 적절하지 않음을 표시하는 선택 기준이 포함되어 있는 경우, 제한된 디지털 컴포넌트가 제한된 디지털 컴포넌트 세트에 포함되지 않을 수 있다.
콘텐츠와 함께 제시하기 위해 하나 이상의 디지털 컴포넌트가 선택된다(310). 제한된 디지털 컴포넌트 세트로부터 하나 이상의 디지털 컴포넌트가 선택될 수 있다. 예를 들면, 하나 이상의 디지털 컴포넌트는 애플리케이션의 현재 콘텐츠, 애플리케이션 자체, 클라이언트 디바이스와 관련된 데이터(예: 지리적 위치 또는 사용자 또는 클라이언트 디바이스) 또는 기타 적절한 기준과 관련된 배포 기준에 기초하여 선택될 수 있다.
선택된 디지털 컴포넌트(들)는 현재 콘텐츠(312)와 함께 애플리케이션에서 제시를 위해 클라이언트 디바이스에 제공된다. 애플리케이션은 디지털 컴포넌트(들)를 수신하고, 예를 들어 애플리케이션의 하나 이상의 디지털 컴포넌트 슬롯에서 애플리케이션의 현재 콘텐츠와 함께 디지털 컴포넌트(들)를 제시할 수 있다.
동작(304)으로 돌아가서, 현재 콘텐츠가 이전 콘텐츠로부터 변경되었다는 결정에 응답하여, 비제한 디지털 컴포넌트 세트가 선택된다(314). 각 비제한 디지털 컴포넌트는 현재 콘텐츠가 화이트리스트에 있는지 여부와 관계없이 제시에 적절한 디지털 컴포넌트이다. 예를 들어, 비제한 디지털 컴포넌트는 비제한 디지털 컴포넌트가 제시될 수 있는 콘텐츠의 유형, 카테고리 또는 등급에 대한 제한이 없을 수 있다. 따라서 비제한 디지털 컴포넌트는 모든 애플리케이션 콘텐츠와 함께 제시될 수 있다.
현재 콘텐츠와 함께 제시하기 위해 비제한 디지털 컴포넌트 세트로부터 하나 이상의 디지털 컴포넌트가 선택된다(316). 제한된 디지털 컴포넌트와 유사하게, 비제한 디지털 컴포넌트(들)는 애플리케이션의 현재 콘텐츠, 애플리케이션 자체, 클라이언트 디바이스와 관련된 데이터(예: 지리적 위치 또는 사용자 또는 클라이언트 디바이스) 또는 기타 적절한 기준과 관련된 배포 기준에 기초하여 선택될 수 있다.
선택된 디지털 컴포넌트(들)는 현재 콘텐츠(318)와 함께 애플리케이션에서 제시를 위해 클라이언트 디바이스에 제공된다. 애플리케이션은 디지털 컴포넌트(들)를 수신하고, 예를 들어 애플리케이션의 하나 이상의 디지털 컴포넌트 슬롯에서 애플리케이션의 현재 콘텐츠와 함께 디지털 컴포넌트(들)를 제시할 수 있다.
애플리케이션의 현재 콘텐츠가 분석된다(320). 현재 콘텐츠가 이전 콘텐츠와 다르므로, 현재 콘텐츠를 분석하여 현재 콘텐츠의 유형, 카테고리 및 등급을 표시하는 하나 이상의 라벨을 현재 콘텐츠에 할당할 수 있다. 현재 콘텐츠를 분석하여 현재 콘텐츠가 제한된 콘텐츠의 제시를 위한 화이트리스트에 있음을 표시하는 라벨을 현재 콘텐츠에 할당할 수 있다. 이러한 방식으로, 동일한 콘텐츠가 나중에 수신되면, 라벨은 동작(306-312)에 설명된 바와 같이 디지털 컴포넌트를 선택하는데 사용될 수 있다. 이를 통해, 콘텐츠가 이미 분석되고 라벨이 할당되었으므로, 지연을 감소시키고 동일한 콘텐츠를 표현하는 정보를 수신함에 응답하여 제한된 디지털 컴포넌트가 제공되게 한다.
본 발명의 실시예들과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명의 실시예들은 하나 이상의 컴퓨터 프로그램들로서 구현될 수 있다. 즉, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 물리적 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 “데이터 프로세싱 장치”는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만, 반드시 그런 것은 아니다. 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은, 예시로서, 범용 및 전용 마이크로프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들에 따라 액션들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 상기 디바이스들을 반드시 가져야하는 것은 아니다. 추가로, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 나열하면, 모바일 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 내장될 수 있다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 디바이스는 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스; 예를 들어, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 본 발명의 실시예들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써 예를 들어, 웹브라우저로부터 수신된 요청에 응답하여, 사용자의 사용자 디바이스상의 웹브라우저에 웹페이지를 전송함으로써 사용자와 인터렉션할 수 있다.
본 명세서에서 기술된 발명의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, HTML 페이지)를 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서 사용자 디바이스로부터 수신될 수 있다.
본 명세서는 많은 특정 구현 세부내용을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정한 발명의 특정한 실시예에 특정한 구성들에 대한 설명으로 해석되어야 한다. 별개의 실시예의 컨텍스트에서 본 명세서에서 기술되는 일정 구성들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 컨텍스트에서 기술된 다양한 구성들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 게다가, 구성들은 일정 조합으로 동작하고 심지어 초기적으로 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성들은 일부 경우, 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 안내될 수 있다.
유사하게, 동작들이 특정한 순서로 도면에서 도시되었지만, 이는 상기 동작들이 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것으로서 또는 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안된다. 특정 환경에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 실시예에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예에서 그러한 분리가 필요한 것으로서 이해되어서는 안되며, 일반적으로 기술된 프로그램 컴포넌트들 및 시스템들은 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키징될 수 있다고 이해되어야 한다.
따라서, 본 발명의 특정한 실시예들이 기술되었다. 다른 실시예들도 다음의 청구항들의 범위 내에 있다. 일부 경우에, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 추가로, 첨부 도면들에 도시된 프로세스들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 특정 구현예에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다.

Claims (16)

  1. 클라이언트 디바이스의 애플리케이션 내에 디스플레이될 콘텐츠를 분석하는 방법으로서, 상기 방법은 상기 클라이언트 디바이스에 의해 수행되며, 상기 방법은:
    상기 애플리케이션 내에서 발생하는 이벤트를 식별하는 단계, 상기 이벤트는 상기 애플리케이션에 의한 콘텐츠의 디스플레이를 표시하며;
    상기 애플리케이션으로부터 디스플레이될 콘텐츠를 수신하는 단계;
    상기 콘텐츠를 표현하는 정보를 서버에 전송하는 단계; 및
    상기 서버로부터 응답을 수신하는 단계를 포함하며, 상기 응답은 상기 애플리케이션 내에 디스플레이하기 위한 콘텐츠의 적절성을 표시하는, 방법.
  2. 청구항 1에 있어서, 상기 콘텐츠를 표현하는 정보는 상기 콘텐츠의 적어도 일부에 대해 해시 함수를 수행함으로써 생성된 해시 값을 포함하는, 방법.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 응답이 상기 콘텐츠가 디스플레이에 적절하지 않음을 표시하는 경우, 상기 애플리케이션 내에 상기 콘텐츠의 디스플레이를 방지하는 단계를 더 포함하는, 방법.
  4. 청구항 1 또는 청구항 2에 있어서,
    상기 응답이 상기 콘텐츠가 상기 애플리케이션 내에 디스플레이하기에 적절하다고 표시하는 경우, 추가 콘텐츠를 수신하는 단계; 및
    상기 콘텐츠가 애플리케이션 내에 디스플레이되는 경우 상기 클라이언트 디바이스에 상기 추가 콘텐츠를 디스플레이하는 단계를 더 포함하는, 방법.
  5. 임의의 선행하는 청구항에 있어서, 상기 이벤트는 화면 업데이트 이벤트인, 방법.
  6. 하나 이상의 프로세싱 장치에 의해 수행되는 방법으로서,
    클라이언트 디바이스로부터, 상기 클라이언트 디바이스에서 실행되고 상기 하나 이상의 데이터 프로세싱 장치에 의해 직접 액세스될 수 없는 애플리케이션에 의해 디스플레이된 현재 콘텐츠를 표현하는 정보를 수신하는 단계;
    상기 하나 이상의 데이터 프로세싱 장치에 의해, 상기 수신된 정보에 기초하여, 상기 애플리케이션에 의해 디스플레이되는 상기 현재 콘텐츠가 하나 이상의 클라이언트 디바이스에서 상기 애플리케이션에 의해 이전에 디스플레이되었던 이전 콘텐츠로부터 변경되었는지 여부를 결정하는 단계;
    상기 하나 이상의 데이터 프로세싱 장치에 의해, 상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되었는지 여부에 기초한 정보에 대해 응답하는 단계, 상기 응답하는 단계는:
    상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되지 않았다는 결정에 응답하여:
    상기 이전 콘텐츠에 대해, 상기 이전 콘텐츠의 적어도 일부가 할당되었던 콘텐츠 카테고리를 각각 표시하는 하나 이상의 라벨을 획득하는 단계, 상기 하나 이상의 라벨은 (i) 상기 정보가 수신되기 전에 수행되었던, 그리고 (ii) 상기 이전 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위해 화이트리스트에 있음을 표시하는 상기 이전 콘텐츠의 이전 분석에 기초하여 상기 이전 콘텐츠에 할당되었으며;
    상기 하나 이상의 라벨에 기초하여, 상기 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위해 화이트리스트에 있음을 표시하는 상기 하나 이상의 라벨이 할당된 콘텐츠와 함께만 제시될 자격이 있는 제한된 디지털 컴포넌트의 세트를 선택하는 단계; 및
    상기 제한된 디지털 컴포넌트의 세트로부터, 상기 애플리케이션에서 상기 현재 콘텐츠와 함께 제시하기 위해 상기 제한된 디지털 컴포넌트 중 하나 이상을 선택하는 단계; 및
    상기 선택된 하나 이상의 제한된 디지털 컴포넌트를 상기 정보가 수신되었던 상기 클라이언트 디바이스에 제공하는 단계; 및
    상기 현재 콘텐츠가 변경되었다는 결정에 응답하여, 상기 제한된 디지털 컴포넌트 중 하나 이상이 아닌, 콘텐츠가 화이트리스트 있는지 여부와 관계없이 제시될 자격이 있는 비제한 디지털 컴포넌트를 선택하는 단계를 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 비제한 디지털 컴포넌트를 선택하는 단계는:
    콘텐츠가 화이트리스트에 있는지 여부에 관계없이 제시될 자격이 있는 비제한 디지털 컴포넌트의 세트를 식별하는 단계;
    상기 비제한 디지털 컴포넌트에 대한 하나 이상의 배포 기준에 기초하여, 상기 비제한 디지털 컴포넌트로부터 비제한 디지털 컴포넌트를 선택하는 단계를 포함하는, 방법.
  8. 청구항 7에 있어서,
    상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되었다는 결정에 응답하여, 상기 애플리케이션의 현재 콘텐츠를 분석하는 단계; 및
    상기 분석에 기초하여, 상기 현재 콘텐츠가 제한된 디지털 컴포넌트의 제시를 위한 화이트리스트에 있음을 표시하는 적어도 하나의 라벨을 상기 현재 콘텐츠에 할당하는 단계를 더 포함하는, 방법.
  9. 청구항 6 내지 8 중 어느 한 항에 있어서,
    상기 하나 이상의 라벨 중 적어도 하나는 상기 현재 콘텐츠가 부적절한 콘텐츠의 주어진 카테고리를 포함하는 것으로 분류되었음을 표시하고; 그리고
    상기 제한된 디지털 컴포넌트의 세트를 선택하는 단계는:
    주어진 디지털 컴포넌트가 하나 이상의 선택 기준을 가진다고 결정하는 단계, 상기 하나 이상의 선택 기준은 상기 주어진 디지털 컴포넌트가 부적절한 콘텐츠의 상기 주어진 카테고리를 포함하는 콘텐츠가 제시될 자격이 없음을 표시하며; 및
    주어진 디지털 컴포넌트가 하나 이상의 선택 기준을 가진다고 결정에 응답하여 상기 제한된 디지털 컴포넌트의 세트에 상기 주어진 디지털 컴포넌트가 포함되지 않는다고 결정하는 단계를 포함하며, 상기 하나 이상의 선택 기준은 상기 주어진 디지털 컴포넌트가 부적절한 콘텐츠의 상기 주어진 카테고리를 포함하는 콘텐츠가 제시될 자격이 없음을 표시하는, 방법.
  10. 청구항 6 내지 9 중 어느 한 항에 있어서,
    상기 현재 콘텐츠를 표현하는 정보는 상기 현재 콘텐츠의 적어도 일부에 대해 해시 함수를 수행함으로써 생성된 해시 값을 포함하며; 그리고
    상기 수신된 정보에 기초하여, 상기 현재 콘텐츠가 상기 이전 콘텐츠로부터 변경되었는지 여부를 결정하는 단계는 상기 해시 값을 상기 이전 콘텐츠에 대한 이전 해시 값과 비교하는 것을 포함하는, 방법.
  11. 청구항 6 내지 10 중 어느 한 항에 있어서, 상기 현재 콘텐츠를 표현하는 정보는 다수의 해시 값을 포함하고, 각각의 해시 값은 상기 애플리케이션에 의해 디스플레이되는 상기 현재 콘텐츠의 일부를 표현하는, 방법.
  12. 청구항 6 내지 11 중 어느 한 항에 있어서, 상기 애플리케이션은 화면 업데이트 이벤트 검출에 응답하여 상기 애플리케이션에 의해 디스플레이되는 콘텐츠를 표현하는 정보를 제공하는, 방법.
  13. 청구항 6 내지 11 중 어느 한 항에 있어서,
    애플리케이션 페이지의 콘텐츠가 변경되지 않은 것으로 결정되는 횟수에 기초하여, 상기 현재 콘텐츠를 포함하는 애플리케이션 페이지를 정적인 것으로 분류하는 단계; 및
    상기 애플리케이션 페이지를 정적인 것으로 분류하는 것에 응답하여, 상기 애플리케이션의 콘텐츠가 사용불가능한 경우 상기 애플리케이션에서 제시할 제한된 디지털 컴포넌트를 선택하기 위해 상기 애플리케이션 페이지의 콘텐츠에 대해 이전에 할당된 라벨을 사용하는 단계를 더 포함하는, 방법.
  14. 선행하는 청구항 중 어느 한 항의 방법을 수행하도록 구성된 장치.
  15. 명령어를 포함하는 컴퓨터 판독가능 매체로서, 상기 명령어는 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 청구항 1 내지 13 중 어느 한 항의 방법을 수행하게 하는, 컴퓨터 판독가능 매체.
  16. 명령어를 포함하는 컴퓨터 프로그램 물로서, 상기 명령어는 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 청구항 1 내지 13 중 어느 한 항의 방법을 수행하게 하는, 컴퓨터 프로그램 물.
KR1020207034908A 2019-02-01 2019-10-23 동적 애플리케이션 콘텐츠 분석 KR102446963B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227032466A KR102626275B1 (ko) 2019-02-01 2019-10-23 동적 애플리케이션 콘텐츠 분석

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962800172P 2019-02-01 2019-02-01
US62/800,172 2019-02-01
PCT/US2019/057541 WO2020159591A1 (en) 2019-02-01 2019-10-23 Dynamic application content analysis

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227032466A Division KR102626275B1 (ko) 2019-02-01 2019-10-23 동적 애플리케이션 콘텐츠 분석

Publications (2)

Publication Number Publication Date
KR20210005255A true KR20210005255A (ko) 2021-01-13
KR102446963B1 KR102446963B1 (ko) 2022-09-23

Family

ID=68583493

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227032466A KR102626275B1 (ko) 2019-02-01 2019-10-23 동적 애플리케이션 콘텐츠 분석
KR1020207034908A KR102446963B1 (ko) 2019-02-01 2019-10-23 동적 애플리케이션 콘텐츠 분석

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227032466A KR102626275B1 (ko) 2019-02-01 2019-10-23 동적 애플리케이션 콘텐츠 분석

Country Status (6)

Country Link
US (3) US10917494B2 (ko)
EP (1) EP3814958A1 (ko)
JP (3) JP7193555B2 (ko)
KR (2) KR102626275B1 (ko)
CN (2) CN113761516A (ko)
WO (1) WO2020159591A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003225565A (ja) 2001-11-20 2003-08-12 San-Dia Polymer Ltd 吸水剤、その製法、吸水剤を用いた吸収体並びに吸収性物品
US10917494B2 (en) 2019-02-01 2021-02-09 Google Llc Dynamic application content analysis
CN115668179A (zh) 2021-01-07 2023-01-31 谷歌有限责任公司 在内容显示期间选择和提供数字分量
IL281328A (en) 2021-03-08 2022-10-01 Google Llc Flexible content selection processes through multi-sided secure calculation
IL283674A (en) 2021-06-03 2023-01-01 Google Llc Distribution and monitoring of cross-disciplinary experimental groups to maintain privacy
CN114363669B (zh) * 2021-12-29 2023-05-30 北京达佳互联信息技术有限公司 信息显示方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160323307A1 (en) * 2015-04-29 2016-11-03 Symantec Corporation Systems and methods for evaluating content provided to users via user interfaces

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126267A1 (en) 2001-12-27 2003-07-03 Koninklijke Philips Electronics N.V. Method and apparatus for preventing access to inappropriate content over a network based on audio or visual content
US20080040748A1 (en) 2006-08-09 2008-02-14 Ken Miyaki Dynamic rating of content
US8255873B2 (en) 2006-11-20 2012-08-28 Microsoft Corporation Handling external content in web applications
US7844693B2 (en) 2007-09-13 2010-11-30 International Business Machines Corporation Methods and systems involving monitoring website content
US8386314B2 (en) 2008-12-11 2013-02-26 Accenture Global Services Limited Online ad detection and ad campaign analysis
US20100257182A1 (en) 2009-04-06 2010-10-07 Equiom Labs Llc Automated dynamic style guard for electronic documents
US20160140611A1 (en) 2010-12-20 2016-05-19 Sizmek Technologies Ltd. System and method for criteria-based advertisement blocking
US20130013705A1 (en) * 2011-07-08 2013-01-10 Image Vision Labs, Inc. Image scene recognition
US9053416B1 (en) 2012-01-03 2015-06-09 Google Inc. Systems and methods for screening potentially inappropriate content
US8234168B1 (en) 2012-04-19 2012-07-31 Luminate, Inc. Image content and quality assurance system and method
US20140189047A1 (en) 2012-12-31 2014-07-03 Google Inc. Expanding content inventory
US10546326B2 (en) 2013-09-26 2020-01-28 Mark W. Publicover Providing targeted content based on a user's preferences
JP6134246B2 (ja) * 2013-10-16 2017-05-24 日本電信電話株式会社 ハッシュ関数生成方法、ハッシュ値生成方法、ハッシュ関数生成装置、ハッシュ値生成装置、ハッシュ関数生成プログラム及びハッシュ値生成プログラム
US9246875B2 (en) 2013-12-31 2016-01-26 Dropbox, Inc. Identifying and blocking prohibited content items in a content management system
CN105099796B (zh) 2014-04-22 2018-07-20 深圳市志友企业发展促进中心 一种多媒体内容更改检测方法、装置及资源传播系统
US20160019210A1 (en) 2014-07-21 2016-01-21 Dropbox, Inc. Sharing unmanaged content using a content management system
US10820051B2 (en) 2014-10-21 2020-10-27 At&T Mobility Ii Llc Inhibiting display of advertisements with age-inappropriate content
US9986280B2 (en) * 2015-04-11 2018-05-29 Google Llc Identifying reference content that includes third party content
CN105096162B (zh) * 2015-07-31 2020-01-10 小米科技有限责任公司 内容项显示方法及装置
CN105916005B (zh) * 2016-06-12 2019-01-08 腾讯科技(深圳)有限公司 多媒体信息的内容模式控制方法和装置
US10015280B2 (en) * 2016-08-18 2018-07-03 Google Llc Content delivery acceleration system
WO2018084854A1 (en) * 2016-11-04 2018-05-11 Rovi Guides, Inc. Methods and systems for recommending content restrictions
KR102393818B1 (ko) * 2017-02-02 2022-05-03 구글 엘엘씨 커스텀 디지털 컴포넌트
US11113757B1 (en) * 2017-02-13 2021-09-07 Wells Fargo Bank, N.A. Systems and methods for filtering digital content having a negative financial influence
US10404840B1 (en) * 2018-04-27 2019-09-03 Banjo, Inc. Ingesting streaming signals
US11233776B1 (en) * 2017-11-01 2022-01-25 Amazon Technologies, Inc. Providing content including sensitive data
US11868509B2 (en) * 2017-11-17 2024-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for detecting digital content tampering
CN109617999A (zh) * 2019-01-08 2019-04-12 平安科技(深圳)有限公司 内容推送方法、装置、计算机设备及存储介质
CN109902223B (zh) * 2019-01-14 2020-12-04 中国科学院信息工程研究所 一种基于多模态信息特征的不良内容过滤方法
US10917494B2 (en) 2019-02-01 2021-02-09 Google Llc Dynamic application content analysis

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160323307A1 (en) * 2015-04-29 2016-11-03 Symantec Corporation Systems and methods for evaluating content provided to users via user interfaces

Also Published As

Publication number Publication date
US11722575B2 (en) 2023-08-08
EP3814958A1 (en) 2021-05-05
CN112262386A (zh) 2021-01-22
JP7193555B2 (ja) 2022-12-20
CN112262386B (zh) 2021-09-14
KR102626275B1 (ko) 2024-01-17
CN113761516A (zh) 2021-12-07
US11388254B2 (en) 2022-07-12
WO2020159591A1 (en) 2020-08-06
KR20220136443A (ko) 2022-10-07
KR102446963B1 (ko) 2022-09-23
US20210136174A1 (en) 2021-05-06
JP7119246B2 (ja) 2022-08-16
US10917494B2 (en) 2021-02-09
JP7422823B2 (ja) 2024-01-26
US20220360638A1 (en) 2022-11-10
JP2022171654A (ja) 2022-11-11
JP2022082538A (ja) 2022-06-02
US20200252478A1 (en) 2020-08-06
JP2021530758A (ja) 2021-11-11

Similar Documents

Publication Publication Date Title
KR102626275B1 (ko) 동적 애플리케이션 콘텐츠 분석
US10706100B2 (en) Method of and system for recommending media objects
Zhao et al. Human as real-time sensors of social and physical events: A case study of twitter and sports games
US10878044B2 (en) System and method for providing content recommendation service
US8145630B1 (en) Session-based dynamic search snippets
US20140310340A1 (en) Methods and apparatus for inserting content into conversations in on-line and digital environments
CN112818224B (zh) 信息推荐方法、装置、电子设备及可读存储介质
CN112219201B (zh) 基于推断的意图触发本地扩展
US20170161391A1 (en) Method and electronic device for video recommendation
US20180225378A1 (en) Boosting ranking of content within a topic of interest
KR20190031536A (ko) 어플리케이션 정보 트리거링
KR20170010327A (ko) 어플리케이션 설치 전환 및 식별
CN106570003B (zh) 数据推送方法及装置
US20160239155A1 (en) Adaptive media
JP2022153536A (ja) プラットフォームをまたいだコンテンツのミュート
US9749438B1 (en) Providing a content item for presentation with multiple applications
US11238068B2 (en) Generating a model associating topics with content items based on characteristics of digital magazines including a set of content items and words in content items of the set
US11347812B2 (en) Percentile linkage clustering
CN107004014A (zh) 有效地发现并且表面化内容属性
WO2024039474A1 (en) Privacy sensitive estimation of digital resource access frequency
JP2022549392A (ja) データインテグリティの最適化
CN117396862A (zh) 用于理解对助理的用户意图的基于搜索结果的触发

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right