KR102196403B1 - 재지향 감소 - Google Patents

재지향 감소 Download PDF

Info

Publication number
KR102196403B1
KR102196403B1 KR1020197019838A KR20197019838A KR102196403B1 KR 102196403 B1 KR102196403 B1 KR 102196403B1 KR 1020197019838 A KR1020197019838 A KR 1020197019838A KR 20197019838 A KR20197019838 A KR 20197019838A KR 102196403 B1 KR102196403 B1 KR 102196403B1
Authority
KR
South Korea
Prior art keywords
server
client device
servers
redirection
pinging
Prior art date
Application number
KR1020197019838A
Other languages
English (en)
Other versions
KR20190090862A (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 KR20190090862A publication Critical patent/KR20190090862A/ko
Application granted granted Critical
Publication of KR102196403B1 publication Critical patent/KR102196403B1/ko

Links

Images

Classifications

    • H04L67/2814
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

클라이언트 디바이스의 재지향(redirect)을 감소시키기 위한 방법, 시스템 및 컴퓨터 판독 가능 매체가 개시된다. 사용자를 목적 페이지로 지향하는 방법은 하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와; 상기 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 재지향할 다른 서버 및 상기 디지털 컴포넌트와의 상호 작용을 통해 요청된 목적 페이지를 식별하는 단계; 상기 하나 이상의 서버에 의해, 상기 다른 서버로 상기 클라이언트 디바이스를 재지향하지 않고 상기 목적 페이지로 상기 클라이언트 디바이스를 재지향하는 단계와; 그리고 상기 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 다른 서버에 핑(ping)하는 단계를 포함한다.

Description

재지향 감소
본 명세서는 재지향(redirect) 감소에 관한 것이다. 인터넷은 다양한 리소스에 대한 액세스를 제공하고, 일부 경우 리소스에 액세스하고자 하는 사용자는 리소스를 호스팅하는 서버로 최종적으로 재지향되기 전에 다수의 상이한 서버로 재지향될 수 있다.
일반적으로, 본 명세서에서 설명된 주제의 하나의 혁신적인 양태는 하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계를 포함하는 방법으로 구현될 수 있다. 상기 방법은 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 재지향할 중개 서버와 상기 디지털 컴포넌트와의 상호 작용을 통해 요청되는 목적 서버를 식별하는 단계를 포함한다. 상기 방법은 하나 이상의 서버에 의해, 클라이언트 디바이스를 중개 서버로 재지향하지 않고 클라이언트 디바이스를 목적 서버로 재지향하는 단계를 포함한다. 상기 방법은 하나 이상의 서버에 의해, 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 중개 서버에 핑(ping)하는 단계를 포함한다.
이들 및 다른 실시예들은 각각 선택적으로 다음 특징들 중 하나 이상을 포함할 수 있다.
일부 예에서, 상기 중개 서버를 식별하는 단계는 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 그리고 상기 중개 서버의 경로를 지정하는 정보를 추출하는 단계를 포함한다. 일부 예에서, 상기 방법은 하나 이상의 서버에 의해, 상기 중개 서버를 경유하여 상기 목적 리소스에 대한 식별자를 수신하는 단계는 중개 서버로부터, 상기 하나 이상의 서버를 제2 중개 서버로 재지향하는 재지향 응답을 수신하는 단계와, 그리고 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 제2 중개 서버에 핑하는 단계를 포함한다.
일부 예에서, 상기 중개 서버에 핑하는 단계는 상기 클라이언트 디바이스의 상기 목적 리소스로의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 포함한다. 일부 예에서, 상기 중개 서버에 핑하는 단계는 상기 핑이 개시될 때 카운터를 시작하는 단계와, 상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와, 그리고 상기 하나 이상의 서버가 상기 중개 서버로부터 응답을 수신하기 전에 상기 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 중개 서버의 핑을 재시도하는 단계를 포함한다.
일부 예에서, 상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신한다. 일부 예에서, 상기 방법은 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 상기 목적 서버로 재지향하지 않으면 상기 클라이언트 디바이스가 따라 갔을 다중-서버 재지향 경로를 따르는 단계를 포함한다.
다른 일반적인 양태에서, 시스템은 다양한 디지털 컴포넌트와의 클라이언트 측 상호 작용에 대응하는 상호 작용 데이터를 저장하는 데이터 저장소와, 하나 이상의 통신 네트워크를 통한 통신을 가능하게 하는 통신 인터페이스를 포함하는 프론트-엔드 인터페이스와, 상기 프론트-엔드 인터페이스에 연결된 추적 서버를 포함하고, 상기 추적 서버는 동작들을 수행함으로써 클라이언트 디바이스가 따르는 재지향 체인을 차단한다. 상기 동작들은 하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와, 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 재지향할 다른 서버와 상기 디지털 컴포넌트와의 상호 작용을 통해 요청되는 목적 서버를 식별하는 단계와, 하나 이상의 서버에 의해, 상기 클라이언트 디바이스를 다른 서버로 재지향하지 않고 상기 목적 페이지로 클라이언트 디바이스를 재지향하는 단계와, 그리고 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 다른 서버에 핑하는 단계를 포함한다.
일부 예에서, 상기 다른 서버를 식별하는 단계는 상기 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 상기 다른 서버의 경로를 지정하는 정보를 추출하는 단계를 포함한다. 일부 예에서, 상기 동작들은 상기 다른 서버로부터, 상기 하나 이상의 서버를 제2 다른 서버로 재지향하는 재지향 응답을 수신하는 단계와, 그리고 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 다른 서버에 핑하는 단계를 포함한다.
일부 예에서, 상기 다른 서버에 핑하는 단계는 상기 클라이언트 디바이스의 목적 페이지의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 단계를 포함한다. 일부 예에서, 상기 다른 서버에 핑하는 단계는 상기 핑이 개시될 때 카운터를 시작하는 단계와, 상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와, 그리고 상기 하나 이상의 서버가 상기 다른 서버로부터 응답을 수신하기 전에 상기 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 다른 서버의 핑을 재시도하는 단계를 포함한다.
일부 예에서, 상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신한다. 일부 예에서, 상기 동작들은, 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 목적 페이지로 재지향하지 않으면 상기 클라이언트 디바이스가 따라가야 했을 다중-서버 재지향 경로를 따르는 단계를 포함한다.
다른 일반적인 양태에서, 비-일시적인 컴퓨터 판독 가능 매체는 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때 상기 하나 이상의 컴퓨팅 디바이스로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 상기 동작들은 하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와, 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 상기 클라이언트 디바이스를 재지향할 다른 서버 및 상기 디지털 컴포넌트와의 상호 작용을 통해 요청되는 목적 페이지를 식별하는 단계와, 하나 이상의 서버에 의해, 상기 다른 서버로 상기 클라이언트 디바이스를 재지향하지 않고 상기 목적 페이지로 상기 클라이언트 디바이스를 재지향하는 단계와, 그리고 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 다른 서버에 핑하는 단계를 포함한다.
일부 예에서, 상기 다른 서버를 식별하는 단계는 상기 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 상기 다른 서버의 경로를 지정하는 정보를 추출하는 단계를 포함한다. 일부 예에서, 상기 동작들은 다른 서버로부터, 상기 하나 이상의 서버를 제2 다른 서버로 재지향하는 재지향 응답을 수신하는 단계와, 그리고 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 다른 서버에 핑하는 단계를 포함한다.
일부 예에서, 상기 다른 서버에 핑하는 단계는 상기 클라이언트 디바이스의 목적 페이지의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 단계를 포함한다. 일부 예에서, 상기 다른 서버에 핑하는 단계는 상기 핑이 개시될 때 카운터를 시작하는 단계와, 상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와, 그리고 상기 하나 이상의 서버가 상기 다른 서버로부터 응답을 수신하기 전에 상기 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 다른 서버의 핑을 재시도하는 단계를 포함한다.
일부 예에서, 상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신한다.
다른 일반적인 양태에서, 방법은 하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계를 포함한다. 상기 방법은 또한 상기 하나 이상의 서버에 의해, 디지털 컴포넌트와의 상호 작용을 통해 요청되는 목적 리소스로 상기 클라이언트 디바이스를 재지향할 수 있는 중개 서버를 식별하는 단계를 포함한다. 상기 방법은 상기 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 중개 서버에 핑(ping)하는 단계와 상기 하나 이상의 서버에 의해, 상기 중개 서버를 통해 상기 목적 리소스에 대한 식별자를 획득하는 단계를 포함한다. 상기 방법은 상기 하나 이상의 서버에 의해, 상기 식별자를 사용하여 상기 클라이언트 디바이스를 상기 목적 리소스로 재지향하는 단계를 포함한다.
이 양태의 다른 실시예는 컴퓨터 저장 디바이스 상에 인코딩된, 상기 방법들의 동작들을 수행하도록 구성된 대응하는 시스템, 장치 및 컴퓨터 프로그램을 포함한다.
본 명세서에 기술된 주제의 특정 실시예들은 다음의 이점 중 하나 이상을 실현하도록 구현될 수 있다. 클라이언트 디바이스가 리소스에 대한 요청을 할 때, 클라이언트 디바이스는 그렇지 않으면 클라이언트 디바이스가 따라야 할 하나 이상의 중간 재지향(intervening redirects)을 스킵할 수 있으므로 리소스를 호스팅하는 목적 서버로부터 리소스를 얻기 위해 상기 클라이언트 장치가 따라야 하는 재지향의 수를 줄일 수 있다. 상기 클라이언트 디바이스가 중간 재지향들(예를 들어, 리소스에 대한 클라이언트 디바이스의 초기 요청과 상기 리소스를 호스팅하는 목적 서버로 지향되는 클라이언트 디바이스간에 발생하는 재지향들)을 스킵할 수 있게 하는 것은 클라이언트 디바이스가 목적 서버로부터 상기 리소스를 획득하지 못하게 하는 오류 가능성을 줄인다. 클라이언트 디바이스가 목적 서버로부터 리소스를 얻지 못하게 하는 오류들의 예는 클라이언트 디바이스가 리소스를 호스팅하는 목적 서버로 재지향되기 전에 응답하지 않는 중개 서버를 만나는(encounter) 것 또는 중개 서버들 중 하나에 영향을 미치는 일시적인 네트워크 중단을 포함한다. 클라이언트 디바이스는 목적 서버로 재지향되기 전에 중개 서버로 재지향되는 동안 네트워크 연결이 끊어질 수 있다. 일부 예에서, 중개 서버는 클라이언트 디바이스를 부정확한 목적지로 인도하는 오류의 재지향 데이터를 제공할 수 있다.
목적 서버로부터 리소스를 획득하는데 필요한 시간의 양은, 중개 서버로 재지향할 때마다 목적 서버로부터 리소스를 획득하는데 필요한 시간이 길어지기 때문에 상기 재지향의 수가 감소할 때 감소된다. 모바일 디바이스들의 컨텍스트에서, 각각의 재지향에 의해 부가되는 시간의 양은 무선 (예를 들어, 셀룰러) 네트워크에서 네트워크 호출들이 수행되는 방법의 특성(nature)으로 인해 상당할 수 있으며, 부정적인 사용자 경험 또는 페이지 로드 오류(예를 들어, 변동하는 무선 네트워크 가용성 또는 로딩으로 인해)로 이어질 수 있다. 이와 같이, 이들 재지향로 인한 지연 시간을 줄이기 위해서는 모바일 디바이스의 재지향의 수를 줄이는 것이 중요하다. 상기 재지향의 수를 줄이면 또한 사용되는 모바일 데이터의 양이 줄어들어, 많은 사용자에게 제한될 수 있는 모바일 데이터의 보다 효율적으로 사용을 제공할 수 있다. 본 명세서 전체에서 논의된 것처럼, 클라이언트 디바이스를 중개 서버로 재지향하는 대신 본 명세서에 설명된 기술을 사용하여, 주어진 서버는 클라이언트 디바이스가 중개 서버에 접속할 것을 요구하기 보다는 클라이언트 디바이스를 대신하여 중개 서버에 접속한다. 예를 들어, 주어진 서버는 클라이언트 디바이스가 재지향 체인을 따르도록 요구하는 것이 아니라상기 클라이언트 디바이스가 따라 갔을 재지향 체인(예를 들어, 중개 서버들에 대한 일련의 호출)을 따를 수있다.
주어진 서버는 일반적으로 신뢰도있는 통신 링크를 통해 중개 서버들과 통신하므로, 각 중개 서버에 적절한 정보가 제공될 가능성을 증가시킨다. 예를 들어, 중간 서버들과 통신은 광 네트워크, 디지털 가입자 회선 네트워크 또는 하이브리드 네트워크와 같은 고속 유선 네트워크를 통해 발생할 수 있다. 게다가, 주어진 서버들을 사용하여 중개 서버들과 통신하면 중개 서버들 중 하나로 전송된 요청이 지정된 시간 내에 충족되지 않은 경우 상기 서버가 "재시도"를 활용하는 것과 같은 추가적인 신뢰도 기술을 사용자가 사용할 수 있게 한다. 예를 들어, 만약 중간 서버들 중 하나가 응답하기 전에 "타임아웃"이 발생하면, 지정된 서버는 응답에 실패한 중간 서버로 상기 요청의 두 번째 인스턴스를 전송하는 재시도(retry)를 개시할 수 있다. 상기 "재시도"의 사용은 일반적으로 클라이언트 디바이스가 각 중개 서버에 접촉하는 임무를 수행할 때 사용할 수 없다. 따라서, 본 명세서에서 설명하는 기술들은 클라이언트 디바이스로부터의 데이터가 재지향 체인에서 각각의 중간 서버로 전달되는 신뢰도를 향상시킬 수 있다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 이하의 설명에서 설명된다. 주제의 다른 특징, 양상 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 디지털 컴포넌트가 전자 문서로 표현하기 위해 배포되는 예시적인 환경의 블록도이다.
도 2a 및 도 2b는 사용자를 목적 페이지로 지향하기 위한 예시적인 데이터 흐름이다.
도 3은 사용자를 목적 페이지로 지향하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 예시적인 컴퓨팅 시스템의 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
본 명세서는 클라이언트 디바이스에 의해 요청된 리소스에 액세스하려고 시도할 때 클라이언트 디바이스가 따라야 하는 재지향(redirect) 수를 감소하는 방법, 시스템 및 디바이스를 기술한다. 일부 상황에서, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 통해 리소스 요청이 생성되면, 생성된 초기 요청은 상기 요청된 리소스를 호스팅하는 서버와 다른 주어진 서버로 클라이언트 디바이스를 지향(direct)할 수 있다. 예를 들어, 주어진 서버는 디지털 컴포넌트와의 상호 작용을 추적하는 추적 서버일 수 있다. 이 예에서, 추적 서버는 디지털 컴포넌트와의 상호 작용과 관련된 정보(예를 들어, 상호 작용이 일어난 클라이언트 디바이스의 식별자 또는 상호 작용을 수행한 사용자의 계정 식별자)를 식별, 추출 및 기록(log)하기 위해 상기 추적 서버에 접속하는데 사용되는 요청 및 특히 URL의 컨텐츠를 검사한다.
일단 추적 서버가 상기 요청으로부터 정보를 획득하면, 추적 서버는 (예를 들어, 접속(contact)될 다음 서버를 지정하는 301 또는 302 재지향 명령을 사용하여) 상기 요청된 리소스을 호스팅하는 목적(대상) 서버를 향하는 경로를 따라 클라이언트 디바이스를 재지향한다. 일부 상황에서, 추적 서버에 의해 발행된 재지향는 목적 서버와 다른 중개 서버로 진행될 수 있다. 예를 들어, 디지털 컴포넌트의 제공자가 다양한 상이한 추적 서비스를 이용하는 상황에서, 중개 서버는 다른 추적 서비스를 제공하기 위해 디지털 컴포넌트와의 상호 작용에 대한 정보를 얻는데 필요한 상이한 서버일 수 있다. 클라이언트 디바이스가 이러한 중개 서버로 재지향될 때, 클라이언트 디바이스는 디지털 컴포넌트와의 상호 작용을 통해 원래 요청된 리소스을 호스팅하는 목적 페이지로 최종적으로 재지향되기 전에 다른 중개 서버로 재지향될 수 있고 및/또는 다양한 중개 서버에 대한 순차적인 재지향 체인을 따를(follow) 수 있다.
아래에서 보다 상세히 설명되는 바와 같이, 클라이언트 디바이스가 목적 서버에 도달하기 전에 따라야 하는 재지향의 수는 재지향 책임을 주어진 서버 디바이스로 오프로드(offload)함으로써 감소될 수 있다. 일부 구현예에서, 주어진 서버(예를 들어, 디지털 컴포넌트 또는 후속 중개 서버와의 상호 작용에 응답하여 클라이언트 디바이스에 의해 접속된 초기 서버)는 클라이언트 디바이스를 중간 서버로 재지향하는 대신 클라이언트 디바이스를 목적 서버로 직접 재지향함으로써 상기 클라이언트 디바이스가 따르는 재지향 체인을 차단(break)시킬 수 있다. 주어진 서버가 클라이언트 디바이스를 목적 서버로 재지향할 때, 주어진 서버는 재지향 체인의 각각의 중간 서버가 클라이언트 디바이스에 의해 제공되는 상호 작용에 대한 정보와 접촉되는지 확인하기 위해, 그렇지 않은 경우 클라이언트 디바이스가 따라 갔을 재지향 경로를 따를 수 있다. 이와 같이, 클라이언트 디바이스에 의해 요청되는 리소스는 전체 재지향 체인이 수행된 경우보다 짧은 시간내에 클라이언트 디바이스로 제시되고, 클라이언트 디바이스가 중개 서버와 확립하는 통신 링크의 수를 감소시킴으로써 상기 요청된 리소스의 클라이언트 디바이스로의 성공적인 전달 신뢰도가 증가된다
본 명세서에 기술된 기술들은 또한, 사용자가 이용 가능한 애플리케이션(예를 들어, 온라인 애플리케이션 스토어 또는 웹 브라우저에서) 또는 다른 환경(예를 들어, 발행자 웹 페이지에서)을 통해 브라우징하는 상황에서도 구현될 수 있음을 주목한다. 간략화를 위해, 다음 설명의 대부분은 검색 결과 환경을 참조한다.
본 명세서 전반에 걸쳐서 사용되는 "디지털 컴포넌트"라는 어구는 디지털 컨텐츠 또는 디지털 정보(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 컨텐츠 단위)의 개별 단위를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 집합으로 전자식으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있고, 광고가 일 유형의 디지털 컴포넌트가 되도록 광고 정보를 포함할 수 있다. 일반적으로, 디지털 컴포넌트는 단일 제공자 또는 소스(예를 들어, 광고자, 발행자 또는 다른 컨텐츠 제공자)에 의해 정의(또는 제공)되지만, 다수의 소스로부터의 컨텐츠의 조합일 수 있다. 다수의 상이한 소스로부터의 디지털 컴포넌트는 하나의 전자 문서(예를 들어, 다양한 상이한 디지털 컴포넌트의 집합)로 결합할 수 있으며, 상이한 소스로부터의 다양한 디지털 컴포넌트의 부분은 검색 결과(또는 컨텐츠의 다른 부분)로부터 추출된 정보를 이용하여 단일 디지털 컴포넌트로 결합될 수 있다.
도 1은 디지털 컴포넌트가 전자 문서로 표현하기 위해 배포되는 예시적인 환경(100)의 블록도이다. 예시적인 환경(100)은 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷 또는 이들의 조합과 같은 네트워크(102)를 포함한다. 네트워크 (102)는 전자 문서 서버(104), 클라이언트 디바이스(106), 중개 서버(108) 및 디지털 컴포넌트 배포 시스템(DCDS)(110)(컴포넌트 배포 시스템으로도 지칭됨)을 접속한다. 예시적인 환경(100)은 많은 상이한 전자 문서 서버(104), 클라이언트 디바이스(106) 및 중개 서버(108)를 포함할 수 있다.
클라이언트 디바이스(106)는 네트워크(102)를 통해 리소스들을 요청하고 수신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(106)는 개인용 컴퓨터, 모바일 통신 디바이스 및 네트워크(102)를 통해 데이터를 송신 및 수신할 수 있는 다른 디바이스를 포함한다. 클라이언트 디바이스(106)는 전형적으로 네트워크(102)를 통해 데이터의 송신 및 수신을 용이하게 하기 위해 웹 브라우저와 같은 사용자 애플리케이션을 포함하지만, 클라이언트 디바이스(106)에 의해 실행되는 기본(native) 애플리케이션도 네트워크(102)를 통한 데이터의 송신 및 수신을 용이하게 할 수 있다.
전자 문서는 클라이언트 디바이스(106)에서 한 세트의 컨텐츠를 나타내는 데이터이다. 전자 문서의 예는 웹 페이지, 워드 프로세싱 문서, PDF(Portable Document Format) 문서, 이미지, 비디오, 검색 결과 페이지 및 피드 소스를 포함한다. 모바일, 태블릿 또는 데스크톱 컴퓨팅 디바이스에 설치된 애플리케이션과 같은 기본 애플리케이션(예를 들어, '앱')도 전자 문서의 예이다. 전자 문서(105)는 전자 문서 서버(104)에 의해 클라이언트 디바이스(106)로 제공될 수 있다. 예를 들어, 전자 문서 서버(104)는 발행자 웹 사이트를 호스팅하는 서버를 포함할 수 있다. 이 예에서, 클라이언트 디바이스(106)는 주어진 발행자 웹 페이지와 같은 리소스에 대한 요청을 개시할 수 있고, 상기 주어진 발행자 웹 페이지를 호스팅하는 전자 문서 서버(104)는 클라이언트 디바이스(106)에서 상기 주어진 웹 페이지의 프리젠테이션을 개시하는 기계 실행 가능 명령들을 송신함으로써 상기 요청에 응답할 수 있다.
다른 예에서, 전자 문서 서버(104)는 클라이언트 디바이스(106)가 앱을 다운로드할 수 있는 앱 서버를 포함할 수 있다. 이 예에서, 클라이언트 디바이스 (106)는 앱을 설치하는데 필요한 파일들과 같은 리소스를 요청하고, 상기 파일들을 클라이언트 디바이스(106)에서 다운로드하고, 그런 다음 다운로드된 앱을 국부적으로 실행할 수 있다.
전자 문서(105)는 다양한 컨텐츠를 포함할 수 있다. 예를 들어, 전자 문서(105)는 전자 문서 자체 내에 있고 및/또는 시간에 따라 변하지 않는 정적 컨텐츠(예를 들어, 텍스트 또는 다른 특정 컨텐츠)를 포함할 수 있다. 전자 문서(105)는 또한 시간 경과에 따라 또는 요청마다 변경될 수 있는 동적 컨텐츠를 포함할 수 있다. 예를 들어, 주어진 전자 문서(105)의 발행자는 전자 문서(105)의 일부를 채우는데 사용되는 데이터 소스를 유지할 수 있다. 이 예에서, 주어진 전자 문서 (105)는 클라이언트 디바이스(106)에 의해 상기 주어진 전자 문서(105)가 처리(예를 들어, 렌더링 또는 실행)될 때 상기 클라이언트 디바이스(106)로 하여금 데이터 소스로부터 컨텐츠를 요청하게 하는 하나 이상의 태그 또는 스크립트를 포함할 수 있다. 클라이언트 디바이스(106)는 데이터 소스로부터 얻어진 컨텐츠를 주어진 전자 문서(105)에 통합하여 상기 데이터 소스로부터 획득된 컨텐트를 포함하는 복합 전자 문서를 생성한다.
일부 상황에서, 주어진 전자 문서(105)는 DCDS(110)를 참조하는 하나 이상의 디지털 컴포넌트 태그 또는 디지털 컴포넌트 스크립트를 포함할 수 있다. 이러한 상황에서, 디지털 컴포넌트 태그 또는 디지털 컴포넌트 스크립트는 주어진 전자 문서(105)가 클라이언트 디바이스(106)에 의해 처리될 때 클라이언트 디바이스(106)에 의해 실행된다. 디지털 컴포넌트 태그 또는 디지털 컴포넌트 스크립트의 실행은 네트워크(102)를 통해 DCDS(110)로 전송되는 하나 이상의 디지털 컴포넌트(112)("컴포넌트 요청"이라고 함)를 포함하는 리소스에 대한 요청을 생성하도록 클라이언트 디바이스(106)를 구성한다. 예를 들어, 디지털 컴포넌트 태그 또는 디지털 컴포넌트 스크립트는 클라이언트 디바이스(106)가 헤더 및 페이로드 데이터를 포함하는 패킷화된 데이터 요청을 생성할 수 있게 한다. 컴포넌트 요청(112)은 디지털 컴포넌트가 요청되는 서버의 이름(또는 네트워크 위치), 요청 디바이스(예를 들어, 클라이언트 디바이스(106))의 이름(또는 네트워크 위치) 및/또는 DCDS(110)가 상기 요청에 응답하여 제공된 하나 이상의 디지털 컴포넌트를 선택하는데 사용할 수 있는 정보를 포함할 수 있다. 컴포넌트 요청(112)은 클라이언트 디바이스(106)에 의해, 네트워크(102)(예를 들어, 전기 통신 네트워크)를 통해 DCDS (110)의 서버로 전송된다.
컴포넌트 요청(112)은 요청되는 전자 문서 및 디지털 컴포넌트가 제시될 수 있는 전자 문서의 위치의 특성과 같은 다른 이벤트 특징(feature)을 지정하는 이벤트 데이터를 포함할 수 있다. 예를 들어, 디지털 컴포넌트가 제시될 전자 문서(예컨대, 웹 페이지)에 대한 참조(예컨대, URL), 디지털 컴포넌트를 제시하는데 사용 가능한 전자 문서의 사용 가능한 위치, 그 사용 가능한 위치의 크기, 및/또는 그 위치에서의 프리젠테이션에 적격인 미디어 유형을 특정하는 이벤트 데이터는 DCDS(110)로 제공될 수 있다. 유사하게, 전자 문서에 의해 참조되는 전자 문서("문서 키워드") 또는 엔티티(예를 들어, 사람, 장소 또는 사물)와 관련된 키워드를 특정하는 이벤트 데이터는 또한 (예를 들어, 페이로드 데이터로서) 컴포넌트 요청(112)에 포함될 수 있고, 전자 문서로의 프리젠테이션에 적격인 디지털 컴포넌트의 식별을 용이하게 하기 위해 DCDS(110)에 제공된다. 이벤트 데이터는 또한 검색 결과 페이지, 및/또는 검색 결과 및/또는 텍스트, 가청 또는 검색 결과에 포함되는 다른 시각적 컨텐츠를 특정하는 데이터를 획득하기 위해 클라이언트 디바이스(106)로부터 제출된 검색 쿼리를 포함할 수 있다.
컴포넌트 요청(112)은 또한 클라이언트 디바이스의 사용자가 제공한 정보, 컴포넌트 요청이 제출된 상태 또는 영역을 나타내는 지리적 정보, 또는 상기 디지털 컴포넌트가 디스플레이될 환경에 대한 컨텍스트를 제공하는 다른 정보(예를 들어, 컴포넌트 요청의 하루 중 시간, 컴포넌트 요청의 요일, 모바일 디바이스 또는 태블릿 디바이스와 같은, 디지털 컴포넌트가 디스플레이될 디바이스의 유형)와 같은 다른 정보와 관련된 이벤트 데이터를 포함할 수 있다. 컴포넌트 요청(112)은 예를 들어 패킷화된 네트워크를 통해 전송될 수 있고, 컴포넌트 요청(112) 자체는 헤더 및 페이로드 데이터를 갖는 패킷화된 데이터로서 포맷될 수 있다. 상기 헤더는 패킷의 목적지를 지정할 수 있고 상기 페이로드 데이터는 위에서 논의된 임의의 정보를 포함할 수 있다.
DCDS(110)는 컴포넌트 요청(112)의 수신에 응답하여 및/또는 컴포넌트 요청(112)에 포함된 정보의 사용에 응답하여 상기 주어진 전자 문서로 제시될 디지털 컴포넌트를 선택한다. 일부 구현예에서, 디지털 컴포넌트는 디지털 컴포넌트의 지연된 선택에 의해 야기될 수 있는 에러를 회피하기 위해, (본 명세서에서 기술된 기술을 사용하여) 1초 이내에 선택된다. 예를 들어, 컴포넌트 요청(112)에 응답하여 디지털 컴포넌트를 제공할 때 지연은 클라이언트 디바이스(106)에서 페이지 로드 에러(page load errors)를 야기하거나, 전자 문서의 다른 부분이 클라이언트 디바이스에 제시된 후에도 전자 문서의 일부가 비점유 상태로 남아 있게 한다. 또한, 디지털 컴포넌트를 클라이언트 디바이스(106)로 제공하는 지연이 증가함에 따라, 디지털 컴포넌트가 클라이언트 디바이스(106)로 전달될 때 전자 문서가 클라이언트 디바이스(106)에서 더 이상 제공되지 않을 가능성이 더 높아지게 되어, 전자 문서에 대한 사용자의 경험에 부정적인 영향을 미친다. 더욱이, 디지털 컴포넌트를 제공할 때의 지연은, 예를 들어 디지털 컴포넌트가 제공될 때 전자 문서(105)가 클라이언트 디바이스(106)에서 더 이상 제공되지 않는 경우 디지털 컴포넌트의 전달 실패를 초래할 수 있다.
일부 구현예에서, DCDS(110)는 예를 들어, 재지향 감소 장치(111)(예를 들어 컴퓨팅 하드웨어 및 코드를 포함하는 서버) 및/또는 상호 연결되고 그리고 요청(112)에 응답하여 디지털 컴포넌트를 식별 및 배포하는 다수의 컴퓨팅 디바이스들의 세트를 포함하는 분산 컴퓨팅 시스템에서 구현된다. 상기 다수의 컴퓨팅 디바이스들의 세트는 수 백만개의 이용 가능한 디지털 컴포넌트의 코퍼스(corpus)로부터 전자 문서로 제시될 자격이 있는 디지털 컴포넌트들의 세트를 식별하기 위해 함께 동작한다. 수백만 개의 사용 가능한 디지털 컴포넌트는 예를 들어 디지털 컴포넌트 데이터베이스(116)에서 인덱싱될 수 있다. 각각의 디지털 컴포넌트 인덱스 항목(entry)은 대응하는 디지털 컴포넌트를 참조할 수 있고 및/또는 대응하는 디지털 컴포넌트의 배포/전송에 기여하는(예를 들어, 조건화 또는 제한하는) 배포 파라미터를 포함할 수 있다. 예를 들어, 배포 파라미터는 컴포넌트 요청이 디지털 컴포넌트의 배포 파라미터 중 하나와 매칭하는(예를 들어, 정확하게 또는 사전 정의된 유사성 레벨과 매칭하는) 적어도 하나의 기준을 포함하도록 요구함으로써 디지털 컴포넌트의 전송에 기여할 수 있다.
DCDS(110)의 재지향 감소 장치(RRA)(111)는 중개 서버(108)와 같은 다양한 중개 서버와 통신하는 추적 서버일 수 있다. RRA(111)는 클라이언트 디바이스(106)에 의해 요청되고 전자 문서 서버(105)와 같은 다양한 서버 상에 호스팅되는 리소스로 클라이언트 디바이스(106)를 지향하게 할 수 있다. RRA(111)는 사용자가 입력을 제공할 수 있는 프론트-엔드 인터페이스를 포함한다. 예를 들어, 프런트 엔드 인터페이스에는 버튼 및 텍스트 입력 필드와 같은 사용자 인터페이스 요소가 포함된 사용자 인터페이스가 포함될 수 있다. 프론트-엔드 인터페이스는 네트워크(102)와 같은 하나 이상의 통신 네트워크를 통한 통신을 가능하게 하는 통신 인터페이스를 포함한다. RRA(111)는 통신 인터페이스를 통해 중개 서버(108)와 통신할 수 있다. 예를 들어, RRA(111)는 클라이언트 디바이스(106)가 디지털 컴포넌트를 요청할 때 클라이언트 디바이스(106)에 대한 상호 작용 추적 데이터와 같은 데이터를 제공하기 위해 상기 통신 인터페이스를 사용하여 프록시 서버를 통해 중개 서버(108)와 통신할 수 있다.
적격의 디지털 컴포넌트의 식별은 다수의 작업들로 분리되어 다수의 컴퓨팅 디바이스들의 세트 내의 컴퓨팅 디바이스들 사이에 할당될 수 있다. 예를 들어, 다수의 컴퓨팅 디바이스들의 세트 내의 상이한 컴퓨팅 디바이스는 디지털 컴포넌트 데이터베이스(116)의 상이한 부분을 각각 분석하여, 컴포넌트 요청(112)에 포함된 정보와 매칭하는 배포 파라미터를 갖는 다양한 디지털 컴포넌트를 식별할 수 있다. 다수의 컴퓨팅 디바이스들의 세트 내의 상이한 컴퓨팅 디바이스들은 디지털 컴포넌트 데이터베이스(116)에 저장된 특정 디지털 컴포넌트와의 사용자 상호 작용 데이터를 포함하는 보고 데이터(118)를 사용할 수 있다. 일부 구현예에서, 다수의 컴퓨팅 디바이스들의 세트 내의 각각의 주어진 컴퓨팅 디바이스는 상이한 데이터 치수(또는 치수 세트)을 분석하고 분석 결과를 DCDS(110)로 다시 전달(예컨대, 전송)할 수 있다. 예를 들어, 세트(114)의 각각의 컴퓨팅 디바이스에 의해 제공된 결과(118a-118c)는 컴포넌트 요청 및/또는 특정 배포 파라미터를 갖는 디지털 컴포넌트의 서브 세트에 응답하여 배포에 적합한 디지털 컴포넌트의 서브 세트를 식별할 수 있다. 디지털 컴포넌트의 서브 세트의 식별은, 예를 들어, 이벤트 데이터를 배포 파라미터와 비교하여, 이벤트 데이터의 적어도 일부 특징과 매칭하는 배포 파라미터를 갖는 디지털 컴포넌트의 서브 세트를 식별하는 것을 포함할 수 있다.
DCDS(110)는 다수의 컴퓨팅 디바이스들의 세트로부터 수신된 결과를 집계하고, 상기 집계된 결과와 관련된 정보를 사용하여 상기 요청(112)에 응답하여 제공될 하나 이상의 디지털 컴포넌트들을 선택한다. 예를 들어, DCDS(110)는 후술되는 바와 같이, 하나 이상의 컴포넌트 평가 프로세스의 결과에 기초하여 한 세트의 위닝(winning) 디지털 컴포넌트(하나 이상의 디지털 컴포넌트)를 선택할 수 있다. 차례로, DCDS(110)는 네트워크(102)를 통해, 클라이언트 디바이스(106)가 상기 주어진 전자 문서로 위닝 디지털 컴포넌트들의 세트를 통합할 수 있게 하는 응답 (reply) 데이터(120)(예를 들어, 응답을 나타내는 디지털 데이터)를 생성하여, 위닝 디지털 컴포넌트들의 세트 및 전자 문서의 컨텐츠가 클라이언트 디바이스(106)의 디스플레이에 함께 제시되도록 한다.
일부 구현예에서, 클라이언트 디바이스(106)는 클라이언트 디바이스(106)가 하나 이상의 디지털 컴포넌트 서버로부터 위닝 디지털 컴포넌트들의 세트를 획득하도록 구성하고 이를 가능하게 하는 응답 데이터(120)에 포함된 명령들을 실행한다. 예를 들어, 응답 데이터(120)내의 명령들은 클라이언트 디바이스(106)로 하여금 서버 요청(SR)(121)을 중개 서버(108)로 전송하여 중개 서버(108)로부터 주어진 위닝 디지털 컴포넌트를 획득하게 하는 네트워크 위치(예를 들어, URL) 및 스크립트를 포함할 수 있다. 상기 요청에 응답하여, 중개 서버(108)는 (예를 들어, 다수의 디지털 컴포넌트를 저장하는 데이터베이스 내의) 서버 요청(121)에 지정된 상기 주어진 위닝 디지털 컴포넌트를 식별하여, 클라이언트 디바이스(106)에 있는 전자 문서 내의 주어진 위닝 디지털 컴포넌트를 나타내는 데이터(DC 데이터)(122)를 클라이언트 디바이스(106)로 전송한다.
일부 구현예에서, 클라이언트 디바이스(106)가 주어진 위닝 디지털 컴포넌트와 상호 작용할 때, 클라이언트 디바이스(106)는 DCDS(110)로 리소스에 대한 요청을 전송한다. 예를 들어, 클라이언트 디바이스(106)는 모바일 애플리케이션을 다운로드하기 위한 링크인 상기 주어진 위닝 디지털 컴포넌트를 선택할 수 있다. 상기 링크를 선택하면, 클라이언트 디바이스(106)는 모바일 애플리케이션을 다운로드하기 위해 요구되는 파일에 액세스하라는 요청을 DCDS(110)로 전송한다. DCDS(110)는 상기 요청 내의 데이터에 기초하여, 클라이언트 디바이스(106)를 지향할 곳을 결정한다.
일부 예에서, DCDS(110)는 클라이언트 디바이스(106)를 하나 이상의 중개 서버로 지향하여, 클라이언트 디바이스(106)에서 상기 주어진 위닝 디지털 컴포넌트와의 상호 작용을 나타내는 상호 작용 데이터를 중개 서버들로 제공할 수 있다. 이들 중개 서버는 중개 서버(108)를 포함할 수 있다. 이하 더 상세하게 설명되는 다른 예에서, DCDS(110)는 클라이언트 디바이스(106)를 중개 서버들로 재지향(재지향)하지 않고, 대신 상기 요청된 리소스를 호스팅하는 요청된 목적 서버로 클라이언트 디바이스(106)를 직접 지향한다.
전자 문서의 검색을 용이하게 하기 위해, 환경(100)은 (예를 들어, 전자 문서의 크롤링된 컨텐츠에 기초하여 인덱싱된) 전자 문서를 크롤링 및 인덱싱함으로써 전자 문서를 식별하는 검색 시스템(150)을 포함할 수 있다. 전자 문서에 관한 데이터는 그 데이터가 연관되어 있는 전자 문서에 기초하여 인덱싱될 수 있다. 전자 문서의 인덱싱된 및 선택적으로 캐싱된 사본은 검색 인덱스(152)(예를 들어, 하드웨어 메모리 디바이스(들))에 저장된다. 전자 문서와 관련된 데이터는 전자 문서에 포함된 컨텐츠 및/또는 전자 문서의 메타 데이터를 나타내는 데이터이다.
클라이언트 디바이스(106)는 네트워크(102)를 통해 검색 시스템(150)에 검색 쿼리를 제출할 수 있다. 이에 응답하여, 검색 시스템(150)은 검색 인덱스(152)에 액세스하여 검색 쿼리에 관련되는 전자 문서를 식별한다. 검색 시스템(150)은 검색 결과의 형태로 전자 문서를 식별하여, 검색 결과를 검색 결과 페이지의 클라이언트 디바이스(106)로 반환한다.
검색 결과는 특정 검색 쿼리에 응답하는(예를 들어, 관련성이 있는) 전자 문서를 식별하는 검색 시스템(150)에 의해 생성된 데이터이고, 클라이언트 디바이스로 하여금 상기 검색 결과와의 사용자 상호 작용에 응답하여 지정된 네트워크 위치(예컨대, URL)로부터 데이터를 요청하게 하는 활성 링크(예를 들어, 하이퍼텍스트 링크)를 포함한다. 예시적인 검색 결과는 웹 페이지 제목, 웹 페이지로부터 추출된 텍스트의 스니펫 또는 이미지의 일부, 및 웹 페이지의 URL을 포함할 수 있다. 다른 예시적인 검색 결과는 다운로드 가능 애플리케이션의 제목, 다운로드 가능 애플리케이션을 기술하는 텍스트의 스니펫, 다운로드 가능 애플리케이션의 사용자 인터페이스를 기술하는 이미지, 및/또는 애플리케이션이 클라이언트 디바이스(106)로 다운로드될 수 있는 위치에 대한 URL을 포함할 수 있다.
일부 상황에서, 검색 시스템(150)은 제출된 검색 쿼리와 관련된 다운로드 가능 애플리케이션에 관한 정보를 제시하기 위하여 애플리케이션들이 클라이언트 디바이스(106)에서의 설치를 위해 다운로드될 수 있는 애플리케이션 스토어(또는 온라인 포털)의 일부일 수 있거나 그와 상호 작용할 수 있다. 다른 전자 문서와 마찬가지로, 검색 결과 페이지에는 디지털 컴포넌트(예를 들어, 비디오 클립, 오디오 클립, 이미지, 또는 광고로서 포맷팅될 수 있는 다른 디지털 컴포넌트)가 제시될 수 있는 하나 이상의 디지털 컴포넌트 슬롯을 포함할 수 있다.
일부 구현예에서, 중개 서버(108)와 같은 다수의 서버는 사용자가 전자 문서(105)로 지향하기 전에 특정 디지털 컴포넌트와의 사용자 상호 작용을 추적한다. DCDS(110)는 클라이언트 디바이스(106)를 중개 서버(108)와 같은 다른 서버로 재지향하지 않고, 직접 클라이언트 디바이스(106)에 전자 문서(105)에 대한 액세스를 제공함으로써 클라이언트 디바이스가 기존 방법보다 적은 재지향로 전자 문서(105)에 액세스할 수 있게 한다. 클라이언트 디바이스(106)를 중개 서버(108)로 재지향하는 대신에, DCDS(110)는 사용자의 요청(112)을 수신하여, 전자 문서 서버(104)에 의해 제공되는 전자 문서(105)에 직접 참조로 응답(120)을 전송한다. 중개 서버(108)가 중개 서버(108)로의 클라이언트 디바이스의 재지향을 통해 특정 디지털 컴포넌트와의 사용자 상호 작용을 추적하면, DCDS(110)(또는 DCDS(110)의 다른 컴포넌트)의 재지향 감소 디바이스(111)는 클라이언트 디바이스(106)를 상기 요청된 리소스를 호스팅하는 중개 서버로 직접 재지향하고, 그렇지 않으면 보고 데이터를 중개 서버(108)에 제공하기 위해 클라이언트 디바이스(106)가 뒤따랐을 상기 재지향을 따를 것이다. 보고 데이터는 상술한 바와 같이, 다른 정보와 관련된 이벤트 데이터 이외에 특정 디지털 컴포넌트와의 사용자 상호 작용 데이터를 포함할 수 있다.
도 2a는 클라이언트 디바이스가 재지향 체인을 통해 요청된 리소스로 지향하는 방법을 보여주는 예시적인 데이터 흐름(200)이다. 데이터 흐름(200)의 동작들은 추적 서버(210), 중개 서버 A(220), 중개 서버 B(230) 및 목적 서버(240)를 포함하여, 다수의 서버에 접속하는 클라이언트 디바이스(106)에 의해 수행된다. 일부 구현예에서, 흐름(200)의 단계들(stages)는 환경(100)과 같은 네트워크 환경 내에서 수행된다.
일부 실시예에서, 클라이언트 디바이스(106)는 핸드폰, 스마트폰 또는 태블릿과 같은 모바일 디바이스이며 무선 네트워크를 통해 통신한다. 서버(210, 220, 230 및 240)는 클라이언트 디바이스(106)가 통신하는 무선 네트워크와는 별도의 유선 네트워크를 통해 통신할 수 있다. 예를 들어, 클라이언트 디바이스(106)는 무선 셀룰러 네트워크를 통해 통신하는 스마트폰일 수 있고, 서버(210, 220, 230 및 240)는 유선 네트워크를 통해 통신하는 원격 서버일 수 있다.
추적 서버(210)는 클라이언트 디바이스(106)로부터 추적 데이터를 수신하여, 추적 데이터에 기초하여 클라이언트 디바이스(106)에 대한 재지향 목적지를 결정한다. 예를 들어, 추적 서버(210)는 클라이언트 디바이스(106)가 디지털 컴포넌트 서버를 통해 디지털 컴포넌트 제공자에 의해 제공된 디지털 컴포넌트와 상호 작용했다는 것을 결정할 수 있다. 디지털 컴포넌트 제공자는 자신의 분석을 위해 디지털 컴포넌트와의 클라이언트 디바이스(106)의 상호 작용으로부터 상호 작용 추적 데이터를 요청할 수 있고, 클라이언트 디바이스(106)가 중개 서버들(예를 들어, 그들의 서버 또는 디지털 컴포넌트 제공자가 사용하는 제3자 서버)로 재지향되도록 요청할 수 있다.
서버 A(220)는 클라이언트 디바이스와 특정 전자 문서 간의 상호 작용을 추적한다. 서버 A(220)는 클라이언트 디바이스(106)로부터 상호 작용 데이터를 수신하여, 상호 작용 데이터를 사용하여 디지털 컴포넌트 제공자와 같은 리소스 제공자에게 분석을 제공한다. 일부 구현예에서, 서버 A(220)는 추적 서버(210) 및 목적 서버(240)를 유지하는 하나 이상의 당사자와 분리된 당사자에 의해 유지되는 제3자 서버이다. 예를 들어, 서버 A(220)는 분석 회사에 의해 유지될 수 있고, 추적 서버(210)는 검색 엔진 회사에 의해 유지될 수 있으며, 목적 서버(240)는 디지털 컴포넌트 제공자에 의해 유지될 수 있다. 서버 A(220)를 사용하는 디지털 컴포넌트 제공자는 디지털 컴포넌트 제공자에 의해 제공된 디지털 컴포넌트와 상호 작용하는 클라이언트 디바이스(106)가, 디지털 컴포넌트와의 상호 작용이 서버 A에 의해 로깅되도록 상기 요청된 리소스를 제공하는 목적 서버(240)로 지향되기 전에 서버 A (220)로 지향될 것을 요청할 수 있다.
서버 B(230)는 서버 A(220)와 유사한 제3자 서버일 수 있다. 예를 들어, 서버 B(230)는 디지털 컴포넌트 제공자에 의해 사용되는 제3자 분석 서버일 수도 있다. 일부 예에서, 디지털 컴포넌트 제공자는 추적 서버(210)에 의해 제공되는 분석과는 별도의 분석을 위해 서버 A(220) 및 서버 B(230) 중 하나 이상을 사용할 수 있다. 예를 들어, 특정 디지털 컴포넌트 제공자는 분석을 위해 서버 A(220) 및 서버 B(230) 모두를 사용할 수 있고, 클라이언트 디바이스(106)가 서버 A(220) 및 서버 B(230) 모두로 재지향되어, 상호 작용 추적 데이터를 상기 특정 디지털 컴포넌트 제공자에 의해 제공된 특정 디지털 컴포넌트로 제공하도록 요청할 수 있다. 서버 B(230)는 서버 A(220)를 유지하는 당사자와 다른 당사자에 의해 유지될 수 있다. 예를 들어, 서버 B(230)는 서버 A(220)와 다른 제3자 서버일 수 있고, 서버 B2(230)는 디지털 컴포넌트 제공자에 의해 사용될 수 있다.
목적 서버(240)는 클라이언트 디바이스(106)가 (예를 들어, 재지향을 통해) 목적 서버(240)로부터 리소스을 요청할 때, 리소스들을 호스팅하여 클라이언트 디바이스(106)에 의해 요청된 리소스을 제공한다. 예를 들어, 클라이언트 디바이스(106)가 애플리케이션의 설치에 필요한 파일을 요구하면, 목적 서버(240)는 클라이언트 디바이스(106)가 (예를 들어, 서버 B(230)에 의해 발행된 재지향 명령에 의해) 목적 서버(240)로 지향될 때 상기 요청된 파일을 제공할 수 있다. 다른 예에서, 클라이언트 디바이스(106)가 특정 웹 사이트로의 액세스를 위한 보안 토큰을 요청하면, 목적 서버(240)는 클라이언트 디바이스(106)가 목적 서버(240)로 지향될 때 보안 토큰을 제공할 수 있다.
흐름(200)은 단계(1)에서 시작하며, 여기서 추적 서버(210)는 클라이언트 디바이스(106)로부터 URL 요청(202)을 수신한다. URL 요청(202)은 클라이언트 디바이스가 디지털 컴포넌트와 상호 작용할 때 클라이언트 디바이스(106)에 의해 추적 서버(210)로 송신된다. 예를 들어, 클라이언트 디바이스(106)의 사용자가 새로운 웹 브라우저를 다운로드하기 위한 링크를 클릭하면, 상기 링크는 클라이언트 디바이스(106)가 URL 요청(202)을 추적 서버(210)로 전송하게 한다. URL 요청(202)은 클라이언트 디바이스(106)로부터의 상호 작용 추적 데이터를 포함한다. 예를 들어, URL 요청(202)은 상호 작용의 표시, 클라이언트 디바이스(106)가 상호 작용하는 디지털 컴포넌트 및 클라이언트 디바이스(106)를 고유하게 식별하는 식별자와 같은 추적 데이터를 포함할 수 있다. 일부 구현예에서, URL 요청(202)은 디지털 컴포넌트 제공자의 표시 및 상기 요청된 리소스을 호스팅하는 목적 서버(240)의 위치를 포함한다.
URL 요청(202)은 추적 서버(210)가 목적 서버(240) 및 상기 요청된 리소스로 지향되기 전에 클라이언트 디바이스(106)를 재지향할 하나 이상의 중개 서버를 식별할 수 있다. 대안적으로, 추적 서버(210)는 접속될 하나 이상의 중개 서버를 식별하는 정보를 저장할 수 있다. 예를 들어, 디지털 컴포넌트 제공자는 추적 서버(210)와 상이한 제3자 서버를 사용하여, 디지털 컴포넌트 제공자에 의해 제공된 디지털 컴포넌트와의 상호 작용 데이터에 대한 독립적인 분석을 수행할 수 있다. 이 특정 예에서, 디지털 컴포넌트 제공자는 클라이언트 디바이스(106)가 추적 서버(210)에 접속한 후 목적 서버(240)로 지향되기 전에 서버 A(220)로 재지향되도록 요청했다.
플로우(200)는 추적 서버(210)가 클라이언트 디바이스(106)에 재지향 데이터(212)를 전송하는 단계(2)로 계속된다. 추적 서버(210)는 URL 요청(202)내의(또는 데이터 저장소로부터) 재지향 정보를 검출하여, 재지향 데이터(212)를 클라이언트 디바이스(106)로 제공함으로써 클라이언트 디바이스(106)가 추적 서버(210)와 목적 서버(240) 사이의 중개 서버로 재지향되도록 한다. 일부 예에서, 재지향 데이터(212)는 응답(120)의 일 예이다. 재지향 데이터(212)는 클라이언트 디바이스(106)가 지향되는 특정 서버의 표시를 포함하며, 재지향(301) 또는 재지향(302) 명령을 포함할 수 있다. 이러한 특정 예에서, 재지향 데이터(212)는 클라이언트 디바이스(106)를 서버 A(220)로 지향한다. 각 중개 서버는 디바이스가 중개 서버에 접속할 때 디바이스가 재지향될 다음 서버를 식별하는 정보를 저장한다.
흐름(200)은 클라이언트 디바이스(106)가 보고 데이터(214)를 서버 A(220)로 전송하는 단계(3)로 계속된다. 보고 데이터(214)는 특정 디지털 컴포넌트와의 클라이언트 디바이스 상호 작용을 추적하기 위해 서버 A(220)에 의해 사용되는 상호 작용 추적 데이터를 포함한다. 일부 구현예에서, 상호 작용 추적 데이터는 상호 작용이 추적되는 코드의 일부를 포함한다. 클라이언트 디바이스(106)를 고유하게 식별하는 식별자, 클라이언트 디바이스(106)가 상호 작용하는 디지털 컴포넌트를 고유하게 식별하는 식별자, 서버 식별자 및/또는 클라이언트 디바이스(106)의 위치 정보와 같은 다른 데이터를 포함할 수 있다.
흐름(200)은 서버(A)(220)가 클라이언트 디바이스(106)로 재지향 데이터(222)를 전송하는 단계(4)로 계속된다. 재지향 데이터(222)는 클라이언트 디바이스(106)가 목적 서버(240)로 지향되기 전에 지향되는 다음 중개 서버를 나타낸다. 예를 들어, 추적 서버(210)는 클라이언트 디바이스(106)가 지향되는 제1 중개 서버가 서버 A(220)인지를 식별하여, 클라이언트 디바이스(106)로 재지향 데이터(212)를 전송할 수 있다. 서버 A(220)는 다음 중개 서버를 나타내는 데이터뿐만 아니라 다음 중개 서버에 의해 요청된 데이터에 액세스한다. 예를 들어, 서버 A(220)는 서버 B(230)의 어드레스 및 서버 B(230)에 의해 요청된 특정 상호 작용 추적 데이터를 나타내는 데이터에 액세스할 수 있다. 서버 A(220)는 보고 데이터(214) 또는 URL 요청으로부터 서버(230B)에 의해 요청된 특정 상호 작용 추적 데이터를 추출하여, 특정 상호 작용 추적 데이터 및 서버 B(230)의 어드레스를 사용하여 재지향 데이터(222)를 생성한다. 이어서, 서버 A(220)는 재지향 데이터(222)를 클라이언트 디바이스(106)로 전송한다. 일부 예에서, 서버 A(220)는 재지향 데이터(212)를 수정하여, 클라이언트 디바이스(106)가 재지향 데이터(222)를 생성하기 위해 제1 중개 서버에 도달했음을 나타낼 수 있다.
흐름(200)은 클라이언트 디바이스(106)가 보고 데이터(224)를 서버 B(230)로 전송하는 단계(5)로 계속된다. 클라이언트 디바이스(106)는 재지향 데이터(222)에 의해 서버 B(220)로 지향되어, 보고 데이터(224)를 서버 B(230)로 제공하도록 지시된다. 보고 데이터(224)는 전술한 바와 같이 상호 작용 추적 데이터와 같은 서버 B(230)에 의해 요청된 데이터를 포함한다. 일부 예에서, 서버 A(220)는 보고 데이터(214)를 수정함에 의해 보고 데이터(224)를 생성한다. 예를 들어, 서버 A(220)는 데이터가 서버 A(220)에 의해 수신되었음을 보고 데이터(224)에 나타낼 수 있다.
흐름(200)은 서버(B)(230)가 클라이언트 디바이스(106)로 재지향 데이터(232)를 전송하는 단계(6)로 계속된다. 서버 B(230)는 클라이언트 디바이스(106)가 지향되어야 하는 모든 중개 서버에 도달했는지를 결정한다. 일부 예에서, 서버 B(230)는 보고 데이터(224)에 액세스하여 클라이언트 디바이스가 모든 중개 서버에 도달했는지를 결정한다. 그런 다음 서버 B(230)는 재지향 데이터(232)를 클라이언트 디바이스(106)로 제공하여 목적 서버(24)로 클라이언트 디바이스(106)를 지향한다.
흐름(200)은 클라이언트 디바이스(106)가 목적 서버(240)로 지향되는 단계(7)로 계속된다. 재지향 데이터(232)는 목적 서버(240)에 대한 위치 데이터를 포함한다. 클라이언트 디바이스(106)는 재지향 데이터(232)를 수신하여, 상기 요청된 리소스에 액세스하기 위해 목적 서버(240)로 지향된다. 클라이언트 디바이스(106)는 목적 서버(240)로부터 상기 요청된 리소스를 다운로드할 수 있다.
일부 구현예에서, 중개 서버는 더 많거나 적을 수 있다. 클라이언트 디바이스(106)가 리소스을 요청할 때 및 클라이언트 디바이스(106)가 리소스에 액세스하기 위해 목적 서버(240)로 지향될 때 사이에 적어도 하나의 중개 서버가 존재한다.
클라이언트 디바이스가 데이터 흐름(200)에 뒤 따르는 클라이언트 디바이스에 의해 요청된 리소스로 지향될 때, 의도하지 않은 프로세스들 및 수반하는 지연 시간 또는 오류가 발생할 수 있다. 예를 들어, 리소스의 액세스에 불필요한 별도의 웹 브라우저 창 또는 애플리케이션이 열릴 수 있다. 일부 예에서, 중개 서버는 클라이언트 디바이스를 잘못된 리소스 또는 위치로 재지향할 수 있다. 예를 들어, 제3자 중개 서버는 앱 스토어를 여는 대신에 상기 클라이언트 디바이스에 의해 설치가 요청된 특정 모바일 앱에 대한 방문(landing) 페이지로 웹 브라우저를 열도록 클라이언트 디바이스를 강제하여, 앱의 설치에 필요한 파일들의 다운로드를 시작할 수 있다.
이러한 부가적인 프로세스들은 리소스가 요청될 때 및 클라이언트 디바이스가 리소스로 지향될 때 사이의 지연 시간(latency)을 증가시킨다. 예를 들어, 클라이언트 디바이스가 따르는 각각의 재지향에 대해 지연 시간((latency)의 증가가 발생할 수 있고, 클라이언트 디바이스가 지향되는 중개 서버의 수가 증가함에 따라, 클라이언트 디바이스의 사용자에 대한 지연 시간이 증가한다. 게다가, 각 재지향에서 연결이 차단될 잠재성이 있다. 이러한 잠재성은 신뢰할 수 없는 모바일/셀룰러 네트워크와 같은 무선 네트워크에서 특히 두드러진다.
도 2b는 데이터 흐름(200)에 의해 요구되는 것보다 적은 재지향로 클라이언트 디바이스를 요청된 리소스로 지향하기 위한 예시적인 데이터 흐름(250)이다. 흐름(250)은 클라이언트 디바이스에 의해 요청된 리소스가 지향되기 전에 클라이언트 디바이스가 따르는 재지향의 수를 감소시키며, 클라이언트 디바이스가 따르는 재지향 체인의 차단을 위해 상기 지연 시간 및 잠재성을 감소시킨다. 흐름(250)은 추적 서버(260), 서버 A(270), 서버 B(280) 및 목적 서버(290)를 포함한다. 상기 추적 서버(260)는 도 1과 관련하여 전술한 바와 같이 재지향 감소 장치(111)의 일 예이며, 클라이언트 디바이스가 따르는 재지향의 수를 추적 서버(260)가 줄일 수 있게 하는 하드웨어 및/또는 코드를 포함한다. 일부 예에서, 추적 서버(260)는 재지향 감소 장치(111)를 포함하고 클라이언트 디바이스가 재지향 감소 장치(111)를 사용하여 따르게 되는 재지향의 수를 감소시킬 수 있는 추적 서버이다.
일부 예에서, 클라이언트 디바이스(106)는 핸드폰, 스마트폰 또는 태블릿과 같은 모바일 디바이스이고 무선 네트워크를 통해 통신한다. 일부 예에서, 서버(260, 270, 280 및 290)는 클라이언트 디바이스(106)가 통신하는 무선 네트워크와는 별도의 유선 네트워크를 통해 통신할 수 있다. 예를 들어, 클라이언트 디바이스(106)는 무선 셀룰러 네트워크를 통해 통신하는 스마트폰일 수 있는 반면, 서버(260, 270, 280 및 290)는 유선 네트워크를 통해 통신하는 원격 서버이다.
플로우(250)는 단계(1)에서 시작하며, 여기서 추적 서버(260)는 URL 요청(252) 및 상호 작용 데이터(254)를 수신한다. URL 요청(252)은 URL 요청(202)과 유사할 수 있다. 추적 서버(260)는 URL 요청(252) 및 상호 작용 데이터(254)를 수신하여, 구조화된 응답을 생성하여 클라이언트 디바이스(106)로 전송한다.
URL 요청(252)은 추적 서버(260)가 클라이언트 디바이스(106)로 전송된 응답을 생성하기 위해 사용하는 목적 서버(290)의 위치를 나타내는 데이터를 포함한다. 예를 들어, URL 요청(252)은 헤더 또는 URL 요청(252)의 특정 특성을 나타내는 문자열을 포함할 수 있다. 상기 헤더는 목적 서버(290)로 지향되기 전에, 상호 작용 데이터(254)와 같은 상호 작용 데이터를 제공하기 위해 클라이언트 디바이스(106)가 지향되어야 하는 중개 서버가 있는지를 나타내는 특정 비트를 포함할 수 있다. 추적 서버(260)는 특정 비트의 값에 기초하여 중개 서버가 있는지를 결정하고, 목적 서버(290)의 위치를 식별하도록 진행할 수 있다. 일부 예에서, 추적 서버(260)는 중개 서버가 존재하는지 여부를 결정하기 위해 리소스의 소스들에 대한 리소스의 증명서(credentials)를 체크한다. 그런 다음 추적 서버(260)는 클라이언트 디바이스(106)를 중개 서버로 지향하는 대신에 목적 서버(290)의 위치로 클라이언트 디바이스(106)에 대한 응답을 생성한다.
추적 서버(260)는 URL 요청(252)이 프록시가 사용되어야 한다고 나타내면 프록시 서버로 콜아웃(callout)할 수 있다. 예를 들어, 상기 적절한 비트가 URL 요청(252)의 헤더에 설정되어 있으면, 추적 서버(260)는 프록시 서버에 콜아웃할 수 있다. 일부 구현예에서, 프록시 서버는 추적 서버(260)의 호스트 환경 외부의 네트워크들 및 서버들을 핑(ping)하는 포스트백(postback) 프록시 서버일 수 있다. 흐름(250)에서, 일단 추적 서버(260)가 URL 요청(252)에 기초하여, 클라이언트 디바이스(106)가 지향될 중개 서버들이 있다고 결정하면, 추적 서버(260)는 클라이언트 디바이스(106)가 중개 서버들 대신에 목적 서버(290)로 지향되어야 한다고 결정하고, 추적 서버(260)는 상기 요청된 상호 작용 데이터를 URL 요청(252)에서 식별된 중개 서버들로 제공할 것이다.
흐름(250)은 단계(2)로 계속된다. 이 특정 예에서, 여러 단계가 단계(2A), 단계(2B), 단계(2C) 및 단계(2D)를 포함하는 단계(2) 내에서 발생한다. 단계(2A) 및(2B),(2C) 및 (2D)는 동시에 발생할 수 있다. 예를 들어, 단계(2A)는 단계(2B), (2C) 및 (2D)와 병렬로 발생할 수 있다. 상기 단계(2B),(2C) 및 (2D)는 순차적으로 발생한다.
단계(2A) 동안, 추적 서버(260)는 재지향 데이터(262)를 클라이언트 디바이스(106)로 제공한다. 일단 추적 서버(260)가 URL 요청(252)을 수신하여 클라이언트 디바이스(106)가 지향되어야 하는 중개 서버들이 있다고 결정하면, 추적 서버(260)는 목적 서버(290)의 위치를 나타내는 재지향 데이터(262)를 포함하는 구조화된 응답을 생성한다. 상기 재지향 데이터(262)는 요청되는 리소스에 링크된 웹 페이지의 어드레스를 식별하는 HTTP 리퍼러(referer) 또는 URL 요청(262)의 헤더의 필드를 포함할 수 있다. 예를 들어, 리퍼러는 클라이언트 디바이스(106)에 의해 요청되는 특정 모바일 애플리케이션에 링크되는 블로그 포스트 또는 클라이언트 디바이스(106)의 원래 위치를 나타낼 수 있다. 이러한 예에서, 모바일 애플리케이션은 목적 서버(260)에 의해 호스팅된다.
재지향 데이터(262)는 클라이언트 디바이스(106)에 의해 요청된 리소스를 호스팅하는 목적 서버(290)로 클라이언트 디바이스(106)를 지향하는 데이터를 포함한다. 예를 들어, 재지향 데이터(262)는 목적 서버(290)의 위치 및 클라이언트 디바이스(106)가 목적 서버(290)로부터 상기 요청된 리소스에 액세스하도록 지시하는 코드를 포함할 수 있다.
단계(2A)가 수행되는 동안, 추적 서버(260)는 클라이언트 디바이스(106)가 상호 작용 데이터(254)와 같은 상호 작용 데이터를 제공해야 하는 중개 서버들을 식별한다.
일부 구현예에서, 중개 서버는 추적 서버(290) 및/또는 목적 서버(290)가 호스팅되는 환경에 외부적으로 호스팅되는 제3자 서버이다. 제3자 중개 서버를 핑하기 위해, 추적 서버(260)는 프록시 서버가 중개 서버를 핑하도록 요청하기 위해 프록시 서버에 접속할 수 있다. 서버를 핑하는 것은 서버에 접속하는 것뿐만 아니라 서버로 다양한 정보를 제공하는 것을 포함할 수 있다. 예를 들어, 서버의 핑은 수신된 URL 요청 및/또는 URL 요청과 관련된 다른 정보(예를 들어, 데이터 저장소에 저장된 정보 및/또는 URL 요청에 인덱싱된 정보 및/또는 URL 요청에 대응하는 식별자)로부터 추출된 정보를 제공하는 것을 포함할 수 있다. 일부 구현예에서, 추적 서버(260)는 중개 서버를 핑하여, 원래의 수신된 URL 요청(262)에 포함된 정보를 중개 서버들에 제공할 수 있다. 프록시 서버는 추적 서버(260)가 서버 A(270) 및 서버 B(280)와 같은 상기 중개 서버와 통신하기 위해 저-지연(low-latency) 원격 절차 호출(RPC)을 가능하게 한다. 일부 예에서, 프록시 서버는 상기 핑들로부터의 응답들을 수신할 때 오랜 기간의 지연을 처리하기 위해 타임-아웃 데드라인이 길다. 일부 예에서, 타임-아웃 데드라인이 경과한 경우 프록시 서버는 중개 서버에 대해 핑을 다시 시도할 수 있다. 일부 예에서, 상기 핑은 핑을 수행하는 서버 스레드를 절전 모드로 전환하지 않고 즉시 결과를 반환하는 비-차단 핑(non-blocking ping)이며, 서버에 의해 수행된 다른 프로세스의 실행을 지연시키는 차단을 제거함으로써 지연 시간을 줄인다.
스테이지(2B) 동안, 추적 서버(260)는 보고 데이터(264)를 포함하는 요청으로 서버 A(270)에 핑한다. 보고 데이터(264)는 클라이언트 디바이스(106)로부터 추적 서버(260)로 전송된 상호 작용 데이터(254)의 적어도 일부를 포함한다. 서버 A(270)는 보고 데이터(264)를 사용하여, 클라이언트 디바이스(106)가 상호 작용하는 디지털 컴포넌트의 제공자에 대한 분석을 생성할 수 있다. 예를 들어, 서버 A(270)는 추적 서버(260)에 의해 제공된 통계와 독립적인 상호 작용 통계를 디지털 컴포넌트 제공자에게 제공하기 위해 상기 보고 데이터(264)를 분석하는 제3자 분석 서버일 수 있다.
일부 예에서, 프록시 서버가 중개 서버들을 핑하도록 추적 서버(260)가 요청할 때, 추적 서버(260)는 특정 중개 서버의 핑이 개시될 때 카운터를 시작하여, 상기 핑에 대한 응답을 기다리는 동안 경과된 시간 양을 추적한다. 특정 타임-아웃 데드라인에 도달한 경우, 추적 서버(260)는 프록시 서버가 특정 중개 서버에 핑을재시도하도록 요청할 수 있다.
단게(2C) 동안, 추적 서버(260)는 서버 A(270)로부터 재지향 데이터 (272)를 수신한다. 추적 서버(260)로부터 보고 데이터(264)를 수신하면, 서버(270)는 추적 서버(260)로 재지향 데이터(272)를 전송한다. 상기 재지향 데이터 (272)는 추적 서버(260)를 서버 B(280)로 지향한다. 일부 예에서, 재지향 데이터(272)는 트래킹 서버 (260)에게 지시하여 상호 작용 데이터를 포함하는 보고 데이터를 서버 B(280)로 제공하도록 한다. 흐름(200) 및 클라이언트 디바이스를 요청된 리소스로 지향하는 다른 이러한 다른 프로세스에서, 서버 A(270)는 재지향 데이터(272)를 클라이언트 디바이스(106)로 전송할 것이다. 반면에, 흐름 (250)에서, 추적 서버(260)는 중개 서버들이 있음을 검출하고, 상기 서버들에 핑하여 클라이언트 디바이스(106)가 받게 되는 재지향의 수를 줄이기 위해 각각의 재지향을 인터셉트하고 따라간다.
단계(2D) 동안, 추적 서버(260)는 보고 데이터(264)를 포함하는 요청으로 서버 B(280)에 핑한다. 추적 서버(260)는 추적 서버(260)가 서버 A(270)를 핑하는 것과 동일한 방식으로 서버 B(280)를 핑한다. 추적 서버(260)는 보고 데이터(264)를 생성하여 서버 B(280)로 제공한다. 일부 예에서, 보고 데이터(264)는 추적 서버(260)로 제공된 재지향 데이터(272)에 기초하여 생성된다. 일부 예에서, 추적 서버(260)는 보고 데이터(264)를 수정하여 보고 데이터(274)를 생성하여, 상호 작용 추적 데이터가 이전의 중개 서버에게 제공되었음을 나타낼 수 있다. 예를 들어, 추적 서버(260)는 보고 데이터(274)를 생성하여, 서버 A(270)에 의해 요청된 상호 작용 추적 데이터가 수신되었음을 나타낼 수 있다. 추적 서버(260)는 서버 A(270)로부터 수신된 재지향 데이터(272)로부터의 데이터를 상기 서버(280)로제공된 보고 데이터(274)에 포함할 수 있다. 예를 들어, 추적 서버(260)는 재지향 데이터(272)의 일부 또는 전부를 보고 데이터(274)에 포함할 수 있다. 서버 B(280)는 상기 데이터가 서버 A(270)에 의해 수신되었다는 표시를 사용하여, 보고서를 생성하거나 디지털 컴포넌트 제공자에게 상호 작용 통계를 제공할 수 있다. 예를 들어, 서버 B(280)는 클라이언트 디바이스(106)에 대한 상호 작용 추적 데이터가 제공된 중개 서버의 수를 나타내는 통계를 디지털 컴포넌트 제공자에게 제공할 수 있다.
추적 서버(260)는 재지향 데이터(272)로부터, 상호 작용 추적 데이터가 제공될 더 이상의 중개 서버가 존재하지 않으며, 추적 서버(260)가 임의의 더 이상의 중개 서버를 핑하지 않을 것임을 결정할 수 있다. 일부 예에서, 추적 서버(260)는 클라이언트 디바이스(106)에 대한 상호 작용 추적 데이터가 제공되어야 하는 모든 중개 서버에 도달했음을 나타내는 데이터를 서버 B(280)로부터 수신할 수 있다.
일부 예에서, 단계(2B),(2C) 및 (2D)는 순차적으로 수행되고, 단계(2B)는 추적 서버(260)가 클라이언트 디바이스를 목적 서버(290)로 지향하는 재지향 데이터(262)를 클라이언트 디바이스(106)로 제공하는 단계(2A)와 병렬로 개시된다.
흐름(250)은 클라이언트 디바이스(106)가 재지향 데이터(262)를 통해 목적 서버(290)로 지향되는 단계(3)로 계속한다. 단계(3)는 단계(2A) 이후에 순차적으로 발생하고, 단계(2B),(2C) 및 (2D)와 비동기적으로 발생한다. 재지향 데이터(262)는 목적 서버(290)에 대한 위치 데이터 및 클라이언트 디바이스(106)가 목적 서버(290)로부터 리소스를 요청하도록 지시하는 데이터를 포함한다. 클라이언트 디바이스(106)는 목적 서버(290)로부터 상기 요청된 리소스를 다운로드할 수 있다.
클라이언트 디바이스(106)가 리소스를 요청하는 것과 목적 서버(290)에서리소스에 액세스하는 것 사이의 중개 서버로 재지향을 바이패스할 수 있게 함으로써, 흐름(250)은 클라이언트 디바이스의 사용자에 대한 지연 시간을 줄이고, 클라이언트 디바이스(106)와 상기 중개 서버에 액세스를 제공하는 네트워크 간의 연결이 차단될 수 있는 각 재지향에서의 가능한 실패 지점을 제거한다.
도 3은 사용자를 요청된 리소스로 지향하기 위한 예시적인 프로세스(300)의 흐름도이다. 일부 구현예에서, 프로세스(300)는 하나 이상의 서버에 의해 구현될 수 있다. 예를 들어, 프로세스(300)는 도 2b의 추적 서버(260), 서버 A(270), 서버 B(280) 및 목적 서버(290)에 의해 구현될 수 있다. 일부 구현예에서, 프로세스(300)는 비-일시적인 컴퓨터 판독 가능 매체상에 저장된 명령들로서 구현되어, 상기 명령들이 하나 이상의 서버들에 의해 실행될 때, 상기 명령들은 하나 이상의 서버로 하여금 프로세스(300)의 동작들을 수행하게 할 수 있다.
하나 이상의 서버는 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출한다(302). 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스일 수 있다. 일부 구현예에서, 하나 이상의 서버는 클라이언트 디바이스(106)에서 디지털 컴포넌트와의 상호 작용을 검출하는 추적 서버(260)를 구현하는데 사용될 수 있다. 하나 이상의 서버는 모바일 디바이스와 독립적으로 유선 통신 네트워크를 통해 통신한다. 예를 들어, 도 1을 참조하여 논의한 바와 같이, 특정 디지털 컴포넌트와의 상호 작용은 클라이언트 디바이스로 하여금 리소스에 대한 요청을 개시하게 할 수 있다. 상술한 바와 같이, 클라이언트 디바이스는 리소스 요청에 다양한 이벤트 데이터를 포함할 수 있고, 클라이언트 디바이스가 상호 작용한 디지털 컴포넌트의 제공자 및 디지털 컴포넌트를 지정하는 데이터를 포함할 수 있다. 상기 상호 작용에 응답하여, 추적 서버는 클라이언트 디바이스를 클라이언트 디바이스로부터 수신된 URL에 지정된 목적 서버로 재지향하고, 이하에서 보다 상세히 기술하는 바와 같이, 상기 추적 서버가 클라이언트 디바이스를 목적 서버로 재지향하는 경우 상기 클라이언트 디바이스가 따라 갔을 다중-서버 재지향 경로를 따를 수 있다.
하나 이상의 서버는 하나 이상의 서버가 클라이언트 디바이스를 재지향하는 중개 서버 및 디지털 컴포넌트와의 상호 작용을 통해 요청되는 목적 서버를 식별한다(304). 일부 구현예에서, 추적 서버(260)는 디지털 컴포넌트와의 상호 작용을 통해 요청된 리소스에 액세스하기 위해 목적 서버(290)로 지향되기 전에 클라이언트 디바이스(106)를 재지향할 서버 A(270) 및 서버 B(280)를 식별한다. 예를 들어, 도 2b와 관련하여 상술한 바와 같이, 추적 서버(260)는 목적 서버(290)뿐만 아니라 중개 서버들(270 및 280)을 식별할 수 있다. 일부 구현예에서, 추적 서버는 추적 서버에 접속하는데 사용되는 URL을 검사하여, 클라이언트 디바이스가 재지향될 중개 서버의 경로를 지정하는 정보를 추출한다. 대안적으로, 추적 서버는 상호 작용이 발생한 특정 디지털 컴포넌트를 식별하여, 디지털 컴포넌트를 중개 서버에 매핑하는 데이터 구조에서 중개 서버의 경로를 검색할 수 있다.
하나 이상의 서버는 클라이언트 디바이스를 중개 서버로 지향하지 않고 클라이언트 디바이스를 목적 서버로 재지향한다(306). 일부 구현예에서, 추적 서버(260)는 클라이언트 디바이스를 중개 서버들(270 및 280)로 지향하지 않고 클라이언트 디바이스(106)를 목적 서버(290)로 재지향할 수 있다. 예를 들어, 도 2b와 관련하여 전술한 바와 같이, 추적 서버(260)는 단계(2B),(2C) 및 (2D)와 독립적으로 상기 클라이언트 디바이스(106)가 목적 서버(290)로 지향되는 단계(2A)를 수행할 수 있다.
하나 이상의 서버는 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 중개 서버에 핑한다(308). 일부 구현예에서, 추적 서버(260)는 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요들로 중개 서버,들 서버 A(270) 및 서버 B(280)를 핑한다. 예를 들어, 도 2b와 관련하여 상술한 바와 같이, 추적 서버(260)는 각각 서버(A)(270) 또는 서버 B(280)을 핑하도록 단계(2B) 또는 단계(2D)를 수행할 수 있다. 일부 예에서, 추적 서버(260)는 상기 핑들을 수행하기 위해 요청을 프록시 서버로 전송한다. 일부 구현예에서, 추적 서버(260)는 목적 서버로의 상기 클라이언트 디바이스의 재지향과 다른 제2 재지향 경로를 개시함으로써 중개 서버를 핑한다.
일부 구현예에서, 추적 서버(260)는 핑이 개시될 때 카운터를 시작하고, 카운터를 사용하여 상기 요청으로 핑이 수행되는 동안 경과된 시간을 추적함으로써 서버 A(270)와 같은 중개 서버를 핑한다. 추적 서버(260)는 서버 A(270) 또는 서버 B(280)와 같은 중개 서버 또는 서버들에 핑을 재시도할 수 있다.
하나 이상의 서버는 중개 서버로부터, 제2 중개 서버(310)로 하나 이상의 서버를 재지향하는 재지향 응답을 수신한다(310). 예를 들어, 하나 이상의 서버는 중개 서버로부터 제2 중개 서버의 위치를 나타내는 재지향 응답을 수신할 수 있다. 일부 구현예에서, 추적 서버(260)는 추적 서버(260)를 제2 중개 서버 또는 서버 B(280)로 지향하는 재지향 데이터(272)를 수신한다.
하나 이상의 서버는 재지향 응답(312)으로부터의 데이터를 포함하는 제2 요청으로 제2 중개 서버를 핑한다. 예를 들어, 하나 이상의 서버는 하나 이상의 서버에 대한 외부 통신을 수행하는 프록시 서버를 통해 제2 중개 서버를 핑할 수 있다. 일부 구현예에서, 추적 서버(260)는 재지향 데이터(272)로부터의 데이터를 포함하는 제2 요청으로 서버 B(280)를 핑한다.
하나 이상의 서버에 의해 식별되는 하나 이상의 중개 서버가 있을 수 있다. 이러한 예에서, 하나 이상의 서버는 중개 서버들 각각으로부터 하나 이상의 서버를 후속 중개 서버로 지향하는 재지향 데이터를 수신할 수 있다. 예를 들어, 도 2b와 관련하여 상술한 바와 같이, 추적 서버(260)는 단계(2C)에서 서버 B(280)로 재지향될 수 있다.
도 4는 상술한 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(400)의 블록도이다. 시스템(400)은 프로세서(410), 메모리(420), 저장 디바이스(430) 및 입/출력 디바이스(440)를 포함한다. 컴포넌트들(410, 420, 430 및 440) 각각은 예를 들어 시스템 버스(450)를 사용하여 상호 접속될 수 있다. 프로세서(410)는 시스템(400) 내에서 실행을 위한 명령들을 처리할 수 있다. 일 구현에서, 프로세서(410)는 단일-스레드 프로세서이다. 다른 구현에서, 프로세서(410)는 멀티-스레드 프로세서이다. 프로세서(410)는 메모리(420)내에 또는 저장 디바이스(430)상에 저장된 명령들을 처리할 수 있다.
메모리(420)는 시스템(400) 내의 정보를 저장한다. 일 구현예에서, 메모리 (420)는 컴퓨터-판독 가능 매체이다. 일 구현예에서, 메모리(420)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(420)는 비-휘발성 메모리 유닛이다.
저장 디바이스(430)는 시스템(400)을 위한 대용량 저장 장치를 제공할 수 있다. 일 구현예에서, 저장 디바이스(430)는 컴퓨터-판독 가능 매체이다. 다양한 구현예에서, 저장 디바이스(430)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스) 또는 몇몇 다른 대용량 저장 디바이스에 의해 네트워크상에서 공유되는 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(440)는 시스템(400)에 대한 입력/출력 동작을 제공한다. 일 실시예에서, 입/출력 디바이스(440)는 예를 들어, 이더넷 카드, RS-232 포트와 같은 직렬 통신 디바이스, 및/또는 802.11 카드와 같은 무선 인터페이스 디바이스와 같은 하나 이상의 네트워크 인터페이스 디바이스를 포함할 수 있다. 다른 구현에서, 입력/출력 디바이스는 입력 데이터를 수신하여, 다른 입력/출력 디바이스, 예를 들어 키보드, 프린터 및 디스플레이 디바이스(460)로 출력 데이터를 전송하도록 구성된 구동 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현예들로 사용될 수 있다.
예시적인 프로세싱 시스템이 도 4에서 설명되었지만, 본 명세서에서 설명된 주제 및 기능적 동작들의 구현은 본 명세서 및 구조적 그의 구조적 등가물에 개시된 구조 또는 이들 중 하나 이상의 조합을 포함하여, 다른 유형의 디지털 전자 회로 구현되거나, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다.
전자 문서(간결성을 위해 간단히 문서로 지칭함)는 반드시 파일에 대응하는 것은 아니다. 문서는 다른 문서를 보유하는 파일의 일부, 대상의 문서에 전용된 단일 파일 또는 다수의 조정된 파일에 저장될 수 있다.
본 명세서에서 설명된 주제 및 동작들의 실시예는 본 명세서 및 그 구조적 등가물에 개시된 구조를 포함하여 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기재된 주제의 실시예들은 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 미디어(또는 매체) 상에 인코딩된, 하나 이상의 컴퓨터 프로그램, 즉 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 부가적으로, 프로그램 명령은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 송신하기 위해 정보를 인코딩하도록 생성되는 인위적으로 생성된 전파된 신호, 예를 들어, 기계-생성의 전기, 광학 또는 전자기 신호상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터-판독 가능 저장 디바이스, 컴퓨터-판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이들에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파된 신호는 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파된 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 미디어(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 이들에 포함될 수 있다.
본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터-판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
상기 "데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 복수의 것들 또는 이들의 조합을 포함하여, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 상기 장치는 FPGA(field-programmable gate array) 또는 ASIC(application-specific integrated circuit)과 같은 특수 목적 논리 회로를 포함할 수 있다. 상기 장치는 또한 하드웨어 이외에, 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들의 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 상이한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하여 임의의 형태의 프로그래밍 언어로 기록될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 단위를 포함하여 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수도 있지만 그렇지 않을 수도 있다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부분, 문제의 프로그램 전용의 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 있거나 다수의사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 다수의 컴퓨터상에서 실행되도록 배포될 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 상기 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로 프로세서 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스에 따라 동작들을 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 데이터, 예를 들어, 자기, 광 자기 디스크 또는 광 디스크를 저장하기 위한 하나 이상의 대용량 저장 디바이스로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 포함하거나 이들을 하도록 동작 가능하게 결합된다. 그러나, 컴퓨터에는 이러한 디바이스들이 있을 필요가 없다. 더욱이, 컴퓨터는 이동 전화, 개인 휴대 정보 단말기 (PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 위성 위치 확인 시스템(GPS) 수신기 또는 휴대용 저장 디바이스(예컨대, 범용 직렬 버스(USB) 플래시 드라이브)와 같은 다른 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크와; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여, 모든 형태의 비-휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 상기 프로세서와 메모리는 특수 목적 로직 회로에 의해 보완되거나 이에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 주제의 실시예들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터) 및 사용자가 컴퓨터에 입력을 제공 할 수 있는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백 일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고 받음으로써 사용자와 상호 작용할 수 있는데, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 수행될 수 있다.
본 명세서에서 설명된 주제의 실시예는 데이터 서버와 같은 백-엔드 컴포넌트를 포함하거나, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 본 명세서에 기술된 주제의 구현과 상호 작용할 수 있는 웹 브라우저와 같은 프론트-엔드 컴포넌트를 포함하거나, 또는 하나 이상의 이러한 백-엔드, 미들웨어 또는 프런트-엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 상기 시스템 컴포넌트들은 통신 네트워크와 같은 임의의 형태 또는 매체의 디지털 데이터 통신에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 로컬 영역 네트워크("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예컨대, 인터넷), 피어-투-피어 네트워크(예컨대, 애드 혹 피어-투-피어 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용합니다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시예에서, 서버는(예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해) 클라이언트 디바이스로 데이터(예를 들어, HTML 페이지)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서는 다수의 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정한 특징에 대한 설명으로서 제공된다. 별도의 실시예와 관련하여 본 명세서에서 설명되는 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하는 것으로 상기에서 설명될 수 있고, 심지어 처음에는 그러한 것으로서 청구될지라도, 청구된 조합으로부터의 하나 이상의 특징은 어떤 경우 조합으로부터 제거될 수 있으며, 상기 청구된 조합은 서브 조합의 서브 조합 또는 변형으로 유도될 수 있다.
유사하게, 동작들은 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 게다가, 전술한 실시예들에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품에 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 기술되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 경우에 따라 청구항들에 인용된 동작들은 다른 순서로 수행할 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 게다가, 첨부된 도면에 도시된 프로세스들은 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 시계열적 순서를 반드시 필요로 하지는 않는다. 특정 구현예에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (33)

  1. 데이터 처리 장치에 의해 수행되는 방법으로서,
    하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와;
    상기 클라이언트 디바이스로부터 수신된 URL 요청의 특정 비트 값에 기초하여, 목적 리소스로 재지향(redirect)되기 전에 상호 작용 데이터를 제공하도록 상기 클라이언트 디바이스가 지향(direct)되어야 하는 중개 서버가 존재하는지 결정하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버의 위치를 식별하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 중개 서버에 핑(ping)하는 단계와;
    상기 중개 서버로부터, 상기 하나 이상의 서버를 제2 중개 서버로 재지향하는 재지향 응답을 수신하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 중개 서버에 핑하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 목적 리소스에 대한 식별자를 획득하는 단계와; 그리고
    상기 하나 이상의 서버에 의해, 상기 식별자를 사용하여 상기 클라이언트 디바이스를 상기 목적 리소스로 재지향하는 단계를 포함하고, 상기 식별하는 단계, 상기 중개 서버에 핑하는 단계, 상기 재지향 응답을 수신하는 단계 및 상기 제2 중개 서버에 핑하는 단계는 상기 획득하는 단계 및 상기 재지향하는 단계와 병별로 수행되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 중개 서버를 식별하는 단계는,
    상기 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 상기 중개 서버의 경로를 지정하는 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 클라이언트 디바이스의 상기 목적 리소스로의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 핑이 개시될 때 카운터를 시작하는 단계와;
    상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와; 그리고
    상기 하나 이상의 서버가 상기 중개 서버로부터 응답을 수신하기 전에 상기 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 중개 서버의 핑을 재시도하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신하는 것을 특징으로 하는 방법.
  6. 시스템으로서,
    다양한 디지털 컴포넌트와의 클라이언트 측 상호 작용에 대응하는 상호 작용 데이터를 저장하는 데이터 저장소와;
    하나 이상의 통신 네트워크를 통한 통신을 가능하게 하는 통신 인터페이스를 포함하는 프론트-엔드 인터페이스와;
    상기 프론트-엔드 인터페이스에 연결된 추적 서버를 포함하고, 상기 추적 서버는 동작들을 수행함으로써 클라이언트 디바이스가 따르는 재지향 체인을 차단하며; 상기 동작들은,
    상기 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와;
    상기 클라이언트 디바이스로부터 수신된 URL 요청의 특정 비트 값에 기초하여, 목적 리소스로 재지향되기 전에 상호 작용 데이터를 제공하도록 상기 클라이언트 디바이스가 지향되어야 하는 중개 서버가 존재하는지 결정하는 단계와;
    상기 중개 서버의 위치를 식별하는 단계와;
    상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 중개 서버에 핑(ping)하는 단계와;
    상기 중개 서버로부터, 상기 하나 이상의 서버를 제2 중개 서버로 재지향하는 재지향 응답을 수신하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 중개 서버에 핑하는 단계와;
    상기 중개 서버를 통해 상기 목적 리소스에 대한 식별자를 획득하는 단계와; 그리고
    상기 식별자를 사용하여 상기 클라이언트 디바이스를 상기 목적 리소스로 재지향하는 단계를 포함하고, 상기 식별하는 단계, 상기 중개 서버에 핑하는 단계, 상기 재지향 응답을 수신하는 단계 및 상기 제2 중개 서버에 핑하는 단계는 상기 획득하는 단계 및 상기 재지향하는 단계와 병별로 수행되는 것을 특징으로 하는 시스템.
  7. 제6항에 있어서,
    상기 중개 서버를 식별하는 단계는,
    상기 추적 서버에 접속하기 위해 사용된 URL을 검사하는 단계와, 상기 중개 서버의 경로를 지정하는 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 시스템.
  8. 제6항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 목적 리소스로의 상기 클라이언트 디바이스의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 포함하는 것을 특징으로 하는 시스템.
  9. 제6항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 핑이 개시될 때 카운터를 시작하는 단계와;
    상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와; 그리고
    상기 하나 이상의 서버가 상기 중개 서버로부터 응답을 수신하기 전에 상기 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 중개 서버의 핑을 재시도하는 단계를 포함하는 것을 특징으로 하는 시스템.
  10. 제6항에 있어서,
    상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 통신 네트워크를 통해 통신하는 것을 특징으로 하는 시스템.
  11. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 상기 하나 이상의 컴퓨팅 디바이스로 하여금 제1항 내지 제5항 중 어느 한 항에 청구된 동작들을 수행하게 하는 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체.
  12. 방법에 있어서,
    하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와;
    상기 클라이언트 디바이스로부터 수신된 URL 요청의 특정 비트 값에 기초하여, 목적 리소스로 재지향되기 전에 상호 작용 데이터를 제공하도록 상기 클라이언트 디바이스가 지향되어야 하는 중개 서버가 존재하는지 결정하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버의 위치를 식별하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버로 상기 클라이언트 디바이스를 재지향하지 않고 목적 서버로 상기 클라이언트 디바이스를 재지향하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 중개 서버에 핑(ping)하는 단계와;
    상기 중개 서버로부터, 상기 하나 이상의 서버를 제2 중개 서버로 재지향하는 재지향 응답을 수신하는 단계와; 그리고
    상기 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 중개 서버에 핑하는 단계를 포함하고,
    상기 식별하는 단계, 상기 중개 서버에 핑하는 단계, 상기 재지향 응답을 수신하는 단계 및 상기 제2 중개 서버에 핑하는 단계는 상기 재지향하는 단계와 병별로 수행되는 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 중개 서버를 식별하는 단계는,
    상기 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 상기 중개 서버의 경로를 지정하는 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제12항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 클라이언트 디바이스의 목적 리소스로의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제12항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 핑이 개시될 때 카운터를 시작하는 단계와;
    상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와; 그리고
    상기 하나 이상의 서버가 상기 중개 서버로부터 응답을 수신하기 전에 상기 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 중개 서버의 핑을 재시도하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 제12항에 있어서,
    상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신하는 것을 특징으로 하는 방법.
  17. 제12항에 있어서,
    상기 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 목적 서버로 재지향하지 않은 경우 상기 클라이언트 디바이스가 따라야 했을 다중-서버 재지향 경로를 따르는 단계를 포함하는 것을 특징으로 하는 방법.
  18. 시스템에 있어서,
    다양한 디지털 컴포넌트와의 클라이언트 측 상호 작용에 대응하는 상호 작용 데이터를 저장하는 데이터 저장소와;
    하나 이상의 통신 네트워크를 통한 통신을 가능하게 하는 통신 인터페이스를 포함하는 프론트-엔드 인터페이스와;
    상기 프론트-엔드 인터페이스에 연결된 추적 서버를 포함하고, 상기 추적 서버는 동작들을 수행함으로써 클라이언트 디바이스가 따르는 재지향 체인을 차단하며; 상기 동작들은,
    하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와;
    상기 클라이언트 디바이스로부터 수신된 URL 요청의 특정 비트 값에 기초하여, 목적 리소스로 재지향되기 전에 상호 작용 데이터를 제공하도록 상기 클라이언트 디바이스가 지향되어야 하는 중개 서버가 존재하는지 결정하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버의 위치를 식별하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버로 상기 클라이언트 디바이스를 재지향하지 않고 목적 페이지로 상기 클라이언트 디바이스를 재지향하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 중개 서버에 핑(ping)하는 단계와;
    상기 중개 서버로부터, 상기 하나 이상의 서버를 제2 중개 서버로 재지향하는 재지향 응답을 수신하는 단계와; 그리고
    상기 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 중개 서버에 핑하는 단계를 포함하고,
    상기 식별하는 단계, 상기 중개 서버에 핑하는 단계, 상기 재지향 응답을 수신하는 단계 및 상기 제2 중개 서버에 핑하는 단계는 상기 재지향하는 단계와 병별로 수행되는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 중개 서버를 식별하는 단계는,
    상기 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 상기 중개 서버의 경로를 지정하는 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 시스템.
  20. 제18항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 클라이언트 디바이스의 목적 페이지의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 단계를 포함하는 것을 특징으로 하는 시스템.
  21. 제18항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 핑이 개시될 때 카운터를 시작하는 단계와; 상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와; 그리고 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 중개 서버의 핑을 재시도하는 단계를 포함하는 것을 특징으로 하는 시스템.
  22. 제18항에 있어서,
    상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신하는 것을 특징으로 하는 시스템.
  23. 삭제
  24. 제18항에 있어서,
    상기 동작들은,
    상기 하나 이상의 서버에 의해, 상기 하나 이상의 서버가 클라이언트 디바이스를 목적 페이지로 재지향하지 않으면 상기 클라이언트 디바이스가 따라가야 했을 다중-서버 재지향 경로를 따르는 단계를 포함하는 것을 특징으로 하는 시스템.
  25. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 상기 하나 이상의 컴퓨팅 디바이스로 하여금 동작들을 수행하게 하는 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은,
    하나 이상의 서버에 의해, 클라이언트 디바이스에서의 디지털 컴포넌트와의 상호 작용을 검출하는 단계와;
    상기 클라이언트 디바이스로부터 수신된 URL 요청의 특정 비트 값에 기초하여, 목적 리소스로 재지향되기 전에 상호 작용 데이터를 제공하도록 상기 클라이언트 디바이스가 지향되어야 하는 중개 서버가 존재하는지 결정하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버의 위치를 식별하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 중개 서버로 상기 클라이언트 디바이스를 재지향하지 않고 목적 페이지로 상기 클라이언트 디바이스를 재지향하는 단계와;
    상기 하나 이상의 서버에 의해, 상기 디지털 컴포넌트와의 상호 작용에 대응하는 상호 작용 데이터를 포함하는 요청으로 상기 중개 서버에 핑하는 단계와;
    상기 중개 서버로부터, 상기 하나 이상의 서버를 제2 중개 서버로 재지향하는 재지향 응답을 수신하는 단계와; 그리고
    상기 하나 이상의 서버에 의해, 상기 재지향 응답으로부터의 데이터를 포함하는 제2 요청으로 상기 제2 중개 서버에 핑하는 단계를 포함하고,
    상기 식별하는 단계, 상기 중개 서버에 핑하는 단계, 상기 재지향 응답을 수신하는 단계 및 상기 제2 중개 서버에 핑하는 단계는 상기 재지향하는 단계와 병렬로 수행되는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  26. 제25항에 있어서,
    상기 중개 서버를 식별하는 단계는,
    상기 하나 이상의 서버와 접속하는데 사용된 URL을 검사하는 단계와, 상기 중개 서버의 경로를 지정하는 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독 가능 매체.
  27. 제25항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 클라이언트 디바이스의 목적 페이지의 재지향과 다른 제2 재지향 경로를 개시하는 단계를 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  28. 제25항에 있어서,
    상기 중개 서버에 핑하는 단계는,
    상기 핑이 개시될 때 카운터를 시작하는 단계와; 상기 카운터를 사용하여 경과된 요청 시간을 추적하는 단계와; 그리고 경과된 요청 시간이 타임 아웃 임계값을 초과할 때 상기 중개 서버의 핑을 재시도하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  29. 제25항에 있어서,
    상기 클라이언트 디바이스는 무선 통신 네트워크를 통해 통신하는 모바일 디바이스이고, 상기 하나 이상의 서버는 상기 모바일 디바이스와 독립적인 유선 통신 네트워크를 통해 통신하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020197019838A 2017-04-03 2017-04-03 재지향 감소 KR102196403B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/025725 WO2018186824A1 (en) 2017-04-03 2017-04-03 Reducing redirects

Publications (2)

Publication Number Publication Date
KR20190090862A KR20190090862A (ko) 2019-08-02
KR102196403B1 true KR102196403B1 (ko) 2020-12-29

Family

ID=58609998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197019838A KR102196403B1 (ko) 2017-04-03 2017-04-03 재지향 감소

Country Status (7)

Country Link
EP (1) EP3552115B1 (ko)
JP (1) JP6772389B2 (ko)
KR (1) KR102196403B1 (ko)
CN (1) CN108990423B (ko)
DE (2) DE102018100526A1 (ko)
GB (2) GB2566341A (ko)
WO (1) WO2018186824A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL283674A (en) 2021-06-03 2023-01-01 Google Llc Distribution and monitoring of cross-disciplinary experimental groups to maintain privacy
US11652697B1 (en) 2022-03-29 2023-05-16 Oxylabs, Uab Transmitting request and response information through different proxies

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117270A1 (en) 2010-11-09 2012-05-10 Usablenet Inc. Methods for reducing latency in network connections using automatic redirects and systems thereof
US20120311017A1 (en) 2011-06-06 2012-12-06 Google Inc. Reducing Redirects
JP2016509277A (ja) 2012-12-13 2016-03-24 クアルコム,インコーポレイテッド 通信システムにおけるクライアントデバイスのウェブブラウザでのリダイレクトされたウェブページの読み込み

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1183613A4 (en) * 1999-04-05 2006-06-21 Neomedia Tech Inc SYSTEM AND METHOD FOR USING MACHINE-LIKE OR MACHINE-READABLE LINK CODES TO ACCESS NETWORK DATA RESOURCES
CN100464524C (zh) * 2007-04-13 2009-02-25 华为技术有限公司 一种内容控制方法和系统
CN101662464A (zh) * 2008-08-26 2010-03-03 阿里巴巴集团控股有限公司 一种用于实现http请求服务的系统及其方法
US9342615B2 (en) * 2011-12-07 2016-05-17 Google Inc. Reducing redirects
CN105915450B (zh) * 2016-06-02 2019-06-25 南京师范大学 一种ndn中基于重定向的任播方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117270A1 (en) 2010-11-09 2012-05-10 Usablenet Inc. Methods for reducing latency in network connections using automatic redirects and systems thereof
US20120311017A1 (en) 2011-06-06 2012-12-06 Google Inc. Reducing Redirects
JP2016509277A (ja) 2012-12-13 2016-03-24 クアルコム,インコーポレイテッド 通信システムにおけるクライアントデバイスのウェブブラウザでのリダイレクトされたウェブページの読み込み

Also Published As

Publication number Publication date
WO2018186824A1 (en) 2018-10-11
DE202018100131U1 (de) 2018-07-05
GB201720890D0 (en) 2018-01-31
GB201800967D0 (en) 2018-03-07
JP2020510251A (ja) 2020-04-02
KR20190090862A (ko) 2019-08-02
JP6772389B2 (ja) 2020-10-21
CN108990423B (zh) 2022-01-28
GB2566341A (en) 2019-03-13
CN108990423A (zh) 2018-12-11
EP3552115B1 (en) 2021-09-29
EP3552115A1 (en) 2019-10-16
DE102018100526A1 (de) 2018-10-04

Similar Documents

Publication Publication Date Title
US9882976B1 (en) Supporting heterogeneous environments during code deployment
US8862777B2 (en) Systems, apparatus, and methods for mobile device detection
US20190182309A1 (en) Apparatus and method for low-latency message request/response processing
US10182126B2 (en) Multilevel redirection in a virtual desktop infrastructure environment
JP7331073B2 (ja) 強化されたオンラインプライバシ
US20080270412A1 (en) Tracking user clicks using ajax based beacons
US10498849B1 (en) Reduction in redirect navigation latency via speculative preconnection
US20110258192A1 (en) Providing question and answer services
US9787521B1 (en) Concurrent loading of session-based information
US20120166526A1 (en) Request forwarding and result aggregating systems, methods and computer readable media
US11336737B2 (en) Opt-out compliance
US10334014B2 (en) Accessing connected service resources in a distributed application programming interface
KR102196403B1 (ko) 재지향 감소
US9369544B1 (en) Testing compatibility with web services
US10044788B2 (en) Native client multimedia redirection
US10021210B1 (en) Providing faster data access using multiple caching servers
US10536547B2 (en) Reducing redirects
US11550638B2 (en) Reducing latency in downloading electronic resources using multiple threads
KR102409353B1 (ko) 상호작용 추적 제어
US8332469B1 (en) Web resource caching
EP3607455A1 (en) Improving opt-out compliance

Legal Events

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