KR102239281B1 - 집계된 컨버전 측정 - Google Patents

집계된 컨버전 측정 Download PDF

Info

Publication number
KR102239281B1
KR102239281B1 KR1020207027401A KR20207027401A KR102239281B1 KR 102239281 B1 KR102239281 B1 KR 102239281B1 KR 1020207027401 A KR1020207027401 A KR 1020207027401A KR 20207027401 A KR20207027401 A KR 20207027401A KR 102239281 B1 KR102239281 B1 KR 102239281B1
Authority
KR
South Korea
Prior art keywords
url
content
web browser
client device
server
Prior art date
Application number
KR1020207027401A
Other languages
English (en)
Other versions
KR20200122381A (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 KR20200122381A publication Critical patent/KR20200122381A/ko
Application granted granted Critical
Publication of KR102239281B1 publication Critical patent/KR102239281B1/ko

Links

Images

Classifications

    • 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/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • H04L67/20
    • H04L67/22
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 명세서에 설명된 시스템 및 방법은 네트워크 환경 내에서 데이터 전송의 인가를 제어할 수 있는 웹브라우저 기반 API(application programming interface)와 관련될 수 있다. 시스템은 웹페이지에 디스플레이된 콘텐츠 아이템을 브라우저를 호출하게 하여 브라우저가 콘텐츠 아이템을 브라우저에 등록하도록 요청한다. 웹브라우저는 웹브라우저에서 승인 또는 인가된 콘텐츠 아이템에 대한 네트워크 전송을 제어할 수 있다. 이 시스템은 클라이언트 디바이스에 콘텐츠를 제공하지 않는 전송 횟수를 줄여 클라이언트 디바이스의 대역폭과 계산 리소스를 절약할 수 있다.

Description

집계된 컨버전 측정
클라이언트 디바이스가 웹사이트를 방문하면, 웹사이트는 작은 데이터 패킷을 클라이언트 디바이스에 전송할 수 있다. 작은 데이터 패킷은 기본 설정, 세션 정보를 포함하거나 웹사이트를 호스팅하는 디바이스와 클라이언트 디바이스 간의 세션을 인증하고 유지하는데 사용할 수 있다. 웹사이트에 저장된 데이터는 무기한 저장되거나 정기적으로 삭제될 수 있다. 웹브라우저는 클라이언트 디바이스가 도메인과의 활성 세션에 있지 않을 때 도메인이 다른 도메인의 데이터에 액세스하거나 클라이언트 디바이스에 데이터를 저장하는 것을 방지할 수 있다.
웹페이지의 콘텐츠 슬롯을 채우기 위해 서드 파티에 의해 제공된 콘텐츠 아이템은 세컨더리 웹페이지와 연관될 수 있다. 콘텐츠 아이템을 활성화(예: 클릭)하면 웹브라우저를 세컨더리 페이지로 이동시킬 수 있으므로 세컨더리 웹페이지를 랜딩 페이지라고 할 수 있다. 예를 들어, 콘텐츠 아이템은 세컨더리 웹페이지에 대한 HTML 링크를 포함할 수 있다. 일부 구현예에서, 사용자는 콘텐츠 아이템을 볼 수 있지만 랜딩 페이지를 방문하기 위한 콘텐츠 아이템을 활성화하지 않을 수 있다. 그 다음, 나중에 콘텐츠 아이템을 활성화하지 않고, 사용자가 독립적으로 랜딩 페이지로 이동할 수 있다. 서드 파티 쿠키의 사용을 금지하는 "비-쿠키" 환경에서는 랜딩 페이지로의 방문의 기인이 어려울 수 있다. 본 명세서에 설명된 시스템 및 방법은 사용자 프라이버시를 증가시키면서 랜딩 페이지로의 탐색이 대한 콘텐츠 아이템에 기인할 수 있다.
예를 들어, 여기에 설명된 시스템은 브라우저 기반 API(application programming interface)를 포함할 수 있다. API를 사용하면 웹페이지에 디스플레이되는 콘텐츠 아이템이 브라우저를 호출하게 하여 브라우저가 콘텐츠 아이템을 브라우저에 등록하도록 요청할 수 있다. 요청(예: API 호출)은 랜딩 페이지 URL, 컨버전 보고 URL 및 캠페인 ID를 포함할 수 있다. 콘텐츠 아이템이 브라우저에 등록되고 브라우저가 다른 URL을 방문하면, 브라우저는 현재 페이지의 URL을 브라우저에 등록된 랜딩 페이지 URL과 비교할 수 있다. 브라우저가 등록된 랜딩 페이지 URL 중 하나를 방문한다고 판단하면, 브라우저는 랜딩 페이지 URL과 연관된 컨버전 보고 URL에 대한 응답 메시지를 생성할 수 있다. 브라우저는 콘텐츠 아이템을 브라우저에 등록하고 응답 메시지를 컨버전 보고 URL에 전송하기 위한 여러 정책을 설정하고 시행할 수 있다. 예를 들어, 정책은 여러 가지 중에서도, 등록이 발생하기 전에 미리 결정된 길이의 시간 동안 콘텐츠 아이템이 디스플레이되도록 요구하는 타이밍 요구 사항, 보이지 않거나 작은(예: 추적 픽셀)이 브라우저에 등록하는 것을 방지하는 디스플레이 요구 사항을 설정할 수 있다.
본 개시의 적어도 하나의 양태에 따르면, 네트워크 환경에서 데이터 전송을 인가하는 방법은 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 웹브라우저에 의해 디스플레이된 콘텐츠 아이템으로부터 등록 요청을 수신하는 단계를 포함할 수 있다. 등록 요청은 제1 URL(uniform resource locator) 및 제2 URL을 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 상기 클라이언트 디바이스에 저장된 등록 테이블에 저장하는 단계를 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 웹브라우저에 의해 디스플레이된 웹페이지의 제3 URL을 식별하는 단계를 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다고 결정하는 단계를 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 메시지를 제2 URL에 전송하는 단계를 포함할 수 있다.
본 개시의 적어도 하나의 양태에 따르면, 네트워크 환경에서 데이터 전송을 인가하는 시스템은 클라이언트 디바이스에 의해 실행되는 웹브라우저를 포함할 수 있다. 웹브라우저는 상기 웹브라우저에 의해 디스플레이된 콘텐츠 아이템으로부터 등록 요청을 수신하는 컨버전 엔진을 실행하거나 포함할 수 있고, 상기 등록 요청은 제1 URL 및 제2 URL을 포함한다. 컨버전 엔진은 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 상기 클라이언트 디바이스에 저장된 등록 테이블에 저장할 수 있다. 컨버전 엔진은 상기 웹브라우저에 의해 디스플레이된 웹페이지의 제3 URL을 식별할 수 있다. 컨버전 엔진은 상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다고 결정할 수 있다. 컨버전 엔진은 메시지를 제2 URL에 전송할 수 있다.
전술한 일반적인 설명 및 도면에 대한 다음의 설명 및 상세한 설명은 예시적이고 설명 적이며, 청구된 본 발명의 추가 설명을 제공하기 위한 것이다. 다른 목적, 이점 및 신규한 구성은 다음의 도면의 간단한 설명 및 상세한 설명으로부터 통상의 기술자에게 쉽게 명백해질 것이다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다. 명확성을 위해 모든 도면에서 모든 컴포넌트가 라벨링된 것은 아니다. 도면에서:
도 1은 일부 구현예에 따라, 데이터 교환을 위한 네트워크 및 디바이스 환경의 블록도를 도시한다.
도 2는 일부 구현예에 따라, 도 1에 도시된 네트워크 및 디바이스 환경에서 사용하기 위한 컴퓨팅 디바이스의 구현예를 나타내는 블록도를 도시한다.
도 3은 일부 구현예에 따라, 도 1에 도시된 네트워크 및 디바이스 환경에서 데이터 교환을 인가하는 흐름도를 도시한다.
도 4는 일부 구현예에 따라, 도 1에 도시된 네트워크 및 디바이스 환경에서 데이터를 교환하는 예시적 방법의 흐름도를 도시한다.
상기 소개되고 아래에서 더 자세히 논의되는 다양한 개념들은 기술된 개념들이 임의의 특정한 구현 방식에 제한되지 않기 때문에, 임의의 다수의 방식들로 구현될 수 있다. 특정 구현예 및 적용의 예는 주로 설명적 목적으로 제공된다.
인터넷에서 다운로드하여 예를 들어, 웹브라우저에 디스플레이되는 콘텐츠는 서드 파티 서버로부터 추가 콘텐츠를 요청할 수 있다. 예를 들어, 클라이언트 디바이스에 의해 실행되는 웹페이지는 웹브라우저가 서드 파티 서버로부터 콘텐츠 슬롯에 대한 콘텐츠를 요청하게 할 수 있는 프로세서 실행가능 명령어(예를 들어, JavaScript)를 포함할 수 있는 하나 이상의 콘텐츠 슬롯을 포함할 수 있다. 웹브라우저는 웹페이지를 렌더링할 때 자동으로 요청을 생성할 수 있다. 일부 구현예에서, 프로세서 실행가능 명령어는 렌더링된 웹페이지에서 콘텐츠의 생성 또는 디스플레이를 초래하지 않는 하나 이상의 요청을 생성하도록 웹브라우저에 지시할 수 있다. 예를 들어, 웹브라우저가 서버로 보낼 수 있는 요청은 웹페이지에 콘텐츠를 제공한 서드 파티 서버에 대한 상태 알림 또는 업데이트를 포함할 수 있다. 추가 콘텐츠 요청 및 응답으로 인해 클라이언트 디바이스에 대한 대역폭 및 계산 리소스가 낭비되어 클라이언트 디바이스가 사용자에게 렌더링할 추가 콘텐츠를 수신하지 않을 수 있다. 본 명세서에 기술된 시스템 및 방법은 클라이언트 디바이스에 콘텐츠를 제공하지 않는 전송 횟수를 줄여 클라이언트 디바이스의 대역폭과 계산 리소스를 절약할 수 있다. 또한 시스템 및 방법은 응답 또는 요청의 전송 권한을 제어할 수 있으므로 클라이언트 디바이스 사용자의 프라이버시를 보호할 수 있다.
예를 들면, 웹페이지의 콘텐츠 슬롯을 채우기 위해 서드 파티에 의해 제공된 콘텐츠 아이템은 세컨더리 웹페이지와 연관될 수 있다. 콘텐츠 아이템을 활성화(예: 클릭)하면 웹브라우저를 세컨더리 페이지로 이동시킬 수 있으므로 세컨더리 웹페이지를 랜딩 페이지라고 할 수 있다. 예를 들어, 콘텐츠 아이템은 세컨더리 웹페이지에 대한 HTML 링크를 포함할 수 있다. 일부 구현예에서, 사용자는 콘텐츠 아이템을 볼 수 있지만 랜딩 페이지를 방문하기 위한 콘텐츠 아이템을 활성화하지 않을 수 있다. 그 다음, 나중에 콘텐츠 아이템을 활성화하지 않고, 사용자가 독립적으로 랜딩 페이지로 이동할 수 있다. 서드 파티 쿠키의 사용을 금지하는 "비-쿠키" 환경에서는 랜딩 페이지로의 방문의 기인이 어려울 수 있다. 본 명세서에 설명된 시스템 및 방법은 사용자 프라이버시를 증가시키면서 랜딩 페이지로의 탐색이 대한 콘텐츠 아이템에 기인할 수 있다.
예를 들어, 여기에 설명된 시스템은 브라우저 기반 API(application programming interface)를 포함할 수 있다. API를 사용하면 웹페이지에 디스플레이되는 콘텐츠 아이템이 브라우저를 호출하게 하여 브라우저가 콘텐츠 아이템을 브라우저에 등록하도록 요청할 수 있다. 요청(예: API 호출)은 랜딩 페이지 URL, 컨버전 보고 URL 및 캠페인 ID를 포함할 수 있다. 콘텐츠 아이템이 브라우저에 등록되고 브라우저가 다른 URL을 방문하면, 브라우저는 현재 페이지의 URL을 브라우저에 등록된 랜딩 페이지 URL과 비교할 수 있다. 브라우저가 등록된 랜딩 페이지 URL 중 하나를 방문한다고 판단하면, 브라우저는 랜딩 페이지 URL과 연관된 컨버전 보고 URL에 대한 응답 메시지를 생성할 수 있다. 일부 구현예에서, 응답 메시지는 메시지 또는 요청 메시지로 지칭될 수 있다. 브라우저는 콘텐츠 아이템을 브라우저에 등록하고 응답 메시지를 컨버전 보고 URL에 전송하기 위한 여러 정책을 설정하고 시행할 수 있다. 예를 들어, 정책은 여러 가지 중에서도, 등록이 발생하기 전에 미리 결정된 길이의 시간 동안 콘텐츠 아이템이 디스플레이되도록 요구하는 타이밍 요구 사항, 보이지 않거나 작은(예: 추적 픽셀)이 브라우저에 등록하는 것을 방지하는 디스플레이 요구 사항을 설정할 수 있다.
현재 해결책은 서드 파티 쿠키를 활성화하지 않는 브라우저에서 컨버전의 측정이 수행될 수 없는 여러 기술적 해결책을 제공한다. 예를 들어, 콘텐츠 아이템에서 JavaScript가 아닌 브라우저 기반 API를 사용하면 다양한 방법으로 사용자 프라이버시를 보호할 수 있다. 첫째, 콘텐츠 아이템의 JavaScript는 사용자에 의해 제어되지 않지만, 브라우저 기반 API는 브라우저의 기능이며 사용자에 의해 제어되거나 제한될 수 있다. 이를 통해, 사용자는 위에서 설명한 정책의 구성을 통해 공유될 수 있는 정보와 시기를 설정할 수 있다. 둘째, 브라우저 벤더(또는 사용자)는 보고 URL에 대한 응답 메시지의 최대 길이 및 기타 요구 사항(예: 형식)을 설정할 수 있다. 이것은 브라우저가 서드 파티에 전송할 수 있는 정보의 양을 제한할 수 있다. 예를 들어, 캠페인 ID는 짧고 제한된 수의 문자로 제한될 수 있어서, 사용자 에이전트의 해시 및 브라우저에 대한 기타 정보가 인코딩되어 보고 메시지에서 서드 파티에게 다시 보내질 수 없다. 셋째, 브라우저는 컨버전 보고 URL에 대한 보고 메시지를 지연 또는 일괄 처리하여 브라우저가 랜딩 페이지 URL을 방문한 시점과 IP 주소를 위장할 수 있다. 넷째, 브라우저는 보고 메시지를 프록시로 전송한 다음 보고 메시지를 서드 파티에 포워딩할 수 있다. 프록시는 보고 메시지에 포함된 정보를 추가로 난독화할 수 있다.
도 1은 데이터 교환을 위한 예시적인 네트워크 및 디바이스 환경(100)의 블록도를 도시한다. 도시된 바와 같이, 하나 이상의 클라이언트 디바이스(102)는 일반적으로 콘텐츠 서버(110)로 지칭될 수 있는 하나 이상의 콘텐츠 서버(110(1) -110(N))와 네트워크(106)를 통해 통신할 수 있다. 클라이언트 디바이스(102)는 하나 이상의 중개 서버(108)를 통해 콘텐츠 서버(110)와 통신할 수 있다. 클라이언트 디바이스(102)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 웨어러블 컴퓨터, 임베디드 컴퓨터, 스마트 텔레비전, 콘솔, 사물 인터넷(IoT) 디바이스 또는 스마트 기기를 포함한 임의의 유형 및 형태의 컴퓨팅 디바이스 또는 다른 유형 및 형태의 컴퓨팅 디바이스를 포함할 수 있다. 클라이언트 디바이스(102)는 일반적으로 원격 서버(104)로 지칭될 수 있는 하나 이상의 원격 서버(104(1)-104(N))와 네트워크(106)를 통해 통신할 수 있다. 클라이언트 디바이스(102)로부터의 요청에 응답하여, 원격 서버(104)는 클라이언트 디바이스(102)에 프라이머리 콘텐츠(예를 들어, 웹페이지)를 전송하거나 제공한다. 예를 들면, 클라이언트 디바이스(102)는 콘텐츠를 요청하기 위해 애플리케이션을 실행할 수 있다. 애플리케이션은 웹브라우저, 소셜 미디어 애플리케이션, 비디오 게임 또는 기타 그러한 애플리케이션일 수 있다. 클라이언트 디바이스(102)는 원격 서버(104) 및 콘텐츠 서버(110)로부터 콘텐츠를 요청할 수 있다. 예를 들어, 원격 서버(104)는 콘텐츠 슬롯을 포함하는 웹페이지를 호스팅할 수 있다. 웹페이지의 콘텐츠 슬롯은 클라이언트 디바이스(102)로 하여금 콘텐츠 슬롯을 채우기 위해(중개 서버(108)를 통해) 콘텐츠 서버(110)로부터 콘텐츠를 요청하게 할 수 있는 JavaScript 또는 다른 프로세서 실행가능 명령어를 포함할 수 있다. 프로세서 실행가능 명령어는 중개 서버(108) 또는 콘텐츠 서버(110)에 의해 원격 서버(104)에 제공될 수 있다.
시스템(100)은 하나 이상의 네트워크(106)를 포함할 수 있다. 네트워크(106)는 근거리 통신망(LAN), 인터넷과 같은 광역 네트워크(WAN), 위성 네트워크, 케이블 네트워크, 광대역 네트워크, 광섬유 네트워크, 마이크로파 네트워크, 셀룰러 네트워크, 무선 네트워크, 또는 이들 또는 다른 그러한 네트워크의 조합을 포함하는 네트워크의 유형 및 형태를 포함할 수 있다. 시스템(100)은 동일하거나 상이한 유형의 네트워크(106)를 포함할 수 있다. 예를 들어, 클라이언트 디바이스(102)와 중개 서버(108) 사이의 네트워크(106)는 제1 유형일 수 있고, 중개 서버(108)와 콘텐츠 서버(110) 사이의 네트워크(106)는 제2 유형일 수 있다. 클라이언트 디바이스(102)와 중개 서버(108) 사이의 네트워크(106) 및 중개 서버(108)와 콘텐츠 서버(110) 사이의 네트워크(106)는 동일한 네트워크 또는 동일한 네트워크의 컴포넌트일 수 있다.
네트워크(106)는 예를 들어 게이트웨이, 모뎀, 방화벽, 라우터, 스위치 등을 포함하는 복수의 추가 디바이스를 포함할 수 있다. 네트워크(106)는 네트워크(106) 내에서 데이터를 수신 및/또는 전송하도록 구성된 임의의 수의 컴퓨팅 디바이스(예를 들어, 컴퓨터, 서버, 라우터, 네트워크 스위치 등)를 포함할 수 있다. 네트워크(106)는 임의의 수의 고정 배선 및/또는 무선 연결을 포함할 수 있다. 클라이언트 디바이스(102)는(예를 들어, 광섬유 케이블, CAT5 케이블 등을 통해) 배선된 송수신기와 무선으로(예를 들어, WiFi, 셀룰러, 라디오 등을 통해) 네트워크(106) 내 다른 컴퓨팅 디바이스들과 통신할 수 있다. 네트워크(106)는 단일 물리적 머신에 의해 실행되는 복수의 가상 머신 사이의 가상 네트워크와 같은 가상 네트워크 또는 물리적으로 이동 가능한 미디어를 통한 데이터의 오프라인 전송(예: Sneakernet, 테이프 미디어, CD-ROM, 플래시 미디어, 외장 하드 드라이브, 플로피 디스크 등을 통한 데이터 전송)과 같은 추상적 네트워크이거나 이를 포함할 수 있다.
시스템(100)은 하나 이상의 중개 서버(108)를 포함할 수 있다. 중개 서버(108)는 클라이언트 디바이스(102)로부터 수신된 콘텐츠 요청을 관리할 수 있다. 콘텐츠 요청은 원격 서버(104)에 의해 제공되는 프라이머리 콘텐츠의 콘텐츠 슬롯에서 렌더링하기 위해 세컨더리 콘텐츠 또는 콘텐츠 아이템으로도 지칭될 수 있는 콘텐츠에 대한 것일 수 있다. 중개 서버(108)는 복수의 콘텐츠 서버(110)로부터의 콘텐츠 요청을 이행할 수 있다. 예를 들어, 중개 서버(108)는 클라이언트 디바이스(102)로부터 콘텐츠에 대한 요청을 수신할 수 있고, 콘텐츠 서버(110) 중에서 콘텐츠 서버(110)를 선택하여 요청된 콘텐츠를 제공할 수 있다. 선택은 로드 밸런싱 알고리즘, 경매 알고리즘(예를 들어 콘텐츠 제공 기회에 입찰하는 콘텐츠 서버(110)) 등을 통해 이루어질 수 있다. 따라서, 중개 서버(108)는 교환 서버, 로드 밸런서, 경매 제공자 또는 임의의 기타 그러한 용어로 지칭될 수 있다.
시스템(100)은 하나 이상의 콘텐츠 서버(110)를 포함할 수 있다. 콘텐츠 서버(110)는 콘텐츠 저장소를 포함할 수 있다. 콘텐츠 서버(110)는 중개 서버(108) 또는 클라이언트 디바이스(102)로부터 콘텐츠 요청을 수신하는 것에 응답하여 콘텐츠 저장소로부터 콘텐츠를 선택할 수 있다. 일부 구현예에서, 클라이언트 디바이스(102)로부터의 콘텐츠 요청은 이전 데이터 교환에서 콘텐츠 서버(110)에 의해 클라이언트 디바이스(102)에 제공되는 쿠키와 같은 식별자를 포함할 수 있다. 콘텐츠 서버(110)는 식별자에 기초하여 콘텐츠 저장소로부터 콘텐츠를 선택할 수 있다. 예를 들어, 콘텐츠 서버(110)는 특히 식별자를 클라이언트 디바이스(102)의 선호 및 계산 리소스(예를 들어, 스크린 크기 및 해상도) 등(이에 한정되지 않음)과 연관시킬 수 있다. 콘텐츠 서버(110)는 식별자와 연관된 데이터에 기초하여 데이터 저장소로부터 콘텐츠를 선택할 수 있다.
시스템(100)은 하나 이상의 원격 서버(104)를 포함할 수 있다. 원격 서버(104)는 프라이머리 콘텐츠를 호스팅할 수 있다. 프라이머리 콘텐츠는 웹페이지, 소셜 미디어 페이지, 오디오 콘텐츠, 텍스트 콘텐츠, 비디오 콘텐츠 및 기타 형태의 데이터를 포함할 수 있다. 프라이머리 콘텐츠는 콘텐츠 슬롯을 포함할 수 있다. 콘텐츠 슬롯은 브라우저에 의해 실행될 때 콘텐츠 슬롯을 채우도록 브라우저로 하여금 중간 서버(108) 또는 콘텐츠에 대한 콘텐츠 서버(110)로부터 콘텐츠를 요청하게 할 수 있는 프로세서 실행가능 명령어를 포함할 수 있다. 일부 구현예에서, 원격 서버(104)에 의해 호스팅되는 프라이머리 콘텐츠는 콘텐츠 서버(110)에 의해 제공되는 세컨더리 콘텐츠와 연관될 수 있다. 예를 들어, 원격 서버(104)에 의해 호스팅되는 프라이머리 콘텐츠는 세컨더리 콘텐츠에 대한 랜딩 페이지로서 제공될 수 있다. 세컨더리 콘텐츠가 프라이머리 콘텐츠에 대한 링크를 포함하는 경우 프라이머리 콘텐츠는 세컨더리 콘텐츠의 랜딩 페이지일 수 있다. 일부 구현예에서, 클라이언트 디바이스(102)의 브라우저는 원격 서버(104)에 의해 호스팅되는 웹페이지로 독립적으로 탐색할 수 있고, 다른 구현예에서, 브라우저는 콘텐츠 서버(110)에 의해 제공된 세컨더리 콘텐츠의 일부로서 렌더링된 링크의 활성화(예: 클릭)를 통해 원격 서버(104)에 의해 호스팅되는 웹페이지로 안내될 수 있다.
중개 서버(108), 원격 서버(104) 및 콘텐츠 서버(110)는 데스크톱 컴퓨터, 서버, 워크 스테이션, 랩톱 컴퓨터, 휴대용 컴퓨터, 임베디드 컴퓨터 또는 임의의 유형 및 형태의 컴퓨팅 디바이스 또는 임의의 기타 유형 및 형태의 컴퓨팅 디바이스를 포함할 수 있다. 중개 서버(108) 및 콘텐츠 서버(110)는 하나 이상의 물리적 컴퓨팅 디바이스에 의해 실행되는 가상 머신을 포함할 수 있으며, 서버 팜, 클러스터 또는 디바이스의 클라우드로 구성될 수 있다.
도 2는 데이터 교환을 위한 예시적인 컴퓨팅 디바이스를 예시하는 블록을 도시한다. 도 1과 관련하여 전술한 바와 같이, 시스템(100)은 사용자 디바이스(102)를 포함할 수 있다. 클라이언트 디바이스(102)는 웹브라우저와 같은 애플리케이션(208)을 실행하여 원격 서버(104)로부터 콘텐츠를 수신할 수 있다. 중개 서버(108)는 또한 콘텐츠 서버(110)로부터 콘텐츠를 클라이언트 디바이스(102)에 제공할 수 있다.
위에서 논의된 바와 같이, 클라이언트 디바이스(102)는 클라이언트, 디바이스, 클라이언트 디바이스, 컴퓨팅 디바이스, 사용자 디바이스 또는 임의의 기타 이러한 용어로 지칭될 수 있다. 클라이언트 디바이스(102)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 비디오 게임 콘솔, 스마트 텔레비전 또는 셋톱 박스, 서버, 워크스테이션 또는 네트워크를 통해(106) 통신할 수 있는 임의의 다른 유형 및 형태의 컴퓨팅 디바이스를 포함하거나 그 컴포넌트일 수 있다. 일부 구현예에서, 클라이언트 디바이스(102)는 네트워크(106)를 통해 통신하기 위한 애플리케이션(208)을 실행할 수 있다. 애플리케이션(208)은 네트워크(106)를 통해 통신하기 위한 서비스, 서버, 데몬, 루틴 또는 기타 실행가능한 로직일 수 있다. 애플리케이션(208)은 웹브라우저, 메일 클라이언트, 비디오 플레이어, 음악 플레이어, 비디오 게임 또는 임의의 기타 그러한 애플리케이션일 수 있다. 이러한 애플리케이션은 커맨드 라인 인터페이스, 그래픽 사용자 인터페이스 또는 이러한 인터페이스 또는 기타 인터페이스의 조합이 포함될 수 있다. 애플리케이션(208)은 컨버전 엔진(212)의 인스턴스를 포함할 수 있다.
클라이언트 디바이스(102)는 하나 이상의 프로세서(200), 네트워크 인터페이스(202) 및 I/O 인터페이스(204)를 포함할 수 있다. 클라이언트 디바이스(102)는 메모리(206)를 포함할 수 있다. 메모리(206)는 프로세서(200)에 의해 실행될 때 프로세서(200)로 하여금 본 명세서에 기술된 하나 이상의 동작들을 수행하게 하는 기계 명령어를 저장한다. 프로세서(200)는 마이크로 프로세서, ASIC, FPGA 등 또는 이들의 조합을 포함할 수 있다. 프로세서(200)는 멀티코어 프로세서 또는 프로세서의 어레이일 수 있다. 메모리(206)는 전자, 광학, 자기 또는 프로세서(200)에 프로그램 명령어를 제공할 수 있는 임의의 기타 저장 디바이스를 포함할 수 있지만, 이에 한정되지 않는다. 메모리(206)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서가 명령어를 판독할 수 있는 임의의 기타 적절한 메모리를 포함할 수 있다. 명령어는 C, C++, C#, Java, JavaScript, Perl, HTML, XML, Python 및 Visual Basic과 같은 임의의 적절한 컴퓨터 프로그래밍 언어의 코드를 포함할 수 있다.
클라이언트 디바이스(102)는 하나 이상의 네트워크 인터페이스(202)를 포함할 수 있다. 네트워크 인터페이스(202)는 10 Base T, 100 Base T 또는 1000 Base T("기가비트")를 포함하는 이더넷; 802.11a, 802.11b, 802.11g, 802.11n 또는 802.11ac와 같은 다양한 802.11 무선; CDMA, LTE, 3G 또는 4G 셀룰러를 포함하는 셀룰러; Bluetooth 또는 기타 단거리 무선 연결; 또는 네트워크(106)와 통신하기 위한 이들 또는 다른 인터페이스의 임의의 조합을 포함하는 임의의 유형 및 형태의 인터페이스를 포함할 수 있다. 클라이언트 디바이스(102)는 상이한 유형의 복수의 네트워크 인터페이스(202)를 포함할 수 있어, 상이한 서브-네트워크를 통해 다양한 네트워크(106) 또는 인터넷과 같은 네트워크(106)로의 연결을 허용한다.
클라이언트 디바이스(102)는 하나 이상의 I/O 인터페이스(204)를 포함할 수 있다. I/O 인터페이스(204)는 하드웨어 기반 또는 소프트웨어 기반일 수 있다. I/O 인터페이스(204)는 감각 정보(예를 들어, 디스플레이상의 시각화, 하나 이상의 사운드, 촉각적 피드백 등)를 생성함으로써 사용자에게 데이터를 전달하고 및/또는 사용자로부터 수신된 감각 정보를 전자 신호(예를 들어, 키보드, 마우스, 포인팅 디바이스, 터치 스크린 디스플레이, 마이크로폰 등)로 변환하는 임의의 전자 디바이스일 수 있다. 하나 이상의 사용자 인터페이스 디바이스들은 다양한 구현예에 따라, 클라이언트 디바이스(102)의 하우징 내부(예: 내장 디스플레이, 터치 스크린, 마이크로폰 등) 또는 클라이언트 디바이스(102)의 하우징 외부(예: 클라이언트 디바이스(102)에 연결된 모니터, 클라이언트 디바이스(102)에 연결된 스피커 등)에 있을 수 있다.
클라이언트 디바이스(102)는 메모리(206)에 데이터 및 프로세서 실행가능 명령어를 저장할 수 있다. 예를 들어, 클라이언트 디바이스(102)는 애플리케이션(208)을 메모리(206)에 프로세서 실행 가능 명령어로서 저장할 수 있다. 애플리케이션(208)은 클라이언트 디바이스(예를 들어, 디스플레이, 스피커 등)의 I/O 인터페이스(204)를 통해 콘텐츠를 수신하고 콘텐츠를 디스플레이 또는 출력하기 위한 애플리케이션, 애플릿, 스크립트, 서비스, 데몬, 루틴 또는 기타 실행 가능한 로직일 수 있다. 예를 들어, 애플리케이션(208)은 랜딩 페이지(218) 또는 다른 웹페이지 또는 콘텐츠를 수신하고 렌더링하는 웹브라우저일 수 있다. 애플리케이션(208)은 네트워크 인터페이스(202)를 통해 수신되고 및/또는 프로세서(200)에 의해 로컬적으로 생성된 콘텐츠를 디스플레이하기 위한 기능을 포함할 수 있다.
클라이언트 디바이스(102)는 디바이스 ID(210)를 포함할 수 있다. 클라이언트 디바이스(102)는 디바이스 ID(210)로 자신을 중개 서버(108), 콘텐츠 서버(110) 또는 원격 서버(104)에 식별할 수 있다. 디바이스 ID(210)는 영숫자 문자열, 데이터 문자열, 일련 번호, 미디어 액세스 제어(MAC) 주소, 인터넷 프로토콜(IP) 주소, 사용자 이름 또는 계정 이름, GUID(Globally Unique Identifier), 쿠키, 임의 또는 의사 난수, 또는 이들 또는 다른 식별자의 조합을 포함하는 임의의 기타 유형 및 형태의 식별자일 수 있다. 예를 들어, 디바이스 ID(210)는 클라이언트 디바이스의 사용자 에이전트 또는 MAC 주소의 해시일 수 있다. 디바이스 식별자(210)는 클라이언트 디바이스(102)에 고정될 수 있다. 예를 들어, 디바이스 ID(210)는 제조업체에 의해 디바이스에서 미리 구성될 수 있다. 예를 들어, 디바이스 ID(210)는 제조업체 일련 번호 또는 MAC 주소일 수 있다. 디바이스 ID(210)는 클라이언트 디바이스(102), 원격 서버(104), 중개 서버(108) 또는 콘텐츠 서버(110)를 동적으로 설정할 수 있다. 디바이스 ID(210)는 정적일 수 있다. 디바이스 ID(210)는 미리 결정된 인터페이스에서 업데이트될 수 있다. 예를 들어, 고유하거나 새로운 디바이스 식별자(210)는 중개 서버(108)와의 각 통신에 대해 설정될 수 있다. 디바이스 ID(210)는 주기적으로(예를 들어, 매시간, 매일, 매주 등) 또는 다른 간격(예를 들어, 클라이언트 디바이스의 재시작, 인터넷 서비스에 로그인 등)으로 변경되거나 업데이트될 수 있다. 디바이스 ID(210)는 하나 이상의 다른 디바이스 식별자(210)(예를 들어, 모바일 디바이스에 대한 디바이스 식별자, 가정용 컴퓨터에 대한 디바이스 식별자 등)와 연관될 수 있다.
클라이언트 디바이스(102)는 컨버전 엔진(212)를 포함할 수 있다. 컨버전 엔진(212)은 클라이언트 디바이스(102)에 콘텐츠 아이템을 등록하기 위한 애플리케이션, 애플릿, 스크립트, 서비스, 데몬, 루틴 또는 기타 실행 가능한 로직일 수 있다. 컨버전 엔진(212)은 애플리케이션(208)의 컴포넌트일 수 있거나 애플리케이션(208)과 별개일 수 있다. 예를 들어, 컨버전 엔진(212)은 특정 애플리케이션(208)과 별개이고 복수의 애플리케이션(208)(예를 들어, 클라이언트 디바이스 웹브라우저 및 이메일 클라이언트)로부터 API 호출을 수신할 수 있는 스크립트일 수 있다. 도 3 및 도 4와 관련하여 더 설명되는 바와 같이, 컨버전 엔진(212)은 애플리케이션(208)과 인터렉션하기 위한 콘텐츠 아이템에 대한 인터페이스를 제공할 수 있다. 예를 들어, 컨버전 엔진(212)은 애플리케이션(208)의 모듈, 서브 루틴 또는 애드온일 수 있다. 예를 들어, 컨버전 엔진(212)은 콘텐츠 아이템을 애플리케이션(208)에 등록하게 할 수 있는 API 또는 다른 후크를 제공할 수 있다. 예를 들어, 콘텐츠 아이템은 애플리케이션(208)에 의해 실행될 때(프로세서(200)를 통해) API를 호출하는 프로세서 실행 가능 명령어를 포함할 수 있다. 호출은 애플리케이션(208)에 콘텐츠 아이템을 등록하는 것일 수 있다. 호출은 페이로드를 포함할 수 있다. 페이로드는 캠페인 ID, 랜딩 페이지 URL 및 보고 URL을 포함할 수 있다. 애플리케이션(208)에 등록되는 경우, 컨버전 엔진(212)은 등록 테이블(214)에 페이로드의 콘텐츠를 저장할 수 있다. 예를 들어, 등록 테이블(214)은 애플리케이션(208)에 등록된 각 콘텐츠 아이템에 대한 엔트리를 포함할 수 있는 테이블일 수 있다. 테이블의 각 아이템은 예를 들어 캠페인 ID, 랜딩 페이지 URL, 보고 URL 및 타임스탬프를 저장할 수 있다. 타임스탬프는 엔트리가 등록 테이블(214)에 저장되었던 시간을 나타낼 수 있다. 일부 구현예에서, 페이로드의 콘텐츠는 랜딩 페이지 URL에 대한 등록 테이블(214)에서 인덱싱될 수 있다.
메모리(206)는 집계 테이블(216)을 포함할 수 있다. 도 3 및 4와 관련하여 더 설명된 바와 같이, 컨버전 엔진(212)은 하나 이상의 보고 정책을 포함할 수 있다. 보고 정책은 보고 메시지를 보고 URL에 단일 메시지(예: 생성시 또는 사용자 프라이버시 보호를 위한 시간 지연 포함)로 전송해야하는지 또는 배치(batch)로 전송해야하는지 여부를 나타낼 수 있다. 보고 정책에 배치 보고 플래그가 설정되면, 컨버전 엔진(212)은 보고 메시지를 배치로 전송할 수 있다. 보고 메시지 생성에 응답하여, 배치 전송이 활성화될 때, 컨버전 엔진(212)은 배치 전송 요건이 만족될 때까지 보고 메시지를 집계 테이블(216)에 저장할 수 있다. 예를 들어, 보고 정책은 배치 전송이 주기적으로(예: 12 시간마다) 전송되어야 함을 나타낼 수 있다. 컨버전 엔진(212)은 전송 시간이 트리거될 때까지(예: 위의 예에서 00:00 또는 12:00) 생성된 보고 메시지를 집계 테이블(216)에 저장할 수 있다. 컨버전 엔진(212)은 그 다음 집계 테이블(216)로부터 보고 메시지를 판독하고 보고 메시지를 각각의 보고 URL로 전송할 수 있다. 컨버전 엔진(212)은 집계 테이블(216)로부터 보고된 보고 메시지를 제거하거나 삭제할 수 있다. 일부 구현예에서, 보고 정책은 랜딩 페이지(예를 들어, 원격 서버(104))에서 생성될 수 있다. 예를 들어, 원격 서버(104)는 보고 메시지 또는 컨버전 이벤트의 다른 표시를 수신할 수 있는 보고 URL 또는 URL을 특정할 수 있다.
또한 도 2에 도시된 바와 같이, 시스템(100)은 중개 서버(108)를 포함할 수 있다 클라이언트 디바이스(102)와 마찬가지로, 중개 서버(108)는 하나 이상의 프로세서(200), 메모리(206), 네트워크 인터페이스(202) 및 I/O 인터페이스(204)를 포함할 수 있다. 중개 서버(108)는 네트워크(106)를 통해 클라이언트 디바이스(102), 콘텐츠 서버(110) 또는 원격 서버(104)와 통신할 수 있다. 중개 서버(108)의 메모리(206)는 중개 서버(108)의 프로세서(200)에 의한 실행을 위해 하나 이상의 애플리케이션을 저장할 수 있다. 예를 들어, 중개 서버(108)는 중개 서버(108)가 FTP 서버, 웹 서버, 메일 서버, 파일 공유 서버, 피어 투 피어 서버로 기능할 수 있게 하는 애플리케이션, 또는 콘텐츠 또는 클라이언트가 콘텐츠 서버(110)에서 콘텐츠에 액세스하게 하는 리디렉션 명령을 전달하기 위한 기타 그러한 애플리케이션을 포함할 수 있다.
중개 서버(108)는 콘텐츠 제공자 선택기(220)를 포함할 수 있다. 콘텐츠 제공자 선택기(220)는 애플리케이션, 서버, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직을 포함할 수 있다. 콘텐츠 제공자 선택기(220)는 콘텐츠 서버(110)의 리스트로부터 콘텐츠 서버(110)를 선택하도록 구성될 수 있다. 예를 들어, 콘텐츠 제공자 선택기(220)는 라운드 로빈 또는 다른 로드 밸런싱 시스템을 사용하거나 경매 기반 시스템을 통해 콘텐츠 서버(110)의 리스트로부터 콘텐츠 서버(110)를 선택할 수 있다. 콘텐츠 제공자 선택기(220)는 콘텐츠를 클라이언트 디바이스(102)에 제공할 기회에 대한 입찰과 같은 요청을 콘텐츠 서버(110)로 전송하고 그로부터 응답을 수신하도록 구성될 수 있다. 콘텐츠 서버(110)는 선택된 콘텐츠 서버(110)의 도메인 또는 주소와 같은 식별자를 포함할 수 있는 클라이언트 디바이스(102)의 요청에 대한 응답을 생성하도록 구성될 수 있으므로, 클라이언트 디바이스(102)는 디바이스 ID(210)를 생성하거나 검색할 수 있고, 콘텐츠 아이템의 선택을 위해 중개 서버(108) 또는 콘텐츠 서버(110)에 디바이스 ID(210)를 제공한다.
또한 도 2에 도시된 바와 같이, 시스템(100)은 복수의 콘텐츠 서버(110)를 포함할 수 있다. 콘텐츠 서버(110) 각각은 네트워크(106)에 연결되고 클라이언트 디바이스(102)에 직접 또는 중개 서버(108)를 통해 콘텐츠 아이템(예를 들어, 콘텐츠(222))을 제공하도록 구성된 하나 이상의 컴퓨팅 디바이스를 포함할 수 있다. 콘텐츠 서버(110)에 의해 제공되는 콘텐츠(222)는 콘텐츠(222)가 예를 들어 원격 서버(104)에 의해 제공되는 프라이머리 콘텐츠의 콘텐츠 슬롯으로 렌더링될 수 있기 때문에 세컨더리 콘텐츠로 지칭될 수 있다. 일부 구현예에서, 콘텐츠(222)는 프라이머리 콘텐츠이거나 또는 이를 포함할 수 있다. 콘텐츠 서버(110)는 콘텐츠 제공자, 서버, 웹 서버, 데이터 서버, 퍼블리셔, 서비스 제공자 또는 다른 유사한 용어로 다양하게 지칭될 수 있다. 콘텐츠 서버(110)는 서버 팜 또는 클라우드로 구성된 복수의 컴퓨팅 디바이스를 포함할 수 있으며, 라우터, 로드 밸런서, 네트워크 주소 변환기, 방화벽 또는 기타 그러한 디바이스를 포함할 수 있다. 콘텐츠 서버(110)는 컴퓨터 서버(예를 들어, FTP 서버, 파일 공유 서버, 웹 서버 등) 또는 서버의 조합(예를 들어, 데이터 센터, 클라우드 컴퓨팅 플랫폼 등)일 수 있다. 콘텐츠 서버(110)는 텍스트, 이미지, 비디오, 오디오, 멀티미디어 또는 기타 데이터, 또는 이들의 임의의 조합을 포함하는 임의의 유형 및 형태의 콘텐츠를 제공할 수 있다. 콘텐츠(222)는 라이브 미디어 콘텐츠, 사전 녹화된 미디어 콘텐츠, 렌더링된 콘텐츠, 영화, 텔레비전 쇼, 팟캐스트, 비디오 블로그, 비디오 게임 또는 기타 인터렉티브 콘텐츠, 임의의 형식의 광고, 소셜 미디어, 또는 임의의 다른 유형 및 형태의 콘텐츠를 포함할 수 있다.
콘텐츠 서버(110)는 하나 이상의 프로세서(200), 네트워크 인터페이스(202), I/O 인터페이스(204) 및/또는 메모리(206)를 포함할 수 있다. 콘텐츠 서버(110)는 콘텐츠 선택기(224)를 포함할 수 있다. 콘텐츠 선택기(224)는 클라이언트 디바이스(102)로의 전달을 위해 콘텐츠(222)를 선택하기 위한 애플리케이션, 서비스, 서버, 데몬, 루틴, 또는 다른 실행 가능한 로직을 포함할 수 있다. 콘텐츠 선택기(224)는 식별자 데이터베이스에 저장된 클라이언트 디바이스(102)에 대한 정보에 기초하여 클라이언트 디바이스(102)에 전달하기 위한 콘텐츠(222)를 선택할 수 있다. 예를 들어, 데이터베이스는 디바이스 성능(예를 들어, 화면 해상도 또는 배향, 색 깊이, 대역폭 등)에 대한 정보 또는 맞춤형 콘텐츠를 선택하기 위한 다른 정보를 포함할 수 있다. 정보는 디바이스 ID로 데이터베이스에서 색인화될 수 있다. 콘텐츠 선택기(224)는 클라이언트 디바이스(102)로부터 수신된 디바이스 ID(210)에 기초하여 데이터베이스로부터 정보를 선택할 수 있다. 콘텐츠(222) 선택에 응답하여, 콘텐츠 선택기(224)는 콘텐츠(222)를 클라이언트 디바이스(102)에 푸시, 스트리밍 또는 전송할 수 있다. 콘텐츠(222)는 오디오, 비디오, 애니메이션, 텍스트, 멀티미디어, 스틸 또는 애니메이션 그래픽, 실행 가능한 스크립트를 포함하는 임의의 유형 및 형태의 데이터 또는 임의의 기타 유형 및 형태의 콘텐츠일 수 있다. 콘텐츠(222)의 각 아이템은 태그, 식별자, ULR, 또는 프로세서 실행 가능 명령어와 연관될 수 있다. 예를 들어, 각각의 콘텐츠(222)는 애플리케이션(208)이 콘텐츠(222)를 렌더링하고 디스플레이할 때, 렌더링된 콘텐츠(222)의 선택(예를 들어, 클릭)이 애플리케이션(208)을 콘텐츠(222)에 의해 식별된 URL로 리디렉션될 수 있도록 하는 프로세서 실행 가능 명령어를 포함할 수 있다. 예를 들어, 콘텐츠(222)는 제2 웹페이지에 대한 웹 링크(예를 들어, URL)를 포함하는 것으로 콘텐츠(222)를 식별하는 HTML 태그를 포함할 수 있다. URL은 원격 서버(104)에 의해 호스팅되는 랜딩 페이지(218)의 URL일 수 있다. 콘텐츠(222)는 보고 URL 및 캠페인 ID를 포함 또는 내포할 수 있다. 캠페인 ID는 콘텐츠 서버(110)에 대한 콘텐츠(222)의 클래스, 그룹, 주제, 유형 또는 기타 특성을 식별할 수 있다. 보고 URL은 콘텐츠(222)가 클라이언트 디바이스(102) 애플리케이션(208)에 의해 렌더링될 때 핑(ping)되는 네트워크화된 서버의 URL일 수 있다. 보고 URL은 중개 서버(108), 콘텐츠 서버(110), 또는 다른 네트워크 서버의 URL일 수 있다.
또한 도 2에 도시된 바와 같이, 시스템(100)은 하나 이상의 원격 서버(104)를 포함할 수 있다. 원격 서버(104)는 하나 이상의 프로세서(200), 네트워크 인터페이스(202) 및/또는 I/O 인터페이스(204)를 포함할 수 있다. 원격 서버(104)의 메모리(206)는 원격 서버(104)의 프로세서(200)에 의한 실행을 위한 하나 이상의 애플리케이션을 저장할 수 있다. 예를 들어, 원격 서버(104)는 원격 서버(104)가 FTP 서버, 웹 서버, 메일 서버, 파일 공유 서버, 피어 투 피어 서버, 또는 클라이언트 디바이스(102)에 콘텐츠를 전달하기 위한 다른 그러한 애플리케이션으로서 기능하게 하는 애플리케이션을 포함할 수 있다. 예를 들어, 원격 서버(104)는 메모리(206)에 저장된 하나 이상의 랜딩 페이지(218)를 포함할 수 있다. 랜딩 페이지(218)는 웹페이지 또는 오디오, 비디오, 애니메이션, 텍스트, 멀티미디어, 스틸 또는 애니메이션 그래픽, 실행 가능한 스크립트와 같은, 그러나 이에 한정되지 않는, 기타 유형의 콘텐츠, 또는 임의의 기타 유형 및 형태의 콘텐츠일 수 있다. 각 랜딩 페이지(218)는 URL에 의해 식별될 수 있다. 랜딩 페이지(218)를 검색하거나 액세스하기 위해, URL이 클라이언트 디바이스(102)의 애플리케이션(208)에 입력될 수 있다. 클라이언트 디바이스(102)는 URL에 위치된 랜딩 페이지(218)(또는 다른 형태의 콘텐츠)에 대해 원격 서버(104)에 대한 요청을 생성할 수 있다. 랜딩 페이지(218)는 콘텐츠(222)의 리디렉션 타겟으로서 기능할 수 있다. 예를 들어, 콘텐츠(222)가 웹브라우저에 의해 렌더링되는 경우, 콘텐츠(222)는 랜딩 페이지(218)에 대한 하이퍼링크를 포함할 수 있어서, 콘텐츠(222)가 사용자에 의해 활성화(예를 들어, 클릭 또는 선택)될 때, 애플리케이션(208)이 랜딩 페이지(218)로 리디렉션될 수 있도록 한다. 일부 구현예에서, 클라이언트 디바이스(102)의 사용자는 기본적으로 랜딩 페이지(218)로 이동할 수 있다. 예를 들어, 사용자는 랜딩 페이지의 URL을 웹브라우저의 탐색 바에 입력하거나 렌더링된 콘텐츠(222)의 활성화에 의해 랜딩 페이지(218)로 리디렉션되지 않고 온라인 검색을 통해 랜딩 페이지(218)를 찾을 수 있다.
도 3은 네트워크 및 디바이스 환경에서 데이터 교환을 인가하는 흐름도(300)를 도시한다. 또한 도 1 및 도 2를 참조하면, 단계(302)에서, 클라이언트 디바이스(102)는 제1 원격 서버(104(1))로부터 콘텐츠를 가져올 수 있다. 예를 들어, 원격 서버(104(1))는 하나 이상의 웹사이트 또는 다른 프라이머리 콘텐츠를 호스팅할 수 있다. 사용자는 원격 서버(104(1))에 의해 호스팅되는 웹사이트를 포인팅하는 URL을 입력하거나 선택할 수 있다. 클라이언트 디바이스(102)상의 애플리케이션(208)(예를 들어, 웹브라우저)은 URL에 의해 식별된 콘텐츠(예를 들어, 웹사이트)에 대한 요청을 생성할 수 있다. 클라이언트 디바이스(102)는 HTTP 요청 또는 RESTful 요청과 같은 임의의 적절한 프로토콜을 통해 원격 서버(104(1))에 요청을 전송할 수 있다. 요청은 디바이스 식별자, 계정 식별자, 사용자 식별자, 세션 식별자, 또는 다른 그러한 식별자, 또는 원격 서버(104(1))를 생성하고 클라이언트 디바이스에 저장된 쿠키를 포함할 수 있다. 예를 들어, 원격 서버(104(1))는 이전에 클라이언트 디바이스(102)에 쿠키를 제공했을 수 있고(예를 들어, 인증 절차 또는 다른 그러한 이벤트 동안), 클라이언트 디바이스(102)는 이후 요청에서 동일한 쿠키를 제공할 수 있다.
단계(304)에서, 원격 서버(104(1))는 콘텐츠를 반환할 수 있다. 콘텐츠는 웹페이지 또는 요청에 포함된 URL에서 식별된 다른 유형의 콘텐츠일 수 있다. 반환된 콘텐츠는 하나 이상의 콘텐츠 슬롯을 포함할 수 있다. 콘텐츠 슬롯은 중개 서버(108)를 통해 콘텐츠 서버(110)로부터의 콘텐츠(222)로 채워질 수 있다. 콘텐츠 슬롯은 애플리케이션(208)으로 하여금 애플리케이션(208)이 원격 서버(104(1))로부터의 콘텐츠를 적어도 부분적으로 렌더링하는 (또는 명령어를 실행하는) 것에 응답하여, 콘텐츠 슬롯을 채우도록 콘텐츠에 대한 요청을 중개 서버(108) 또는 콘텐츠 서버(110)에 생성하게 할 수 있는 프로세서 실행 가능 명령어를 포함할 수 있다.
단계(306)에서, 클라이언트 디바이스(102)는 원격 서버(104(1))로부터의 콘텐츠를 렌더링할 수 있다. 전술한 바와 같이, 일례에서, 콘텐츠는 원격 서버(104(1))에 의해 호스팅되는 웹페이지일 수 있다. 콘텐츠는 애플리케이션(208)으로 하여금 중개 서버(108)와 같은 추가 네트워크 리소스로부터 추가 콘텐츠를 요청하게 할 수 있는 프로세서 실행 가능 명령어를 포함할 수 있다. 예를 들어, 웹페이지는 중개 서버(108)로부터 콘텐츠를 요청하기 위한 프로세서 실행 가능 명령어를 포함하는 세컨더리 콘텐츠 슬롯을 포함할 수 있다.
단계(308)에서, 클라이언트 디바이스(102)는 중개 서버(108)로부터 콘텐츠를 가져올 수 있다. 세컨더리 콘텐츠 슬롯을 렌더링하는 것은 애플리케이션(208)으로 하여금 세컨더리 콘텐츠 슬롯을 채우기(예를 들어, 렌더링) 위해 중개 서버(108)에 대한 콘텐츠에 대한 요청을 생성하게 할 수 있다. 클라이언트 디바이스(102)는 HTTP 요청 또는 RESTful 요청과 같은 임의의 적절한 프로토콜을 통해 원격 서버(104(1))에 요청을 전송할 수 있다. 요청은 디바이스 식별자, 계정 식별자, 사용자 식별자, 세션 식별자 또는 기타 그러한 식별자 또는 클라이언트 디바이스에 의해 생성되거나 제공되는 쿠키를 포함할 수 있다. 예를 들어, 원격 서버(104(1))는 이전에 클라이언트 디바이스(102)에 쿠키를 제공했을 수 있고(예를 들어, 인증 절차 또는 다른 그러한 이벤트 동안), 클라이언트 디바이스(102)는 이후 요청에서 동일한 쿠키를 제공할 수 있다.
단계(310)에서, 중개 서버(108)는 콘텐츠를 클라이언트 디바이스(102)로 반환할 수 있다. 일부 구현예에서, 중개 서버(108)는 단계(308)에서 콘텐츠에 대한 요청을 콘텐츠 서버(110)에 포워딩할 수 있다. 중개 서버(108)는 콘텐츠를 제공하기 위해 콘텐츠 서버(110)의 리스트로부터 콘텐츠 서버(110)를 선택할 수 있다. 예를 들어, 중개 서버(108)는 라운드 로빈 또는 다른 로드 밸런싱 시스템을 사용하거나 경매 기반 시스템을 통해 콘텐츠 서버(110)의 리스트로부터 콘텐츠 서버(110)를 선택할 수 있다. 콘텐츠 서버(110)는 요청에 응답하여 반환할 콘텐츠 아이템을 선택할 수 있고, 콘텐츠 아이템을 클라이언트 디바이스(102)에 직접 또는 중개 서버(108)를 통해 클라이언트 디바이스(102)에 전송할 수 있다. 예를 들어, 콘텐츠 서버(110)는 단계(310)에서 콘텐츠 아이템을 클라이언트 디바이스(102)에 전송할 수 있는 중개 서버(108)에 콘텐츠 아이템을 전송할 수 있다.
단계(312)에서, 클라이언트 디바이스(102)는 콘텐츠를 렌더링할 수 있다. 클라이언트 디바이스(102)는 단계(304)에서 반환된 콘텐츠의 렌더링의 일부로서 콘텐츠를 렌더링할 수 있다. 예를 들어, 단계(310)에서 반환된 콘텐츠는 콘텐츠에 대한 요청의 생성을 유발한 콘텐츠 슬롯으로 렌더링될 수 있다. 단계(314)에서, 콘텐츠 아이템은 클라이언트 디바이스(102)에 등록될 수 있다. 콘텐츠 아이템을 렌더링하는 것(단계(312)에서)은 콘텐츠 아이템이 클라이언트 디바이스(102)에 등록되게 할 수 있다. 예를 들어, 콘텐츠 아이템은 페이로드(예를 들어, 보이지 않는 데이터) 및 프로세서 실행 가능 명령어를 포함할 수 있다. 페이로드는 예를 들어 랜딩 페이지의 URL, 하나 이상의 식별자 및 보고 URL을 포함할 수 있다. 콘텐츠 아이템은 또한 콘텐츠 아이템이 애플리케이션(208)에 등록되게 할 수 있는 프로세서 실행 가능 명령어를 포함할 수 있다. 예를 들어, 콘텐츠 아이템은 예를 들어 클라이언트 디바이스(102)상의 컨버전 엔진(212)에 의해 콘텐츠 아이템에 노출된 JavaScipt API에 대한 호출을 포함할 수 있다. 다른 예에서, 콘텐츠 아이템은 하나 이상의 속성 또는 프로세서 실행 가능 명령어를 포함할 수 있는 태그를 포함할 수 있다. API 호출은 콘텐츠 아이템의 페이로드를 포함할 수 있다. 예를 들어, API에 대한 호출은 랜딩 페이지의 URL, 하나 이상의 식별자 및 보고 URL을 포함할 수 있다. 컨버전 엔진(212)은 API 호출로부터의 데이터를 등록 테이블(214)에 저장할 수 있다. 단계(302-314)는 여러 번 반복될 수 있다. 예를 들어, 원격 서버(104(1))로부터 클라이언트 디바이스(102)에 제공되는 콘텐츠는 중개 서버(108)로부터 복수의 콘텐츠 아이템이 반환되는 다수의 콘텐츠 슬롯을 포함할 수 있다. 일부 구현예에서, 콘텐츠 아이템 각각은 컨버전 엔진(212)을 통해 등록 테이블(214)에 등록될 수 있다. 단계(302-314)는 복수의 상이한 제1 원격 서버(104(1))에 대해 복수 회 반복될 수 있다. 예를 들어, 사용자는 각각 콘텐츠 슬롯을 포함할 수 있는 복수의 다른 웹페이지로 이동할 수 있다. 클라이언트 디바이스(102)가 웹페이지를 탐색할 때 서로 다른 웹페이지 각각에 대한 콘텐츠 슬롯을 채우기 위해 반환된 콘텐츠 아이템이 등록 테이블(214)에 등록될 수 있다.
단계(316)에서, 클라이언트 디바이스(102)는 제2 원격 서버(104(2))로부터 콘텐츠를 가져올 수 있다. 단계(316)에서 콘텐츠에 대한 요청은 하나 이상의 콘텐츠 아이템이 등록 테이블(214)에 등록된 후에 발생할 수 있다. 제1 원격 서버(104(2))와 같이 제2 원격 서버(104(2))는 하나 이상의 웹페이지를 호스팅할 수 있다. 일부 구현예에서, 웹페이지 중 하나 이상은 등록 테이블(214)에 등록된 콘텐츠 아이템 중 하나에 대한 랜딩 페이지일 수 있다. 콘텐츠 아이템이 웹브라우저를 웹페이지로 안내하는 URL을 포함하는 경우 웹페이지는 콘텐츠 아이템에 대한 랜딩 페이지일 수 있다. 단계(316)에서, 클라이언트 디바이스(102)는 HTTP 요청 또는 RESTful 요청과 같은 임의의 적절한 프로토콜을 통해 원격 서버(104(2))에 요청을 전송할 수 있다.
단계(318)에서, 원격 서버(104(2))는 요청된 콘텐츠를 반환할 수 있다. 원격 서버(104(2))는 HTTP, HTTPS, 또는 다른 프로토콜을 통해 클라이언트 디바이스(102)에 콘텐츠를 전송할 수 있다. 원격 서버(104(2))로부터 콘텐츠를 수신하는 것에 응답하여, 클라이언트 디바이스(102)는 웹브라우저를 통해 예를 들어 콘텐츠를 렌더링할 수 있다. 콘텐츠를 렌더링하면 웹브라우저 사용자에게 콘텐츠를 디스플레이할 수 있다.
단계(320)에서, 컨버전 엔진(212)은 URL을 등록 테이블(214)의 URL에 매칭시킬 수 있다. 원격 서버(104(2))로부터 반환된 콘텐츠를 렌더링하는 것에 응답하여, 컨버전 엔진(212)은 반환된 콘텐츠에 대한 URL이 등록 테이블(214)에 등록되었는지를 결정할 수 있다. 일부 구현예에서, 등록 테이블(214)의 데이터는 URL에 의해 인덱싱될 수 있다. 이러한 예에서, 컨버전 엔진(212)은 원격 서버(104(2))로부터 반환된 콘텐츠의 URL을 키로 사용할 수 있다. 컨버전 엔진(212)은 임의의 데이터(예를 들어, 콘텐츠 아이템 식별자 또는 보고 URL)가 등록 테이블(214)의 URL과 연관되는지를 결정할 수 있다.
단계(320)에서 컨버전 엔진(212)이 일치하는 것을 찾으면, 단계(322)에서, 컨버전 엔진(212)은 보고 메시지를 전송할 수 있다. 컨버전 엔진(212)은 등록 테이블(214)에서 매칭된 URL에 대한 색인된 보고 URL에 보고 메시지를 전송할 수 있다. 일부 구현예에서, 보고 URL은 중개 서버(108)에 대한 또는 이와 연관된 URL일 수 있다(도 3에서 도시된 바와 같이). 일부 구현예에서, 보고 URL은 보고 메시지를 수신하고 중간 서버(108)와 같은 최종 목적지로 포워딩하는 프록시 디바이스를 위한 것일 수 있다. 프록시는 보고 메시지를 프로세싱하여 보고 메시지에서 식별 가능한 데이터를 제거할 수 있다. 예를 들어, 프록시는 보고 메시지에서 보고 메시지의 원래 IP 주소를 제거할 수 있다. 일부 구현예에서, 보고 URL은 원격 서버(104)와 연관된 URL일 수 있다. 보고 메시지는 보고 URL에 대한 핑백 메시지일 수 있다. 보고 URL에서 서버에 의한 보고 메시지의 수신은 클라이언트 디바이스가 콘텐츠 아이템을 렌더링 및 디스플레이했으며, 클라이언트 디바이스가 후속적으로 콘텐츠 아이템의 랜딩 페이지로 독립적으로 이동했음을 서버에 표시할 수 있다.
도 4는 네트워크 및 디바이스 환경에서 데이터 교환을 인가하는 예시적 방법(400)을 도시한다. 방법(400)은 방법(400)에서 클라이언트 디바이스(102), 원격 서버(104) 및 중개 서버(108)에 의해 수행되는 단계를 나타낼 수 있다. 또한 도 1 및 도 2를 참조하면, 단계(402)에서, 클라이언트 디바이스(102)는 중개 서버(108)로부터 콘텐츠를 요청할 수 있다. 클라이언트 디바이스(102)는 예를 들어 웹페이지의 콘텐츠 슬롯을 렌더링하는 것에 응답하여 콘텐츠에 대한 중개 서버(108)에 대한 요청을 생성할 수 있다. 예를 들어, 웹페이지의 콘텐츠 슬롯은 웹브라우저가 중개 서버(108)에 대한 요청을 생성하게 할 수 있는 프로세서 실행 가능 명령어를 포함할 수 있다. 클라이언트 디바이스(102)는 HTTP 요청 또는 RESTful 요청과 같은 임의의 적절한 프로토콜을 통해 원격 서버(104(1))에 요청을 전송할 수 있다. 요청은 디바이스 식별자, 계정 식별자, 사용자 식별자, 세션 식별자 또는 기타 그러한 식별자 또는 클라이언트 디바이스(102)에 의해 생성되거나 제공되는 쿠키를 포함할 수 있다. 예를 들어, 원격 서버(104(1))는 이전에 클라이언트 디바이스(102)에 쿠키를 제공했을 수 있고(예를 들어, 인증 절차 또는 다른 그러한 이벤트 동안), 클라이언트 디바이스(102)는 이후 요청에서 동일한 쿠키를 제공할 수 있다.
단계(404)에서, 요청에 응답하여, 중개 서버(108)는 콘텐츠를 선택할 수 있다. 일부 구현예에서, 중개 서버(108)는 콘텐츠를 선택하거나 제공할 수 있는 콘텐츠 서버(110)를 선택할 수 있다. 예를 들어, 중개 서버(108)는 라운드 로빈 또는 다른 로드 밸런싱 시스템을 사용하거나 경매 기반 시스템을 통해 콘텐츠 서버(110)의 리스트로부터 콘텐츠 서버(110)를 선택할 수 있다. 콘텐츠 서버(110)는 요청에 응답하여 반환할 콘텐츠 아이템을 선택할 수 있고, 콘텐츠 아이템을 클라이언트 디바이스(102)에 직접 또는 중개 서버(108)를 통해 클라이언트 디바이스(102)에 전송할 수 있다. 예를 들어, 콘텐츠 서버(110)는 콘텐츠 아이템을 클라이언트 디바이스(102)에 전송할 수 있는 중개 서버(108)에 콘텐츠 아이템을 전송할 수 있다. 단계(406)에서, 중개 서버(108)는 단계(402)에서의 요청에 대한 응답으로서 콘텐츠를 클라이언트 디바이스(102)에 전송할 수 있다.
단계(408)에서, 콘텐츠 아이템은 클라이언트 디바이스(102)에 등록될 수 있다. 콘텐츠는 페이로드(예를 들어, 보이지 않는 데이터) 및 프로세서 실행 가능 명령어를 포함할 수 있다. 콘텐츠의 렌더링 동안 프로세서 실행 가능 명령어의 실행은 컨버전 엔진(212)에 의해 제공되는 API에 대한 호출을 생성할 수 있다. API 호출을 통해, 콘텐츠 아이템은 클라이언트 디바이스(102)에 콘텐츠 아이템을 등록하기 위해 컨버전 엔진(212)에 페이로드를 전달할 수 있다. 페이로드는 예를 들어 랜딩 페이지의 URL, 캠페인 ID, 하나 이상의 식별자 및 보고 URL을 포함할 수 있다. 캠페인 ID는 콘텐츠 아이템을 중개 서버(108) 또는 콘텐츠 서버(110)에 식별할 수 있다. 동일한 유형, 동일한 서드 파티로부터의 또는 기타 관련이 있는 콘텐츠 아이템은 동일한 캠페인 ID를 포함할 수 있다.
일부 구현예에서, 컨버전 엔진(212)은 하나 이상의 등록 정책을 포함할 수 있다. 컨버전 엔진(212)은 클라이언트 디바이스(102)에 콘텐츠를 등록하기 전에 등록 정책이 충족되는지 여부를 결정할 수 있다. 등록 정책은 컴퓨팅 디바이스(102)의 사용자에 의해 설정되거나 제어될 수 있다. 예를 들어, 사용자는 컨버전 엔진(212)에 의해 등록될 수 있는 콘텐츠(또는 그 유형)를 나타내는 화이트리스트 또는 블랙리스트를 생성할 수 있다. 화이트리스트 및 블랙리스트는 URL에 의해 콘텐츠의 제공자(예를 들어, 중개 서버(108), 원격 서버(104) 또는 콘텐츠 서버(110))를 표시할 수 있다. 화이트리스트와 블랙리스트는 등록될 수 있는 콘텐츠 유형을 표시할 수 있다. 예를 들어, 사용자는 비디오 콘텐츠(제공자에 관계없이)가 컨버전 엔진(212)에 등록할 수 없도록 비디오 콘텐츠를 블랙리스팅할 수 있다. 등록 정책은 콘텐츠가 등록되기 전에 충족해야하는 하나 이상의 요구 사항을 포함할 수 있다. 예를 들어, 일부 구현예에서, 컨버전 엔진(212)은 콘텐츠가 미리 결정된 길이의 시간 동안 사용자에게 디스플레이되는 경우에만 콘텐츠를 등록할 수 있다. 컨버전 엔진(212)은 콘텐츠 아이템이 렌더링되고 사용자에게 디스플레이될 때 활성화(예를 들어, 시작)하는 타이머 스크립트를 생성하거나 실행할 수 있다. 컨버전 엔진(212)은 콘텐츠 아이템을 포함하는 창이 닫히거나, 사용자가 다른 웹페이지로 이동하거나, 그렇지 않으면 콘텐츠가 더 이상 이용 가능하지 않거나 사용자에게 디스플레이되지 않을 때 종료될 수 있다. 사용자는 시간 임계치(예: 10 초, 30 초, 1 분)을 설정할 수 있다. 컨버전 엔진(212)은 콘텐츠가 디스플레이되는 길이의 시간이 시간 임계치를 초과하는 경우에만 콘텐츠 아이템을 등록할 수 있다. 등록 정책은 등록을 위한 디스플레이 빈도를 설정할 수 있다. 디스플레이 빈도는 콘텐츠 아이템이 컨버전 엔진(212)에 등록될 수 있기 전에 콘텐츠 아이템이 디스플레이되어야 하는 시간 윈도우 당 횟수일 수 있다. 기간은 1일, 1주, 1개월 또는 3개월일 수 있다. 예를 들어, 등록 정책은 콘텐츠 아이템이 등록되기 전에 한 달에 적어도 두 번 콘텐츠 아이템을 디스플레이되어야 함을 나타낼 수 있다. 이러한 구현예에서, 컨버전 엔진(212)은 콘텐츠 아이템을 후보 콘텐츠 아이템으로서 등록 테이블(214)에 등록할 수 있다. 컨버전 엔진(212)은 미리 결정된 임계치 내에서 디스플레이 빈도를 충족하지 않는 후보 콘텐츠 아이템을 등록 테이블(214)로부터 주기적으로 제거(예를 들어, 삭제)할 수 있다. 예를 들어, 컨버전 엔진(212)은 매 시간, 일, 주 또는 월마다 후보 콘텐츠 아이템을 제거하고, 등록 정책에 의해 표시된 디스플레이 빈도보다 낮은 디스플레이 빈도를 갖는 후보 콘텐츠 아이템을 제거할 수 있다. 등록 테이블(214)의 콘텐츠 아이템은 콘텐츠 아이템이 디스플레이 빈도보다 여러 번 디스플레이되고, 컨버전 엔진(212)이 등록 테이블(214)의 콘텐츠 아이템의 엔트리에서 후보 태그를 제거할 때까지 수신 URL과 매칭하는데 이용 가능하지 않을 수 있다. 일부 구현예에서, 사용자는 등록 테이블(214)을 제거, 재설정 또는 삭제하도록 선택할 수 있다. 예를 들어, 컨버전 엔진(212)은 일, 주, 월 또는 3개월보다 오래된 등록 테이블(214)의 엔트리를 자동으로 삭제할 수 있다. 일부 구현예에서, 사용자는 콘텐츠 아이템이 등록 테이블(214)에 입력될 수 없도록 컨버전 엔진(212)을 비활성화할 수 있다.
등록 정책은 가시성 요구 사항을 포함할 수 있다. 일부 구현예에서, 중개 서버(108)로부터의 콘텐츠는 렌더링될 때 사용자에게 시각적으로 제시되지 않을 수 있다. 예를 들어, 콘텐츠는 클라이언트 디바이스(102)가 서드 파티에 대한 요청을 생성하게 하는 프로세서 실행 가능 명령어만을 포함할 수 있으며, 콘텐츠는 사용자에게 렌더링되고 디스플레이되는 텍스트, 이미지, 오디오 또는 기타 데이터를 포함하지 않을 수 있다. 다른 예에서, 콘텐츠는 상대적으로 작은 차원 크기로 렌더링되거나 그렇지 않으면 디스플레이될 때 사용자에게 숨겨질 수 있다. 예를 들어, 콘텐츠는 단일 픽셀로만 렌더링될 수 있다. 등록 정책의 가시성 요구 사항은 렌더링될 때 콘텐츠를 등록하는데 필요한 콘텐츠 크기를 나타낼 수 있다. 예를 들어, 가시성 요건은 컨버전 엔진(212)이 콘텐츠의 등록을 인가하기 위해 렌더링된 콘텐츠가 적어도 5픽셀 x 5픽셀이어야 함을 나타낼 수 있다. 이 예에서, 렌더링된 콘텐츠가 5픽셀 x 5픽셀 미만이면, 컨버전 엔진(212)은 콘텐츠 아이템을 등록하지 않기로 결정할 수 있다.
단계(410)에서, 클라이언트 디바이스(102)는 콘텐츠에 대한 요청을 생성할 수 있다. 단계(410)는 이 예에서 등록 테이블(214)이 하나 이상의 엔트리로 채워지면 발생할 수 있다. 원격 서버(104)는 하나 이상의 웹페이지를 호스팅할 수 있다. 일부 구현예에서, 웹페이지 중 하나 이상은 등록 테이블(214)에 등록된 콘텐츠 아이템 중 하나에 대한 랜딩 페이지일 수 있다. 콘텐츠 아이템이 웹브라우저를 웹페이지로 안내하는 URL을 포함하는 경우 웹페이지는 콘텐츠 아이템에 대한 랜딩 페이지일 수 있다. 클라이언트 디바이스(102)는 HTTP 요청 또는 RESTful 요청과 같은 임의의 적절한 프로토콜을 통해 원격 서버(104)에 요청을 전송할 수 있다. 단계(412)에서, 원격 서버(104)는 요청에서 식별된 콘텐츠를 선택할 수 있다. 예를 들어, 요청은 URL을 포함할 수 있고, 원격 서버(104)는 URL에 위치한 웹페이지를 가져올 수 있다. 단계(414)에서, 원격 서버(104)는 클라이언트 디바이스(102)에 콘텐츠를 전송할 수 있다.
단계(416)에서, 클라이언트 디바이스(102)는 원격 서버(104)로부터의 콘텐츠를 렌더링할 수 있다. 원격 서버(104)로부터의 콘텐츠는 웹페이지일 수 있다. 일부 구현예에서, 컨버전 엔진(212)은 애플리케이션(208)(예를 들어, 웹브라우저)이 원격 서버(104)로부터 웹페이지를 렌더링할 때 JavaScript(또는 다른 프로세서 실행 가능) 타이머를 실행할 수 있다. 컨버전 엔진(212)은 클라이언트 디바이스(102)의 웹브라우저가 다른 웹페이지로 이동하거나 웹페이지를 디스플레이하는 창을 닫을 때까지 타이머를 실행할 수 있다. 웹페이지는 URL과 연관될 수 있다. 컨버전 엔진(212)은 웹브라우저로부터 URL을 결정하거나 수신할 수 있다. 예를 들어, 컨버전 엔진(212)은 웹브라우저의 최전방 또는 활성 창의 위치표시 줄에 있는 URL에 대해 웹브라우저를 호출할 수 있다.
단계(418)에서, 컨버전 엔진(212)은 콘텐츠가 등록되었는지를 결정할 수 있다. 예를 들어, 컨버전 엔진(212)은 원격 서버(104)로부터 반환된 웹페이지가 등록 테이블(214)에 등록되었는지 또는 등록 테이블(214)의 엔트리와 연관되는지를 결정할 수 있다. 예를 들어, 전술한 바와 같이, 컨버전 엔진(212)은 등록 테이블(214)에 콘텐츠 아이템을 등록할 수 있다. 콘텐츠 아이템은 등록 테이블(214)에 엔트리로서 포함되는 페이로드를 포함할 수 있다. 등록 테이블(214)의 콘텐츠 아이템에 대한 엔트리는 랜딩 페이지 URL, 하나 이상의 식별자, 또는 다른 데이터를 포함할 수 있다. 등록 테이블(214)은 랜딩 페이지 URL에 의해 인덱싱될 수 있다. 컨버전 엔진(212)은 단계(412 및 414)에서 원격 서버(104)에 의해 제공된 웹페이지의 URL에 대한 등록 테이블(214)을 검색할 수 있다. 컨버전 엔진(212)은 등록 테이블(214)에 대한 입력 키로서 URL을 사용하여 등록 테이블(214)을 조회 또는 검색함으로써 웹페이지의 URL이 등록 테이블(214)에 저장된 랜딩 페이지 URL 중 하나와 일치하는지 여부를 결정한다. 컨버전 엔진(212)이 등록 테이블(214)에서 웹페이지의 URL을 찾으면, 클라이언트 디바이스(102)는 콘텐츠 아이템에 대한 랜딩 페이지였던 웹페이지를 표시한 중개 서버(108) 또는 콘텐츠 서버(110)로부터(단계(412 및 414)에서 원격 서버(104)로부터) 콘텐츠 아이템을 이전에 수신했다. 컨버전 엔진(212)이 URL과 일치하는 것을 찾지 못하면, 웹페이지는 이전에 수신된 콘텐츠 아이템에 대한 랜딩 페이지로 제공되지 않았으며, 방법(400)은 단계(420)에서 종료할 수 있다. 콘텐츠가 등록되면 방법(400)은 단계(422)로 계속할 수 있다.
단계(422)에서, 컨버전 엔진(212)은 보고가 인가되었는지 여부를 결정할 수 있다. 컨버전 엔진(212)은 보고가 인가되었는지 여부를 결정하기 위해 보고 정책을 참조할 수 있다. 보고 정책은 콘텐츠 렌더링이 보고될 수 있는지 여부에 대한 규칙을 포함할 수 있다. 예를 들어 보고 정책은 디스플레이 시간 요구 사항을 포함할 수 있다. 디스플레이 시간 요구 사항은 초, 분 또는 시간 단위의 시간 길이일 수 있다. 디스플레이 시간 요구 사항은 사용자 또는 중개 서버(108)에 의해 설정될 수 있다. 디스플레이 시간 요구 사항은 컨버전 엔진(212)이 콘텐츠에 대한 보고 메시지를 생성하기 전에 단계(416)에서 렌더링된 후 원격 서버의 콘텐츠가 디스플레이되어야 하는 시간의 길이를 나타낼 수 있다. 예를 들어, 전술한 바와 같이, 컨버전 엔진(212)은 콘텐츠가 사용자에게 렌더링될 때 타이머를 설정할 수 있다. 콘텐츠를 포함하는 창의 닫힘에 응답하여, 컨버전 엔진(212)은 타이머에 의해 결정된 시간을 디스플레이 시간 요구 사항과 비교할 수 있다. 디스플레이된 시간이 디스플레이 시간 요구 사항보다 적으면, 컨버전 엔진(212)은 보고가 인가되지 않은 것으로 결정할 수 있다. 디스플레이된 시간이 디스플레이 시간 요구 사항보다 큰 경우, 컨버전 엔진(212)은 보고가 인가된 것으로 결정할 수 있다. 보고 정책은 등록 정책의 화이트리스트 및 블랙리스트와 유사한 화이트리스트 및 블랙리스트를 포함할 수 있다. 클라이언트 디바이스(102) 또는 중개 서버(108)의 사용자는 보고가 인가된(화이트리스트) 또는 보고가 인가되지 않은(블랙리스트) 원격 서버(104)의 리스트를 생성할 수 있다. 단계(422)에서, 컨버전 엔진(212)이 보고가 인가되지 않았다고 결정하면, 방법(400)은 단계(420)에서 종료할 수 있다. 단계(422)에서, 컨버전 엔진(212)이 보고가 인가되었다고 결정하면, 방법(400)은 단계(424)로 계속할 수 있다.
단계(426)에서, 컨버전 엔진(212)은 보고 메시지를 생성할 수 있다. 전술한 바와 같이, 단계(418)에서, 컨버전 엔진(212)은 콘텐츠가 등록 테이블(214)에 등록되어 있음을 결정할 수 있다. 컨버전 엔진(212)은 예를 들어, 등록 테이블(214)에서 조회를 수행하기 위한 키로서 콘텐츠의 URL을 사용함으로써, 등록 테이블(214)로부터 콘텐츠와 연관된 엔트리를 검색할 수 있다. 콘텐츠의 엔트리는 하나 이상의 식별자(예를 들어, 캠페인 ID) 및 하나 이상의 URL(예를 들어, 보고 URL)을 포함할 수 있는 상기 설명된 페이로드를 포함할 수 있다. 보고 메시지는 핑백 응답일 수 있다. 핑백 응답은 XML 원격 절차 호출일 수 있다. 응답은 HTTP 또는 HTTPS를 통해 목적지로 전송될 수 있으며, 응답의 페이로드는 XML로 인코딩될 수 있다. 보고 메시지의 목적지는 등록 테이블(214)로부터 검색된 보고 URL일 수 있다. 응답 페이로드는 하나 이상의 식별자를 포함할 수 있다. 식별자는 디바이스 ID(210), 캠페인 ID 또는 이들의 조합일 수 있거나 이를 포함할 수 있다. 예를 들어, 컨버전 엔진(212)은 디바이스 ID(210)의 최상위 비트를 캠페인 ID와 연결할 수 있다. 응답 페이로드의 일부 또는 전부를 암호화하거나 해시할 수 있다. 예를 들어, 컨버전 엔진(212)은 브라우저, 애플리케이션, 디바이스 또는 세션 특정 식별자, 디바이스 유형 또는 일련 번호, 클록 스큐 시간, 하드웨어 식별자 또는 기타 임의의 데이터로부터 입력을 해싱함으로써 응답의 일부를 생성할 수 있다. 일부 구현예에서, 보고 정책은 응답의 페이로드의 콘텐츠에 대한 크기 제한(예를 들어, 비트 또는 문자)을 설정할 수 있다. 예를 들어, 보고 정책은 보고 메시지 페이로드가 캠페인 ID의 크기와 콘텐츠로 제한됨을 나타낼 수 있다. 이 예에서, 응답 페이로드는 시청된 콘텐츠에 대한 정보를 포함할 수 있지만 콘텐츠를 렌더링하거나 수신한 클라이언트 디바이스(102)에 대한 정보는 포함하지 않을 수 있다.
단계(426)에서, 컨버전 엔진(212)은 보고 메시지가 배치 전송을 위해 유지되어야 하는지 여부를 결정할 수 있다. 보고 정책은 배치 전송 플래그 또는 비트를 포함할 수 있다. 설정될 때, 컨버전 엔진(212)은 배치 전송을 위한 보고 메시지를 보유할 수 있다. 단계(426)에서, 컨버전 엔진(212)이 배치 전송 플래그가 설정되었다고 결정하면, 방법(400)은 단계(428)에서 보류 단계로 진행할 수 있다. 단계(428)에서, 컨버전 엔진(212)은 보고 메시지를 집계 테이블(216)에 기록하거나 저장할 수 있다. 컨버전 엔진(212)은 보고 메시지가 생성되거나 집계 테이블(216)에 저장되는 시기를 나타내는 타임스탬프와 함께 보고 메시지를 집계 테이블(216)에 저장할 수 있다. 일부 구현예에서, 보고 정책은 배치 요구 사항을 포함할 수 있다. 컨버전 엔진(212)이 배치 요구 사항이 충족되었다고 결정하면, 컨버전 엔진(212)은 집계 테이블(216)에 저장된 보고 메시지를 각각의 보고 URL에 의해 표시된대로 각각의 목적지에 전송할 수 있다. 배치 요구 사항은 수량 기반 또는 시간 기반일 수 있다. 수량 기반 배치 요구 사항은 배치 전송에 필요한 보고 메시지의 수를 설정할 수 있다. 예를 들어, 컨버전 엔진(212)은 10개, 50개 또는 100개의 보고 메시지가 집계 테이블(216)에 배치(예를 들어, 저장)될 때 보고 메시지를 전송할 수 있다. 시간 기반 배치 요구 사항은 집계 테이블(216)에 저장된 보고 메시지가 전송되는 간격(예를 들어, 시간, 일, 주 또는 월)을 설정할 수 있다.
단계(430)에서, 컨버전 엔진(212)은 배치의 일부로서 응답을 전송할 수 있다. 예를 들어, 단계(430)에서 컨버전 엔진(212)은 배치 요구 사항이 만족된다는 것을 결정할 수 있고, 컨버전 엔진(212)은 집계 테이블(216)로부터 각각의 보고 메시지를 검색할 수 있다. 컨버전 엔진(212)은 각각의 보고 메시지를 각각의 목적지로 전송할 수 있다. 단계(426)에서 컨버전 엔진(212)이 배치 전송 플래그가 설정되지 않았다고 결정하면, 방법(400)은 단계(434)로 진행할 수 있고, 컨버전 엔진(212)은 보고 메시지를 전송할 수 있다.
단계(432 및 436)에서, 중개 서버(108)는 응답을 기록할 수 있다. 보고 메시지는 도 4에서 중개 서버(108)로 전송되는 것으로 도시되었지만, 보고 메시지는 임의의 서버(예를 들어, 원격 서버(104), 콘텐츠 서버(110), 또는 프록시 서버)에 전송될 수 있다. 유사하게, 컨버전 엔진(212)은 배치 전송(단계 430에서)에서 각각의 보고 메시지를 상이한 목적지로 전송할 수 있다. 예를 들어, 컨버전 엔진(212)은 보고 메시지의 제1 부분을 제1 중개 서버(108)로, 보고 메시지의 제2 부분을 제2 중개 서버(108)로, 보고 메시지의 제3 부분을 원격 서버(104)로 전송할 수 있다. 중개 서버(108), 또는 보다 일반적으로 보고 메시지의 수신자는 보고 메시지가 수신되었음을 기록할 수 있다. 중개 서버(108)는 보고 메시지의 표시를 대화 테이블에 저장할 수 있다. 중개 서버(108)는 보고 메시지의 콘텐츠를 컨버전 테이블에 저장할 수 있다. 예를 들어, 중개 서버(108)는 보고 메시지의 캠페인 ID를 컨버전 테이블에 저장할 수 있다. 주기적으로, 중개 서버(108)는 예를 들어 주어진 콘텐츠 서버(110)로부터의 콘텐츠 아이템이 얼마나 자주 열람되고 그 다음 클라이언트 디바이스가 콘텐츠 아이템의 랜딩 페이지로 후속적으로 그리고 독립적으로 탐색했는지를 결정하기 위해 컨버전 테이블을 분석할 수 있다.
따라서, 본 개시의 적어도 하나의 양태에 따르면, 네트워크 환경에서 데이터 전송을 인가하는 방법은 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 웹브라우저에 의해 디스플레이된 콘텐츠 아이템으로부터 등록 요청을 수신하는 단계를 포함할 수 있다. 등록 요청은 제1 URL 및 제2 URL을 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 상기 클라이언트 디바이스에 저장된 등록 테이블에 저장하는 단계를 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 웹브라우저에 의해 디스플레이된 웹페이지의 제3 URL을 식별하는 단계를 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다고 결정하는 단계를 포함할 수 있다. 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 응답을 제2 URL에 전송하는 단계를 포함할 수 있다.
일부 구현예에서, 방법은 웹브라우저에 의해 제2 URL에 대한 응답을 생성하는 단계를 포함할 수 있다. 상기 방법은 상기 웹브라우저에 의해, 집계 테이블에 상기 제2 URL에 대한 상기 응답을 저장하는 단계를 포함할 수 있다. 상기 방법은 상기 웹브라우저에 의해, 배치 요구 사항이 만족된다고 결정하는 단계를 포함할 수 있다. 상기 방법은 상기 웹브라우저에 의해, 상기 응답을 복수의 응답을 포함하는 배치 전송으로 상기 제2 URL에 전송하는 단계를 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 웹브라우저에 의해, 상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간을 결정하는 단계를 포함할 수 있다. 상기 방법은 상기 웹브라우저에 의해, 상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간이 미리 결정된 임계치를 초과하는 것에 응답하여, 상기 응답을 상기 제2 URL에 전송하는 단계를 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 웹브라우저에 의해, 상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간을 결정하는 단계를 포함할 수 있다. 상기 방법은 상기 웹브라우저에 의해, 상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간이 미리 결정된 임계치를 초과하는 것에 응답하여, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 저장하는 단계를 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제1 URL 및 상기 제2 URL이 미리 결정된 길이의 시간 미만 동안 상기 웹브라우저에 저장되었음을 결정하는 단계를 포함할 수 있다. 상기 방법은 미리 결정된 길이의 시간 후, 상기 클라이언트 디바이스에 저장된 컨버전 테이블에서 상기 제1 URL 및 상기 제2 URL를 삭제하는 단계를 포함할 수 있다. 상기 등록 요청은 데이터 페이로드를 갖는 API(Application Programing Interface) 호출을 포함한다. 상기 방법은 상기 데이터 페이로드의 적어도 일부를 상기 응답에서 상기 제2 URL로 전송하는 단계를 포함할 수 있다. 상기 방법은 상기 제2 URL에 대한 상기 응답에 대한 페이로드 제한을 설정하는 단계를 포함할 수 있다. 상기 방법은 프록시 서버를 통해 제2 URL에 응답을 전송하는 단계를 포함할 수 있다.
본 개시의 적어도 하나의 양태에 따르면, 네트워크 환경에서 데이터 전송을 인가하는 시스템은 클라이언트 디바이스에 의해 실행되는 웹브라우저를 포함할 수 있다. 웹브라우저는 컨버전 엔진을 실행하여 웹브라우저에 의해 디스플레이되는 콘텐츠 아이템으로부터 등록 요청을 수신할 수 있다. 등록 요청은 제1 URL 및 제2 URL을 포함할 수 있다. 컨버전 엔진은 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 상기 클라이언트 디바이스에 저장된 등록 테이블에 저장할 수 있다. 컨버전 엔진은 상기 웹브라우저에 의해 디스플레이된 웹페이지의 제3 URL을 식별할 수 있다. 컨버전 엔진은 상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다고 결정할 수 있다. 컨버전 엔진은 메시지를 제2 URL에 전송할 수 있다.
일부 구현예에서, 웹브라우저는 제2 URL에 대한 응답을 생성할 수 있다. 상기 웹브라우저는 집계 테이블에 상기 제2 URL에 대한 상기 응답을 저장할 수 있다. 상기 웹브라우저는 배치 요구 사항이 충족되었다고 결정하고, 상기 응답을 복수의 응답을 포함하는 배치 전송으로 제2 URL에 전송할 수 있다.
일부 구현예에서, 웹브라우저는 웹브라우저에 의해 웹페이지가 디스플레이되는 기간을 결정할 수 있다. 상기 웹브라우저는 상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간이 미리 결정된 임계치를 초과하는 것에 응답하여, 상기 응답을 상기 제2 URL에 전송할 수 있다.
일부 구현예에서, 상기 웹브라우저는 웹브라우저에 의해 콘텐츠 아이템이 디스플레이되는 기간을 결정할 수 있다. 상기 웹브라우저는 상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간이 미리 결정된 임계치를 초과하는 것에 응답하여, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 저장할 수 있다.
상기 웹브라우저는 제1 URL 및 제2 URL이 미리 결정된 길이의 시간 미만 동안 웹브라우저에 저장되었음을 결정할 수 있다. 상기 웹브라우저는 미리 결정된 길이의 시간 후, 상기 클라이언트 디바이스에 저장된 컨버전 테이블에서 상기 제1 URL 및 상기 제2 URL를 삭제할 수 있다. 상기 등록 요청은 데이터 페이로드를 갖는 API(Application Programing Interface) 호출을 포함한다.
일부 구현예에서, 상기 웹브라우저는 데이터 페이로드의 적어도 일부를 상기 응답에서 제2 URL에 전송할 수 있다. 상기 웹브라우저는 상기 제2 URL에 대한 응답에 대한 페이로드 제한을 설정할 수 있다. 상기 웹브라우저는 프록시 서버를 통해 제2 URL에 응답을 전송할 수 있다. 일부 구현예에서, 프록시 서버는 클라이언트 디바이스의 IP 주소가 추적될 수 없도록 서드 파티 서버에서 클라이언트 디바이스 IP 주소를 숨길 수 있다. 프록시는 또한 다수의 클라이언트 디바이스에서 보고 메시지를 집계하여 배치(batch) 보고를 생성하고 개별 사용자 개인 정보를 보호할 수 있다.
본 발명의 구현예들과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명의 구현예들은 하나 이상의 컴퓨터 프로그램들 즉, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 하나 이상의 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다. 따라서, 컴퓨터 저장 매체는 유형적일 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "클라이언트" 또는 "서버"는 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만, 반드시 그런 것은 아니다. 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은 범용 및 전용 마이크로프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들에 따라 액션들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 상기 디바이스들을 반드시 가져야하는 것은 아니다. 추가로, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 나열하면, 모바일 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 본 발명의 구현예들은 디스플레이 디바이스 예를 들어, CRT(cathode ray tube), LCD(liquid crystal display), OLED(organic light emitting diode), TFT (thin-film transistor), 플라즈마, 기타 플렉시블 구성 또는 사용자에게 정보를 디스플레이하기 위한 임의의 기타 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드, 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼 등 또는 터치 스크린, 터치 패드 등을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다; 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써; 웹 브라우저로부터 수신된 요청에 응답하여, 사용자의 사용자 디바이스상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 인터렉션할 수 있다.
본 명세서에서 기술된 발명의 구현예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함할 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 개인 정보 예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 사용자의 선호들 또는 사용자의 위치에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버 또는 기타 데이터 프로세싱 시스템으로부터의 콘텐츠를 수신할지 또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 익명화되어, 파라미터들을 생성하는 경우 개인적으로 식별가능한 정보는 제거되도록 한다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 익명화되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 그 또는 그녀에 관한 정보가 어떻게 수집되는지 그리고 콘텐츠 서버에 의해 사용되는지에 관한 제어를 가질 수 있다.
본 명세서는 많은 특정 구현 세부내용을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정한 발명의 특정한 구현예에 특정한 구성들에 대한 설명으로 해석되어야 한다. 별개의 구현예의 맥락에서 본 명세서에서 기술되는 일정 구성들은 또한 단일 구현예에서 조합하여 구현될 수 있다. 반대로, 단일 구현예의 맥락에서 기술된 다양한 구성들은 또한 다수의 구현예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 게다가, 구성들은 일정 조합으로 동작하고 심지어 초기적으로 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성들은 일부 경우, 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 안내될 수 있다.
유사하게, 동작들이 특정한 순서로 도면에서 도시되었지만, 이는 상기 동작들이 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것으로서 또는 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안된다. 특정 환경에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 구현예에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예에서 그러한 분리가 필요한 것으로서 이해되어서는 안되며, 일반적으로 기술된 프로그램 컴포넌트들 및 시스템들은 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키징될 수 있다고 이해되어야 한다.
따라서, 본 발명의 특정한 구현예들이 기술되었다. 다른 구현예들도 다음의 청구항들의 범위 내에 있다. 일부 경우에, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 추가로, 첨부 도면들에 도시된 프로세스들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 특정 구현예에서, 멀티태스킹 또는 병렬 프로세싱이 활용될 수 있다.

Claims (20)

  1. 네트워크 환경에서 데이터 전송을 인가하기 위한 방법에 있어서,
    클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 웹브라우저에 의해 디스플레이된 콘텐츠 아이템으로부터 등록 요청을 수신하는 단계, 상기 등록 요청은 제1 URL(Uniform Resource Locator) 및 상기 제1 URL과 서로 다른 제2 URL을 포함하며;
    상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 상기 클라이언트 디바이스에 저장된 등록 테이블에 저장하는 단계;
    상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 웹브라우저에 의해 디스플레이된 웹페이지의 제3 URL을 식별하는 단계;
    상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다고 결정하는 단계; 및
    상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다는 결정에 기초하여, 메시지를 상기 제2 URL에 전송하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 웹브라우저에 의해, 상기 제2 URL에 대한 상기 메시지를 생성하는 단계;
    상기 웹브라우저에 의해, 집계 테이블에 상기 제2 URL에 대한 상기 메시지를 저장하는 단계;
    상기 웹브라우저에 의해, 배치 요구 사항이 만족된다고 결정하는 단계; 및
    상기 웹브라우저에 의해, 상기 메시지를 복수의 메시지를 포함하는 배치 전송으로 상기 제2 URL에 전송하는 단계를 더 포함하는, 방법.
  3. 청구항 1에 있어서,
    상기 웹브라우저에 의해, 상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간을 결정하는 단계; 및
    상기 웹브라우저에 의해, 상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간이 임계치를 초과하는 것에 응답하여, 상기 메시지를 상기 제2 URL에 전송하는 단계를 더 포함하는, 방법.
  4. 청구항 1에 있어서,
    상기 웹브라우저에 의해, 상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간을 결정하는 단계; 및
    상기 웹브라우저에 의해, 상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간이 임계치를 초과하는 것에 응답하여, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 저장하는 단계를 더 포함하는, 방법.
  5. 청구항 1에 있어서, 상기 클라이언트 디바이스에 의해 실행되는 웹브라우저에 의해, 상기 제1 URL 및 상기 제2 URL이 미리 결정된 기간 미만 동안 상기 웹브라우저에 저장되었음을 결정하는 단계를 더 포함하는, 방법.
  6. 청구항 1에 있어서, 상기 웹브라우저에 의해, 상기 제1 URL과 상기 제2 URL의 저장 시간과 현재 시간 사이의 차이가 임계치를 초과함에 응답하여, 상기 클라이언트 디바이스에 저장된 컨버전 테이블에서 상기 제1 URL 및 상기 제2 URL을 삭제하는 단계를 더 포함하는, 방법.
  7. 청구항 1에 있어서, 상기 등록 요청은 데이터 페이로드를 갖는 API(Application Programing Interface) 호출을 포함하는, 방법.
  8. 청구항 7에 있어서, 상기 데이터 페이로드의 적어도 일부를 상기 메시지에서 상기 제2 URL로 전송하는 단계를 더 포함하는, 방법.
  9. 청구항 1에 있어서, 상기 제2 URL에 대한 상기 메시지에 대한 페이로드 제한을 설정하는 단계를 더 포함하는, 방법.
  10. 청구항 1에 있어서, 프록시 서버를 통해 상기 메시지를 상기 제2 URL에 전송하는 단계를 더 포함하는, 방법.
  11. 네트워크 환경에서 데이터 전송을 인가하기 위한 시스템으로서,
    클라이언트 디바이스에 의해 실행되는 웹브라우저, 상기 웹브라우저는 컨버전 엔진을 실행하며, 상기 컨버전 엔진은:
    상기 웹브라우저에 의해 디스플레이된 콘텐츠 아이템으로부터 등록 요청을 수신하고, 상기 등록 요청은 제1 URL(Uniform Resource Locator) 및 상기 제1 URL과 서로 다른 제2 URL을 포함하며;
    상기 제1 URL, 상기 제2 URL 및 타임스탬프를 상기 클라이언트 디바이스에 저장된 등록 테이블에 저장하고;
    상기 웹브라우저에 의해 디스플레이된 웹페이지의 제3 URL을 식별하고;
    상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다고 결정하고; 그리고
    상기 제3 URL이 상기 등록 테이블에 저장된 상기 제1 URL과 일치하고, 상기 웹페이지의 디스플레이 시간이 상기 타임스탬프의 미리 결정된 기간 내에 있다는 결정에 기초하여, 메시지를 상기 제2 URL에 전송하는, 시스템.
  12. 청구항 11에 있어서, 상기 컨버전 엔진을 더 포함하며, 상기 컨버전 엔진은:
    상기 제2 URL에 대한 상기 메시지를 생성하고;
    집계 테이블에 상기 제2 URL에 대한 상기 메시지를 저장하고;
    배치 요구 사항이 만족된다고 결정하고; 그리고
    상기 메시지를 복수의 메시지를 포함하는 배치 전송으로 상기 제2 URL에 전송하는, 시스템.
  13. 청구항 11에 있어서, 상기 컨버전 엔진을 더 포함하며, 상기 컨버전 엔진은:
    상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간을 결정하고; 그리고
    상기 웹페이지가 상기 웹브라우저에 의해 디스플레이된 기간이 임계치를 초과하는 것에 응답하여, 상기 메시지를 상기 제2 URL에 전송하는, 시스템.
  14. 청구항 11에 있어서, 상기 컨버전 엔진을 더 포함하며, 상기 컨버전 엔진은:
    상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간을 결정하고; 그리고
    상기 콘텐츠 아이템이 상기 웹브라우저에 의해 디스플레이된 기간이 임계치를 초과하는 것에 응답하여, 상기 제1 URL, 상기 제2 URL 및 타임스탬프를 저장하는, 시스템.
  15. 청구항 11에 있어서, 상기 제1 URL 및 상기 제2 URL이 미리 결정된 기간 미만 동안 상기 웹브라우저에 저장되었음을 결정하는 상기 컨버전 엔진을 더 포함하는, 시스템.
  16. 청구항 11에 있어서, 미리 결정된 기간 후, 상기 클라이언트 디바이스에 저장된 컨버전 테이블에서 상기 제1 URL 및 상기 제2 URL를 삭제하는 상기 컨버전 엔진을 더 포함하는, 시스템.
  17. 청구항 11에 있어서, 상기 등록 요청은 데이터 페이로드를 갖는 API(Application Programing Interface) 호출을 포함하는, 시스템.
  18. 청구항 17에 있어서, 상기 데이터 페이로드의 적어도 일부를 상기 메시지에서 상기 제2 URL로 전송하는 상기 컨버전 엔진을 더 포함하는, 시스템.
  19. 청구항 11에 있어서, 상기 제2 URL에 대한 상기 메시지에 대한 페이로드 제한을 설정하는 상기 컨버전 엔진을 더 포함하는, 시스템.
  20. 청구항 11에 있어서, 프록시 서버를 통해 상기 메시지를 상기 제2 URL에 전송하는 상기 컨버전 엔진을 더 포함하는, 시스템.
KR1020207027401A 2019-04-16 2019-04-16 집계된 컨버전 측정 KR102239281B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/027735 WO2020214155A1 (en) 2019-04-16 2019-04-16 Aggregated conversion measurement

Publications (2)

Publication Number Publication Date
KR20200122381A KR20200122381A (ko) 2020-10-27
KR102239281B1 true KR102239281B1 (ko) 2021-04-12

Family

ID=66429572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207027401A KR102239281B1 (ko) 2019-04-16 2019-04-16 집계된 컨버전 측정

Country Status (7)

Country Link
US (2) US11212351B2 (ko)
EP (1) EP3759893B1 (ko)
JP (2) JP7015939B2 (ko)
KR (1) KR102239281B1 (ko)
CN (2) CN114500489B (ko)
ES (1) ES2881658T3 (ko)
WO (1) WO2020214155A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102417742B1 (ko) * 2021-09-08 2022-07-06 비엠텍시스템 주식회사 Api 데이터 수집시스템 및 그에 관한 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140068407A1 (en) 2012-08-28 2014-03-06 Adobe System Incorporated Identifying web pages that are likely to guide browsing viewers to improve conversion rate
US20170199850A1 (en) 2016-01-13 2017-07-13 Samsung Electronics Co., Ltd. Method and system to decrease page load time by leveraging network latency

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963915A (en) * 1996-02-21 1999-10-05 Infoseek Corporation Secure, convenient and efficient system and method of performing trans-internet purchase transactions
AU779120B2 (en) * 1999-08-02 2005-01-06 Harris Interactive, Inc. System for protecting information over the internet
KR20020084374A (ko) * 2001-04-30 2002-11-07 주식회사 팬택 무선 인터넷 상에서 비정상 유알엘의 판별 및 표시 방법
US20050255833A1 (en) * 2004-05-13 2005-11-17 Mobile (R&D) Ltd. Message aggregation system and method for a mobile communication device
WO2009052531A1 (en) * 2007-10-18 2009-04-23 Linkshare Corporation Methods and systems for tracking electronic commerce transactions
JP4952531B2 (ja) * 2007-11-19 2012-06-13 富士通株式会社 記録装置、記録プログラム、および記録方法
US8868637B2 (en) * 2009-09-02 2014-10-21 Facebook, Inc. Page rendering for dynamic web pages
US20110072502A1 (en) * 2009-09-18 2011-03-24 Zhexuan Song Method and Apparatus for Identity Verification
US10298614B2 (en) * 2010-11-29 2019-05-21 Biocatch Ltd. System, device, and method of generating and managing behavioral biometric cookies
US20120173345A1 (en) * 2010-12-30 2012-07-05 Microsoft Corporation Unified Tracking and Reporting Across Multiple Publishers
CN103092857A (zh) * 2011-11-01 2013-05-08 腾讯科技(深圳)有限公司 历史记录的整理方法和装置
US8935798B1 (en) * 2011-11-08 2015-01-13 Google Inc. Automatically enabling private browsing of a web page, and applications thereof
US8984091B1 (en) * 2012-08-03 2015-03-17 Google Inc. Providing content based on timestamp of last request for content
US20140068411A1 (en) * 2012-08-31 2014-03-06 Scott Ross Methods and apparatus to monitor usage of internet advertising networks
CN104166652B (zh) * 2013-05-16 2019-03-26 腾讯科技(深圳)有限公司 浏览信息同步方法和装置
CN104216921B (zh) * 2013-06-05 2019-06-04 腾讯科技(深圳)有限公司 一种实现浏览器中快速链接的添加提示方法、装置及系统
EP3161662B1 (en) * 2014-06-26 2024-01-31 Google LLC Optimized browser render process
CN104346464B (zh) * 2014-11-07 2018-05-15 北京奇虎科技有限公司 网页元素信息的处理方法、装置和浏览器客户端
US9571512B2 (en) * 2014-12-15 2017-02-14 Sophos Limited Threat detection using endpoint variance
US10091076B2 (en) * 2015-08-25 2018-10-02 Google Llc Systems and methods for configuring a resource for network traffic analysis
US10892968B2 (en) 2015-12-18 2021-01-12 Google Llc Systems and methods for latency reduction in content item interactions using client-generated click identifiers
JP2017167684A (ja) * 2016-03-14 2017-09-21 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
CN106503134B (zh) * 2016-10-19 2019-08-13 Oppo广东移动通信有限公司 浏览器跳转至应用程序的数据同步方法及装置
JP6615941B2 (ja) 2018-05-21 2019-12-04 グリー株式会社 通信端末、コンバージョン計測方法及びコンバージョン計測システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140068407A1 (en) 2012-08-28 2014-03-06 Adobe System Incorporated Identifying web pages that are likely to guide browsing viewers to improve conversion rate
US20170199850A1 (en) 2016-01-13 2017-07-13 Samsung Electronics Co., Ltd. Method and system to decrease page load time by leveraging network latency

Also Published As

Publication number Publication date
WO2020214155A1 (en) 2020-10-22
US20220086240A1 (en) 2022-03-17
EP3759893A1 (en) 2021-01-06
EP3759893B1 (en) 2021-05-05
JP2022068159A (ja) 2022-05-09
JP7442553B2 (ja) 2024-03-04
CN114500489A (zh) 2022-05-13
JP7015939B2 (ja) 2022-02-03
CN112166589B (zh) 2022-02-25
US20210168213A1 (en) 2021-06-03
JP2021519467A (ja) 2021-08-10
ES2881658T3 (es) 2021-11-30
US11212351B2 (en) 2021-12-28
CN114500489B (zh) 2024-03-12
CN112166589A (zh) 2021-01-01
KR20200122381A (ko) 2020-10-27
US11711436B2 (en) 2023-07-25

Similar Documents

Publication Publication Date Title
US10931683B2 (en) Automatic token-based secure content streaming method and apparatus
KR102390938B1 (ko) 브라우저 쿠키를 대체하는 도메인 특정 브라우저 식별자
EP3763108B1 (en) Restricted environments for message generation in networked environments
US10778715B2 (en) Automatic peer to peer level of activity information maintenance and sharing method and apparatus
JP7015400B2 (ja) 自己認証ドメイン固有のブラウザ識別子
JP7442553B2 (ja) 集約されたコンバージョンの測定
JP2022527231A (ja) コンテンツ要求データの暗号化のためのシステムおよび方法

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant