IP Library Granted Patent US 12,265,988
Granted Patent B2
US 12,265,988 · App. 17/469,699 · Granted Apr 1, 2025

System and method for identifying hidden content

Inventors: Matthew McLaughlin (Severna Park, MD); Roy Kalman Rosenfeld (Jerusalem, IL); Lahat Michael Abu (New York, NY); Lior Simon (New York, NY)
Assignee: DoubleVerify, Inc.
G06Q30/0248G06F16/951G06Q30/0201G06Q30/0251G06Q30/0277H04L63/1408H04L9/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,265,988
App. No.
17/469,699
Granted
Apr 1, 2025
Kind
B2
Abstract

The present invention provides improved techniques that can be used to identify hidden content and/or advertisements on a digital display page and to tell the illegitimate pieces of hidden content apart from legitimate ones, which provide reduced levels of false results. For example, a technique involves performing a plurality of analyses on a digital display page to determine whether the digital display page includes content is hidden, wherein each analysis may determine a different result based on whether content in the digital display page is delivered but hidden, comparing the resulting determinations of the analyses, when the analyses all determine that the content is not hidden, classifying the digital display page as not including hidden content, and when at least one analysis determines that the content is not hidden and at least one analysis determines that the content is hidden, classifying the digital display page as including hidden content.

Claims (48)

1. A method performed by a content analysis server for identifying hidden content, the method comprising:

obtaining rendered code for a digital display page using any of a web crawler implemented on the content analysis server to download page content and cause a browser to render the digital display page, a piece of hypertext markup language (html) code obtained via the web crawler to access a document object module (DOM) for the digital display page, or a plugin implemented on any of the content analysis server or an end user device to access the digital display page rendered on the browser;

analyzing the rendered code for the digital display page to identify one or more objects embedded in the digital display page by inspecting data types in the DOM for known types that correspond with objects and inspecting signatures and/or content sizes in the DOM that correspond with objects;

extracting graphic images displayed in the objects included in the digital display page and identified from the DOM;

creating a repository of the extracted graphic images at a memory of the content analysis server, wherein the extracted graphic images are arranged in the repository by at least one characteristic, and wherein the repository is configured to store extracted graphic images that are visible or invisible on the digital display page;

rendering the rendered code for the digital display page at the content analysis server using the DOM to cause display of a rendered version of digital display page and saving the rendered version of the digital display page as a rendered page image file at the memory of the content analysis server;

performing a geometric analysis of the digital display page by:

calculating, for each extracted graphic image, a location of the extracted graphic image on the digital display page based on inspecting the DOM;

identifying a viewable portion of the digital display page; and

determining, for each extracted graphic image, whether the extracted graphic image is outside the viewable portion of the digital display page, wherein all extracted graphic images outside the viewable portion of the digital display page are marked as invisible images in the repository;

determining, for each extracted graphic image, whether a threshold amount of CPU resources are used for optimizing each extracted graphic image, wherein each extracted graphic image that has the threshold amount of CPU resources used to optimize the extracted graphic image is marked as visible images in the repository;

comparing the extracted graphic images stored in the repository to the rendered page image file to identify all extracted graphic images from the repository that are included within the rendered page image file by using an image analysis routine to determine whether a threshold number of pixels of each extracted graphic image are represented in the rendered page image file, wherein extracted graphic images that are identified in the rendered page image are marked as visible images in the repository, and extracted graphic images that are not identified in the rendered page image are marked as invisible images in the repository; and

when one or more extracted graphical images are marked as invisible images, classifying the digital display page as containing hidden content.

2. The method of claim 1 , wherein the digital display page is classified as containing an invisible object if any extracted graphic image of the digital display page is marked as an invisible image.

3. The method of claim 1 , wherein, when there is identified an animated object in a digital display page, each frame of the animation is extracted as a separate graphic image of the animated object, and the animated object is marked as a visible object if any of the separate graphic images of the animated object is identified in the rendered page image as a visible image.

4. A system for identifying hidden content comprising a processor, memory accessible by the processor, and program instructions and data stored in the memory, the program instructions executable by the processor to perform a method of comprising:

obtaining rendered code for a digital display page using any of a web crawler implemented on the system to download page content and cause a browser to render the digital display page, a piece of hypertext markup language (html) code obtained via the web crawler to access a document object module (DOM) for the digital display page, or a plugin implemented on any of the system or an end user device to access the digital display page rendered on the browser;

analyzing the rendered code for the digital display page to identify one or more objects embedded in the digital display page by inspecting data types in the DOM for known types that correspond with objects and inspecting signatures and/or content sizes in the DOM that correspond with objects;

extracting graphic images displayed in the objects included in the digital display page and identified from the DOM;

creating a repository of the extracted graphic images at the memory, wherein the extracted graphic images are arranged in the repository by at least one characteristic, and wherein the repository is configured to store extracted graphic images that are visible or invisible on the digital display page;

rendering the rendered code for the digital display page at the system using the DOM to cause display of a rendered version of digital display page and saving the rendered version of the digital display page as a rendered page image file at the memory;

performing a geometric analysis of the digital display page by:

calculating, for each extracted graphic image, a location of the extracted graphic image on the digital display page based on inspecting the DOM;

identifying a viewable portion of the digital display page; and

determining, for each extracted graphic image, whether the extracted graphic image is outside the viewable portion of the digital display page, wherein all extracted graphic images outside the viewable portion of the digital display page are marked as invisible images in the repository;

determining, for each extracted graphic image, whether a threshold amount of CPU resources are used for optimizing each extracted graphic image, wherein each extracted graphic image that has the threshold amount of CPU resources used to optimize the extracted graphic image is marked as visible images in the repository;

comparing the extracted graphic images stored in the repository to the rendered page image file to identify all extracted graphic images from the repository that are included within the rendered page image file by using an image analysis routine to determine whether a threshold number of pixels of each extracted graphic image are represented in the rendered page image file, wherein extracted graphic images that are identified in the rendered page image are marked as visible images in the repository, and extracted graphic images that are not identified in the rendered page image are marked as invisible images in the repository; and

when one or more extracted graphical images are marked as invisible images, classifying the digital display page as containing hidden content.

5. The system of claim 4 , wherein the system is configured to compare the extracted graphic images in the repository to the rendered page image using image analysis to compare each extracted graphic image in the repository with graphic images contained within the rendered page image, and to identify as visible those extracted graphic images in the repository that match with a graphic image within the rendered page image.

6. The system of claim 4 , wherein the system is configured to classify a digital display page as containing an invisible object if any extracted graphic image of the digital display page is marked as an invisible image.

7. The system of claim 4 , wherein the system is configured such that, when there is identified an animated object in a digital display page, each frame of the animation is extracted as a separate graphic image of the animated object, and the animated object is marked as a visible object if any of the separate graphic images of the animated object is identified in the rendered page image as a visible image.

8. A computer program product for identifying hidden content comprising a non-transitory computer readable medium storing program instructions that when executed by a processor perform a method comprising:

obtaining rendered code for a digital display page using any of a web crawler implemented on the computer program product to download page content and cause a browser to render the digital display page, a piece of hypertext markup language (html) code obtained via the web crawler to access a document object module (DOM) for the digital display page, or a plugin implemented on any of the computer program product or an end user device to access the digital display page rendered on the browser;

analyzing the rendered code for the digital display page to identify one or more objects embedded in the digital display page by inspecting data types in the DOM for known types that correspond with objects and inspecting signatures and/or content sizes in the DOM that correspond with objects;

extracting graphic images displayed in the objects included in the digital display page and identified from the DOM;

creating a repository of the extracted graphic images at the memory, wherein the extracted graphic images are arranged in the repository by at least one characteristic, and wherein the repository is configured to store extracted graphic images that are visible or invisible on the digital display page;

rendering the rendered code for the digital display page at the computer program product using the DOM to cause display of a rendered version of digital display page and saving the rendered version of the digital display page as a rendered page image file at the memory;

performing a geometric analysis of the digital display page by:

calculating, for each extracted graphic image, a location of the extracted graphic image on the digital display page based on inspecting the DOM;

identifying a viewable portion of the digital display page; and

determining, for each extracted graphic image, whether the extracted graphic image is outside the viewable portion of the digital display page, wherein all extracted graphic images outside the viewable portion of the digital display page are marked as invisible images in the repository;

determining, for each extracted graphic image, whether a threshold amount of CPU resources are used for optimizing each extracted graphic image, wherein each extracted graphic image that has the threshold amount of CPU resources used to optimize the extracted graphic image is marked as visible images in the repository;

comparing the extracted graphic images stored in the repository to the rendered page image file to identify all extracted graphic images from the repository that are included within the rendered page image file by using an image analysis routine to determine whether a threshold number of pixels of each extracted graphic image are represented in the rendered page image file, where in extracted graphic images that are identified in the rendered page image are marked as visible images in the repository, and extracted graphic images that are not identified in the rendered page image are marked as invisible images in the repository; and

when one or more extracted graphical images are marked as invisible images, classifying the digital display page as containing hidden content.

9. The computer program product of claim 8 , wherein the program instructions are executable to capture the rendered code for the digital display page using a crawler or a client side browser plugin.

10. The computer program product of claim 8 , wherein the program instructions are executable to compare the extracted graphic images in the repository to the rendered page image using image analysis to compare each extracted graphic image in the repository with graphic images contained within the rendered page image, and to identify as visible those extracted graphic images in the repository that match with a graphic image within the rendered page image.

11. The computer program product of claim 8 , wherein the program instructions are executable to classify a digital display page as containing an invisible object if any extracted graphic image of the digital display page is marked as an invisible image.

12. The computer program product of claim 8 , wherein the program instructions are executable such that, when there is identified an animated object in a digital display page, each frame of the animation is extracted as a separate graphic image of the animated object, and the animated object is marked as a visible object if any of the separate graphic images of the animated object is identified in the rendered page image as a visible image.

Assignments (1)
SECURITY INTEREST Recorded Aug 20, 2024
From: DOUBLEVERIFY INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 068340/0011 →
Continuity (3)
Continuation 14535873 · Nov 7, 2014
Provisional Application 61973498 · Apr 1, 2014
Related Publication 20210406953A1 · Dec 30, 2021
References Cited (71)
US 4649264A · Carson · 1987 [cited by applicant]
US 5689253A · Hargreaves et al. · 1997 [cited by applicant]
US 7418382B1 · Maes · 2008 [cited by applicant]
US 8578496B1 · Krishnappa · 2013 [cited by examiner]
US 8745753B1 · Gottlieb et al. · 2014 [cited by applicant]
US 20010039622A1 · Hitz et al. · 2001 [cited by applicant]
US 20020010625A1 · Smith et al. · 2002 [cited by applicant]
US 20020062382A1 · Rhoads et al. · 2002 [cited by applicant]
US 20020087599A1 · Grant · 2002 [cited by examiner]
US 20020130976A1 · Gutta · 2002 [cited by examiner]
US 20020161467A1 · Hashiguchi · 2002 [cited by examiner]
US 20020167540A1 · Dobbelaar · 2002 [cited by examiner]
US 20030131106A1 · Kasriel · 2003 [cited by applicant]
US 20030200258A1 · Hayashi et al. · 2003 [cited by applicant]
US 20040117316A1 · Gillum · 2004 [cited by applicant]
US 20040162879A1 · Arcuri et al. · 2004 [cited by applicant]
US 20040205119A1 · Streble et al. · 2004 [cited by applicant]
US 20050065811A1 · Chu et al. · 2005 [cited by applicant]
US 20050081138A1 · Voss · 2005 [cited by examiner]
US 20050120016A1 · Midgley · 2005 [cited by examiner]
US 20050159999A1 · Totten et al. · 2005 [cited by applicant]
US 20050235360A1 · Pearson · 2005 [cited by applicant]
US 20050273368A1 · Hutten et al. · 2005 [cited by applicant]
US 20060026114A1 · Gregoire et al. · 2006 [cited by applicant]
US 20060047792A1 · Dharmarajan et al. · 2006 [cited by applicant]
US 20060074911A1 · Neagovici-Negoescu · 2006 [cited by examiner]
US 20060206715A1 · Cowan et al. · 2006 [cited by applicant]
US 20070192485A1 · McMahan et al. · 2007 [cited by applicant]
US 20080052377A1 · Light · 2008 [cited by examiner]
US 20080066181A1 · Haveson et al. · 2008 [cited by applicant]
US 20080114875A1 · Anastas et al. · 2008 [cited by applicant]
US 20090030794A1 · Scheflan · 2009 [cited by examiner]
US 20090248807A1 · Fron et al. · 2009 [cited by applicant]
US 20090265198A1 · Lester et al. · 2009 [cited by applicant]
US 20090271509A1 · Cao et al. · 2009 [cited by applicant]
US 20090313202A1 · Grabarnik · 2009 [cited by examiner]
US 20090319388A1 · Yuan et al. · 2009 [cited by applicant]
US 20100082604A1 · Gutt · 2010 [cited by examiner]
US 20100094860A1 · Lin · 2010 [cited by examiner]
US 20100235406A1 · Williams · 2010 [cited by examiner]
US 20100250714A1 · Wehmann et al. · 2010 [cited by applicant]
US 20100281046A1 · Lee · 2010 [cited by examiner]
US 20100287099A1 · Liu et al. · 2010 [cited by applicant]
US 20110029393A1 · Apprendi et al. · 2011 [cited by applicant]
US 20110055023A1 · McNeeley et al. · 2011 [cited by applicant]
US 20110066521A1 · Rowe et al. · 2011 [cited by applicant]
US 20110072052A1 · Skarin et al. · 2011 [cited by applicant]
US 20110125587A1 · Netzer · 2011 [cited by examiner]
US 20110137733A1 · Baird et al. · 2011 [cited by applicant]
US 20110179084A1 · Waddington et al. · 2011 [cited by applicant]
US 20110251951A1 · Kolkowitz et al. · 2011 [cited by applicant]
US 20110270881A1 · Borton · 2011 [cited by applicant]
US 20120016633A1 · Wittenstein et al. · 2012 [cited by applicant]
US 20120022926A1 · Ramanathan · 2012 [cited by applicant]
US 20120036011A1 · Schechter et al. · 2012 [cited by applicant]
US 20130060856A1 · Fried et al. · 2013 [cited by applicant]
US 20130237300A1 · Johnson · 2013 [cited by applicant]
US 20130339158A1 · Xie et al. · 2013 [cited by applicant]
US 20140115459A1 · Norwood · 2014 [cited by applicant]
US 20140229268A1 · Clapp · 2014 [cited by examiner]
US 20140236514A1 · Icove · 2014 [cited by examiner]
US 20150012811A1 · Chan et al. · 2015 [cited by applicant]
US 20150161219A1 · Bendiabdallah · 2015 [cited by applicant]
US 20150262227A1 · Messer · 2015 [cited by applicant]
Durron597, How do I hide javascript code in a webpage?, 2011 (Year: 2011). [cited by examiner]
Saed Sayad, Decision Tree-Classification, Internet Archive Way Back Machine Capture date of Mar. 12, 2013 from URL: http://www.saedsayad.com/decision_tree.htm. [cited by applicant]
Trademark Electronic Search System (TESS), Linux, Jan. 4, 2017, United States Patent and Trademark Office. [cited by applicant]
Stone-Gross B., et al., “Understanding Fraudulent Activities in Online Ad Exchanges,” 2011, pp. 279-294. [cited by applicant]
Trademark Electronic Search System (TESS), “Comscore,” Feb. 28, 2017, United States Patent and Trademark Office, 2 pages. [cited by applicant]
Trademark Electronic Search System (TESS), “Craigslist,” Feb. 28, 2017, United States Patent and Trademark Office, 2 pages. [cited by applicant]
Trademark Electronic Search System (TESS), “Wikipedia,” Feb. 28, 2017, United States Patent and Trademark Office, 2 pages. [cited by applicant]