KR102558208B1 - 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치 - Google Patents

과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102558208B1
KR102558208B1 KR1020220018838A KR20220018838A KR102558208B1 KR 102558208 B1 KR102558208 B1 KR 102558208B1 KR 1020220018838 A KR1020220018838 A KR 1020220018838A KR 20220018838 A KR20220018838 A KR 20220018838A KR 102558208 B1 KR102558208 B1 KR 102558208B1
Authority
KR
South Korea
Prior art keywords
client
advertisement
http response
executed
resource
Prior art date
Application number
KR1020220018838A
Other languages
English (en)
Inventor
전상현
Original Assignee
주식회사 애드쉴드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 애드쉴드 filed Critical 주식회사 애드쉴드
Priority to KR1020220018838A priority Critical patent/KR102558208B1/ko
Priority to US17/836,540 priority patent/US20230262107A1/en
Priority to PCT/KR2022/016036 priority patent/WO2023153580A1/ko
Application granted granted Critical
Publication of KR102558208B1 publication Critical patent/KR102558208B1/ko

Links

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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • 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
    • 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/564Enhancement of application control based on intercepted application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

광고 차단 명령을 회피하기 위한 서버의 동작 방법은, 클라이언트로부터의 HTTP 요청을 수신하는 단계; 제1 광고 정보를 포함하는, 상기 HTTP 요청에 대한 HTTP 응답을 획득하는 단계; 상기 HTTP 응답을 수정하는 단계; 및 수정된 HTTP 응답을 상기 클라이언트에 전달하는 단계를 포함하고, 상기 HTTP 응답을 수정하는 단계는, 상기 HTTP 응답의 적어도 하나의 리소스를 암호화하는 단계; 및 암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위한 복구 스크립트를 삽입하는 단계를 포함할 수 있다.

Description

과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치{METHOD AND DEVICE FOR PROVIDING ADVERTISEMENT BY COUNTERACTING ON VIOLENT ADVERTISEMENT BLOCKING FUNCTION}
본 발명은 광고 제공 방법 및 장치에 관한 것으로, 보다 구체적으로, 광고 차단 기능에 대응하여, 과격한 광고 차단 기능의 실행 중단을 유도함으로써, 광고를 제공하기 위한 방법 및 광고 제공 방법을 수행하는 디바이스에 관한 것이다.
온라인 광고는 온라인 콘텐츠 게시자에게 중요한 수익원 중 하나이다. 그리고, 온라인 광고는 다양한 제품 및 서비스에 대한 정보를 홍보할 수 있는 수단 중 하나이다.
온라인 광고는 사용자가 페이지를 방문하거나 페이지를 벗어날 때 표시되는 배너, 팝업, 내장형, 인라인형, 전면 광고 및 전체 페이지 형태로 출력될 수 있다. 온라인 광고는 링크, 오디오 콘텐츠 또는 텍스트, 이미지 및 기타 멀티미디어 콘텐츠를 포함한 시각적 콘텐츠로 제공될 수 있다.
광고 차단기는 HTML(HyperText Markup Language) 페이지 및 기타 다운로드 가능한 콘텐츠와 같은 웹사이트의 온라인 광고를 차단한다. 광고 차단기는 소프트웨어 응용 프로그램, 브라우저 구성 요소, 확장 프로그램, 추가 기능, 스크립트 등을 통해 작동하는 서비스일 수 있다.
이러한 광고 차단기는 콘텐츠 게시자에게 부여될 광고 수익을 박탈하고 또한 제품 및 서비스의 마케팅, 판촉 및 정보 제공을 방해한다. 따라서, 광고 차단기의 영향을 상쇄하여, 광고를 포함하는 콘텐츠가 클라이언트에 표시되도록 할 필요가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 광고 차단기가 클라이언트 상에서 동작하는 경우에도 클라이언트에게 광고를 제공하기 위한 방법, 디바이스, 및 시스템을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은 광고 차단기가 클라이언트 상에서 동작하는 경우, 광고 차단기를 우회함으로써, 클라이언트에게 광고를 제공하기 위한 방법, 디바이스, 및 시스템을 제공하는 데 있다.
상기 목적을 달성하기 위한 광고 차단 명령을 회피하기 위한 서버의 동작 방법은, 클라이언트로부터의 HTTP 요청을 수신하는 단계; 제1 광고 정보를 포함하는, 상기 HTTP 요청에 대한 HTTP 응답을 획득하는 단계; 상기 HTTP 응답을 수정하는 단계; 및 수정된 HTTP 응답을 상기 클라이언트에 전달하는 단계를 포함하고, 상기 HTTP 응답을 수정하는 단계는, 상기 HTTP 응답의 적어도 하나의 리소스를 암호화하는 단계; 및 암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위한 복구 스크립트를 삽입하는 단계를 포함할 수 있다.
여기서, 상기 적어도 하나의 리소스는, 상기 HTTP 응답의 이미지, 스크립트, CSS, HTML 요소 중 하나 이상을 포함하는 것을 특징으로 할 수 있다.
여기서, 동작 방법은 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스에 대한 복호화 또는 로드 여부를 결정하기 위해 상기 클라이언트에 의해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 생성하는 단계를 더 포함하고, 상기 복구 스크립트는, 상기 네고시에이터를 더 포함할 수 있다.
여기서, 상기 복구 스크립트의 적어도 하나의 명령어는, 광고 차단 동작이 실행되는지 여부를 판단하도록 상기 클라이언트에 의해 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 복구 스크립트의 상기 적어도 하나의 명령어는, 상기 클라이언트에 의해 광고 차단 동작이 실행되지 않는 경우, 상기 클라이언트에 의해 상기 네고시에이터의 적어도 하나의 명령어가 실행되는 것을 특징으로 수 있다.
여기서, 상기 복구 스크립트의 상기 적어도 하나의 명령어는, 상기 클라이언트에 의해 광고 차단 동작이 실행되는 경우, 상기 클라이언트에 의한 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하거나 리소스 로드를 무산시키는 것을 특징으로 할 수 있다.
여기서, 상기 적어도 하나의 명령어는, 상기 적어도 하나의 리소스를 노출한 이후, 상기 클라이언트에 의해 광고 차단 기능이 실행되는 경우, 상기 클라이언트에 의한 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하거나 리소스 로드를 무산시키는 것을 특징으로 할 수 있다.
상기 목적을 달성하기 위한 프로세서에 의해 실행되는 적어도 하나의 명령어를 포함하는 컴퓨터 기록 매체에 있어서, 상기 적어도 하나의 명령은, 클라이언트로부터 HTTP 요청을 수신하고; 제1 광고 정보를 포함하는, 상기 HTTP 요청에 대한 응답 정보인 HTTP 응답을 획득하고; 상기 HTTP 응답을 수정하고; 그리고 수정된 HTTP 응답을 상기 클라이언트에 전달하도록 상기 프로세서에 의해 실행되고, 상기 HTTP 응답을 수정하도록 실행됨에 있어, 상기 HTTP 응답의 적어도 하나의 리소스를 암호화하고; 암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위한 복구 스크립트를 삽입하도록 상기 프로세서에 의해 실행될 수 있다.
여기서, 상기 적어도 하나의 리소스는, 상기 HTTP 응답의 이미지, 스크립트, CSS, HTML 요소 중 하나 이상을 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 적어도 하나의 명령어는, 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스에 대한 복호화 또는 로드 여부를 결정하기 위해 상기 클라이언트의 프로세서에 의해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 생성하도록 더 실행되고, 상기 복구 스크립트는, 상기 네고시에이터를 더 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 복구 스크립트는, 상기 클라이언트의 프로세서에 의해 실행되는 적어도 하나의 명령어를 포함하고, 상기 복구 스크립트의 상기 적어도 하나의 명령어는, 광고 차단 동작이 실행되는지 여부를 판단하도록 상기 클라이언트의 프로세서에 의해 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 복구 스크립트의 상기 적어도 하나의 명령어는, 상기 클라이언트의 프로세서에 의한 광고 차단 동작이 실행되지 않는 경우, 상기 클라이언트의 프로세서에 의해 상기 네고시에이터의 적어도 하나의 명령어가 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 복구 스크립트의 상기 적어도 하나의 명령어는, 상기 클라이언트의 프로세서에 의한 광고 차단 동작이 실행되는 경우, 상기 클라이언트의 프로세서에 의한 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하거나 리소스 로드를 무산시키는 것을 특징으로 할 수 있다.
여기서, 상기 복구 스크립트의 상기 적어도 하나의 명령어는, 상기 적어도 하나의 리소스를 노출한 이후, 상기 클라이언트의 프로세서에 의한 광고 차단 동작이 실행되는 경우, 상기 클라이언트의 프로세서에 의한 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하거나 리소스 로드를 무산시키는 것을 특징으로 할 수 있다.
상기 목적을 달성하기 위한 광고 차단 명령을 회피하기 위한 클라이언트의 동작 방법은, 서버에게 HTTP 요청을 전송하는 단계; 제1 광고 정보를 포함하는 상기 HTTP 요청에 대한 응답 정보인 HTTP 응답을 상기 서버로부터 획득하는 단계; 및 상기 HTTP 응답을 출력하는 단계를 포함하고, 상기 HTTP 응답은, 암호화된 적어도 하나의 리소스; 및 암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위한 복구 스크립트를 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 적어도 하나의 리소스는, 상기 HTTP 응답의 이미지, 스크립트, CSS, HTML 요소 중 하나 이상을 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 복구 스크립트는, 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스에 대한 복호화 또는 로드 여부를 결정하기 위해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 더 포함하는 것을 특징으로 할 수 있다.
여기서, 광고 차단 기능을 실행하지 않는 경우, 상기 네고시에이터의 적어도 하나의 명령어가 실행되는 것을 특징으로 할 수 있다.
여기서, 광고 차단 기능을 실행하는 경우, 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하거나 리소스 로드를 무산시키는 것을 특징으로 할 수 있다.
여기서, 상기 적어도 하나의 리소스를 노출한 이후에, 광고 차단 기능을 실행하는 경우, 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하거나 리소스 로드를 무산시키는 것을 특징으로 할 수 있다.
본 발명에 의한 광고 제공 방법에 따르면, 광고 차단기가 클라이언트 상에서 동작하는 경우에도 클라이언트에게 광고를 제공할 수 있다.
도 1은 광고 제공 시스템의 구조의 일 실시예를 도시한 도면이다.
도 2는 도 1에 따른 광고 제공 시스템에 포함된 디바이스의 하드웨어 구성을 나타낸 예시도이다.
도 3은 광고 제공 시스템에서의 각각의 구성들 간의 신호 흐름을 도시하는 개념도이다.
도 4는 광고 제공 시스템에서의 각각의 구성들의 동작을 도시하는 순서도이다.
도 5는 광고 제공 시스템의 프록시의 동작을 도시하는 흐름도이다.
도 6은 광고 제공 시스템의 프록시의 HTTP 응답 수정 동작을 도시하는 흐름도이다.
도 7은 수정된 HTTP 응답을 수신한 광고 제공 시스템의 클라이언트의 동작을 도시하는 흐름도이다.
도 8은 광고 제공 시스템에서의 각각의 구성들 간의 신호 흐름을 도시하는 개념도이다.
도 9는 광고 제공 시스템에서의 각각의 구성들의 동작을 도시하는 순서도이다.
도 10은 광고 제공 시스템의 클라이언트의 복구 스크립트 실행 동작을 도시하는 흐름도이다.
도 11은 암호화된 광고 요청을 수신한 광고 제공 시스템의 프록시의 동작을 도시하는 흐름도이다.
도 12는 네고시에이터의 리소스 로드 결과의 일 실시예를 도시하는 도면이다.
도 13은 네고시에이터의 리소스 로드 중단 결과의 일 실시예를 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 광고 제공 시스템의 구조의 일 실시예를 도시한 도면이다.
도 1을 참조하면, 광고 제공 시스템은 콘텐츠 전달 네트워크(content delivery network, CDN)(110), 하나 이상의 프록시(proxy)(120), 하나 이상의 클라이언트(130), 하나 이상의 웹 서버(140), 및 하나 이상의 광고 서버(150) 등을 포함할 수 있다. 광고 제공 시스템의 각각의 구성들은 인터넷을 통해 연결되어 통신을 수행할 수 있다.
CDN(110)은 분산된 노드의 네트워크 및/또는 노드들의 네트워크와 연결된 데이터 센터일 수 있다. CDN(110)은 노드, 서버, 데이터 센터를 호스팅하기 위한 인터넷 서비스 제공자, 캐리어 등을 활용할 수 있다. 콘텐츠 제공자는 CDN(110)을 포함한 시스템의 구성요소들을 활용하여 콘텐츠 등을 클라이언트(130)에게 전달할 수 있다.
프록시(120)는 CDN(110), 클라이언트(130) 및 서버 등과 독립적으로 동작할 수 있는 네트워크 액세스 가능한 디바이스일 수 있다. 일 실시예에 따르면, 프록시(120)는 웹 서버(140)와 연계되어 네트워크 액세스 동작을 수행할 수 있다. 프록시는 포워드 프록시 또는 리버스 프록시일 수 있다.
클라이언트(130)는 콘텐츠 처리, 렌더링 또는 표시하기 위한 애플리케이션을 실행하는 프로세서를 가진 디바이스일 수 있다. 예를 들어, 클라이언트(130)는 랩톱 컴퓨터, 스마트폰, 태블릿 및 데스크톱 컴퓨팅 머신 중 적어도 하나일 수 있다. 콘텐츠를 처리, 렌더링 또는 표시하기 위한 가장 일반적인 애플리케이션은 웹 브라우징 애플리케이션이지만, 이외의 어플리케이션 역시 포함할 수 있다.
웹 서버(!40)는 콘텐츠를 호스팅하고 전달하기 위한 서버일 수 있다. 콘텐츠는 디지털로 인코딩되고 네트워크를 통해 전달 가능한 임의의 웹사이트, 텍스트, 문서, 파일, 미디어, 애플리케이션, 서비스 또는 게임 등을 지칭할 수 있다. 콘텐츠는 하나 이상의 광고 서버(150)에 의해 제공되는 광고에 관한 정보와 함께 클라이언트(130)에게 표시될 수 있다.
광고 서버(150)는 콘텐츠 게시자 콘텐츠 내에 내장된 다양한 광고를 호스팅하고 전달하기 위한 서버일 수 있다. 클라이언트(130)가 콘텐츠를 수신하고 처리함에 있어, 광고를 호출하는 경우, 광고 서버(150)는 클라이언트(130)에게 제공할 수 있는 광고 정보를 제공할 수 있다. 광고는 콘텐츠 내에서 구성되거나 지정된 방식으로 렌더링되거나 표시될 수 있다.
광고 제공 시스템의 디바이스들의 구성은 아래에 설명된 바와 같을 수 있다. 
도 2는 도 1에 따른 광고 제공 시스템에 포함된 디바이스의 하드웨어 구성을 나타낸 예시도이다.
도 2를 참조하면, 디바이스(200)는, 적어도 하나의 프로세서(210) 및 적어도 하나의 프로세서(210)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(220)를 포함할 수 있다.
여기서 적어도 하나의 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
또한, 디바이스(200)는, 무선 네트워크를 통해 통신을 수행하는 송수신 장치(transceiver)(230)를 포함할 수 있다. 또한, 디바이스(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 디바이스(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.
광고 제공 시스템의 디바이스들 간에 교환되는 신호의 흐름은 아래에 설명된 바와 같을 수 있다. 
도 3은 광고 제공 시스템에서의 각각의 구성들 간의 신호 흐름을 도시하는 개념도이다.
도 3을 참조하면, 광고 제공 시스템은 클라이언트(310), CDN(320), 프록시(330), 웹 서버(340), 및 광고 서버를 포함할 수 있다. 다만, 광고 제공 시스템의 일부 구성은 생략될 수 있다.
도 3을 참조하면, ①에서, 클라이언트(310)는 웹 서버(340)로 HTTP 콘텐츠를 요청할 수 있다. HTTP 콘텐츠의 요청은 특정 링크를 호출하거나, 콘텐츠를 로드하는 임의의 애플리케이션을 시작하여 수행될 수 있다. HTTP 콘텐츠 요청은 일반적으로 웹 서버(340) 등의 주소 및 콘텐츠를 식별하는 URL과 함께 HTTP GET 요청 형태로 전송될 수 있다. HTTP 콘텐츠 요청은 CDN(320) 및/또는 프록시(330)를 통해 웹 서버(340)에 포워딩될 수 있다.
②에서, 웹 서버(340)는 HTTP 콘텐츠 요청에 상응하는 HTTP 응답을 프록시(330)에게 전송할 수 있다. 여기서, HTTP 응답은 HTTP 콘텐츠 및 광고 호출을 위한 광고 정보를 포함할 수 있다. 광고 정보는 광고 서버(350)의 주소 및 광고를 지정하기 위한 HTML 속성 등을 포함할 수 있다.
프록시(330)는 웹 서버(340)로부터 수신한 HTTP 응답의 적어도 일부를 수정할 수 있다. 예를 들어, 프록시(330)는 HTTP 응답에 포함된 콘텐츠, 광고 정보 등을 수정할 수 있다. 일 실시예에 따르면, 프록시(330)는 콘텐츠 및/또는 광고 정보를 암호화 및/또는 난독화하는 등의 동작을 수행할 수 있다.
프록시(330)는 HTTP 응답에 스크립트 등의 명령어를 추가할 수 있다. 예를 들어, HTTP 응답에 포함된 적어도 일부의 정보가 암호화된 경우, 프록시(330)는 암호화된 적어도 일부의 정보를 복호화하기 위한 적어도 하나의 명령어를 HTTP 응답에 추가할 수 있다.
그리고 ③에서, 프록시(330)는 수정된 HTTP 응답을 클라이언트(310)에게 전송할 수 있다. 수정된 HTTP 응답은 CDN(320)을 통해 클라이언트(310)에게 포워딩될 수 있으나, CDN(320)을 통하지 않고 직접 전송될 수도 있다.
HTTP 콘텐츠를 요청한 클라이언트(310)는 프록시(330) 및/또는 CDN(320)으로부터 HTTP 콘텐츠를 포함하는 HTTP 응답을 수신할 수 있다. 클라이언트(310)에 의해 실행되는 광고 차단 기능은 HTTP 응답에 포함된 광고 정보에 기초한 광고 호출을 차단할 수 있다.
그리고, HTTP 응답의 적어도 일부 정보가 암호화된 경우, 클라이언트(310)는 HTTP 응답의 암호화된 정보를 복호화하여 콘텐츠를 렌더링할 수 있다. 여기서, 복호화 동작은 광고 차단 기능의 실행 여부에 따라 수행될 수 있다.
클라이언트(310)에 의해 광고 차단 기능이 실행되지 않은 경우, 클라이언트(310)는 복구 스크립트에 포함된 적어도 하나의 명령어를 실행하여 HTTP 응답의 암호화된 정보를 복호화할 수 있다. 또는 광고 차단 기능이 실행됨에도 불구하고, 광고 관련 정보가 차단되지 않은 경우, 복구 스크립트에 포함된 적어도 하나의 명령어를 실행하여 HTTP 응답의 암호화된 정보를 복호화할 수 있다. 따라서, 클라이언트(310)는 HTTP 응답의 콘텐츠를 렌더링할 수 있다.
광고 차단 기능의 실행으로 인해, HTTP 응답에 포함된 광고 관련 정보가 차단된 경우, 클라이언트(310)에 의한 HTTP 응답의 복호화 동작은 중단되거나 제거될 수 있다. 따라서, 클라이언트(310)는 HTTP 응답에 포함된 콘텐츠의 렌더링을 수행하지 못할 수 있다.
④에서, 클라이언트(310)에 의해 광고 차단 기능이 실행되지 않은 경우, 클라이언트(310)는 HTTP 응답에 포함된 광고 정보를 기초로 광고 서버(350)에 광고를 요청할 수 있다. 또는 클라이언트(310)에 의한 광고 차단 기능의 실행에도 불구하고, 광고 관련 정보가 차단되지 않은 경우, 클라이언트(310)는 HTTP 응답에 포함된 광고 정보를 기초로 광고 서버(350)에 광고를 요청할 수 있다.
⑤에서, 클라이언트(310)는 광고 서버(350)로부터 광고 응답을 수신할 수 있으며, 수신한 광고 응답을 기초로 광고를 출력할 수 있다. 따라서, 클라이언트(310)는 광고를 성공적으로 호출할 수 있다.
광고 제공 시스템의 디바이스들 간에 교환되는 신호의 흐름으로 인한 디바이스들의 동작은 아래에 설명된 바와 같을 수 있다. 
도 4는 광고 제공 시스템에서의 각각의 구성들의 동작을 도시하는 순서도이다.
도 4를 참조하면, 광고 제공 시스템은 클라이언트, CDN, 프록시, 웹 서버, 및 광고 서버를 포함할 수 있다. 다만, 광고 제공 시스템의 일부 구성은 생략될 수 있다.
S401 단계에서, 클라이언트는 웹 서버에게 HTTP 요청을 전송할 수 있다. 여기서, HTTP 요청은 CDN 및/또는 프록시를 통해 웹 서버에게 포워딩될 수 있다.
S403 단계에서, 웹 서버는 HTTP 요청에 상응하는 HTTP 응답을 프록시에게 전송할 수 있다.
S405 단계에서, 웹 서버는 HTTP 응답의 적어도 일부 정보를 암호화할 수 있다. 예를 들어, 웹 서버는 HTTP 응답에 포함된 HTTP 리소스 중에서 적어도 일부를 암호화할 수 있다.
S407 단계에서, 프록시는 HTTP 응답의 적어도 일부 영역을 활용하기 위한 복구 스크립트를 생성할 수 있다. 복구 스크립트는 적어도 하나의 명령어를 포함할 수 있다. 그리고, 복구 스크립트는 암호화된 HTTP 응답의 적어도 일부에 대한 복호화 또는 로드 여부를 결정하기 위해 실행되는 네고시에이터를 포함할 수 있다.
S409 단계에서 프록시는 HTTP 응답을 수정할 수 있다. 예를 들어, 프록시는 HTTP 응답에서 기존의 HTTP 리소스를 삭제하고, 암호화된 HTTP 리소스로 추가할 수 있다. 즉, 프록시는 HTTP 응답의 기존의 HTTP 리소스를 암호화된 HTTP 리소스로 대체할 수 있다. 프록시는 암호화된 HTTP 리소스를 네고시에이터에 전달할 수 있다. 그리고 프록시는 HTTP 응답에 복구 스크립트를 추가할 수 있다.
S411 단계에서, 프록시는 수정된 HTTP 응답을 클라이언트에게 전송할 수 있다. 여기서, 수정된 HTTP 응답은 CDN을 통해 클라이언트에게 포워딩될 수 있다.
S413 단계에서, 클라이언트는 광고 차단 기능을 실행할 수 있다. HTTP 응답에 포함된 광고 관련 스크립트가 클라이언트의 광고 차단 기능에 의해 차단되지 않은 경우, 클라이언트는 네고시에이터를 실행하여 암호화된 HTTP 응답의 적어도 일부를 복호화하고 로드할 수 있다. 그리고, 클라이언트는 HTTP 응답에 포함된 광고 정보를 호출하고, 광고 정보를 출력할 수 있다. 여기서, 광고 관련 스크립트는 광고 관련 정보를 포함하는 HTTP 응답의 적어도 일부의 영역의 스크립트 및/또는 복구 스크립트를 포함할 수 있다.
반면, HTTP 응답에 포함된 광고 관련 스크립트가 클라이언트의 광고 차단 기능에 의해 차단된 경우, S415 단계에서, 네고시에이터는 HTTP 응답의 로딩을 중단할 수 있다. 즉, 암호화된 HTTP 응답에 대한 복호화 동작이 중단되거나 로딩 자체가 중단되고, 클라이언트는 HTTP 리소스를 로드하지 못할 수 있다. 여기서, 리소스의 네고시에이터는 복호화 동작을 중단하거나 리소스 로드 명령 자체를 취소하거나, 이미 로드된 리소스의 일부 또는 전부를 제거(unload)할 수 있다.
도 5는 광고 제공 시스템의 프록시의 동작을 도시하는 흐름도이다.
S601 단계에서, 프록시는 클라이언트로부터 HTTP 요청을 수신할 수 있다.
S603 단계에서, 프록시는 외부 서버에게 HTTP 요청에 상응하는 컨텐츠를 요청할 수 있으며, 외부 서버로부터 HTTP 요청에 상응하는 HTTP 응답을 획득할 수 있다. 여기서, HTTP 응답은 제1 광고에 관한 정보를 포함할 수 있다. 제1 광고에 관한 정보는 제1 광고의 호출을 위한 정보 및/또는 스크립트를 포함할 수 있다. 예를 들어, 제1 광고 호출을 위한 정보는 광고 서버에게 광고를 요청하기 위한 URL, URI 등의 주소일 수 있다.
S605 단계에서, 프록시는 외부 서버로부터 수신한 HTTP 응답을 수정할 수 있다. 구체적으로, 프록시는 클라이언트의 광고 차단기를 회피하기 위한 적어도 하나의 스크립트 및/또는 명령어를 HTTP 응답에 삽입할 수 있다. HTTP 응답을 수정하는 프록시의 동작은 아래에 설명하는 바와 같을 수 있다.
도 6은 광고 제공 시스템의 프록시의 HTTP 응답 수정 동작을 도시하는 흐름도이다.
S710 단계에서, 프록시는 HTTP 응답의 적어도 일부를 암호화할 수 있다. 예를 들어, 프록시는 HTTP 요청 및/또는 HTTP 응답에 기초하여 암호화 키를 생성할 수 있다. 그리고 프록시는 HTTP 응답에 포함된 이미지, 스크립트, CSS, HTML 요소 와 같은 콘텐츠를 포함하는 HTTP 리소스의 적어도 일부를 암호화할 수 있다. 예를 들어, 암호화 키를 생성한 프록시는 암호화 키를 이용하여 HTTP 응답의 적어도 일부를 암호화할 수 있다. 여기서, 프록시에 의해 암호화된 HTTP 응답의 적어도 일부를 호스티지(hostage)로 지칭할 수 있다.
S730 단계에서, 프록시는 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스에 대한 복호화 또는 로드 여부를 결정하기 위한 네고시에이터를 생성할 수 있다. 네고시에이터는 암호화된 HTTP 응답의 적어도 일부를 복호화하기 위해 클라이언트에 의해 실행되는 적어도 하나의 명령어를 포함할 수 있다. 네고시에이터는 암호화된 HTTP 응답의 적어도 일부를 복호화하기 위한 복호화키를 포함할 수 있다. 상기 명령어 및 복호화키는 키 요소(key factors)로 불릴 수 있다. 즉, 상기 네고시에이터는 키 요소를 포함하고, 광고 차단기의 활성 여부에 따라 상기 키 요소가 암호화된 HTTP 응답의 복호화 여부, 리소스 로드 여부 및 이미 로드된 리소스 제거 여부 중 적어도 하나를 결정할 수 있다.
S750 단계에서, 프록시는 HTTP 응답의 적어도 일부 영역을 활용하기 위한 복구 스크립트를 생성할 수 있다. 복구 스크립트는 네고시에이터를 포함할 수 있다. 그리고, 복구 스크립트는 HTTP 응답의 적어도 일부 영역을 활용하기 위한 적어도 하나의 명령어를 포함할 수 있다. 여기서, 적어도 일부 영역은 외부 서버로부터 수신한 HTTP 응답에 포함된 제1 광고 정보에 관한 스크립트 등을 포함하는 영역일 수 있다. 복구 스크립트의 적어도 하나의 명령어는 클라이언트에 의해 실행될 수 있다.
복구 스크립트는 클라이언트에 의해 광고 차단 기능이 실행되는지 여부를 판단하도록 실행되는 명령어를 포함할 수 있다. 또한 복구 스크립트는 클라이언트에 의해 HTTP 응답에 포함된 제1 광고의 호출이 차단되는 경우, 별도의 광고를 요청하기 위한 정보를 암호화하고, 암호화된 광고 요청 정보를 전송하도록 실행되는 명령어를 포함할 수 있다. 광고 차단 기능이 실행되는지 여부를 판단하기 위해서는 수정된 HTTP 응답 속에 흔하게 차단될 수 있는 광고 정보를 포함하는 영역을 추가하는 방식을 활용할 수 있다. 광고 차단 기능의 실행 여부 판단은 이처럼 광고 차단기의 알려진 기능들에 의해 차단 가능한 단서를 던져주는 것으로 충분하다.
그리고 복구 스크립트는 리소스 로드 여부를 결정하도록 실행되는 명령어를 포함하는 네고시에이터를 포함할 수 있다. 예를 들어, 네고시에이터는 클라이언트에 의한 광고 차단 동작이 실행되는 경우에 클라이언트에 표시되었어야 할 리소스 로드를 중단하거나 이미 로드된 리소스를 제거하는 명령어를 실행시킬 수 있다.
S770 단계에서, 프록시는 HTTP 응답에 복구 스크립트를 추가할 수 있다. 따라서, 프록시에 의해 수정된 HTTP 응답은 암호화된 HTTP 응답의 적어도 일부 정보를 복호화하기 위한 네고시에이터 및 HTTP 응답의 적어도 일부 영역을 활용하기 위한 복구 스크립트를 포함할 수 있다.
도 6에서 나열된 여러 단계들의 순서는 일 예시로 제시되었을 뿐, 각 단계별 순서는 변경 적용될 수 있다. 예를 들어, 복구 스크립트가 먼저 생성된 후 네고시에이터를 복수 스크립트에 삽입할 수도 있고, 네고시에이터와 복구 스크립트를 생성한 후에 HTTP 응답에 삽입하여 암호화를 할 수도 있다.
다른 실시예에 따르면, 프록시는 복수의 계층 태그들 및 태그들 각각의 속성 값을 생성할 수 있다. 여기서, 복수의 계층 태그 및 속성 값은 HTTP 응답의 출력 동작과 무관한 계층 태그 및 속성 값일 수 있다. 그리고, 복수의 계층 태그 및 속성 값은 각 HTTP 요청마다 임의로 생성될 수 있다. 광고 정보를 포함하는 HTTP 응답의 출력과 무관한 계층 태그를 더미 태그(dummy tag)라고 지칭할 수 있다.
그리고, 프록시는 생성한 더미 태그를 HTTP 응답에 추가하여 HTTP 응답 중 적어도 일부 영역을 난독화할 수 있다. 여기서, 적어도 일부 영역은 외부 서버로부터 수신한 HTTP 응답에 포함된 제1 광고 정보에 관한 스크립트 등을 포함하는 영역일 수 있다. 또한 적어도 일부 영역은, 자체 광고 서버로부터 제2 광고를 호출하기 위한 적어도 하나의 명령어 및/또는 스크립트를 포함할 수 있다.
즉, 프록시는 HTTP 응답에 더미 태그를 추가함으로써 제1 광고 정보에 관한 스크립트 및/또는 제2 광고를 호출하기 위한 명령어 등을 포함하는 영역을 난독화할 수 있다.
다만, 수정된 HTTP 응답은 네고시에이터, 복구 스크립트 및/또는 더미 태그 모두를 포함하지 않을 수 있으며, 적어도 일부 영역의 활용성을 확보하기 위한 추가 구성을 더 포함할 수 있음은 자명하다.
다시 도 5를 참조하면, S607 단계에서, 프록시는 수정된 HTTP 응답을 전송할 수 있다. 일 실시예에 따르면, 수정된 HTTP 응답은 암호화된 호스티지, 호스티지를 포함하는 HTTP 응답의 적어도 일부의 영역을 활용하기 위한 복구 스크립트를 포함할 수 있다. 다른 실시예에 따르면, 수정된 HTTP 응답은 난독화된 제1 광고 정보에 관한 영역을 포함할 수 있다.
클라이언트는 프록시로부터 수정된 HTTP 응답을 수신할 수 있다. 수정된 HTTP 응답을 수신한 클라이언트의 동작은 아래에 설명하는 바와 같을 수 있다.
도 7은 수정된 HTTP 응답을 수신한 광고 제공 시스템의 클라이언트의 동작을 도시하는 흐름도이다.
S810 단계에서, 클라이언트는 프록시로부터 수정된 HTTP 응답을 수신할 수 있다.
수정된 HTTP 응답을 수신한 클라이언트의 광고 차단기는 광고 차단 기능을 실행할 수 있다. S820 단계에서, 클라이언트는 광고 차단기에 의한 광고 관련 스크립트 차단 여부를 판단할 수 있다. 여기서, 클라이언트는 광고 차단기에 의해 복구 스크립트가 삭제되었는지 여부를 판단할 수 있다. 또는 클라이언트는 광고 차단기에 의한 광고 정보를 포함하는 HTTP 응답의 적어도 일부의 영역의 삭제 여부를 판단할 수 있다.
광고 차단기에 의해 광고 관련 스크립트가 차단된 경우, S831 단계에서, 클라이언트는 복구 스크립트의 명령어를 실행하여 네고시에이터의 적어도 하나의 명령어를 실행하는 동작을 중단할 수 있다. 따라서, 암호화된 호스티지를 복호화하고 리소스를 로드하기 위한 클라이언트의 동작은 실행되지 않을 수 있다. 여기서 S831 단계는 예로서 호스티지의 복호화 동작을 중단하는 것으로 표시되어 있으나 호스트지의 로드 자체를 취소하는 단계일 수 있다. 즉, 광고 관련 스크립트가 차단된 경우에는 클라이언트에 HTTP 응답이 표시되지 않도록 호스트지의 복호화 및 로드를 중단하는 것 외에도 이미 로드된 리소스를 제거하여 처음부터 HTTP 응답이 로드되지 않았던 것처럼 호스티지 로드를 완벽히 제한하는 동작까지 포함하거나 이러한 동작으로 대체할 수 있다. 이러한 리소스 제거 논리(logic)는 S832 단계가 진행된 이후에도 적용될 수 있다.
광고 차단기에 의해 광고 관련 스크립트가 차단되지 않은 경우, S832 단계에서, 클라이언트는 네고시에이터의 적어도 하나의 명령어를 실행할 수 있다. 따라서, 암호화된 호스티지를 복호화하고 리소스를 로드하기 위한 클라이언트의 동작이 실행될 수 있다.
다만, 클라이언트가 호스티지를 복호화하고 적어도 하나의 HTTP 리소스를 로드한 이후에, 광고 차단기에 의해 광고 관련 스크립트가 차단되는 경우, 클라이언트는 복구 스크립트의 명령어를 실행하여 네고시에이터의 적어도 하나의 명령어를 실행하는 동작을 중단할 수 있다. 또한 클라이언트는 복구 스크립트의 명령어를 실행하여 리소스의 호출을 되돌릴 수 있다. 즉, 클라이언트에 의한 네고시에이터의 적어도 하나의 명령어의 실행이 중단되고, HTTP 리소스 로드가 무산될 수 있다. 그 결과, HTTP 리소스는 로드되지 않을 수 있다.
S840 단계에서, 클라이언트는 광고 차단 기능의 실행으로 인해 수정된 HTTP 응답에 포함된 제1 광고 정보의 차단 여부를 판단할 수 있다.
수정된 HTTP 응답에 포함된 제1 광고 정보가 차단되지 않은 경우, S851 단계에서, 클라이언트는 제1 광고 요청 정보를 기초로 광고 서버에 제1 광고 요청을 전송할 수 있다.
반면, 수정된 HTTP 응답에 포함된 제1 광고 정보가 차단된 경우, S852 단계에서, 클라이언트는 복구 스크립트의 적어도 하나의 명령어를 실행할 수 있다. 즉, 클라이언트는 수정된 HTTP 응답에 포함된 제1 광고 정보를 대체하고, 광고 정보에 관한 HTTP 응답의 일부 영역을 활용하기 위해서, 복구 스크립트의 적어도 하나의 명령어를 실행할 수 있다.
S860 단계에서, 클라이언트는 광고 서버로부터 광고 요청에 상응하는 광고 정보를 수신할 수 있다. 클라이언트가 수정된 HTTP 응답에 포함된 제1 광고 정보를 차단하지 않은 경우, 클라이언트는 광고 서버로부터 제1 광고를 수신할 수 있다. 클라이언트가 수정된 HTTP 응답에 포함된 제1 광고 정보를 차단한 경우, 클라이언트는 프록시로부터 자체 광고 서버에 의해 제공되는 제2 광고를 수신할 수 있다.
여기서, 프록시로부터 수신한 제2 광고는 암호화된 정보일 수 있다. 암호화된 제2 광고를 수신한 클라이언트는 복구 스크립트의 적어도 하나의 명령어를 실행하여 제2 광고를 복호화할 수 있다.
S870 단계에서, 호스티지 복호화가 되었든 복호화 동작이 중단되었든, HTTP 응답이 출력될 수 있다. 만약 S831 단계를 거쳐 호스티지 복호화가 중단되었거나 리소스 호출이 취소 또는 제거된다면 웹페이지가 정상적으로 표시되지 않게 된다. 만약 S832 단계를 거쳐 호스티지가 복호화되었고 S840 단계에서 제1 광고가 차단되지 않았다면 HTTP 응답이 출력될 때 퍼블리셔(publisher)가 본래 의도하였던 웹페이지 및 광고가 출력될 수 있다. 만약 S832 단계를 거쳐 호스티지가 복호화되었으나 제1 광고가 차단되어 S852 단계를 거쳐 복구 스크립트가 실행되었다면, 퍼블리셔의 웹페이지 및 (자체 광고 서버에서 전달받은) 제2 광고가 출력될 수 있다.
네고시에이터를 포함하는 복구 스크립트는 호스티지를 복호화하여 응답 리소스를 로드하게 된 경우에도 클라이언트 측 광고 차단기를 꾸준히 모니터링할 수 있다. 예를 들어, S832 단계를 거쳐 호스티지가 복호화되었으나 HTTP 응답이 출력(S870)되기 전까지 과격한 광고 차단기에 의해 제1 광고 및 제2 광고 중 어느 것도 출력될 수 없는 상태에 이른다면, 네고시에이터는 이미 호출된 리소스들을 모두 되돌리거나 다른 정보들(이미지 등)로 대체하여 클라이언트가 표시해야하는 HTTP 응답과 다른 HTTP 응답 화면을 출력할 수 있다.
여기서, 광고 제공 시스템에서 복구 스크립트의 적어도 하나의 명령어를 실행하는 클라이언트 및 광고 제공 시스템의 구성들 간의 신호 흐름은 아래와 같을 수 있다.
도 8은 광고 제공 시스템에서의 각각의 구성들 간의 신호 흐름을 도시하는 개념도이다.
도 8을 참조하면, 광고 제공 시스템은 클라이언트(310), CDN(320), 프록시(330), 웹 서버(340), 및 광고 서버(360)를 포함할 수 있다. 다만, 광고 제공 시스템의 일부 구성은 생략될 수 있다. 그리고, 도 8의 신호 흐름은 도 3의 신호 흐름 이후의 신호 흐름일 수 있다.
도 8을 참조하면, ⑥에서, 클라이언트(310)는 프록시(330) 서버에게 추가 광고를 요청할 수 있다. 추가 광고 요청은 추가 광고를 제공하는 광고 서버(360)의 주소 및 추가 광고를 지정하기 위한 HTML 속성 등을 포함할 수 있다. 일 실시예에 따르면, 클라이언트(310)는 광고 호출 차단을 회피하기 위해, 추가 광고 요청을 암호화하고, 암호화된 추가 광고 요청을 프록시(330)에게 전송할 수 있다. 추가 광고 요청은 CDN(320)을 거쳐 프록시(330)에게 포워딩될 수 있다.
⑦에서, 프록시(330)는 수신한 광고 요청에 상응하는 광고 서버(360)로부터 광고 정보를 요청할 수 있다. ⑧에서, 프록시(330)는 광고 서버(360)로부터 광고 정보를 수신할 수 있다. 여기서, 도 8의 광고 서버(360)는 본 개시에 따른 광고 제공 서비스의 운영 주체에 의해 관리되는 서버로, 도 3의 광고 서버(350)와 별개의 서버일 수 있다. 이하, 도 8의 광고 서버(360)를 자체 광고 서버(360)로 지칭할 수 있다.
그리고 ⑨에서, 프록시(330)는 자체 광고 서버(360)로부터 수신한 광고 정보를 클라이언트(310)에게 전송할 수 있다. 여기서, 광고 정보는 프록시(330)에 의해 암호화되어 클라이언트(310)에게 전송될 수 있다.
⑨에서, 클라이언트(310)는 프록시(330) 및/또는 CDN(320)으로부터 추가 광고 정보를 수신할 수 있다. 그리고 클라이언트(310)는 수신한 광고를 출력할 수 있다. 여기서, 광고 정보가 암호화된 경우, 클라이언트(310)는 수신한 광고를 복호화하여 출력할 수 있다.
즉, 도 8을 참조하면, 클라이언트(310)는 자체 광고 서버(360)와 광고 요청 및 광고 응답을 교환하는 바, 추가 광고를 획득하기 위해서 웹 서버(340)와 별도의 신호를 교환하지 않을 수 있다.
여기서, 광고 제공 시스템에서 복구 스크립트의 적어도 하나의 명령어를 실행하는 클라이언트(310) 및 광고 제공 시스템의 구성들 간의 교환되는 신호의 흐름으로 인한 디바이스들의 동작은 아래에 설명된 바와 같을 수 있다. 
도 9는 광고 제공 시스템에서의 각각의 구성들의 동작을 도시하는 순서도이다.
도 9를 참조하면, 광고 제공 시스템은 클라이언트, CDN, 프록시, 웹 서버, 및 광고 서버를 포함할 수 있다. 다만, 광고 제공 시스템의 일부 구성은 생략될 수 있다.
S511 단계에서, 클라이언트는 광고 차단 기능을 실행할 수 있다. TTP 응답에 포함된 광고가 클라이언트의 광고 차단 기능에 의해 차단된 경우, 클라이언트는 수정된 HTTP 응답의 복구 스크립트에 포함된 적어도 하나의 명령어를 실행할 수 있다.
S513 단계에서, 클라이언트는 별도의 광고를 요청하기 위한 광고 요청을 생성할 수 있으며, 생성한 광고 요청을 암호화할 수 있다.
S515 단계에서, 클라이언트는 프록시에게 암호화된 광고 요청을 전송할 수 있다. 여기서, 암호화된 광고 요청은 CDN을 통해 프록시에게 포워딩될 수 있다.
S517 단계에서, 프록시는 클라이언트로부터 수신한 암호화된 광고 요청을 복호화할 수 있다.
S519 단계에서, 프록시는 복호화된 광고 요청에 상응하는 자체 광고 서버에게 광고를 요청할 수 있다.
S521 단계에서, 외부 광고 서버는 광고 요청에 상응하는 광고 정보를 프록시에게 전송할 수 있다. 자체 광고 서버가 전송한 광고 정보는 광고 콘텐츠 자체일 수 있다. 즉, 자체 광고 서버는 광고 콘텐츠의 이미지, 문자, 소리 등 클라이언트에 표시되어야 할 대상일 수 있다.
S523 단계에서, 프록시는 외부 광고 서버로부터 획득한 광고 정보를 암호화할 수 있다.
S525 단계에서, 프록시는 암호화된 광고 정보를 클라이언트에게 전송할 수 있다. 여기서, 암호화된 광고 정보는 CDN을 통해 클라이언트에게 포워딩될 수 있다.
그 결과, 클라이언트는 암호화된 광고 정보를 수신할 수 있다. 수정된 HTTP 응답 및/또는 복구 스크립트는 암호화된 광고 콘텐츠를 표시하도록 지시된 영역을 포함할 수 있다. 클라이언트는 복구 스크립트의 적어도 하나의 명령어를 실행하여 암호화된 광고 정보를 복호화할 수 있다.
따라서, 클라이언트는 복호화된 광고 정보를 출력할 수 있다.
여기서, 복구 스크립트의 적어도 하나의 명령어를 실행하는 클라이언트를 포함하는 광고 제공 시스템의 구성들 각각의 동작은 아래에 설명된 바와 같을 수 있다. 
도 10은 광고 제공 시스템의 클라이언트의 복구 스크립트 실행 동작을 도시하는 흐름도이다.
S901단계에서, 제1 광고 정보를 차단한 클라이언트는 제2 광고 정보 요청을 생성할 수 있다. 여기서, 제2 광고 정보는 제1 광고 정보와 별개의 광고일 수 있다. 그리고, 제2 광고를 관리하는 광고 서버는 광고 제공 서비스의 운영 주체에 의해 관리되는 자체 광고 서버로서, 제1 광고를 관리하는 광고 서버와 별개의 서버일 수 있다.
S903 단계에서, 클라이언트는 생성한 제2 광고 정보 요청을 암호화할 수 있다. 클라이언트는 제2 광고 요청을 암호화하여, 광고 요청의 도메인, 요청 메소드, 요청 주소 중 적어도 하나의 정보를 수정할 수 있다. 예를 들어, 클라이언트는 HTTP 응답을 전송한 서버의 도메인으로 제2 광고 요청의 도메인을 수정할 수 있다. 따라서, 제2 광고 요청의 도메인은 HTTP 응답을 전송한 서버의 도메인과 동일할 수 있다.
S905 단계에서, 클라이언트는 암호화된 제2 광고 정보 요청을 프록시에게 전송할 수 있다. 광고 차단 기능을 실행하는 클라이언트가 외부의 광고 서버에게 광고 정보를 요청하는 경우, 광고 정보 요청은 클라이언트의 광고 차단 기능에 의해 차단될 수 있다. 반면, 암호화된 광고 요청은 클라이언트의 광고 차단 기능을 회피할 수 있다. 그 결과, 암호화된 광고 요청은 프록시와 같은 외부의 서버에게 전송될 수 있다.
도 11은 암호화된 광고 요청을 수신한 광고 제공 시스템의 프록시의 동작을 도시하는 흐름도이다.
S1001 단계에서, 프록시는 클라이언트로부터 광고 요청을 수신할 수 있다. 여기서, 광고 요청은 클라이언트에 의해 암호화된 광고 요청일 수 있다. 암호화된 광고 정보는 HTTP 요청 형태로 전송될 수 있으며, 여기서, HTTP 요청의 요청 메소드는 POST일 수 있다.
S1003 단계에서, 프록시는 암호화된 광고 요청을 복호화할 수 있다.
S1005 단계에서, 프록시는 복호화된 광고 요청에 상응하는 광고 정보를 외부 서버에 요청할 수 있다. 여기서 외부 서버는 프록시와 인터넷 등의 네트워크를 통해 연결된 자체 광고 서버일 수 있다.
S1007 단계에서, 프록시는 외부 서버로부터 광고 정보를 획득할 수 있다. 여기서, 외부 서버로부터 획득한 광고 정보는 HTTP 콘텐츠 형태의 정보일 수 있다.
S1009 단계에서, 프록시는 외부 서버로부터 획득한 광고 정보를 암호화할 수 있다.
S1011 단계에서, 프록시는 암호화된 광고 정보를 클라이언트에게 전송할 수 있다. 암호화된 광고 정보는 HTTP 응답 형태로 전송될 수 있으며, 여기서, HTTP 응답의 요청 메소드는 POST일 수 있다. 그리고 암호화된 광고 정보는 HTTP 응답의 바디에 포함되는 데이터 형태로 전송될 수 있다.
본 발명에 따른 광고 제공 방법 상에서 광고 차단 기능의 실행 중단을 유도하기 위한 네고시에이터의 동작 결과의 일 실시예는 아래와 같다.
도 12는 네고시에이터가 HTTP 리소스(S)를 표시하기로 결정한 경우 동작 결과의 일 실시예를 도시하는 도면이고, 도 13은 네고시에이터가 HTTP 리소스(S)를 표시하지 않기로 결정한 경우 동작 중단 결과의 일 실시예를 도시한 도면이다.
도 12 및 도 13을 참조하면, 광고 관련 스크립트 등을 포함하는 수정된 HTTP 광고 응답(N)은 클라이언트에 의해 실행되어, HTTP 리소스(S) 등이 표시될 수 있다.
도 12를 참조하면, 네고시에이터가 HTTP 리소스(S)를 표시하기로 결정한 경우, 호스티지가 로드될 수 있다. 따라서 웹사이트의 HTTP 리소스(S)는 클라이언트에 성공적으로 표시될 수 있다.
반면, 도 13을 참조하면, 네고시에이터가 HTTP 리소스(S)를 표시하지 않기로 결정한 경우, 호스티지의 로딩이 중단되고, 웹사이트의 HTTP 리소스(S)는 클라이언트에 표시되지 못할 수 있다. 따라서 클라이언트의 유저는 웹사이트 이용에 불편함을 느끼게 되고, 광고 차단기의 사용을 중단할 수 있다.
또한, 네고시에이터가 HTTP 리소스(S)를 표시하지 않기로 결정한 경우, 호스티지의 로딩이 중단되고 애초에 표시되어야 했던 리소스에 대한 조치는 다양하게 결정될 수 있다. 즉, HTTP 리소스(S) 자체를 표시하지 않는 방향으로 설정할 수도 있으나, 도 13에 예시된 바와 같이, 애초에 클라이언트에 표시되어야 했던 HTTP 리소스(S)가 예를 들어 고유 크기 1 x 1 px, 렌더링된 가로세로 비율 1:1의 대체 리소스로 대체되어 표시될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 광고 차단 명령을 회피하기 위한 서버의 동작 방법에 있어,
    클라이언트로부터의 HTTP 요청을 수신하는 단계;
    제1 광고 정보를 포함하는, 상기 HTTP 요청에 대한 HTTP 응답을 획득하는 단계;
    상기 HTTP 응답을 수정하는 단계; 및
    수정된 HTTP 응답을 상기 클라이언트에 전달하는 단계를 포함하고,
    상기 HTTP 응답을 수정하는 단계는,
    상기 HTTP 응답의 적어도 하나의 리소스를 암호화하는 단계;
    암호화된 적어도 하나의 리소스를 복호화 및 로드하기 위해 상기 클라이언트에 의해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 생성하는 단계; 및
    상기 네고시에이터를 포함하고, 암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위해 상기 클라이언트에 의해 실행되는 적어도 하나의 명령어를 포함하는 복구 스크립트를 삽입하는 단계를 포함하고,
    상기 복구 스크립트의 적어도 하나의 명령어는,
    광고 차단 동작이 실행되는지 여부를 판단하도록 상기 클라이언트에 의해 실행되고;
    상기 클라이언트에 의해 광고 차단 동작이 실행되지 않는 경우, 상기 네고시에이터의 적어도 하나의 명령어를 실행하여 상기 암호화된 적어도 하나의 리소스를 복호화 및 로드하도록 상기 클라이언트에 의해 실행되고,
    상기 클라이언트에 의해 광고 차단 동작이 실행되는 경우, 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하여 상기 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스의 로드를 무산시키도록 상기 클라이언트에 의해 실행되는, 동작 방법.
  2. 청구항 1에 있어,
    상기 적어도 하나의 리소스는,
    상기 HTTP 응답의 이미지, 스크립트, CSS, HTML 요소 중 하나 이상을 포함하는 것을 특징으로 하는, 동작 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 청구항 1에 있어,
    상기 적어도 하나의 명령어는,
    상기 적어도 하나의 리소스를 노출한 이후, 상기 클라이언트에 의해 광고 차단 동작이 실행되는 경우,
    상기 클라이언트에 의한 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하고 그리고/또는 리소스 로드를 무산시키는 것을 특징으로 하는, 동작 방법.
  8. 프로세서에 의해 실행되는 적어도 하나의 명령어를 포함하는 컴퓨터 기록 매체에 있어서,
    상기 적어도 하나의 명령은,
    클라이언트로부터 HTTP 요청을 수신하고;
    제1 광고 정보를 포함하는, 상기 HTTP 요청에 대한 응답 정보인 HTTP 응답을 획득하고;
    상기 HTTP 응답을 수정하고; 그리고
    수정된 HTTP 응답을 상기 클라이언트에 전달하도록 상기 프로세서에 의해 실행되고,
    상기 HTTP 응답을 수정하도록 실행됨에 있어,
    상기 HTTP 응답의 적어도 하나의 리소스를 암호화하고;
    암호화된 적어도 하나의 리소스를 복호화 및 로드하기 위해 상기 클라이언트에 의해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 생성하고,
    상기 네고시에이터를 포함하고, 암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위해 상기 클라이언트에 의해 실행되는 적어도 하나의 명령어를 포함하는 복구 스크립트를 삽입하도록 상기 프로세서에 의해 실행되고,
    상기 복구 스크립트의 적어도 하나의 명령어는,
    광고 차단 동작이 실행되는지 여부를 판단하도록 상기 클라이언트에 의해 실행되고;
    상기 클라이언트에 의해 광고 차단 동작이 실행되지 않는 경우, 상기 네고시에이터의 적어도 하나의 명령어를 실행하여 상기 암호화된 적어도 하나의 리소스를 복호화 및 로드하도록 상기 클라이언트에 의해 실행되고,
    상기 클라이언트에 의해 광고 차단 동작이 실행되는 경우, 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하여 상기 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스의 로드를 무산시키도록 상기 클라이언트에 의해 실행되는, 컴퓨터 기록 매체.
  9. 청구항 8에 있어,
    상기 적어도 하나의 리소스는,
    상기 HTTP 응답의 이미지, 스크립트, CSS, HTML 요소 중 하나 이상을 포함하는 것을 특징으로 하는, 컴퓨터 기록 매체.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 청구항 8에 있어,
    상기 복구 스크립트의 상기 적어도 하나의 명령어는,
    상기 적어도 하나의 리소스를 노출한 이후, 상기 클라이언트의 프로세서에 의한 광고 차단 동작이 실행되는 경우,
    상기 클라이언트의 프로세서에 의한 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하고 그리고/또는 리소스 로드를 무산시키는 것을 특징으로 하는, 컴퓨터 기록 매체.
  15. 광고 차단 명령을 회피하기 위한 클라이언트의 동작 방법에 있어,
    서버에게 HTTP 요청을 전송하는 단계;
    제1 광고 정보를 포함하는 상기 HTTP 요청에 대한 응답 정보인 HTTP 응답을 상기 서버로부터 획득하는 단계; 및
    상기 HTTP 응답을 출력하는 단계를 포함하고,
    상기 HTTP 응답은,
    암호화된 적어도 하나의 리소스;
    암호화된 상기 적어도 하나의 리소스를 포함하는 상기 HTTP 응답을 활용하기 위한 복구 스크립트; 및
    암호화된 상기 적어도 하나의 리소스를 복호화 및 로드하기 위해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 포함하고,
    상기 HTTP 응답을 출력하는 단계는,
    광고 차단 동작이 실행되는지 여부를 판단하는 단계;
    상기 광고 차단 동작이 실행되지 않는 경우, 상기 네고시에이터의 적어도 하나의 명령어를 실행하여 상기 암호화된 적어도 하나의 리소스를 복호화 및 로드하는 단계; 및
    상기 광고 차단 동작이 실행되는 경우, 상기 네고시에이터의 적어도 하나의 명령어의 실행을 중단하여 상기 암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스의 로드를 무산시키는 단계를 포함하는 것을 특징으로 하는, 동작 방법.
  16. 청구항 15에 있어,
    상기 적어도 하나의 리소스는,
    상기 HTTP 응답의 이미지, 스크립트, CSS, HTML 요소 중 하나 이상을 포함하는 것을 특징으로 하는, 동작 방법.
  17. 청구항 15에 있어,
    상기 복구 스크립트는,
    암호화된 상기 HTTP 응답의 상기 적어도 하나의 리소스에 대한 복호화 또는 로드 여부를 결정하기 위해 실행되는 적어도 하나의 명령어를 포함하는 네고시에이터를 더 포함하는 것을 특징으로 하는, 동작 방법.
  18. 삭제
  19. 삭제
  20. 청구항 15에 있어,
    상기 적어도 하나의 리소스를 노출한 이후에, 광고 차단 기능을 실행하는 경우,
    상기 네고시에이터의 적어도 하나의 명령어의 실행이 중단하고 그리고/또는 리소스 로드를 무산시키는 것을 특징으로 하는, 동작 방법.
KR1020220018838A 2022-02-14 2022-02-14 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치 KR102558208B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220018838A KR102558208B1 (ko) 2022-02-14 2022-02-14 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치
US17/836,540 US20230262107A1 (en) 2022-02-14 2022-06-09 Method and device for providing advertisement by couteracting on violent advertisement blocking function
PCT/KR2022/016036 WO2023153580A1 (ko) 2022-02-14 2022-10-20 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220018838A KR102558208B1 (ko) 2022-02-14 2022-02-14 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102558208B1 true KR102558208B1 (ko) 2023-07-21

Family

ID=87429784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220018838A KR102558208B1 (ko) 2022-02-14 2022-02-14 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102558208B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160109060A (ko) * 2015-03-09 2016-09-21 삼성전자주식회사 웹 서비스 제공 방법 및 장치
KR20190083899A (ko) * 2018-01-05 2019-07-15 주식회사 마블링 차단 감지 시스템 및 방법
KR20210128446A (ko) * 2019-02-20 2021-10-26 노바티크 테크놀로지스 리미티드 표적화된 콘텐츠 프로비전을 위한 가입자 정보 및 콘텐츠 포맷 변환의 서버 기반 세그멘테이션

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160109060A (ko) * 2015-03-09 2016-09-21 삼성전자주식회사 웹 서비스 제공 방법 및 장치
KR20190083899A (ko) * 2018-01-05 2019-07-15 주식회사 마블링 차단 감지 시스템 및 방법
KR20210128446A (ko) * 2019-02-20 2021-10-26 노바티크 테크놀로지스 리미티드 표적화된 콘텐츠 프로비전을 위한 가입자 정보 및 콘텐츠 포맷 변환의 서버 기반 세그멘테이션

Similar Documents

Publication Publication Date Title
US10275806B2 (en) Systems and methods to bypass online advertisement blockers
US10984456B2 (en) Systems and methods to bypass online advertisement blockers
US20180268169A1 (en) Security Systems and Methods for Encoding and Decoding Digital Content
US7716288B2 (en) Organization-based content rights management and systems, structures, and methods therefor
US11146534B1 (en) Implementing a client-side policy on client-side logic
CA2632793A1 (en) Information server and mobile delivery system and method
CA2907583A1 (en) Systems and methods for intercepting, processing, and protecting user data through web application pattern detection
JP2006510975A (ja) コンテンツ・データをクライアントに提供する方法
US20210004502A1 (en) Web application execution with secure elements
CN110138818B (zh) 传递参数的方法、网站应用、系统、装置以及服务后端
CN107315972A (zh) 一种大数据非结构化文件动态脱敏方法及系统
JP2008177821A (ja) 情報秘匿化方法、および情報秘匿装置
CN115225707A (zh) 资源访问方法及装置
JP2010072916A (ja) データ保護システム及びデータ保護方法
CA3103222C (en) Security systems and methods for encoding and decoding digital content
US20170345063A1 (en) Advertisement blocker circumvention system
US20170345064A1 (en) Advertisement blocker circumvention system
KR102087268B1 (ko) 웹 컨트롤 인터페이스를 제공하는 장치 및 이의 동작 방법
JP2014106690A (ja) 端末装置、サーバ、コンテンツ配信システム、コンテンツ配信方法、およびプログラム
KR102558208B1 (ko) 과격한 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치
US20150095376A1 (en) Messaging administration based on digital rights management services
JP4972208B2 (ja) デジタル配信の帯域外追跡を可能にする、コンピュータにより実施される方法およびシステム
KR102598102B1 (ko) 광고 차단 기능에 대응하여 난독화된 광고를 제공하기 위한 방법 및 장치
KR102598112B1 (ko) 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치
KR102324802B1 (ko) 컨텐츠 요청 데이터의 암호화를 위한 시스템 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant