IP Library Granted Patent US 12,488,178
Granted Patent B2
US 12,488,178 · App. 17/426,258 · Granted Dec 2, 2025

Verifying content and interactions within webviews

Inventors: David Bruce Turner (Newark, CA); Aaron Michael Packer (Mountain View, CA); Zachary Loebel-Fried (Half Moon Bay, CA)
Assignee: Google LLC
G06F40/14G06F21/577G06F21/602G06F40/134G06F2221/033
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,488,178
App. No.
17/426,258
Granted
Dec 2, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for verifying content provided for display within a webview and interactions with such content. Methods can include providing, within a webview executing in a portion of an application launched on a client device, a first content page including a digital component and detecting, by a script executing within the webview, a set of interaction signals. After detection of the set of interaction signals, the signals can be transferred from the webview, via a communication bridge, to a software library that is resident within the native layer. The software library transmits the set of interaction signals to a first content provider, which can determine whether the interaction signals indicate interactions by an actual human user as opposed to automated interactions. The software library then launches a second content page that is linked to by the digital component.

Claims (57)

1 . A computer-implemented method, comprising:

providing, within a webview executing in a portion of a native application launched on a client device, a first content page comprising a digital component, wherein the native application is an application other than a web browser and the webview is a browser engine included within the native application;

detecting, by a script executing within the webview, a set of interaction signals representing one or more interactions with the digital component;

transferring, via a communication bridge between a native layer of the native application and the webview, the set of interaction signals from the webview to a software library that is resident within the native layer;

generating, by the software library, using a public encryption key of a first content provider, environment trustworthiness data that comprises encrypted data about the native application and the client device;

transmitting, by the software library, the set of interaction signals and the environment trustworthiness data to the first content provider that evaluates whether the set of interaction signals indicate interactions by a human user of the client device with the digital component instead of an automated interaction, wherein the evaluation is based on processing of the interaction signals and the environment trustworthiness data using a machine learning model; and

launching, by the software library and in response to the one or more interactions with the digital component, a second content page that is linked to by the digital component and that is provided by the first content provider.

2 . The computer-implemented method of claim 1 , wherein providing the digital component within the webview comprises:

generating, by the script executing within the webview, a request for digital content, wherein the request comprises a unique identifier for the webview that is assigned to the webview by the native layer;

providing the request for digital content to a second content provider, wherein the second content provider is different from the first content provider;

in response to providing the request for digital content to the second content provider, receiving, from the second content provider, data comprising the digital component and the unique identifier;

verifying that the data received from the second content provider comprises the unique identifier;

in response to verifying that the data received from the second content provider comprises the unique identifier, providing the digital component within the webview.

3 . The computer-implemented method of claim 2 , further comprising:

sending, by the script and via the communication bridge, a request for environment trustworthiness data to the software library.

4 . The computer-implemented method of claim 3 , wherein the request for digital content comprises an encrypted dataset that is generated by encrypting the environment trustworthiness data and the unique identifier.

5 . The computer-implemented method of claim 2 , wherein verifying that the data received from the second content provider comprises the unique identifier:

determining, by the software library, that the unique identifier of the webview matches the unique identifier that was included in the data that was received from the second content provider.

6 . The computer-implemented method of claim 1 , wherein launching the second content page is executed in response to the evaluation of the interaction signals indicating interaction by a human user.

7 . The computer-implemented method of claim 1 , wherein providing the set of interaction signals and the environment trustworthiness data to the first content provider comprises appending data representing the set of interaction signals and the environment trustworthiness data to a uniform resource locator (URL) for the second content page that is provided by the first content provider and that is linked to by the digital component.

8 . The computer-implemented method of claim 1 , wherein launching the second content page comprises launching a web browser application and accessing the URL for the second content page within the web browser application.

9 . A non-transitory computer readable medium storing instructions that, when executed by one or more data processing apparatus, cause the one or more data processing apparatus to perform operations comprising:

providing, within a webview executing in a portion of a native application launched on a client device, a first content page comprising a digital component, wherein the native application is an application other than a web browser and the webview is a browser engine included within the native application;

detecting, by a script executing within the webview, a set of interaction signals representing one or more interactions with the digital component;

transferring, via a communication bridge between a native layer of the native application and the webview, the set of interaction signals from the webview to a software library that is resident within the native layer;

generating, by the software library, using a public encryption key of a first content provider, environment trustworthiness data that comprises encrypted data about the native application and the client device;

transmitting, by the software library, the set of interaction signals and the environment trustworthiness data to the first content provider that evaluates whether the set of interaction signals indicate interactions by a human user of the client device with the digital component instead of an automated interaction, wherein the evaluation is based on processing of the interaction signals and the environment trustworthiness data using a machine learning model; and

launching, by the software library and in response to the one or more interactions with the digital component, a second content page that is linked to by the digital component and that is provided by the first content provider.

10 . The non-transitory computer readable medium of claim 9 , wherein providing the digital component within the webview comprises:

generating, by the script executing within the webview, a request for digital content, wherein the request comprises a unique identifier for the webview that is assigned to the webview by the native layer;

providing the request for digital content to a second content provider, wherein the second content provider is different from the first content provider;

in response to providing the request for digital content to the second content provider, receiving, from the second content provider, data comprising the digital component and the unique identifier;

verifying that the data received from the second content provider comprises the unique identifier;

in response to verifying that the data received from the second content provider comprises the unique identifier, providing the digital component within the webview.

11 . A system, comprising:

at least one processor; and

at least one memory storing instructions that, when executed by the at least one processor, cause performance of operations, comprising:

providing, within a webview executing in a portion of a native application launched on a client device, a first content page comprising a digital component;

detecting, by a script executing within the webview, a set of interaction signals representing one or more interactions with the digital component;

transferring, via a communication bridge between a native layer of the native application and the webview, the set of interaction signals from the webview to a software library that is resident within the native layer;

generating, by the software library, using a public encryption key of a first content provider, environment trustworthiness data that comprises encrypted data about the native application and the client device;

transmitting, by the software library, the set of interaction signals and the environment trustworthiness data to the first content provider, that evaluates whether the set of interaction signals indicate interactions by a human user of the client device with the digital component instead of an automated interaction, wherein the evaluation is based on processing of the interaction signals and the environment trustworthiness data using a machine learning model; and

launching, by the software library and in response to the one or more interactions with the digital component, a second content page that is linked to by the digital component and that is provided by the first content provider.

12 . The system of claim 11 , wherein providing the digital component within the webview comprises:

generating, by the script executing within the webview, a request for digital content, wherein the request comprises a unique identifier for the webview that is assigned to the webview by the native layer;

providing the request for digital content to a second content provider, wherein the second content provider is different from the first content provider;

in response to providing the request for digital content to the second content provider, receiving, from the second content provider, data comprising the digital component and the unique identifier;

verifying that the data received from the second content provider comprises the unique identifier; and

in response to verifying that the data received from the second content provider comprises the unique identifier, providing the digital component within the webview.

13 . The system of claim 12 , further comprising:

sending, by the script and via the communication bridge, a request for environment trustworthiness data to the software library, wherein the environment trustworthiness data comprises data about the native application and the client device for assessing a trustworthiness of the native application and the client device.

14 . The system of claim 13 , wherein the request for digital content comprises an encrypted dataset that is generated by encrypting the environment trustworthiness data and the unique identifier.

15 . The system of claim 12 , wherein verifying that the data received from the content provider comprises the unique identifier:

determining, by the software library, that the unique identifier of the webview matches the unique identifier that was included in the data that was received from the content provider.

16 . The system of claim 11 , wherein the launching the second content page is executed in response to the evaluation of the interaction signals indicating interaction by a human user.

17 . The system of claim 11 , wherein transmitting the set of interaction signals and the environment trustworthiness comprises appending data representing the set of interaction signals and the environment trustworthiness data to a uniform resource locator (URL) for the second content page that is provided by the first content provider and that is linked to by the digital component.

18 . The system of claim 11 , wherein launching the second content page comprises launching a web browser application and accessing the URL for the second content page within the web browser application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: TURNER, DAVID BRUCE; PACKER, AARON MICHAEL; LOEBEL-FRIED, ZACHARY
To: GOOGLE LLC
Reel/Frame 057229/0421 →
Continuity (1)
Related Publication 20230124545A1 · Apr 20, 2023
References Cited (35)
US 8286248B1 · Oliphant · 2012 [cited by examiner]
US 9582598B2 · Kalgi · 2017 [cited by applicant]
US 10187375B1 · Kincaid · 2019 [cited by examiner]
US 20100287229A1 · Hauser · 2010 [cited by applicant]
US 20130311871A1 · Turner · 2013 [cited by examiner]
US 20150019944A1 · Kalgi · 2015 [cited by examiner]
US 20150112892A1 · Kaminsky et al. · 2015 [cited by applicant]
US 20170185758A1 · Oliker et al. · 2017 [cited by applicant]
US 20200145384A1 · Chauhan · 2020 [cited by examiner]
US 20200242251A1 · Wisgo · 2020 [cited by examiner]
CN 107864677 · 2018 [cited by applicant]
CN 108604272 · 2018 [cited by applicant]
CN 109446807 · 2019 [cited by applicant]
JP 2008269364 · 2008 [cited by applicant]
JP 2010514070 · 2010 [cited by applicant]
Library; Microsoft Computer Dictionary; May 1, 2002; Microsoft Press; Fifth Edition; p. 309. [cited by examiner]
Kirupa, Understanding WebViews, Apr. 26, 2019, sirupa.com, pp. 1-11. [cited by examiner]
Office Action in Indian Appln. No. 202127031457, dated Feb. 21, 2023, 8 pages (with English transaction). [cited by applicant]
Office Action in European Appln. No. 20743401.0, dated Nov. 25, 2022, 7 pages. [cited by applicant]
Wikipedia.org [online], “Client-server model” Jun. 17, 2022, retrieved on Nov. 21, 2022, retrieved from URL <https://en.wikipedia.org/w/index.php?title=Client%E2%80%93server_model&oldid=962987183>, 6 pages. [cited by applicant]
Dong et al., “Frauddroid: Automated ad fraud detection for android apps,” Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineeri… [cited by applicant]
InternetofThingsAgenda.techtarget.com [online], “Unique Identifier (UID),” Feb. 2019, retrieved on Aug. 11, 2021, retrieved from URL<https://internetofthingsagenda.techtarget.com/definition/unique-identifier-UID>, 3 pag… [cited by applicant]
Oppliger et al., “Does trusted computing remedy computer security problems?,” IEEE Security & Privacy, Apr. 2005, 3(2):16-19. [cited by applicant]
PCT International Search Report and Written Opinion in International Appln. No. PCT/US2020/039329, dated Feb. 23, 2021, 15 pages. [cited by applicant]
International Preliminary Report on Patentability in International Appln. No. PCT/US2020/039329, mailed on Jan. 5, 2023, 9 pages. [cited by applicant]
Office Action in European Appln. No. 20743401.0, dated Jun. 10, 2022, 6 pages. [cited by applicant]
Office Action in European Appln. No. 20743401.0, dated Mar. 2, 2022, 8 pages. [cited by applicant]
Office Action in Japanese Appln. No. 2021-544613, dated Oct. 31, 2022, 10 pages (with English translation). [cited by applicant]
Cao et al., “AdSherlock: Efficient and Deployable Click Fraud Detection for Mobile Applications” IEEE Transactions on Mobile Computing, Jan. 2020, 20(4):1285-1297. [cited by applicant]
Office Action in European Appln. No. 20743401.0, dated Mar. 21, 2023, 5 pages. [cited by applicant]
Notice of Allowance in Japanese Appln. No. 2021-544613, dated Apr. 3, 2023, 5 pages (with English transaction). [cited by applicant]
Wikipedia.org [online], “Bridge Pattern” May 12, 2020, retrieved on Jul. 21, 2023, retrieved from URL <https://en.wikipedia.org/w/index.php?title=Bridge_pattern&oldid=956329467>, 9 pages. [cited by applicant]
Wikipedia.org [online], “Code Reuse” Jun. 5, 2020, retrieved on Jul. 21, 2023, retrieved from URL <https://en.wikipedia.org/w/index.php?title=Code_reuse&oldid=960963748>, 4 pages. [cited by applicant]
Office Action in Korean Appln. No. 10-2021-7025344, mailed on Jan. 24, 2024, 12 pages (with English translation). [cited by applicant]
Office Action in Chinese Appln. No. 202080011804.5, mailed on Dec. 18, 2024, 14 pages (with English translation). [cited by applicant]