KR20190142363A - 링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들 - Google Patents

링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들 Download PDF

Info

Publication number
KR20190142363A
KR20190142363A KR1020197034252A KR20197034252A KR20190142363A KR 20190142363 A KR20190142363 A KR 20190142363A KR 1020197034252 A KR1020197034252 A KR 1020197034252A KR 20197034252 A KR20197034252 A KR 20197034252A KR 20190142363 A KR20190142363 A KR 20190142363A
Authority
KR
South Korea
Prior art keywords
page
content
user device
presented
server
Prior art date
Application number
KR1020197034252A
Other languages
English (en)
Other versions
KR102313254B1 (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 KR20190142363A publication Critical patent/KR20190142363A/ko
Application granted granted Critical
Publication of KR102313254B1 publication Critical patent/KR102313254B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • 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/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/738Presentation of query results
    • 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/951Indexing; Web crawling techniques
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • H04L67/36
    • 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/75Indicating network or usage conditions on the user display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들이 제공된다. 일부 실시예들에서, 이 방법은, 사용자 디바이스로부터 서버로, 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하는 단계; 서버로부터, 페이지에 대응하는 콘텐츠 및 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의, 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하는 단계; 사용자 디바이스 상에, 수신된 매핑을 저장하는 단계; 페이지의 콘텐츠가 사용자 디바이스 상에 제시되게 하는 단계; 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크 중 하나의 링크의 선택을 수신하는 단계; 저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하는 단계; 선택된 링크와 연관된 콘텐츠에 대한 요청을 서버에 전송하는 단계; 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 사용자 디바이스 상에 제시되게 하는 단계; 및 서버로부터 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 사용자 인터페이스 내에 제시되게 하는 단계를 포함한다.

Description

링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들
개시된 주제는 링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들에 관한 것이다.
사람들은 자주 사용자 디바이스들 상에서 실행되는 애플리케이션들을 통해 콘텐츠를 본다. 예를 들어, 사람들은 모바일 디바이스(예를 들어, 모바일 폰 또는 태블릿 컴퓨터) 상의 비디오들을 비디오 공유 서비스 또는 소셜 네트워킹 서비스와 연관된 애플리케이션을 통해 볼 수 있다. 일부 경우들에서, 콘텐츠는 관련 기사들에 대한 링크들, 다른 비디오들에 대한 링크들, 다른 사용자들의 프로파일들에 대한 링크들 등과 같이 다른 콘텐츠에 대한 링크들을 포함할 수 있다. 그러나, 애플리케이션이 링크의 콘텐츠를 페치하고 이를 애플리케이션 내에 제시하는 것은 시간이 많이 걸릴 수 있다.
또한, 애플리케이션 내의 다른 콘텐츠에 대한 이러한 링크들은 통상적으로 모바일 디바이스의 운영 체제와의 다수의 통신을 수반한다. 예를 들어, 애플리케이션 외부에 있는 운영 체제는 링크가 선택되었다는 표시를 수신하고 이러한 링크가 어떻게 처리되어야 하는지를 결정할 수 있다. 이 예를 계속하면, 운영 체제는, 그 운영 체제에게 링크를 전송한 애플리케이션이 그 링크를 처리해야 한다고 결정하고, 그 결정에 응답하여, 그 링크를 다시 애플리케이션에 전송할 수 있다.
따라서, 링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들을 제공하는 것이 바람직하다.
링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들이 제공된다.
개시된 주제의 일부 실시예들에서, 링크들과 연관된 콘텐츠를 검색하기 위한 방법이 제공되며, 이 방법은, 사용자 디바이스로부터 서버로, 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하는 단계; 서버로부터, 페이지에 대응하는 콘텐츠 및 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의, 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하는 단계; 사용자 디바이스 상에, 수신된 매핑을 저장하는 단계; 페이지의 콘텐츠가 사용자 디바이스 상에 제시되게 하는 단계; 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크 중 하나의 링크의 선택을 수신하는 단계; 저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하는 단계; 선택된 링크와 연관된 콘텐츠에 대한 요청을 서버에 전송하는 단계; 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 사용자 디바이스 상에 제시되게 하는 단계; 및 서버로부터 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 사용자 인터페이스 내에 제시되게 하는 단계를 포함한다.
개시된 주제의 일부 실시예들에서, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템이 제공되며, 이 시스템은 하드웨어 프로세서를 포함하며, 하드웨어 프로세서는, 사용자 디바이스로부터 서버로, 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하고; 서버로부터, 페이지에 대응하는 콘텐츠 및 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의, 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하고; 사용자 디바이스 상에, 수신된 매핑을 저장하고; 페이지의 콘텐츠가 사용자 디바이스 상에 제시되게 하고; 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크 중 하나의 링크의 선택을 수신하고; 저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하고; 선택된 링크와 연관된 콘텐츠에 대한 요청을 서버에 전송하고; 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 사용자 디바이스 상에 제시되게 하며; 서버로부터 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 사용자 인터페이스 내에 제시되게 하도록 구성된다.
개시된 주제의 일부 실시예들에 따르면, 프로세서에 의해 실행될 때, 프로세서로 하여금 링크들과 연관된 콘텐츠를 검색하기 위한 방법을 수행하게 하는 컴퓨터 실행가능한 명령어들을 포함하는 비일시적 컴퓨터 판독가능한 매체가 제공된다. 일부 실시예들에서, 이 방법은, 사용자 디바이스로부터 서버로, 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하는 단계; 서버로부터, 페이지에 대응하는 콘텐츠 및 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의, 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하는 단계; 사용자 디바이스 상에, 수신된 매핑을 저장하는 단계; 페이지의 콘텐츠가 사용자 디바이스 상에 제시되게 하는 단계; 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크 중 하나의 링크의 선택을 수신하는 단계; 저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하는 단계; 선택된 링크와 연관된 콘텐츠에 대한 요청을 서버에 전송하는 단계; 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 사용자 디바이스 상에 제시되게 하는 단계; 및 서버로부터 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 사용자 인터페이스 내에 제시되게 하는 단계를 포함한다.
개시된 주제의 일부 실시예들에서, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템이 제공되고, 이 시스템은, 사용자 디바이스로부터 서버로, 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하는 수단; 서버로부터, 페이지에 대응하는 콘텐츠 및 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의, 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하는 수단; 사용자 디바이스 상에, 수신된 매핑을 저장하는 수단; 페이지의 콘텐츠가 사용자 디바이스 상에 제시되게 하는 수단; 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크 중 하나의 링크의 선택을 수신하는 수단; 저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하는 수단; 선택된 링크와 연관된 콘텐츠에 대한 요청을 서버에 전송하는 수단; 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 사용자 디바이스 상에 제시되게 하는 수단; 및 서버로부터 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 사용자 인터페이스 내에 제시되게 하는 수단을 포함한다.
매핑은 페이지 타입을 표시하는 정보를 포함할 수 있다. 페이지 타입은 링크와 연관된 페이지에 이용될 사용자 인터페이스의 타입을 식별하는 정보, 보다 상세하게는 콘텐츠를 기다리는 동안 제시될 사용자 요소들을 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 페이지 타입은 제시될 하나 이상의 사용자 인터페이스 요소의 세트를 표시하거나 식별할 수 있고, 임의적으로 위치 정보와 같은 이러한 요소들에 관한 추가 정보를 포함할 수 있다. 이것은 레이턴시를 감소시킬 뿐만 아니라 사용자 인터페이스에 대한 변경들을 용이하게 할 수 있다. 따라서, 예를 들어, 페이지 타입 정보는, 비디오 플레이어 윈도우의 존재 및/또는 위치; 이미지 윈도우의 존재 및/또는 위치; 텍스트 윈도우의 존재 및/또는 위치; 웹 페이지 윈도우의 존재 및/또는 위치; 정보 공유 윈도우의 존재 및/또는 위치; 예를 들어 메시지들을 전송/수신하기 위한 통신 윈도우의 존재 및/또는 위치; 로고의 존재 및/또는 위치 등 중 하나 이상을 표시할 수 있다. 보다 일반적으로, 페이지 타입 정보는 비디오, 오디오, AR/VR(증강 현실/가상 현실) 등과 같이 제시될 정보의 타입을 식별할 수 있다. 사용자 인터페이스 요소들은 선택된 링크와 연관된 콘텐츠를 제시하는데 이용되는, 페이지 타입에 의해 식별된 사용자 인터페이스를 제시하는데 이용된다. 일부 구현들에서, 사용자 인터페이스 요소들은 이들이 이전에 저장되었을 수 있는 사용자 디바이스의 로컬 메모리로부터 검색되지만, 다른 구현들에서 이들은 사용자 디바이스 외부의 소스로부터 검색될 수 있다. 사용자 인터페이스 요소들은, 콘텐츠에 특정하지 않은, 선택된 링크와 연관된 페이지 타입에 대해 일반적일 수 있다.
일부 실시예들에서, 페이지는 사용자 디바이스 상에서 실행되는 애플리케이션 내에 제시된다. 일부 실시예들에서, 선택된 링크와 연관된 콘텐츠는 애플리케이션과 연관되지 않은 엔티티에 의해 제공되는 제3자 콘텐츠이다. 일부 실시예들에서, 페이지에 대응하는 콘텐츠 및 선택된 링크에 대응하는 수신된 콘텐츠는 사용자 디바이스 상에서 실행되는 애플리케이션 내에서 실행되는 웹 브라우저 애플리케이션 또는 인터페이스 내에 제시된다.
일부 실시예들에서, 이러한 시스템/방법은 페이지의 콘텐츠가 사용자 디바이스 상에 제시되게 하기 전에 페이지에 대응하는 콘텐츠에 하나 이상의 링크 각각에 대한 이벤트 핸들러를 삽입하는 수단을 더 포함한다. 일부 구현들에서, 삽입은 사용자 디바이스에 의해 수행될 수 있고, 다른 구현들에서, 삽입은 서버에 의해 수행될 수 있다. 이벤트 핸들러는 링크가 선택될 때 취해질 하나 이상의 액션을 지정하는 정보 또는 코드를 포함할 수 있다. 액션들은 매핑으로부터 페이지의 타입을 직접적으로 또는 간접적으로 결정하기 위한 액션을 포함할 수 있고, 이어서 연관된 일반 사용자 인터페이스 요소들의 제시를 야기할 수 있다. 일부 실시예들에서, 이벤트 핸들러는 선택된 링크에 대응하는 페이지 타입을 식별하는 기능을 표시한다. 그러나, 이벤트 핸들러의 이용과는 다른 메커니즘들이 또한 전술한 시스템들 및 방법들을 구현하는데 이용될 수 있다는 점에 유의해야 한다.
개시된 주제의 다양한 목적들, 특징들 및 이점들은, 유사한 참조 부호들이 유사한 요소들을 식별하는 이하의 도면들과 관련하여 고려될 때 개시된 주제의 이하의 상세한 설명을 참조하면 더욱 충분히 이해될 수 있다.
도 1a 및 도 1b는 개시된 주제의 일부 실시예들에 따라 링크를 제시하고 그 링크와 연관된 콘텐츠를 제시하기 위한 사용자 인터페이스들의 예들을 도시한다.
도 2는 개시된 주제의 일부 실시예들에 따라 링크와 연관된 콘텐츠를 검색하기 위해 본 명세서에서 설명된 메커니즘들의 구현에 적절한 예시적인 시스템의 개략도를 도시한다.
도 3은 개시된 주제의 일부 실시예들에 따라 도 2의 서버 및/또는 사용자 디바이스에서 이용될 수 있는 하드웨어의 상세한 예를 도시한다.
도 4는 개시된 주제의 일부 실시예들에 따라 링크와 연관된 콘텐츠를 검색하고 제시하기 위한 정보 흐름도의 예시적인 예를 도시한다.
도 5는 개시된 주제의 일부 실시예들에 따라 링크와 연관된 콘텐츠를 검색하고 제시하기 위한 프로세스의 예시적인 예를 도시한다.
다양한 실시예들에 따르면, 링크들과 연관된 콘텐츠를 검색하기 위한 메커니즘들(방법들, 시스템들 및 매체들을 포함할 수 있음)이 제공된다.
일부 실시예들에서, 본 명세서에서 설명된 메커니즘들은 페이지가 사용자 디바이스 상에 제시될 것임을 결정할 수 있다. 예를 들어, 일부 실시예들에서, 페이지는 사용자 디바이스 상에서 실행되는 애플리케이션을 통해 제시될 페이지일 수 있다. 더 특정한 예로서, 페이지는 애플리케이션과 연관된 서비스의 홈 페이지, 애플리케이션과 연관된 특정한 콘텐츠에 대응하는 페이지, 및/또는 임의의 다른 적절한 타입의 페이지일 수 있다. 그 다음, 메커니즘들은 페이지의 콘텐츠뿐만 아니라 페이지 내에 포함된 링크들의 매핑을 요청하는 원격 절차 호출(RPC)을 서버에 전송할 수 있다. 링크들의 매핑은 링크와 연관된 URL 및 링크와 연관된 대응하는 종점 또는 페이지 타입과 같은 임의의 적절한 정보를 표시할 수 있다. 예를 들어, 링크가 특정 비디오 공유 서비스에 의해 호스팅되는 비디오에 대한 것인 경우들에서, URL은 링크의 위치를 지정할 수 있고, 종점은 비디오가 특정 비디오 플레이어 윈도우, 비디오 공유 서비스와 연관된 특정 로고, 및/또는 임의의 다른 적절한 요소들을 포함하는 비디오 워치 페이지 내에 제시될 것임을 표시할 수 있다. 사용자 디바이스는 콘텐츠 및 매핑을 수신할 수 있고, 매핑을 사용자 디바이스의 로컬 메모리에 저장할 수 있다. 페이지의 제시 동안 페이지의 링크들 중 하나의 선택을 수신하는 것에 응답하여, 사용자 디바이스는 저장된 매핑을 이용하여, 선택된 링크에 대응하는 콘텐츠가 제시될 종점 또는 페이지의 타입을 결정할 수 있고, 서버가 선택된 링크와 연관된 콘텐츠를 전송하기를 기다리는 동안 종점 또는 페이지의 타입에 대응하는 요소들의 로딩을 시작할 수 있다.
일부 실시예들에서, 페이지와 연관된 콘텐츠는 임의의 적절한 방식으로 모바일 디바이스 상에서 실행되는 애플리케이션 내에 제시될 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠는 WebView 애플리케이션 또는 애플리케이션 내에서 렌더링되는 임의의 다른 적절한 웹 브라우저와 같이 애플리케이션 내에서 실행되는 웹 브라우저 인터페이스 내에 제시될 수 있다. 더 특정한 예로서, 일부 실시예들에서, 페이지와 연관된 콘텐츠는 애플리케이션에서의 WebView 내에 제시되는 애플리케이션과 연관되지 않은 제3자 콘텐츠일 수 있다. 이 예를 계속하면, 콘텐츠 내의 링크는 애플리케이션을 통해 제공될 애플리케이션과 연관된 비디오 공유 서비스에 의해 제공되는 비디오에 대한 것일 수 있다. 본 명세서에서 설명된 메커니즘들은 WebView를 통해 비디오에 대한 링크의 선택을 인터셉트할 수 있고, 비디오가 사용자 디바이스 상에서 버퍼링되는 동안 비디오 워치 페이지와 연관된 사용자 인터페이스 요소들이 애플리케이션에서 로딩되게 할 수 있다. 반대로, 일부 실시예들에서, 페이지의 콘텐츠는 애플리케이션 내에 제시될 수 있고, 선택된 링크는 애플리케이션 내에서 WebView 내에 렌더링될 제3자 콘텐츠에 대응할 수 있다. 이 예를 계속하면, 페이지의 콘텐츠 내의 링크의 선택이 인터셉트될 수 있고, 제3자 콘텐츠가 사용자 디바이스에 전송되는 동안에 WebView와 연관된 요소들이 애플리케이션 내에 로딩될 수 있다.
따라서, 본 명세서에서 설명된 메커니즘들은, 사용자 디바이스가 콘텐츠가 제시될 페이지의 프리-로딩 요소들을 시작하게 함으로써 링크가 애플리케이션 내에서 선택될 때 응답의 레이턴시를 감소시킬 수 있다. 특히, 일부 실시예들에서, 사용자 디바이스와 서버 사이의 하나 이상의 왕복 메시지는 초기 페이지가 처음 제시될 때 사용자 디바이스 상의 종점들로의 URL들의 매핑의 로컬 저장으로 인해 제거될 수 있다. 또한, 본 명세서에서 설명된 메커니즘들은 애플리케이션의 개발자가 각각의 사용자 디바이스가 사용자 디바이스 상의 애플리케이션에 대한 업데이트를 다운로드할 필요 없이 서버에 의해 전달된 콘텐츠를 통해 사용자 인터페이스 외관에 대한 변경들을 행하게 할 수 있다. 예를 들어, 서버로부터 사용자 디바이스로 애플리케이션 상에 제시되는 페이지 내의 링크들에 대한 종점 정보를 전송함으로써, 서버는 사용자 디바이스가 애플리케이션에 대한 업데이트를 다운로드하도록 요구하는 것보다는 각각의 종점(예를 들어, 비디오 플레이어 윈도우의 외관, 로고의 외관 또는 위치, 토론 포럼의 외관 또는 위치, 및/또는 임의의 다른 적절한 요소들)에 대응하는 사용자 인터페이스 요소들에 관한 정보를 포함할 수 있다.
도 1a를 참조하면, 사용자 디바이스 상에 제시될 수 있는 사용자 인터페이스의 예시적인 예(100)가 개시된 주제의 일부 실시예들에 따라 도시된다. 예시된 바와 같이, 사용자 인터페이스(100)는 페이지 콘텐츠(102) 및 링크(104)를 포함할 수 있다. 일부 실시예들에서, 사용자 인터페이스(100)는 애플리케이션 내에, 예를 들어, 도 1a에 도시된 바와 같이 모바일 디바이스 상에서 실행되는 애플리케이션 내에 제시될 수 있다.
일부 실시예들에서, 페이지 콘텐츠(102)는 비디오 콘텐츠, 이미지, 애니메이션, 텍스트 콘텐츠, 웹 페이지로부터의 콘텐츠, 및/또는 임의의 다른 적절한 타입의 콘텐츠와 같은 임의의 적절한 타입의 콘텐츠를 포함할 수 있다. 콘텐츠가 비디오 콘텐츠를 포함하는 경우들에서, 페이지 콘텐츠(102)는 임의의 적절한 비디오 플레이어 제어들(예를 들어, 일시정지 제어, 볼륨 제어, 및/또는 임의의 다른 적절한 타입의 제어들)을 포함할 수 있는 비디오 플레이어 윈도우 내에 제시될 수 있다.
일부 실시예들에서, 링크(104)는 임의의 적절한 타입의 링크일 수 있다. 예를 들어, 링크(104)는 웹 페이지에 대한 링크, 미디어 콘텐츠 아이템에 대한 링크(예를 들어, 비디오, 이미지, 오디오 파일, 및/또는 임의의 다른 적절한 타입의 미디어 콘텐츠 아이템에 대한 링크), 채팅 룸 또는 토론 포럼에 대한 링크, 및/또는 임의의 다른 적절한 타입의 콘텐츠에 대한 링크일 수 있다. 일부 실시예들에서, 링크(104)는 사용자 인터페이스(100)가 제시되고 있는 애플리케이션 내의 콘텐츠에 대한 링크일 수 있다. 예를 들어, 사용자 인터페이스(100)가 비디오 공유 서비스와 연관된 애플리케이션 내에 제시되는 경우들에서, 링크(104)는 비디오 공유 서비스를 통해 액세스되는 상이한 비디오에 대한 링크, 비디오 공유 서비스를 통해 액세스되는 정보의 페이지에 대한 링크, 비디오 공유 서비스의 사용자의 프로파일에 대한 링크, 및/또는 임의의 다른 적절한 타입의 페이지와 같은, 비디오 공유 서비스와 연관된 상이한 페이지에 대한 것일 수 있다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 링크(104)는 상이한 엔티티와 연관되는 웹 페이지 및/또는 임의의 다른 적절한 타입의 콘텐츠와 같이, 애플리케이션과 연관되지 않은 콘텐츠에 대한 링크일 수 있다.
일부 실시예들에서, 링크(104)의 선택은 사용자 인터페이스(150)가 제시되게 할 수 있다. 예시된 바와 같이, 일부 실시예들에서, 사용자 인터페이스(150)는 선택된 링크와 연관된 콘텐츠에 대응할 수 있는 링크 콘텐츠(154)를 포함할 수 있다. 일부 실시예들에서, 도 1b에 도시된 바와 같이, 링크 콘텐츠(154)는 사용자 인터페이스(100)를 제시한 애플리케이션 내에 제시될 수 있다는 점에 유의한다. 예를 들어, 일부 실시예들에서, 링크 콘텐츠(154)가 애플리케이션과 연관되지 않은 웹 페이지를 포함하더라도, 그 웹 페이지는 애플리케이션 내에(예를 들어, 애플리케이션 내에서 렌더링된 웹 브라우저 윈도우 내에) 제시될 수 있다.
도 2를 참조하면, 개시된 주제의 일부 실시예들에 따라 이용될 수 있는 링크와 연관된 콘텐츠를 검색하고 제시하기 위한 하드웨어의 예시적인 예(200)가 도시된다. 도시된 바와 같이, 하드웨어(200)는 콘텐츠 서버(202)와 같은 하나 이상의 서버, 통신 네트워크(204), 및/또는 사용자 디바이스들(208 및 210)과 같은 하나 이상의 사용자 디바이스(206)를 포함할 수 있다.
일부 실시예들에서, 콘텐츠 서버(202)는 콘텐츠를 저장하고 그 콘텐츠를 제시를 위해 사용자 디바이스에 전송하기 위한 임의의 적절한 서버일 수 있다. 예를 들어, 일부 실시예들에서, 콘텐츠 서버(202)는 미디어 콘텐츠를 통신 네트워크(204)를 통해 사용자 디바이스(206)에 스트리밍하는 서버일 수 있다. 일부 실시예들에서, 콘텐츠 서버(202) 상의 콘텐츠는 비디오 콘텐츠, 오디오 콘텐츠, 영화들, 텔레비전 프로그램들, 라이브-스트리밍된 콘텐츠, 오디오북들, 및/또는 임의의 다른 적절한 타입의 콘텐츠와 같은 임의의 적절한 콘텐츠일 수 있다. 일부 실시예들에서, 콘텐츠 서버(202)는 생략될 수 있다.
통신 네트워크(204)는 일부 실시예들에서 하나 이상의 유선 및/또는 무선 네트워크의 임의의 적절한 조합일 수 있다. 예를 들어, 통신 네트워크(204)는 인터넷, 인트라넷, WAN(wide-area network), LAN(local-area network), 무선 네트워크, DSL(digital subscriber line) 네트워크, 프레임 릴레이 네트워크, ATM(asynchronous transfer mode) 네트워크, VPN(virtual private network), 및/또는 임의의 다른 적절한 통신 네트워크 중 임의의 하나 이상을 포함할 수 있다. 사용자 디바이스들(206)은 하나 이상의 통신 링크(예를 들어, 통신 링크(214))를 통해 콘텐츠 서버(202)에 링크될 수 있는 통신 네트워크(204)에 하나 이상의 통신 링크(212)에 의해 접속될 수 있다. 통신 링크들(212 및/또는 214)은 네트워크 링크들, 다이얼-업 링크들, 무선 링크들, 하드-와이어드 링크들, 임의의 다른 적절한 통신 링크들, 또는 이러한 링크들의 임의의 적절한 조합과 같이 사용자 디바이스들(206)과 서버(202) 사이에서 데이터를 통신하기에 적절한 임의의 통신 링크들일 수 있다.
일부 실시예들에서, 사용자 디바이스들(206)은 오디오 또는 비디오 콘텐츠를 보는 것, 콘텐츠의 페이지 내의 링크들의 선택들을 수신하는 것, 및/또는 임의의 다른 적절한 기능들에 적절한 하나 이상의 컴퓨팅 디바이스를 포함할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스들(206)은, 스마트폰, 모바일 폰, 태블릿 컴퓨터, 웨어러블 컴퓨터, 랩톱 컴퓨터, 운송수단(예를 들어, 자동차, 보트, 비행기, 또는 임의의 다른 적절한 운송수단) 엔터테인먼트 시스템, 휴대용 미디어 플레이어, 및/또는 임의의 다른 적절한 모바일 디바이스와 같은 모바일 디바이스로서 구현될 수 있다. 다른 예로서, 일부 실시예들에서, 사용자 디바이스들(206)은 데스크톱 컴퓨터, 셋톱 박스, 텔레비전, 스트리밍 미디어 플레이어, 게임 콘솔, 및/또는 임의의 다른 적절한 비-모바일 디바이스와 같은 비-모바일 디바이스로서 구현될 수 있다.
콘텐츠 서버(202)가 단일 디바이스로서 예시되어 있지만, 콘텐츠 서버(202)에 의해 수행되는 기능들은 일부 실시예들에서 임의의 적절한 수의 디바이스들을 이용하여 수행될 수 있다. 예를 들어, 일부 실시예들에서, 복수의 디바이스가 콘텐츠 서버(202)에 의해 수행되는 기능들을 구현하는데 이용될 수 있다.
2개의 사용자 디바이스(208 및 210)가 도 2에 도시되어 있지만, 임의의 적절한 수의 사용자 디바이스들, 및/또는 임의의 적절한 타입들의 사용자 디바이스들이 일부 실시예들에서 이용될 수 있다.
콘텐츠 서버(202) 및 사용자 디바이스들(206)은 일부 실시예들에서 임의의 적절한 하드웨어를 이용하여 구현될 수 있다. 예를 들어, 일부 실시예들에서, 디바이스들(202 및 206)은 임의의 적절한 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 예를 들어, 서버는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 임의의 이러한 범용 컴퓨터 또는 특수 목적 컴퓨터는 임의의 적절한 하드웨어를 포함할 수 있다. 예를 들어, 도 3의 예시적인 하드웨어(300)에 도시된 바와 같이, 이러한 하드웨어는 하드웨어 프로세서(302), 메모리 및/또는 저장소(304), 입력 디바이스 제어기(306), 입력 디바이스(308), 디스플레이/오디오 드라이버들(310), 디스플레이 및 오디오 출력 회로(312), 통신 인터페이스(들)(314), 안테나(316) 및 버스(318)를 포함할 수 있다.
하드웨어 프로세서(302)는 일부 실시예들에서 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(들), 전용 로직, 및/또는 범용 컴퓨터 또는 특수 목적 컴퓨터의 기능을 제어하기 위한 임의의 다른 적절한 회로와 같은 임의의 적절한 하드웨어 프로세서를 포함할 수 있다. 일부 실시예들에서, 하드웨어 프로세서(302)는 (예를 들어, 콘텐츠 서버(202)와 같은) 서버의 메모리 및/또는 저장소(304)에 저장된 서버 프로그램에 의해 제어될 수 있다. 예를 들어, 서버 프로그램은 콘텐츠 서버(202)의 하드웨어 프로세서(302)가 사용자 디바이스로부터 요청을 수신하는 것에 응답하여 콘텐츠 및/또는 그 콘텐츠 내의 링크들의 매핑을 사용자 디바이스로 전송하게 할 수 있다. 일부 실시예들에서, 하드웨어 프로세서(302)는 사용자 디바이스(206)의 메모리 및/또는 저장소(304)에 저장된 컴퓨터 프로그램에 의해 제어될 수 있다. 예를 들어, 컴퓨터 프로그램은 사용자 디바이스(206)의 하드웨어 프로세서(302)가 페이지를 제시하고, 제시된 페이지 내의 링크의 선택을 수신하고, 링크와 연관된 종점을 식별하고, 종점과 연관된 콘텐츠에 대한 요청을 콘텐츠 서버(202)에 전송하고, 종점과 연관된 콘텐츠를 제시하고/하거나 임의의 다른 적절한 기능들을 수행하게 할 수 있다.
메모리 및/또는 저장소(304)는 일부 실시예들에서 프로그램들, 데이터, 미디어 콘텐츠, 광고들, 및/또는 임의의 다른 적절한 정보를 저장하기 위한 임의의 적절한 메모리 및/또는 저장소일 수 있다. 예를 들어, 메모리 및/또는 저장소(304)는 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리, 하드 디스크 저장소, 광학 매체들, 및/또는 임의의 다른 적절한 메모리를 포함할 수 있다.
입력 디바이스 제어기(306)는 일부 실시예들에서 하나 이상의 입력 디바이스(308)로부터의 입력을 제어하고 수신하기 위한 임의의 적절한 회로일 수 있다. 예를 들어, 입력 디바이스 제어기(306)는 터치스크린으로부터, 키보드로부터, 마우스로부터, 하나 이상의 버튼으로부터, 음성 인식 회로로부터, 마이크로폰으로부터, 카메라로부터, 광학 센서로부터, 가속도계로부터, 온도 센서로부터, 근접장 센서로부터, 및/또는 임의의 다른 타입의 입력 디바이스로부터 입력을 수신하기 위한 회로일 수 있다.
디스플레이/오디오 드라이버들(310)은 일부 실시예들에서 하나 이상의 디스플레이/오디오 출력 디바이스(312)로의 출력을 제어 및 구동하기 위한 임의의 적절한 회로일 수 있다. 예를 들어, 디스플레이/오디오 드라이버들(310)은 터치스크린, 평판 디스플레이, 음극선관 디스플레이, 프로젝터, 스피커 또는 스피커들, 및/또는 임의의 다른 적절한 디스플레이 및/또는 제시 디바이스들을 구동하기 위한 회로일 수 있다.
통신 인터페이스(들)(314)는 도 2에 도시된 바와 같은 네트워크(204) 등의 하나 이상의 통신 네트워크와 인터페이싱하기 위한 임의의 적절한 회로일 수 있다. 예를 들어, 인터페이스(들)(314)는 네트워크 인터페이스 카드 회로, 무선 통신 회로 및/또는 임의의 다른 적절한 타입의 통신 네트워크 회로를 포함할 수 있다.
안테나(316)는 일부 실시예들에서 통신 네트워크(예를 들어, 통신 네트워크(204))와 무선 통신하기 위한 임의의 적절한 하나 이상의 안테나일 수 있다. 일부 실시예들에서, 안테나(316)는 생략될 수 있다.
버스(318)는 일부 실시예들에서 2개 이상의 컴포넌트들(302, 304, 306, 310 및 314) 사이에서 통신하기 위한 임의의 적절한 메커니즘일 수 있다.
임의의 다른 적절한 컴포넌트들이 일부 실시예들에 따라 하드웨어(300)에 포함될 수 있다.
도 4를 참조하면, 링크와 연관된 콘텐츠를 검색하고 제시하기 위한 정보 흐름도의 예시적인 예(400)가 개시된 주제의 일부 실시예들에 따라 도시된다. 예시된 바와 같이, 일부 실시예들에서, 정보 흐름도(400)의 블록들은 사용자 디바이스(206) 및 콘텐츠 서버(202) 상에서 구현될 수 있다.
402에서, 사용자 디바이스(206)는 사용자 디바이스(206) 상에 제시될 페이지와 연관된 콘텐츠를 요청하는 원격 절차 호출(RPC)을 콘텐츠 서버(202)에 전송할 수 있다. 일부 실시예들에서, RPC는 제시될 페이지의 아이덴티티(예를 들어, 페이지와 연관된 URL 및/또는 임의의 다른 적절한 식별 정보)와 같은 임의의 적절한 정보를 포함할 수 있다. 일부 실시예들에서, RPC는 페이지가 제시될 애플리케이션을 통해 이루어질 수 있다. 일부 이러한 실시예들에서, 애플리케이션은 비디오 공유 서비스와 연관된 애플리케이션, 소셜 네트워킹 서비스와 연관된 애플리케이션 및/또는 임의의 다른 적절한 타입의 애플리케이션과 같이, 사용자 디바이스(206) 상에서 실행되는 임의의 적절한 애플리케이션일 수 있다.
404에서, 콘텐츠 서버(202)는 페이지의 콘텐츠 및 페이지에 포함된 링크들의 매핑을 사용자 디바이스(206)에 전송할 수 있다. 일부 실시예들에서, 페이지의 콘텐츠는 텍스트, 이미지들, 애니메이션들, 아이콘들, 비디오들 및/또는 임의의 다른 적절한 타입의 콘텐츠와 같은 임의의 적절한 콘텐츠를 포함할 수 있다. 일부 실시예들에서, 페이지의 콘텐츠는 하이퍼텍스트 마크업 언어(HTML)와 같은 임의의 적절한 포맷, 및/또는 임의의 다른 적절한 포맷으로 전송될 수 있다. 일부 실시예들에서, 링크들의 매핑은 임의의 적절한 정보를 포함할 수 있다. 예를 들어, 일부 실시예들에서, 링크들의 매핑은 페이지에 포함된 링크들 중 하나 이상에 대한 키-값 쌍들을 표시할 수 있고, 여기서 키는 링크의 URL(Uniform Resource Locator)을 표시하고, 그 값은 URL과 연관된 종점을 표시한다. 더 특정한 예로서, 페이지를 제시하는 애플리케이션이 비디오 공유 서비스와 연관된 애플리케이션이고, 링크에 대응하는 URL이 특정 비디오와 연관된 메인 페이지에 대한 것인 경우들에서, 종점은 URL이 비디오 워치 페이지(예를 들어, 비디오가 제시되는 비디오 플레이어 윈도우를 포함하는 페이지, 비디오에 대해 코멘트하기 위한 코멘트 섹션을 포함하는 페이지, 비디오 공유 서비스의 로고를 포함하는 페이지, 및/또는 임의의 다른 적절한 요소들을 포함하는 페이지)에 대응한다는 것을 표시할 수 있다.
일부 실시예들에서, 콘텐츠 서버(202)는 사용자 인터페이스를 위한 임의의 사용자 인터페이스 요소들 또는 링크와 연관된 콘텐츠가 제시될 사용자 인터페이스를 렌더링하기 위한 명령어들을 사용자 디바이스(206)에 전송할 수 있다는 점에 유의한다. 예를 들어, 일부 실시예들에서, 콘텐츠 서버(202)는 비디오 공유 서비스의 로고, 코멘트 섹션을 렌더링하기 위한 명령어들, 비디오 플레이어 윈도우를 렌더링하기 위한 명령어들, 및/또는 임의의 다른 적절한 요소들 또는 명령어들과 같이, 비디오 워치 페이지에 대응하는 사용자 인터페이스를 위한 사용자 인터페이스 요소들을 전송할 수 있다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 요소들 또는 명령어들은 임의의 적절한 시간에, 예를 들어 페이지의 콘텐츠가 제시될 애플리케이션이 다운로드되었거나 마지막으로 업데이트되었던 시간에 사용자 디바이스(206)에 의해 미리 수신되었을 수 있다.
406에서, 사용자 디바이스(206)는 수신된 페이지 콘텐츠 및 링크들의 매핑을 사용자 디바이스(206)의 로컬 메모리(예를 들어, 도 3과 관련하여 도시되고 전술한 바와 같은 메모리(304))에 저장할 수 있다.
사용자 디바이스(206)는 408에서 페이지가 제시되게 할 수 있다. 일부 실시예들에서, 사용자 디바이스(206)는 페이지 콘텐츠를 제시하기 위해 메모리(304)로부터 저장된 페이지 콘텐츠를 검색할 수 있다. 일부 실시예들에서, 페이지는 임의의 적절한 방식으로 제시될 수 있다. 예를 들어, 도 1a와 관련하여 도시되고 전술한 바와 같이, 페이지는 사용자 디바이스(206) 상에서 실행되는 애플리케이션의 윈도우 내에 제시될 수 있다. 일부 실시예들에서, 제시된 페이지는 비디오, 오디오 콘텐츠, 텍스트, 이미지들, 그래픽들, 애니메이션들, 아이콘들, 및/또는 임의의 다른 적절한 콘텐츠와 같은 임의의 적절한 콘텐츠를 포함할 수 있다는 점에 유의한다. 추가로, 일부 실시예들에서, 제시된 페이지는 다른 콘텐츠에 대한 임의의 적절한 수(예를 들어, 0개, 1개, 2개, 5개, 10개, 및/또는 임의의 다른 적절한 수)의 링크들을 포함할 수 있다. 일부 실시예들에서, 이러한 링크들은 애플리케이션과 연관된 콘텐츠에 대한 것일 수 있거나 또는 애플리케이션과 연관되지 않은 콘텐츠에 대한 링크들일 수 있다. 예를 들어, 일부 실시예들에서, 링크들 중 하나 이상은 애플리케이션의 다른 부분들 또는 애플리케이션 내의 콘텐츠에 대한 딥 링크들(예를 들어, 애플리케이션의 특정 섹션에 대한 것, 애플리케이션에 의해 표현되는 웹 사이트의 상이한 페이지에 대한 것, 및/또는 애플리케이션 내의 임의의 다른 적절한 링크)일 수 있다. 반대로, 일부 실시예들에서, 링크들 중 하나 이상은 제3자에 의해 호스팅되는 웹 페이지 또는 기사와 같이, 애플리케이션과 연관되지 않은 제3자 콘텐츠에 대한 링크들일 수 있다. 일부 실시예들에서, 제시된 페이지는 사용자 디바이스(206) 상에서 실행되는 애플리케이션 내에서 렌더링되는 WebView 웹 브라우저 내에 제시될 수 있다.
사용자 디바이스(206)는 410에서 페이지에 포함된 링크의 선택을 수신할 수 있다. 일부 실시예들에서, 링크의 선택은 임의의 적절한 방식으로 수신될 수 있다. 예를 들어, 일부 실시예들에서, 이러한 선택은 페이지 내의 링크를 탭핑하거나 클릭하는 사용자 디바이스(206)의 사용자에 기반하여 수신될 수 있다.
사용자 디바이스(206)는 406에서의 로컬 메모리에 저장된 링크들의 매핑에 기반하여, 412에서 링크와 연관된 종점을 식별할 수 있다. 일부 실시예들에서, 종점은 링크에 기반하여 애플리케이션 내에 제시될 페이지의 타입을 표시할 수 있다. 예를 들어, 애플리케이션이 비디오 공유 서비스와 연관되고 링크가 애플리케이션 내에 제시될 비디오에 대응하는 경우들에서, 종점은 링크가 비디오 워치 페이지 타입에 대응하는 페이지(예를 들어, 비디오 플레이어 윈도우, 비디오에 관한 정보를 제시하기 위한 섹션, 비디오를 호스팅하는 비디오 공유 서비스와 연관된 로고, 및/또는 임의의 다른 적절한 콘텐츠를 포함하는 페이지) 내에 제시될 것임을 표시할 수 있다. 더 특정한 예로서, 일부 실시예들에서, 종점은 링크와 연관된 콘텐츠가 제시될 페이지의 특정 타입에 대응하는 일반 사용자 인터페이스 요소들을 표시할 수 있다.
사용자 디바이스(206)는 414에서 종점과 연관된 콘텐츠에 대한 요청을 콘텐츠 서버(202)에 전송할 수 있다. 예를 들어, 일부 실시예들에서, 링크가 비디오에 대한 링크인 경우들에서, 사용자 디바이스(206)는 비디오와 연관된 데이터를 사용자 디바이스(206)에 전송하기 시작하라는 요청을 전송할 수 있다.
일부 실시예들에서, 사용자 디바이스(206)는 콘텐츠 서버(202)로부터 요청에 대한 응답을 기다리는 동안 제시될 페이지의 타입과 연관된 사용자 인터페이스의 로딩을 시작할 수 있다는 점에 유의한다. 예를 들어, 페이지의 타입이 비디오 워치 페이지에 대응하는 경우들에서, 사용자 디바이스(206)는 비디오 플레이어 윈도우, 비디오에 관한 정보를 제시하기 위한 섹션, 및/또는 임의의 다른 적절한 타입의 콘텐츠를 포함하는 비디오를 제시하기 위한 일반 사용자 인터페이스를 제시하기 시작할 수 있다.
416에서, 콘텐츠 서버(202)는 요청된 콘텐츠를 사용자 디바이스(206)에 전송함으로써 수신된 요청에 응답할 수 있다. 요청된 콘텐츠가 스트리밍될 미디어 콘텐츠(예를 들어, 비디오 콘텐츠 아이템, 오디오 콘텐츠 아이템, 라이브 스트리밍된 비디오, 및/또는 임의의 다른 적절한 타입의 미디어 콘텐츠)를 포함하는 경우들에서, 콘텐츠 서버(202)는 요청된 콘텐츠에 대응하는 데이터의 스트림을 전송할 수 있다.
418에서, 사용자 디바이스(206)는 수신된 콘텐츠를 제시할 수 있다. 예를 들어, 수신된 콘텐츠가 비디오를 포함하는 경우들에서, 사용자 디바이스(206)는 비디오를 제시하기 시작할 수 있다. 다른 예로서, 수신된 콘텐츠가 웹 페이지의 콘텐츠를 포함하는 경우들에서, 사용자 디바이스(206)는 웹 페이지를 제시할 수 있다. 일부 실시예들에서, 수신된 콘텐츠는 도 1b와 관련하여 도시되고 전술한 바와 같이, 사용자 디바이스(206) 상에서 실행되는 애플리케이션 내에 제시될 수 있다. 또한, 일부 실시예들에서, 수신된 콘텐츠는 애플리케이션 내에서 렌더링된 WebView 웹 브라우저 내에 제시될 수 있다.
도 5를 참조하면, 링크와 연관된 콘텐츠를 검색하고 제시하기 위한 프로세스의 예시적인 예(500)가 개시된 주제의 일부 실시예들에 따라 도시된다. 일부 실시예들에서, 프로세스(500)의 블록들은 사용자 디바이스(206) 상에서 구현될 수 있다.
프로세스(500)는 502에서 사용자 디바이스 상에 제시될 페이지에 대한 콘텐츠들을 페치하기 위해 원격 절차 호출(RPC)을 사용자 디바이스로부터 서버로 전송함으로써 시작할 수 있다. 도 4의 블록(402)과 관련하여 전술한 바와 같이, RPC는 페이지가 제시될 애플리케이션의 식별자, 페이지와 연관된 URL, 및/또는 임의의 다른 적절한 정보와 같은 임의의 적절한 정보를 포함할 수 있다. 일부 실시예들에서, 페이지는 웹 페이지, 비디오와 같은 미디어 콘텐츠 아이템을 보기 위한 페이지, 소셜 네트워킹 서비스와 연관된 페이지, 및/또는 임의의 다른 적절한 타입의 페이지와 같은 임의의 적절한 타입의 페이지일 수 있다.
504에서, 프로세스(500)는, 서버로부터, 페이지에 대응하는 콘텐츠 및 페이지에 포함된 링크들의 매핑을 포함하는 RPC에 대한 응답을 수신할 수 있다. 페이지에 대응하는 콘텐츠는 비디오 콘텐츠, 이미지들, 아이콘들, 애니메이션들, 그래픽들, 텍스트, 오디오 콘텐츠, 및/또는 임의의 다른 적절한 타입들의 콘텐츠와 같은 임의의 적절한 타입(들)의 콘텐츠를 포함할 수 있다. 일부 실시예들에서, 페이지에 대응하는 콘텐츠는 HTML 및/또는 임의의 다른 적절한 포맷과 같은 임의의 적절한 포맷으로 수신될 수 있다. 일부 실시예들에서, 링크들의 매핑은 페이지에 포함된 링크들에 관한 임의의 적절한 정보를 포함할 수 있다. 예를 들어, 도 4와 관련하여 전술한 바와 같이, 정보는 링크와 연관된 URL 및 URL과 연관된 페이지의 타입 또는 대응하는 종점을 표시할 수 있다. 더 특정한 예로서, 링크가 특정 비디오를 보기 위한 페이지에 대한 것인 경우들에서, URL은 "www.video.com/video1"일 수 있고, URL과 연관된 페이지의 타입 또는 종점은 "비디오 워치 페이지"일 수 있다. 이 예를 계속하면, 비디오 워치 페이지 종점은 비디오가 제시될 비디오 플레이어 윈도우, 비디오에 관한 정보를 제시하기 위한 섹션, 코멘트 섹션, 비디오의 제공자와 연관된 로고, 및/또는 임의의 다른 적절한 섹션들 또는 요소들과 같이, 이러한 타입의 페이지와 연관된 특정 섹션들 또는 사용자 인터페이스 요소들을 표시할 수 있다. 다른 더 특정한 예로서, 링크가 제시된 페이지 상의 콘텐츠에 관한 추가 정보를 제시하는 페이지에 대한 것인 경우들에서, URL은 "www.video.com/videoinfo"일 수 있고, URL과 연관된 페이지의 타입 또는 종점은 "비디오 정보 페이지"일 수 있다. 이 예를 계속하면, 비디오 정보 페이지 종점은, 비디오와 연관된 이미지들을 제시하기 위한 섹션, 비디오에 관한 정보와 연관된 텍스트를 제시하기 위한 섹션, 다른 뷰어들과 비디오를 논의하기 위한 섹션, 및/또는 임의의 다른 적절한 섹션들 또는 요소들과 같이, 이러한 타입의 페이지와 연관된 특정 섹션들 또는 사용자 인터페이스 요소들을 표시할 수 있다. 일부 실시예들에서, URL 및 대응하는 종점은 키-값 쌍과 같은 임의의 적절한 포맷으로 저장될 수 있다.
일부 실시예들에서, 링크는 페이지가 제시되고 있는 애플리케이션과 연관된 링크에 대응할 수 있다는 점에 유의한다. 예를 들어, 애플리케이션이 비디오 공유 서비스와 연관되고, 링크가 비디오 공유 서비스에 의해 호스팅되는 비디오에 대응하는 경우들에서, 종점은 비디오 공유 서비스와 연관된 비디오 워치 페이지를 표시할 수 있고, 비디오 공유 서비스와 연관된 로고, 비디오 공유 서비스에 특정된 시각적 외관을 갖는 비디오 플레이어 윈도우, 및/또는 임의의 다른 적절한 섹션들 또는 요소들과 같은 섹션들 또는 요소들을 포함할 수 있다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 링크는 애플리케이션과 연관되지 않은 페이지, 예를 들어, 상이한 엔티티와 연관된 웹 페이지 또는 기사에 대응할 수 있다. 일부 이러한 실시예들에서, URL은 웹 페이지 또는 기사의 위치를 표시할 수 있고, 페이지의 타입 또는 종점은 웹 페이지 또는 기사가 애플리케이션 내에 렌더링된 브라우저 윈도우(예를 들어, WebView, 또는 임의의 다른 적절한 브라우저 윈도우) 내에 제시될 것임을 표시할 수 있다.
일부 실시예들에서, 사용자 디바이스는 수신된 콘텐츠 및 링크들의 매핑을 임의의 적절한 위치에 저장할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스는 수신된 콘텐츠 및 링크들의 매핑을 사용자 디바이스의 로컬 메모리(예를 들어, 도 3과 관련하여 도시되고 전술한 바와 같은 메모리(304))에 저장할 수 있다.
506에서, 프로세스(500)는 사용자 디바이스 상의 페이지의 제시를 초기화할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(500)는 사용자 디바이스의 로컬 메모리(예를 들어, 도 3과 관련하여 도시되고 전술한 바와 같은 메모리(304))로부터 페이지에 대응하는 콘텐츠를 검색할 수 있다.
508에서, 프로세스(500)는 임의의 적절한 이벤트 처리 기능을 제시될 페이지와 연관된 HTML 콘텐츠에 삽입할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(500)는 링크의 선택을 수신하는 것에 응답하여 취해질 하나 이상의 액션을 지정하는 페이지에 링크들에 대응하는 이벤트 핸들러들을 삽입할 수 있다. 더 특정한 예로서, 일부 실시예들에서, 이벤트 핸들러는 대응하는 링크가 선택될 때 호출될 기능을 표시할 수 있는 "onclick" 자바스크립트 이벤트 핸들러에 대응할 수 있다. 특정 예로서, 링크에 대응하는 HTML 태그가 "<a href="www.video.com/video1">LINK</a>"인 경우들에서, 프로세스(500)는 링크가 선택될 때 기능이 호출될 것임을 표시하는 이벤트 핸들러를 삽입할 수 있다. 이 예를 계속하면, 프로세스(500)는 HTML 태그를 "<a href=www.video.com/video1 onClick="exampleFunction()">LINK</a>"로 수정할 수 있다. 전술한 예들이 자바스크립트 이벤트 핸들러들을 포함하지만, 일부 실시예들에서, 임의의 적절한 언어에 대응하는 이벤트 핸들러들이 이용될 수 있다는 점에 유의한다. 또한, 일부 실시예들에서, 이벤트 처리 기능은 사용자 디바이스에 의해 (예를 들어, 서버로부터 HTML 콘텐츠를 수신한 후에) 또는 서버에 의해 (예를 들어, 사용자 디바이스에 HTML 콘텐츠를 전송하기 전에) 삽입될 수 있다.
그 다음, 프로세스(500)는 페이지가 사용자 디바이스 상에 제시되게 할 수 있다. 일부 실시예들에서, 페이지는 사용자 디바이스 상에서 실행되는 애플리케이션 내에 제시될 수 있다. 또한, 일부 실시예들에서, 페이지는 애플리케이션에서의 WebView 내에 제시될 수 있다.
510에서, 프로세스(500)는 사용자 디바이스로부터 링크의 선택을 수신할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(500)는 사용자 디바이스의 사용자가 사용자 디바이스 상에 제시되는 페이지 내에 포함된 링크를 탭핑했거나, 클릭했거나, 또는 다른 방식으로 선택했다는 표시를 수신할 수 있다.
512에서, 프로세스(500)는, 선택된 링크에 대응하는 이벤트 핸들러를 이용하여, 링크에 대응하는 종점을 식별할 수 있다. 예를 들어, 일부 실시예들에서, 이벤트 핸들러는, 호출될 때, 블록 504에서 수신된 매핑에 표시된 바와 같이 선택된 링크의 URL에 대응하는 페이지의 타입 또는 종점을 식별하는 기능을 표시할 수 있다. 일부 실시예들에서, 이벤트 핸들러와 연관된 기능은 예를 들어 모바일 디바이스 상에서 실행되는 애플리케이션과 연관된 제2 기능을 호출할 수 있고, 제2 기능(예를 들어, 애플리케이션 핸들러)은 그 후 매핑에 기반하여 페이지의 타입 또는 종점을 식별할 수 있다는 점에 유의한다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 애플리케이션 핸들러는 모바일 디바이스 상에서 실행되는 애플리케이션 내에 웹 브라우저 인터페이스를 제시하는 WebView 애플리케이션과 연관될 수 있다.
514에서, 프로세스(500)는 블록 512에서 식별된 종점에 기반하여 선택된 링크와 연관된 페이지 또는 콘텐츠를 프리-로딩하기 시작할 수 있다. 예를 들어, 선택된 링크가 제시될 비디오를 표시하고, 종점이 비디오가 비디오 워치 페이지 내에 제시될 것임을 표시하는 경우들에서, 프로세스(500)는 비디오 워치 페이지에 대응하는 섹션들 또는 요소들의 로딩을 시작할 수 있다. 더 특정한 예로서, 비디오 워치 페이지에 대응하는 로딩된 섹션들 또는 요소들은, 비디오가 제시될 비디오 플레이어 윈도우, 비디오에 관한 정보를 제시하기 위한 사용자 인터페이스의 섹션, 비디오의 제공자와 연관된 로고, 비디오와 연관된 코멘트 섹션, 및/또는 임의의 다른 적절한 요소들과 같이, 특정 비디오에 관계없이 페이지 상에 제시될 일반 요소들일 수 있다. 일부 실시예들에서, 이러한 요소들은 사용자 디바이스의 로컬 메모리(예를 들어, 메모리(304))로부터 로딩될 수 있다.
프로세스(500)는 516에서, 선택된 링크와 연관된 콘텐츠에 대한 요청을 서버에 전송할 수 있다. 일부 실시예들에서, 요청은 선택된 링크에 대응하는 URL의 표시를 포함할 수 있다. 일부 실시예들에서, 프로세스(500)는 서버로부터 응답을 기다리는 동안 블록 514와 관련하여 전술한 바와 같이 페이지의 프리-로딩을 계속할 수 있다는 점에 유의한다.
518에서, 프로세스(500)는 서버로부터 요청된 콘텐츠를 수신할 수 있고, 선택된 링크와 연관된 콘텐츠를 제시할 수 있다. 도 1a와 관련하여 전술한 바와 같이, 콘텐츠는 임의의 적절한 방식으로 제시될 수 있다. 예를 들어, 도 1a에 도시된 바와 같이, 콘텐츠는 링크가 선택된 모바일 디바이스 상에서 실행되는 애플리케이션 내에 제시될 수 있다. 일부 실시예들에서, 콘텐츠는 애플리케이션 내에서 렌더링된 웹 브라우저 내에 제시될 수 있다. 예를 들어, 선택된 링크가 웹 콘텐츠(예를 들어, 웹 페이지, 온라인 기사, 및/또는 임의의 다른 적절한 타입의 콘텐츠)에 대응하는 경우들에서, 콘텐츠는 사용자 디바이스 상에서 애플리케이션에서의 WebView 내에 제시될 수 있다.
일부 실시예들에서, 도 4 및 도 5의 프로세스들의 전술한 블록들의 적어도 일부는 도면들과 관련하여 도시되고 설명된 순서 및 시퀀스로 제한되지 않는 임의의 순서 또는 시퀀스로 실행되거나 수행될 수 있다. 또한, 도 4 및 도 5의 위의 블록들 중 일부는 레이턴시 또는 처리 시간들을 줄이기 위해 적절한 경우에 실질적으로 동시에 또는 병렬로 실행되거나 수행될 수 있다. 추가적으로 또는 대안적으로, 도 4 및 도 5의 프로세스들의 전술한 블록들 중 일부는 생략될 수 있다.
일부 실시예들에서, 임의의 적절한 컴퓨터 판독가능한 매체들이 본 명세서에서 설명된 기능들 및/또는 프로세스들을 수행하기 위한 명령어들을 저장하는데 이용될 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨터 판독가능한 매체들은 일시적 또는 비일시적일 수 있다. 예를 들어, 비일시적 컴퓨터 판독가능한 매체들은 비일시적 형태들의 자기 매체들(예를 들어, 하드 디스크들, 플로피 디스크들, 및/또는 임의의 다른 적절한 자기 매체들), 비일시적 형태들의 광학 매체들(예를 들어, 콤팩트 디스크들, 디지털 비디오 디스크들, 블루레이 디스크들, 및/또는 임의의 다른 적절한 광학 매체들), 비일시적 형태들의 반도체 매체들(예를 들어, 플래시 메모리, 전기적 프로그램가능한 판독 전용 메모리(EPROM), 전기적 소거가능 프로그램가능한 판독 전용 메모리(EEPROM), 및/또는 임의의 다른 적절한 반도체 매체들), 전송 동안 사라지지 않거나 영속성의 임의의 모습이 없어지지 않는 임의의 적절한 매체들, 및/또는 임의의 적절한 유형적 매체들과 같은 매체들을 포함할 수 있다. 다른 예로서, 일시적 컴퓨터 판독가능한 매체들은 네트워크들, 와이어들, 도전체들, 광섬유들, 회로들, 전송 동안 사라지고 영속성의 임의의 모습이 없어지는 임의의 적절한 매체들, 및/또는 임의의 적절한 무형적 매체들 상의 신호들을 포함할 수 있다.
본 명세서에서 설명된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 개인 정보를 이용하는 상황들에서, 사용자들은 프로그램들 또는 특징들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호도, 또는 사용자의 현재 위치에 관한 정보)를 수집할지 여부를 제어하는 기회를 제공받을 수 있다. 또한, 특정 데이터는 개인 정보가 제거되도록 저장되거나 이용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 아이덴티티가 어떠한 개인 정보도 사용자에 대해 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치가 사용자의 특정한 위치가 결정될 수 없도록 위치 정보(예컨대, 도시, 우편 번호, 또는 도(state) 수준)가 획득되는 곳에서 일반화될 수 있다. 따라서, 사용자는, 사용자에 관한 정보가 어떻게 수집되고 콘텐츠 서버에 의해 어떻게 이용될지에 대한 제어를 할 수 있다.
따라서, 링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들이 제공된다.
본 발명이 위의 예시적인 실시예들에서 설명되고 예시되었지만, 본 개시내용이 예로서 이루어진 것에 불과하다는 것과, 이하의 청구항들에 의해서만 제한되는, 본 발명의 사상 및 범위를 벗어남이 없이 본 발명의 구현의 상세들에서의 수많은 변경들이 행해질 수 있다는 것을 알 것이다. 개시된 실시예들의 특징들은 다양한 방식들로 결합되고 재배열될 수 있다.

Claims (18)

  1. 링크들과 연관된 콘텐츠를 검색하기 위한 방법으로서,
    사용자 디바이스로부터 서버로, 상기 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하는 단계;
    상기 서버로부터, 상기 페이지에 대응하는 콘텐츠 및 상기 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의 상기 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하는 단계;
    상기 사용자 디바이스 상에, 수신된 매핑을 저장하는 단계;
    상기 페이지의 콘텐츠가 상기 사용자 디바이스 상에 제시되게 하는 단계;
    상기 페이지에 대응하는 콘텐츠에 포함된 상기 하나 이상의 링크 중 하나의 링크의 선택을 수신하는 단계;
    저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하는 단계;
    상기 선택된 링크와 연관된 콘텐츠에 대한 요청을 상기 서버에 전송하는 단계;
    상기 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 상기 사용자 디바이스 상에 제시되게 하는 단계; 및
    상기 서버로부터 상기 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 상기 사용자 인터페이스 내에 제시되게 하는 단계
    를 포함하는, 링크들과 연관된 콘텐츠를 검색하기 위한 방법.
  2. 제1항에 있어서,
    상기 페이지는 상기 사용자 디바이스 상에서 실행되는 애플리케이션 내에 제시되는, 링크들과 연관된 콘텐츠를 검색하기 위한 방법.
  3. 제2항에 있어서,
    상기 선택된 링크와 연관된 콘텐츠는 상기 애플리케이션과 연관되지 않은 엔티티에 의해 제공되는 제3자 콘텐츠인, 링크들과 연관된 콘텐츠를 검색하기 위한 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 페이지에 대응하는 콘텐츠 및 상기 선택된 링크에 대응하는 상기 수신된 콘텐츠는 상기 사용자 디바이스 상에서 실행되는 상기 애플리케이션 내에서 실행되는 웹 브라우저 애플리케이션 내에 제시되는, 링크들과 연관된 콘텐츠를 검색하기 위한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 페이지의 콘텐츠가 상기 사용자 디바이스 상에 제시되게 하기 전에 상기 페이지에 대응하는 콘텐츠에 상기 하나 이상의 링크 각각에 대한 이벤트 핸들러를 삽입하는 단계를 더 포함하는, 링크들과 연관된 콘텐츠를 검색하기 위한 방법.
  6. 제5항에 있어서,
    상기 이벤트 핸들러는 상기 선택된 링크에 대응하는 페이지 타입을 식별하는 기능을 표시하는, 링크들과 연관된 콘텐츠를 검색하기 위한 방법.
  7. 링크들과 연관된 콘텐츠를 검색하기 위한 시스템으로서,
    하드웨어 프로세서를 포함하며,
    상기 하드웨어 프로세서는,
    사용자 디바이스로부터 서버로, 상기 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하고;
    상기 서버로부터, 상기 페이지에 대응하는 콘텐츠 및 상기 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의 상기 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하고;
    상기 사용자 디바이스 상에, 수신된 매핑을 저장하고;
    상기 페이지의 콘텐츠가 상기 사용자 디바이스 상에 제시되게 하고;
    상기 페이지에 대응하는 콘텐츠에 포함된 상기 하나 이상의 링크 중 하나의 링크의 선택을 수신하고;
    저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하고;
    상기 선택된 링크와 연관된 콘텐츠에 대한 요청을 상기 서버에 전송하고;
    상기 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 상기 사용자 디바이스 상에 제시되게 하며;
    상기 서버로부터 상기 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 상기 사용자 인터페이스 내에 제시되게 하도록 구성되는, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템.
  8. 제7항에 있어서,
    상기 페이지는 상기 사용자 디바이스 상에서 실행되는 애플리케이션 내에 제시되는, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템.
  9. 제8항에 있어서,
    상기 선택된 링크와 연관된 콘텐츠는 상기 애플리케이션과 연관되지 않은 엔티티에 의해 제공되는 제3자 콘텐츠인, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 페이지에 대응하는 콘텐츠 및 상기 선택된 링크에 대응하는 상기 수신된 콘텐츠는 상기 사용자 디바이스 상에서 실행되는 상기 애플리케이션 내에서 실행되는 웹 브라우저 애플리케이션 내에 제시되는, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템.
  11. 제7항 내지 제10항 중 어느 한 항에 있어서,
    상기 하드웨어 프로세서는 상기 페이지의 콘텐츠가 상기 사용자 디바이스 상에 제시되게 하기 전에 상기 페이지에 대응하는 콘텐츠에 상기 하나 이상의 링크 각각에 대한 이벤트 핸들러를 삽입하도록 추가로 구성되는, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템.
  12. 제11항에 있어서,
    상기 이벤트 핸들러는 상기 선택된 링크에 대응하는 페이지 타입을 식별하는 기능을 표시하는, 링크들과 연관된 콘텐츠를 검색하기 위한 시스템.
  13. 컴퓨터 실행가능한 명령어들을 포함하는 비일시적 컴퓨터 판독가능한 매체로서,
    상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 링크들과 연관된 콘텐츠를 검색하기 위한 방법을 수행하게 하며,
    상기 방법은,
    사용자 디바이스로부터 서버로, 상기 사용자 디바이스 상에 제시될 페이지에 대응하는 콘텐츠에 대한 요청을 전송하는 단계;
    상기 서버로부터, 상기 페이지에 대응하는 콘텐츠 및 상기 페이지에 대응하는 콘텐츠에 포함된 하나 이상의 링크의 상기 하나 이상의 링크 각각과 연관된 하나 이상의 페이지 타입에의 매핑을 수신하는 단계;
    상기 사용자 디바이스 상에, 수신된 매핑을 저장하는 단계;
    상기 페이지의 콘텐츠가 상기 사용자 디바이스 상에 제시되게 하는 단계;
    상기 페이지에 대응하는 콘텐츠에 포함된 상기 하나 이상의 링크 중 하나의 링크의 선택을 수신하는 단계;
    저장된 매핑에 기반하여, 선택된 링크에 대응하는 페이지 타입을 식별하는 단계;
    상기 선택된 링크와 연관된 콘텐츠에 대한 요청을 상기 서버에 전송하는 단계;
    상기 서버로부터, 요청된 콘텐츠를 기다리는 동안, 식별된 페이지 타입과 연관된 사용자 인터페이스의 사용자 인터페이스 요소들이 상기 사용자 디바이스 상에 제시되게 하는 단계; 및
    상기 서버로부터 상기 요청된 콘텐츠를 수신하는 것에 응답하여, 수신된 콘텐츠가 상기 사용자 인터페이스 내에 제시되게 하는 단계
    를 포함하는, 비일시적 컴퓨터 판독가능한 매체.
  14. 제13항에 있어서,
    상기 페이지는 상기 사용자 디바이스 상에서 실행되는 애플리케이션 내에 제시되는, 비일시적 컴퓨터 판독가능한 매체.
  15. 제14항에 있어서,
    상기 선택된 링크와 연관된 콘텐츠는 상기 애플리케이션과 연관되지 않은 엔티티에 의해 제공되는 제3자 콘텐츠인, 비일시적 컴퓨터 판독가능한 매체.
  16. 제14항 또는 제15항에 있어서,
    상기 페이지에 대응하는 콘텐츠 및 상기 선택된 링크에 대응하는 상기 수신된 콘텐츠는 상기 사용자 디바이스 상에서 실행되는 상기 애플리케이션 내에서 실행되는 웹 브라우저 애플리케이션 내에 제시되는, 비일시적 컴퓨터 판독가능한 매체.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 방법은 상기 페이지의 콘텐츠가 상기 사용자 디바이스 상에 제시되게 하기 전에 상기 페이지에 대응하는 콘텐츠에 상기 하나 이상의 링크 각각에 대한 이벤트 핸들러를 삽입하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능한 매체.
  18. 제17항에 있어서,
    상기 이벤트 핸들러는 상기 선택된 링크에 대응하는 페이지 타입을 식별하는 기능을 표시하는, 비일시적 컴퓨터 판독가능한 매체.
KR1020197034252A 2017-04-24 2018-01-11 링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들 KR102313254B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/495,460 US10749988B2 (en) 2017-04-24 2017-04-24 Methods, systems, and media for retrieving content associated with links
US15/495,460 2017-04-24
PCT/US2018/013309 WO2018200047A1 (en) 2017-04-24 2018-01-11 Methods, systems, and media for retrieving content associated with links

Publications (2)

Publication Number Publication Date
KR20190142363A true KR20190142363A (ko) 2019-12-26
KR102313254B1 KR102313254B1 (ko) 2021-10-18

Family

ID=61157297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197034252A KR102313254B1 (ko) 2017-04-24 2018-01-11 링크들과 연관된 콘텐츠를 검색하기 위한 방법들, 시스템들 및 매체들

Country Status (6)

Country Link
US (3) US10749988B2 (ko)
EP (1) EP3596626B1 (ko)
JP (1) JP6874212B2 (ko)
KR (1) KR102313254B1 (ko)
CN (2) CN117349471A (ko)
WO (1) WO2018200047A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749988B2 (en) 2017-04-24 2020-08-18 Google Llc Methods, systems, and media for retrieving content associated with links
US11526269B2 (en) * 2019-01-12 2022-12-13 Shanghai marine diesel engine research institute Video playing control method and apparatus, device, and storage medium
US11550457B2 (en) 2019-01-12 2023-01-10 Beijing Bytedance Network Technology Co., Ltd. Method, device, apparatus and storage medium of displaying information on video

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150121413A1 (en) * 2013-10-31 2015-04-30 At&T Intellectual Property I, Lp Method and apparatus for content distribution over a network
US20150161282A1 (en) * 2013-12-11 2015-06-11 Yahoo! Inc. Method and System for Smart URL Shortening Service

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101871A (ja) 1995-10-05 1997-04-15 Nec Corp ハイパーメディア装置
US6519648B1 (en) 2000-01-24 2003-02-11 Friskit, Inc. Streaming media search and continuous playback of multiple media resources located on a network
US7509374B2 (en) * 2005-09-09 2009-03-24 Alchemic Solutions Group, Inc. Systems and methods for creating customized applications
US9092239B2 (en) * 2006-05-02 2015-07-28 Core Wireless Licensing S.A.R.L. Configuring user interfaces in electronic devices
CN101075236A (zh) * 2006-06-12 2007-11-21 腾讯科技(深圳)有限公司 一种加快浏览器网页显示的装置和方法
US9064010B2 (en) * 2006-12-13 2015-06-23 Quickplay Media Inc. Encoding and transcoding for mobile media
US8578261B1 (en) 2007-06-22 2013-11-05 Adobe Systems Incorporated Active preview of hyperlink content in browser supported file-format
KR101095163B1 (ko) * 2008-08-27 2011-12-16 에스케이플래닛 주식회사 위젯 실행을 위한 사용자 단말기와 스마트 카드 간 연동 시스템 및 그 방법
US20100107114A1 (en) * 2008-10-28 2010-04-29 Zachcial Slawomir In context web page localization
US8302014B2 (en) * 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
US20120166979A1 (en) * 2010-07-01 2012-06-28 Nokia Corporation Method and Apparatus for Enabling User Interface Customization
US20120192063A1 (en) * 2011-01-20 2012-07-26 Koren Ziv On-the-fly transformation of graphical representation of content
US9275162B2 (en) 2011-03-22 2016-03-01 Blackberry Limited Pre-caching web content for a mobile device
US8812658B1 (en) 2011-05-20 2014-08-19 Amazon Technologies, Inc. Pre-fetching of network page content
US20120331532A1 (en) * 2011-06-22 2012-12-27 TerraWi, Inc. Device-agnostic mobile device thin client computing methods and apparatus
US9582598B2 (en) * 2011-07-05 2017-02-28 Visa International Service Association Hybrid applications utilizing distributed models and views apparatuses, methods and systems
CN102446222B (zh) * 2011-12-22 2014-12-10 华为技术有限公司 一种网页内容预加载方法、装置及系统
US9606970B2 (en) * 2012-01-05 2017-03-28 Data Record Science Web browser device for structured data extraction and sharing via a social network
US8656265B1 (en) 2012-09-11 2014-02-18 Google Inc. Low-latency transition into embedded web view
US10296562B2 (en) * 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US20140359598A1 (en) 2013-05-29 2014-12-04 Microsoft Corporation Application installation from search results
US10025856B2 (en) * 2013-06-14 2018-07-17 Target Brands, Inc. Dynamic landing pages
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
CN103678479A (zh) * 2013-09-30 2014-03-26 北京搜狗科技发展有限公司 浏览器预读取加速方法、装置及浏览器
CN103699674B (zh) * 2013-12-31 2018-04-13 优视科技有限公司 网页保存、网页打开方法及装置和网页浏览系统
CN104007990A (zh) * 2014-05-30 2014-08-27 北京金山网络科技有限公司 一种网页加载方法及浏览器
US20160021051A1 (en) * 2014-07-16 2016-01-21 Theplatform, Llc Providing Access To Content Via Social Media
WO2016068743A1 (en) * 2014-10-29 2016-05-06 Microsoft Technology Licensing, Llc Transmitting media content during instant messaging
CN105760405A (zh) * 2014-12-19 2016-07-13 阿里巴巴集团控股有限公司 用于加载web页面的网络资源获取方法、缓存方法及装置
US10296641B2 (en) 2014-12-23 2019-05-21 Samsung Electronics Co., Ltd. Techniques for efficient access of software application functionality in search
CN104866534A (zh) 2015-04-28 2015-08-26 北京奇虎科技有限公司 页面展示方法及装置
US9311168B1 (en) * 2015-09-30 2016-04-12 Google Inc. Deeplinking to multiple native applications
US10452653B2 (en) * 2015-10-07 2019-10-22 Capital One Services, Llc Automated extraction of data from web pages
US9923993B2 (en) * 2015-11-02 2018-03-20 Rockwell Automation Technologies, Inc. Self-describing diagnostic data for presentation on mobile devices
US10257342B2 (en) * 2016-03-31 2019-04-09 Microsoft Technology Licensing, Llc Validating stateful dynamic links in mobile applications
CN106095999A (zh) * 2016-06-22 2016-11-09 腾讯科技(深圳)有限公司 获取页面内容的方法及装置
CN106354879A (zh) * 2016-09-27 2017-01-25 北京奇虎科技有限公司 网页缓存方法及装置
US10749988B2 (en) 2017-04-24 2020-08-18 Google Llc Methods, systems, and media for retrieving content associated with links

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150121413A1 (en) * 2013-10-31 2015-04-30 At&T Intellectual Property I, Lp Method and apparatus for content distribution over a network
US20150161282A1 (en) * 2013-12-11 2015-06-11 Yahoo! Inc. Method and System for Smart URL Shortening Service

Also Published As

Publication number Publication date
EP3596626B1 (en) 2023-04-19
CN117349471A (zh) 2024-01-05
CN110709834B (zh) 2023-10-03
EP3596626A1 (en) 2020-01-22
US11233877B2 (en) 2022-01-25
CN110709834A (zh) 2020-01-17
JP2020518088A (ja) 2020-06-18
WO2018200047A1 (en) 2018-11-01
US11991262B2 (en) 2024-05-21
JP6874212B2 (ja) 2021-05-19
KR102313254B1 (ko) 2021-10-18
US10749988B2 (en) 2020-08-18
US20180309849A1 (en) 2018-10-25
US20220150329A1 (en) 2022-05-12
US20200382619A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
US11985178B2 (en) Methods, systems and media for associating multiple users with a media presentation device
US11991262B2 (en) Methods, systems, and media for retrieving content associated with links
CN108475280B (zh) 用于使用第二屏幕设备来与内容交互的方法、系统和介质
US11470387B2 (en) Methods, systems, and media for remote rendering of Web content on a television device
CN109478194B (zh) 用于提供注释有社交场境的媒体消费历史的方法、系统、以及介质
US11855940B2 (en) Methods, systems, and media for generating contextually relevant messages
US20170324790A1 (en) Methods, systems, and media for presenting a notification of playback availability
CN106462878B (zh) 用于在媒体内容的后台呈现期间呈现广告的方法、系统和介质
US20220058229A1 (en) Methods, systems, and media for updating a webpage rendered with cached content
CN114491098A (zh) 评论提示方法、装置、电子设备、存储介质和程序产品
CN115379245A (zh) 信息显示方法、装置和电子设备
CN114793285A (zh) 信息显示方法、装置、设备及介质

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