Verification of content and interactions within web page view

By establishing a communication bridge between the webpage view and the native layer, and utilizing a software library to verify interaction signals and environmental credibility data, the issue of the legitimacy of interactions and content within the webpage view is resolved, ensuring the authenticity and security of interactions and content.

CN121598375APending Publication Date: 2026-03-03GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511558493.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2020-06-24
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

Existing technologies cannot effectively verify whether interactions with digital components within a webpage view are performed by a human user, and cannot ensure that the content provided is from the intended content provider, posing a risk of malicious code and unwanted content reception.

Method used

By establishing a communication bridge between the webpage view and the native layer, the software library of the native layer is used to detect interaction signals and environmental credibility data, verify the authenticity of the interaction, and verify the identity of the content provider, thus ensuring the legality of the interaction and content.

Benefits of technology

It enables the verification of the authenticity of interactions within the webpage view, preventing the reception of malicious code and unwanted content, and protecting the security of native applications and client devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121598375A_ABST
    Figure CN121598375A_ABST
Patent Text Reader

Abstract

The present disclosure relates to methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for verifying content provided for display within a web page view and interactions with such content. In some embodiments, a method may include providing, within a webpage view executed in a portion of a native application launched on a client device, a first content page including a digital component; detecting, by a script executing within the web page view, a set of interaction signals representing one or more interactions with the digital component; transferring the set of interaction signals from the web view to a software library residing within the native layer via a communication bridge between the native layer and the web view of the native application; and launch, by the software library, a second page of content linked by the digital component and provided by the first content provider in response to the one or more interactions with the digital component.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application filed on June 24, 2020, with application number 202080011804.5 and invention title "Verifying Content and Interaction within a Webpage View". Technical Field

[0002] This disclosure generally relates to data processing and validation of content displayed within a webview for execution in a native application, and interaction with the content within the webview. Background Technology

[0003] Client devices may display digital web page content provided by one or more content providers, such as within a commercial web browser or through a native application (other than a commercial web browser) executing a web page view. As used in this disclosure, a web page view may include a browser engine contained within a native application that may (1) render the web page, (2) read, compile, and / or execute scripts and / or web page code (such as JavaScript, cascading style sheets (CSS), extensible markup language (XML), etc.) to generate a graphical user interface, and / or (3) enable communication with a server (e.g., a content provider, content platform, etc.). Summary of the Invention

[0004] Generally, an innovative aspect of the subject matter described in this specification can be embodied in a method comprising: providing a first content page including a digital component within a webpage view executed in a portion of an application launched on a client device; detecting a set of interaction signals representing one or more interactions with the digital component by a script executed within the webpage view; transmitting the set of interaction signals from the webpage view to a software library residing in the native layer via a communication bridge between the native layer of the application and the webpage view; having the software library send the set of interaction signals to a first content provider to evaluate whether the set of interaction signals indicates an interaction between a human user of the client device and the digital component, rather than an automatic interaction; and, in response to said one or more interactions with the digital component, launching a second content page linked to by the digital component and provided by the first content provider by the software library. Other embodiments of this aspect include corresponding methods, apparatus, and computer programs configured to perform the actions of these methods and encoded on a computer storage device.

[0005] These and other embodiments may optionally each include one or more of the following features.

[0006] The method may further include generating a request for digital content by a script executed within a webpage view, wherein the request includes a unique identifier for the webpage view assigned by a native layer and wherein the request for digital content includes an encrypted dataset generated by encrypted environment trust data and the unique identifier; 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 data including digital components and a unique identifier from the second content provider; verifying that the data received from the content provider includes the unique identifier; and in response to verifying that the data received from the content provider includes the unique identifier, providing the digital components within the webpage view.

[0007] The method may include sending a request for environment trust data from a script to a software library via a communication bridge, wherein the environment trust data includes data about the native application and client device for evaluating the trustworthiness of the native application and client device; and receiving environment trust data from the software library via the communication bridge.

[0008] The method may include launching a second content page in response to an evaluation of an interaction signal indicating an interaction by a human user, wherein launching the second content page includes launching a web browser application and accessing a uniform resource locator (URL) of a second content page within the web browser application.

[0009] The method may include matching a unique identifier for a webpage view, determined by a software library, with a unique identifier included in data received from a content provider.

[0010] The method may include providing a set of interaction signals to a first content provider, and also includes providing environmental credibility data to the first content provider, which includes appending data representing the set of interaction signals and the environmental credibility data to a Uniform Resource Locator (URL) of a second content page provided by the first content provider and linked by a digital component.

[0011] An innovative aspect of the subject matter described in this specification can also be embodied in a method comprising: providing a first content page including digital components within a webpage view executed in a portion of a native application launched on a client device, wherein the native application is an application other than a web browser, and the webpage view is a browser engine included within the native application; detecting a set of interaction signals representing one or more interactions with the digital components by a script executed within the webpage view; transmitting the set of interaction signals from the webpage view to a software library residing in the native layer via a communication bridge between the native layer of the native application and the webpage view; and launching a second content page linked to by the digital components and provided by a first content provider by the software library in response to one or more interactions with the digital components, wherein providing the digital components within the webpage view comprises: providing a request for digital content to a second content provider, wherein the second content provider is different from the first content provider, wherein the request includes a unique identifier for the webpage view assigned by the native layer, and verifying that the data received from the second content provider includes the unique identifier in response to receiving data including the digital components and the unique identifier from the second content provider. Other embodiments in this regard include corresponding methods, apparatus, and computer programs configured to perform actions of these methods and encoded on a computer storage device.

[0012] Specific embodiments of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. For example, the techniques described in this specification enable content providers to verify whether interactions with digital components (e.g., digital media items, digital advertisements, or links to other content pages) displayed within a web page view are performed by actual human users, rather than automated interactions (e.g., interactions that may be incorrectly generated due to software defects / vulnerabilities and / or spoofed as human-generated interactions by malicious code / entities). Web page views are implemented as container classes within native applications and typically do not have access to resources running in the native layer of the underlying native application. Therefore, web page views cannot access interaction verification resources in the native layer, and thus cannot utilize these resources to verify interactions with digital components displayed within a web page view using existing systems. In contrast, the techniques described in this specification implement a software bridge (e.g., a JavaScript bridge) between the native layer and the web page view, enabling interaction verification resources in the native layer to be utilized to aid in verifying interactions with digital components within the web page view.

[0013] The techniques described in this specification also prevent the execution of malicious code or other unwanted / unrequested code within a web view. Because web views are implemented as container classes within a native application, the application's native layer typically has no control over the content received and displayed within a web view. As a result, web views may receive malicious code and / or content that could compromise the web view (and / or the interaction between the web view and the native layer), the underlying native application, and / or the client device. This can happen, for example, if a web view requests content from a content provider but receives the content / code from an entity other than the requesting content provider (e.g., a malicious entity). To address these issues, the techniques described in this specification utilize software resources residing in the application's native layer to verify that the content provider to which the request is sent is the same content provider from which the content is received.

[0014] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the subject matter will become apparent from the specification, drawings, and claims. Attached Figure Description

[0015] Figure 1 This is a block diagram showing how content pages and digital components are distributed and provided for display on client devices in a sample environment 100.

[0016] Figure 2 It shows Figure 1 The diagram shows the actions performed by the components in verifying whether the interactions with digital components within the webpage view are performed by an actual human user.

[0017] Figure 3 It shows Figure 1 A diagram illustrating the actions performed by the component when verifying whether the digital components provided for display within a webpage view are provided by the intended content provider.

[0018] Figure 4 This is a flowchart illustrating an example process for verifying whether interactions with digital components within a webpage view are performed by an actual human user.

[0019] Figure 5 This is a block diagram of an example computer system that can be used to perform the operations described. Detailed Implementation

[0020] This disclosure generally relates to verifying content provided for display within a web page view executed in a native application and interaction with that content.

[0021] Content providers may want to verify that interactions with digital components displayed within a web view of an application are performed by actual human users of the client device, rather than some spoofed indication of human interaction. The techniques described in this specification, and detailed in this disclosure, are summarized below, and enable such interaction verification by executing a script within the web view to detect interaction signals with the digital components and using a communication bridge between the web view and the application's native layer to transmit the interaction signals from the web view to a software library residing in the application's native layer. Upon receiving the interaction signal from the web view, the software library in the native layer sends the interaction signal (and / or additional environmental credibility data (as further described in this specification)) to the content provider, which can then assess whether the interaction signal indicates an interaction performed by an actual human user of the client device (as opposed to erroneously generated automated interactions, for example, due to software defects / vulnerabilities and / or malicious code / entity forgery).

[0022] As used herein, a communication bridge is a software bridge that connects the native layer of a native application to the web view of the native application, enabling communication and data transfer between the web view and the native layer. In some implementations, the communication bridge may be implemented as a JavaScript bridge. In some implementations, the JavaScript bridge is implemented by the operating system (OS) of the client device. Examples of such OSs may include Android or iOS. For example, the JavaScript bridge may be implemented using an application programming interface (API) provided by the OS.

[0023] In addition to verifying interactions within a web view, the techniques summarized below and described in this specification also verify that the content provided for display within the web view is indeed provided by the content provider who requested such content. This verification attempts to prevent the web view from receiving unwanted and / or malicious code, which in turn protects the web view, the native application, and / or the client device from harm. To enable such content verification, a software library in the application's native layer assigns a unique identifier to the web view and provides that unique identifier along with contextual trust data (as further described in this disclosure) to the web view. In some implementations, the software library may encrypt the unique identifier and contextual trust data before transmitting them to the application's web view. In such implementations, the web view provides this encrypted unique identifier and contextual trust data, along with the content request, to the content provider.

[0024] Upon receiving a content request, the content provider can decrypt the encrypted unique identifier and environment trust to extract the unique identifier. The content provider can then include the unique identifier along with data (e.g., a digital component) in a message sent to the web view. Before the digital component is provided for display within the web view, the web view sends the received unique identifier (via a communication bridge) to a software library, which verifies that the received unique identifier is the same as the unique identifier assigned to the web view. If the received unique identifier matches the unique identifier assigned to the web view, the software library can determine that the received digital component can be provided for display within the web view and instructs the web view to provide the digital component for display. Conversely, if the received unique identifier differs from the unique identifier assigned to the web view, the software library determines that the received digital component cannot be provided for display within the web view and instructs the web view not to display the digital component.

[0025] The following is for reference. Figures 1-4 These features and additional characteristics will be further described.

[0026] Figure 1 This is a block diagram of an example environment 100 where content pages and digital components are distributed and provided for display on client devices. Example environment 100 includes a network 104. Network 104 may include a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. Network 104 may also include any type of wired and / or wireless network, satellite network, wired network, Wi-Fi network, mobile communication network (e.g., 3G, 4G, etc.), or any combination thereof. Network 104 may utilize communication protocols, including packet-based and / or datagram-based protocols, such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or other types of protocols. Network 104 may also include multiple devices that facilitate network communication and / or form the hardware infrastructure of the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, or combinations thereof. Network 104 connects client device 102 and content provider 106. Example environment 100 may include many different content platforms 106, content providers 108, and client devices 102.

[0027] Content platform 106 is a computing platform capable of distributing content (such as, as referenced) Figure 5 (The data processing device mentioned above). Example content platform 106 includes search engines, social media platforms, new platforms, data aggregator platforms, or other content sharing platforms. Each content platform 106 can be operated by a content platform service provider.

[0028] Content platform 106 can publish and provide its own content. For example, content platform 106 could be a news platform that publishes its own news articles. Content platform 106 can also present content provided by one or more content providers 108 that are not part of content platform 106. In the example above, the news platform could also present third-party content provided by one or more content providers 108. As another example, content platform 106 could be a data aggregator platform that does not publish any of its own content, but instead aggregates and presents third-party content provided by different content providers 108.

[0029] As used in this specification, content provider 108 may be a data processing device (as referenced). Figure 5 The content platform 106 and / or client device 102 may include servers, repositories, or other storage devices that store content generated and / or published by one or more entities and provide content to the content platform 106 and / or client device 102 in response to content requests from these entities.

[0030] Client device 102 is an electronic device capable of requesting and receiving content via network 104. Example client device 102 includes personal computers, mobile communication devices, digital assistant devices, and other devices capable of sending and receiving data via network 104.

[0031] Example client device 102A typically includes an operating system 112, which is primarily responsible for managing device hardware such as device storage 114 and software resources such as applications. Client device 102A typically includes applications such as a web browser 116 to facilitate sending or receiving data over network 104 and rendering content pages on client device 102. However, native applications 118 (other than web browsers) running on client device 102 may also use, for example, web views running within these native applications to facilitate sending or receiving data over network 104 and rendering content pages on the client device.

[0032] In some implementations, the application 118 executing on client device 102 includes a native layer, which may be an executable object compiled for execution on client device 102 (e.g., compiled for the software and hardware environment of client device 102A, such as operating system, processor, chipset, etc.). In some implementations, the native layer 122 may also include a software library 123. As used throughout this specification, the software library 123 may include computer-executable resources running in the native layer of the underlying native application, capable of performing one or more operations. For example, and as described throughout this specification, the software library 123 may enable and / or assist in verifying content provided within a web page view and / or interacting with content provided within a web page view.

[0033] In some implementations, application 118 may also be configured to include web page view 126. As used herein, the web page view may read, compile, and / or execute web page code and / or technologies such as JavaScript, Cascading Style Sheets (CSS), Extensible Markup Language (XML), etc., to generate a graphical user interface, communicate with a web server, and perform other web page client functions. In some implementations, the application's web page view loads scripts and content pages provided by a content provider. For example, script 127 may be JavaScript code loaded along with the content page and executed within the web page view 126 of application 118.

[0034] Web view 126 can communicate with a content provider to request a content page from the content provider, and upon receiving such content, the web view can provide that content for display. A user of client device 102A can interact with one or more digital components provided on the received content page within the web view.

[0035] As mentioned above, in traditional systems, the content provided within a webpage view and the interaction with that content cannot be verified. In contrast, the following... Figure 2 and Figure 3 The description allows you to validate the content provided within a webpage view and to validate interactions with that content.

[0036] Figure 2 It shows Figure 1 The block diagram 200 shows the actions performed by the component in verifying whether the interaction with the digital component provided within the web page view is an interaction performed by an actual human user.

[0037] like Figure 2 As shown, client device 102A (e.g., a smartphone) accesses a first content page 202, which is provided and presented by a content provider for display within the webpage view 126 of native application 118. The first content page 202 may be a content page provided by a news aggregator platform that includes news articles provided by different content providers 108. As another example, the first content page 202 may be a content page provided by a social media platform that presents media items provided by one or more content providers 108. Figure 2As shown, the first content page 202 may also include a digital component 204 that is linked to a second content page that may be provided by the same or different content providers. As used herein, a digital component is a discrete unit of digital content or digital information, such as, for example, a video clip, an audio clip, a multimedia clip, an image, text, a Uniform Resource Locator (URL), or other content unit.

[0038] Figure 2 The operations / interactions occurring within the native application 118 are further illustrated, particularly those occurring between the native layer 122 and the web page view 126. The native layer 122 is an executable object compiled for execution on the client device 102A and is based on the software and hardware environment of the client device 102A, such as the operating system, processor, chipset, etc. The web page view 126 can read, compile, and / or execute web page code and / or technologies, such as JavaScript, Cascading Style Sheets (CSS), Extensible Markup Language (XML), etc., to generate graphical user interfaces, communicate with web servers, and perform other web client functions. As mentioned above, the web page view is implemented as a container class within the native application and cannot directly access resources running in the native layer of the underlying native application. Therefore, to allow the web page view to access these resources in the native layer, a communication bridge needs to be established between the web page view and the native layer (as described above and further detailed in this specification).

[0039] In some implementations, web page view 126 loads scripts and content pages provided by a content provider. The web page view further renders the content pages on client device 102A and enables the user of client device 102A to interact with digital components included in the content pages.

[0040] A user can interact with digital component 204 (e.g., by pressing his / her finger and / or the stylus 206 on the touchscreen of client device 102A). In response to this interaction, the web page view can launch a second content page linked by digital component 204. In some cases, recorded interactions with digital component 204 may have been generated incorrectly (e.g., due to software defects or vulnerabilities in the application and / or web page view), or may have been generated by malicious code executed within the application (e.g., code injected by a malicious entity to forge interactions with the digital component).

[0041] To verify whether the interaction with the digital component 204 within the webpage view is performed by an actual human user of the client device 102A, a script executing within the webpage view detects a set of interaction signals generated by the interaction with the digital component. Examples of such interaction signals detected by the script may include the coordinates of the location where the interaction was detected (e.g., a touch point on a touchscreen) and the duration of the contact. For example, if a user of the client device 102A uses stylus 206 to interact with the digital component 204, the script can detect interaction signals that may include the coordinates of the location where stylus 206 made contact and the duration of the contact.

[0042] After detecting the set of interaction signals, script 127, executed in web view 126, sends the set of interaction signals 210 to the software library in the application's native layer via a communication bridge. For example, after detecting the set of interaction signals 210 by script 127, executed in web view 126, script 127 sends the group of interaction signals to the software library 123 in the native layer 122 via communication bridge 120.

[0043] In some implementations, software library 123 in native layer 122 is configured to operate independently or in conjunction with the operating system of client device 102A to collect signals about the software and hardware environment of client device 102A and / or native application 118. Examples of signals collected include, but are not limited to, the operating system version running on the client device, the chipset used on the client device, the identifier of the native application, the version of the native application, whether the native application was downloaded from an official app store, the type of client device, the model of the client device, evidence that the device has been rooted and / or jailbroken, the last update time of the operating system of the client device, and whether native application 118 is running on an emulator. These signals may also include details about other hardware and / or software resources in client device 102A responsible for executing application 118 on client device 102A. These signals are collectively referred to as environment trustworthiness data 212, which can be used by content providers to determine the trustworthiness of client device 102.

[0044] In some implementations, after receiving a set of interaction signals from webpage view 126, software library 123 sends the set of interaction signals 210, either alone or in combination with contextual credibility data 212, to content provider 108. In some implementations, the software library appends data representing the set of interaction signals and contextual credibility data to a Uniform Resource Locator (URL) of a second content page provided by content provider 108 and linked by digital component 204.

[0045] In some implementations, the software library can launch a separate web browser application (e.g., application 116) and access the URL referenced in the preceding paragraph. By navigating to this URL, the software library 123 provides (and the content provider 108 receives) a set of interaction signals and contextual credibility data. Alternatively, the URL can be launched within a web page view 126.

[0046] Based on the received interaction signal 210 and / or environmental credibility data 212 (e.g., included in the URL for accessing a second content page provided by content provider 108), content provider 108 can verify whether the interaction with the digital component 204 within the webpage view is performed by an actual human user of client device 102A.

[0047] Content provider 108 may implement, for example, a machine learning model, a rule-based engine, or other suitable techniques that process a set of interaction signals 210 and / or environmental credibility data 212 to determine whether an interaction performed on webpage view 126 was generated by an actual human user of client device 102A. In an implementation of content provider 108 including a rule-based engine, the engine may use a set of rules to analyze the interaction signals and / or environmental credibility data to determine whether an interaction within the webpage view was performed by an actual human user. Alternatively, in an implementation of content provider 108 including a machine learning model (e.g., a supervised or unsupervised learning model), the model takes environmental credibility data and / or interaction signals as input and outputs a determination (e.g., a binary determination, or a probability assessment) to determine whether an interaction within the webpage view was performed by an actual human user. For example, the machine learning model may be a supervised model trained using training data from multiple client devices, including interaction signals and environmental credibility data for each such device, as well as known corresponding determinations regarding whether interactions within the webpage view on each device were performed by an actual human user.

[0048] Based on the determination of whether the interaction with the digital component within the webpage view is performed by an actual human user, content provider 108 may take at least the following actions. If content provider 108 determines that the interaction is not performed by an actual human user, content provider 108 may refuse access to the second content page linked by digital component 204. This can save resources at the content provider's location, such as server processing power and network bandwidth, by avoiding delivery of content to potentially compromised devices. This could be a significant saving in the event of a denial-of-service or DoS attack on one or more client devices, and could even prevent the content provider from being overwhelmed by malicious requests from one or more client devices 102A. On the other hand, if content provider 108 determines that the interaction is performed by an actual human user, content provider 108 may allow access to the second content page linked by digital component 204. In some implementations, if content provider 108 determines that the interaction was not performed by an actual human user, content provider 108 may allow access to a second content page linked by digital component 204, but may record details about the client device 102A and / or application 118 that initiated the interaction to prevent or limit subsequent delivery of content to that device / application. As previously mentioned, resources at the content provider can be saved by avoiding delivery of content to the potentially compromised client device 102A.

[0049] Alternatively, instead of content provider 108 verifying whether interactions within a webpage view are performed by an actual human user, this verification can be performed by software library 123. For example, a native application may be configured to include certain frameworks (as described with reference to content provider 108 in the preceding paragraph) for determining whether interactions performed on a webpage view are generated by an actual human user of the client device. In such an implementation, if software library 123 determines that the interaction is not performed by an actual human user, software library 123 may refuse to launch a separate browser application (e.g., application 116) and / or prevent access to a second content page linked by digital component 204 within application 116. This can conserve resources such as processing power, memory usage, network usage, and the battery power of potentially compromised client device 102A. On the other hand, if software library 123 determines that the interaction is performed by an actual human user, software library 123 may launch application 116 and navigate to (e.g., by accessing a URL) a second content page within application 116.

[0050] In summary, the above description illustrates how interaction with digital components within a webpage view is verified by actual human users on client devices. The following section... Figure 3 The description explains how to verify that the digital components provided for display within a webpage view are provided by the intended content provider (i.e., the content provider to whom the content request was sent).

[0051] Figure 3 It shows Figure 1 The block diagram 300 shows the operations performed by the component when verifying whether the digital component provided for display within the webpage view is provided by the expected content provider.

[0052] like Figure 2 As shown, Figure 3 The operations / interactions occurring within native application 118 are shown, and in particular, the operations / interactions occurring between native layer 122 and web page view 126 are shown (both of which have been referenced above). Figure 1 and Figure 2 (Description provided).

[0053] When webpage view 126 is launched, webpage view 126 (or script 327 executed within webpage view 126) requests digital content from content provider 108 (using request 316). In some implementations, the request for digital content generated by the script executed within the webpage view (also simply referred to as a "request for content") is a packetized data request that includes header and payload data. The request for content page may include event data specifying characteristics, such as the name (or network location) of the content provider from which the digital component is requested and the name (or network location) of the requesting device (e.g., client device 102). In some implementations, event data specifying event characteristics may include the location of the digital component. For example, a request for content generated by script 327 executed within webpage view 126 of application 118 may include the URL or other resource identifier of the digital component.

[0054] In some implementations, script 327 may include a content request, a unique identifier (UID) assigned to a webpage view, and contextual trust data. In such an implementation, the script first sends a request for contextual trust data to a software library 123 residing in the native layer 122 via communication bridge 120. This request may include the webpage view's UID 314, which can be used by the software library 123 to verify that the request for contextual trust data actually originates from webpage view 126 (e.g., by comparing the UID of webpage view 126 stored in the native layer 122 with the received UID). During such verification, the software library 123 generates, as referenced... Figure 2 The environmental credibility data is provided to the web page view via communication bridge 120.

[0055] In some implementations, software library 123 encrypts the environment trust data and webpage view UID in the encrypted dataset and includes the dataset in response 312 provided by software library 123 to webpage view 126. The software library can generate the encrypted dataset using, for example, an asymmetric encryption algorithm. As part of such encryption, the software library uses the public key of content provider 108 to generate the encrypted dataset.

[0056] Script 327 then includes the encrypted dataset and a request for content 316. Although not shown in the figure, the request for digital content 316 is sent to content provider 108 via network 104.

[0057] Upon receiving a content request 316, content provider 108 can decrypt the encrypted dataset (e.g., using the content provider's private key if asymmetric encryption is used) to obtain an unencrypted unique identifier 314a and event credibility data. Content provider 108 generates a response 318 using the data, including a digital component 304 (or a resource identifier for the digital component 304, such as a URL) and the decrypted unique identifier 314a. Although in Figure 3 Although not shown, response 318 is sent via network 104 to script 127 in web view 126 of application 118 executed on client device 102A.

[0058] Upon receiving response 318, script 327 provides the unique identifier (UID) 314a included in response 318 to software library 123 via communication bridge 120. Software library 123 compares UID 314a with UID 314 of web page view 126 stored in native layer 122. If the UID matches based on the comparison / evaluation, software library 123 determines that the digital component was actually received from the intended content provider 108 (i.e., the content provider 108 to which content request 316 was sent). On the other hand, if the UID does not match based on the evaluation, software library 123 determines that the received digital component was provided by an entity other than the intended content provider 108 (i.e., the content provider 108 to which content request 316 was sent). Software library generates evaluation result 315, which includes an indication of whether the digital component was actually received from the intended content provider 108, and provides evaluation result 315 to script 327.

[0059] Based on the evaluation results, script 327 can be configured to provide or prevent the display of the digital component provided in response 318. For example, script 327 can be configured not to display the digital component received in response 318 in web page view 126 if evaluation result 315 indicates that the digital component received in response 318 was not received from the intended content provider 108 (i.e., if UID 314a in response 318 is different from UID 314 in web page view 126). This will save resources such as processing power, memory usage, and battery power of client device 102A. On the other hand, if evaluation result 315 indicates that the digital component received in response 318 was received from the intended content provider 108, then script 327 can be configured to render the digital component provided in response 318 within web page view 126 (i.e., if UID 314a in response 318 is the same as UID 314 in web page view 126, as described above).

[0060] Figure 4 This is a flowchart of an example process 400 used to verify whether interactions with digital components provided within a webpage view are performed by an actual human user. The operation of process 400 is described below as follows: Figure 1 , 2 The operation of process 400 is performed by the components of the system described and depicted in section 3. The operation of process 400 is described below for illustrative purposes only. The operation of process 400 can be performed by any suitable device or system (e.g., any suitable data processing apparatus). The operation of process 400 can also be implemented as instructions stored on a non-transitory computer-readable medium. Execution of the instructions causes one or more data processing apparatuses to perform the operation of process 400.

[0061] A first content page (410) including digital components is provided within a webpage view executed in a native application launched on the client device. In some implementations, as referenced above... Figure 2 The client device 102A (e.g., a smartphone) accesses a first content page 202 (provided by a first content provider 108) for display within a webpage view 126. The first content page 202 also includes a digital component 204 that links to a second content page, which may be provided by either the first or the second content provider (e.g., any other content provider besides the first content provider).

[0062] The script executing within the webpage view detects a set of interaction signals (420) representing interactions with one or more digital components. In some implementations, the webpage view 126 of application 118 executing on client device 102A loads script 127 and content page 202 provided by content provider 108. In some instances, the webpage view may log interactions with digital component 204. To be able to verify whether interactions with digital component 204 within the webpage view are performed by an actual human user of the client device (as opposed to interactions triggered, for example, due to software defects / vulnerabilities and / or due to the execution of certain malicious code), the script executing within the webpage view detects a set of interaction signals (as referenced) based on the detected interactions with the digital component. Figure 2 (Further description).

[0063] A set of interaction signals is transmitted from the web view to the software library (430) residing in the native layer via a communication bridge between the application's native layer and the web view. In some implementations, after the set of interaction signals is detected, a script 127 executing in the web view 126 sends the set of interaction signals to the software library 123 in the native layer 122 of the application 118 via the communication bridge 120.

[0064] The software library sends a set of interaction signals to the first content provider for evaluation (440). In some implementations, after receiving the set of interaction signals from the application's web page view (via a communication bridge), the software library in the application's native layer sends the set of interaction signals to the content provider for verification. For example, after receiving the set of interaction signals 210 from script 127, software library 123 sends the set of interaction signals 210 to content provider 108.

[0065] In some implementations, in addition to sending a set of interaction signals, the software library 123 also collects environmental credibility data and sends it to the content provider 108 (as per reference). Figure 2 and Figure 3 (Further description). See above for reference. Figure 2 In some implementations, content providers may use interaction signals and / or event credibility data to assess / verify whether interactions with digital components within a webpage view are generated by actual human users on the client device.

[0066] The software library initiates a second content page (450) linked by the digital component. In some implementations, the software library 123 appends data representing a set of interaction signals and environmental confidence data to the Uniform Resource Locator (URL) of the second content page, which is provided by the first content provider and linked by the digital component. The software library 123 then initiates a web browser application (different from the native application) and accesses the URL of the second page within that web browser application.

[0067] Figure 5 This is a block diagram of an example computer system 500 that can be used to perform the operations described above. System 500 includes a processor 510, memory 520, storage device 530, and input / output device 540. Each of components 510, 520, 530, and 540 may be interconnected, for example, using a system bus 550. Processor 510 is capable of processing instructions for execution within system 500. In some implementations, processor 510 is a single-threaded processor. In another implementation, processor 510 is a multi-threaded processor. Processor 510 is capable of processing instructions stored in memory 520 or storage device 530.

[0068] Memory 520 stores information within system 500. In one implementation, memory 520 is a computer-readable medium. In some implementations, memory 520 is a volatile memory cell. In another implementation, memory 520 is a non-volatile memory cell.

[0069] Storage device 530 provides high-capacity storage for system 500. In some implementations, storage device 530 is a computer-readable medium. In various implementations, storage device 530 may include, for example, a hard disk drive, an optical disk drive, a storage device shared by multiple computing devices (e.g., cloud storage devices) over a network, or some other high-capacity storage device.

[0070] Input / output device 540 provides input / output operations for system 500. In some implementations, input / output device 540 may include one or more network interface devices (e.g., Ethernet cards), serial communication devices (e.g., RS-232 ports), and / or wireless interface devices (e.g., 802.11 cards). In another implementation, input / output device may include a driver device configured to receive input data and send output data to peripheral device 560 (e.g., keyboard, printer, and display device). However, other implementations, such as mobile computing devices, mobile communication devices, set-top box TV client devices, etc., may also be used.

[0071] Despite Figure 5 An example processing system is described herein, but the implementation of the subject matter and functional operations described herein can be implemented in other types of digital electronic circuits, or in computer software, firmware, or hardware, including structures disclosed herein and their structural equivalents, or combinations thereof.

[0072] Embodiments of the subject matter and operations described in this specification can be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including structures disclosed herein and their structural equivalents, or combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more computer program instruction modules, encoded on a computer storage medium (or media) for execution by or control of its operation by a data processing device. Alternatively, program instructions can be encoded on artificially generated propagation signals (e.g., machine-generated electrical, optical, or electromagnetic signals), which are generated to encode information for transmission to a suitable receiving device for execution by the data processing device. The computer storage medium can be or is included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination thereof. Furthermore, while the computer storage medium is not a propagation signal, it can be a source or destination of computer program instructions encoded in artificially generated propagation signals. The computer storage medium can also be or be included in one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[0073] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0074] The term "data processing apparatus" includes various devices, apparatuses, and machines for processing data, such as programmable processors, computers, systems-on-a-chip, or a combination thereof. The apparatus may include special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or a combination of one or more. The apparatus and execution environment can implement various different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0075] Computer programs (also referred to as programs, software, software applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as standalone programs or modules, components, subroutines, objects, or other units suitable for use in a computing environment. Computer programs may, but do not necessarily, correspond to files in a file system. Programs can be stored in portions of files that hold other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to said program, or in multiple coordination files (e.g., files storing one or more modules, subroutines, or portions of code). Computer programs can be deployed to execute on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communication network.

[0076] The processes and logic flows described in this specification can be executed by one or more programmable processors to perform actions by manipulating input data and generating outputs from one or more computer programs. The processes and logic flows can also be executed by dedicated logic circuitry, and the apparatus can be implemented as dedicated logic circuitry, such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit).

[0077] For example, processors suitable for executing computer programs include both general-purpose and special-purpose microprocessors. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor that executes actions according to instructions and one or more memories that store those instructions and data. Typically, a computer will also include, or be operatively coupled to, receiving data from or transferring data to one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) used for storing data, or both. However, a computer does not require such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROMs, EEPROMs, and memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROMs and DVD-ROMs. The processor and memory may be supplemented by or incorporated into special-purpose logic circuitry.

[0078] To provide interaction with the user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. Furthermore, the computer can interact with the user by sending documents to and receiving documents from the device used by the user; for example, by sending web pages to a web browser on the user's client device in response to a request received from a web browser.

[0079] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes back-end components (e.g., as a data server), or middleware components (e.g., an application server), or front-end components (e.g., a client computer having a graphical user interface or web browser through which a user can interact with an implementation of the subject matter described herein), or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected through any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), internal networks (e.g., the Internet) and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0080] A computing system may include clients and servers. Clients and servers are typically geographically separated and usually interact via a communication network. The client-server relationship arises from computer programs running on their respective computers and from their client-server relationship. In some embodiments, the server sends data (e.g., HTML pages) to a client device (e.g., to display data to a user interacting with the client device and to receive user input from the user interacting with the client device). Data generated at the client device (e.g., the result of user interaction) can be received from the client device at the server.

[0081] While this specification contains numerous specific implementation details, these should not be construed as limiting the scope of any disclosure or potentially claimed content, but rather as descriptions of specific features of particular embodiments of a particular disclosure. Some features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although the foregoing features may be described as functioning in certain combinations, and even initially claimed to do so, in some cases one or more features from the claimed combination may be removed from the claimed combination, and the claimed combination may be directed to sub-combinations or variations thereof.

[0082] Similarly, although operations are described in a specific order in the accompanying drawings, this should not be construed as requiring such operations to be performed in the specific order or sequence shown, or requiring all illustrated operations to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated into a single software product or packaged into multiple software products.

[0083] Therefore, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions described in the claims can be performed in a different order and the desired result can still be obtained. Furthermore, the processes described in the drawings do not necessarily require the specific order or sequence shown to achieve the desired result. In some implementations, multitasking and parallel processing may be advantageous.

Claims

1. A computer-implemented method, comprising: Within a webpage view executed as part of a native application launched on a client device, a first content page including digital components is provided, wherein the native application is an application other than a web browser, and the webpage view is a browser engine included within the native application; A set of interaction signals that indicate interaction with one or more digital components, detected by a script executed within the webpage view; A communication bridge between the native layer of the native application and the web page view transmits a set of interactive signals from the web page view to the software library residing in the native layer; and In response to the one or more interactions with the digital component, the software library launches a second content page linked to by the digital component and provided by the first content provider. Providing digital components within a webpage view includes: providing a request for digital content to a second content provider, wherein the second content provider is different from the first content provider. The request includes a unique identifier for the webpage view, assigned by the native layer, and In response to receiving data including digital components and a unique identifier from a second content provider, verify that the data received from the second content provider includes a unique identifier.

2. The computer-implemented method according to claim 1, wherein, Providing digital components within a webpage view includes: Requests for digital content are generated by scripts that execute within the webpage view; In response to a request to provide digital content to a second content provider, data including digital components and unique identifiers is received from the second content provider; In response to verifying that the data received from the second content provider includes a unique identifier, a digital component is provided within the webpage view.

3. The computer-implemented method according to claim 1 or 2, wherein, Launching the second content page is performed in response to an evaluation of the human user's interaction indicated by interaction signals.

4. The computer-implemented method according to claim 2 further includes: The script sends a request for environment trust data to the software library via the communication bridge. This environment trust data includes data about the native application and client devices, used to assess the trustworthiness of the native application and client devices; and Receive environmental trust data from the software library via the communication bridge.

5. The computer-implemented method according to claim 2, wherein, Verify that the data received from the second content provider includes a unique identifier: The unique identifier of the webpage view is determined by the software library and matched with the unique identifier included in the data received from the second content provider.

6. The computer-implemented method according to claim 4, wherein, Requests for digital content include encrypted datasets generated using encrypted environment trust data and unique identifiers.

7. The computer-implemented method according to claim 4, wherein, The set of interaction signals provided to the first content provider also includes providing environmental credibility data to the first content provider.

8. The computer-implemented method according to claim 7, wherein, Providing the set of interaction signals and contextual credibility data to the first content provider includes appending data representing the set of interaction signals and contextual credibility data to a Uniform Resource Locator (URL) of a second content page provided by the first content provider and linked by the digital component.

9. The computer-implemented method according to claim 1, wherein, Launching the second content page involves launching a web browser application and accessing the URL of the second content page within the web browser application.

10. A system for verifying content displayed within a webpage view for execution in a native application, comprising: Within a webpage view executed as part of a native application launched on a client device, a first content page including digital components is provided, wherein the native application is an application other than a web browser, and the webpage view is a browser engine included within the native application; A set of interaction signals that indicate interaction with one or more digital components, detected by a script executed within the webpage view; A communication bridge between the native layer of the native application and the web page view transmits a set of interactive signals from the web page view to the software library residing in the native layer; and In response to the one or more interactions with the digital component, the software library launches a second content page linked to by the digital component and provided by the first content provider. Providing digital components within a webpage view includes: providing a request for digital content to a second content provider, wherein the second content provider is different from the first content provider. The request includes a unique identifier assigned to the webpage view by the native layer. In response to receiving data including digital components and a unique identifier from a second content provider, verify that the data received from the second content provider includes a unique identifier.

11. The system according to claim 10, wherein, Providing digital components within a webpage view includes: Requests for digital content are generated by scripts that execute within the webpage view; In response to a request to provide digital content to a second content provider, data including digital components and unique identifiers is received from the second content provider; In response to verifying that the data received from the second content provider includes a unique identifier, a digital component is provided within the webpage view.

12. The system according to claim 10 or 11, wherein, Launching the second content page is performed in response to an evaluation of the human user's interaction indicated by interaction signals.

13. The system according to claim 11, further comprising: The script sends a request for environment trust data to the software library via the communication bridge. This environment trust data includes data about the native application and client devices, used to assess the trustworthiness of the native application and client devices; and Receive environmental trust data from the software library via the communication bridge.

14. The system according to claim 11, wherein, Verify that the data received from the second content provider includes a unique identifier: The unique identifier of the webpage view is determined by the software library and matched with the unique identifier included in the data received from the second content provider.

15. The system according to claim 13, wherein, Requests for digital content include encrypted datasets generated using encrypted environment trust data and unique identifiers.

16. The system according to claim 13, wherein, The set of interaction signals provided to the first content provider also includes providing environmental credibility data to the first content provider.

17. The system according to claim 16, wherein, Providing the set of interaction signals and contextual credibility data to the first content provider includes appending data representing the set of interaction signals and contextual credibility data to a Uniform Resource Locator (URL) of a second content page provided by the first content provider and linked by the digital component.

18. The system according to claim 10, wherein, Launching the second content page involves launching a web browser application and accessing the URL of the second content page within the web browser application.

19. A non-transitory computer-readable medium storing instructions that, when executed by one or more data processing means, cause the one or more data processing means to perform an operation, comprising: Within a webpage view executed as part of a native application launched on a client device, a first content page including digital components is provided, wherein the native application is an application other than a web browser, and the webpage view is a browser engine included within the native application; A set of interaction signals that indicate interaction with one or more digital components, detected by a script executed within the webpage view; A communication bridge between the native layer of the native application and the web page view transmits a set of interactive signals from the web page view to the software library residing in the native layer; and In response to the one or more interactions with the digital component, the software library launches a second content page linked to by the digital component and provided by the first content provider. Providing digital components within a webpage view includes: providing a request for digital content to a second content provider, wherein the second content provider is different from the first content provider. The request includes a unique identifier assigned to the webpage view by the native layer. In response to receiving data including digital components and a unique identifier from a second content provider, verify that the data received from the second content provider includes a unique identifier.

20. The non-transitory computer-readable medium according to claim 19, wherein, Providing digital components within a webpage view includes: Requests for digital content are generated by scripts that execute within the webpage view; In response to a request to provide digital content to a second content provider, data including digital components and a unique identifier is received from the second content provider; and In response to verifying that the data received from the second content provider includes a unique identifier, a digital component is provided within the webpage view.