System and method for reducing latency of content item interactions using client-generated click identifiers

By generating click identifiers on the client device and transmitting them to the click server using asynchronous requests or APIs, the problem of delayed click detection in existing technologies is solved, enabling faster access to content items.

CN114625993BActive Publication Date: 2026-07-14GOOGLE LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GOOGLE LLC
Filing Date
2016-11-15
Publication Date
2026-07-14

AI Technical Summary

Technical Problem

In computer network environments, existing technologies suffer from latency issues when monitoring content item clicks, especially since communication with the click server is required before the client device is redirected to the landing page of the content item, leading to increased latency.

Method used

By generating a click identifier on the client device and transmitting it to the click server using an asynchronous request or API, while navigating to the landing page of the content item, the communication steps with the click server before redirection are avoided.

Benefits of technology

It reduces the time from clicking on a content item to being redirected to the landing page, significantly reducing latency, especially on low-bandwidth networks, and improving the efficiency of network services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114625993B_ABST
    Figure CN114625993B_ABST
Patent Text Reader

Abstract

The present invention relates to systems and methods for reducing latency of content item interactions using client-generated click identifiers. The system can include a processor and a memory coupled to the processor. The memory stores computer-executable instructions that, when executed by the processor, cause the processor to: identify an indication of an interaction with a content item presented within a content slot of an information resource; generate a click identifier that uniquely identifies the interaction; transmit, to a click server, a first request that includes a click resource link that includes the click identifier; and, independent of transmitting the first request, transmit a second request that accesses the landing page of the content item. The second request includes a generated resource link that identifies a resource identifier of the landing page of the content item and the click identifier.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Case Analysis

[0002] This application is a divisional application of Chinese invention patent application 201680034584.1, filed on November 15, 2016.

[0003] Cross-references to related applications

[0004] This application claims the benefit of priority to U.S. Application No. 14 / 975,027, filed December 18, 2015, entitled “SYSTEMS AND METHODS FORLATENCY REDUCTION IN CONTENT ITEM INTERACTIONS USING CLIENT-GENERATED CLICKIDENTIFIERS,” which is incorporated herein by reference in its entirety. Background Technology

[0005] In a computerized networked environment such as the Internet, third-party content providers offer third-party content items displayed on end-user computing devices. These third-party content items may be displayed on web pages associated with the corresponding publishers. These third-party content items may include content that identifies the third-party content provider offering the content item. Summary of the Invention

[0006] At least one aspect relates to a system for reducing latency in online network services. The system may include a processor and memory coupled to the processor. The memory stores computer-executable instructions that, when executed by the processor, cause the processor to identify instructions for interacting with content items presented in content slots of an information resource and generate a click identifier that uniquely identifies the interaction with the content item. The content item can be received from a data processing system via a computer network. The computer-executable instructions, when executed by the processor, may further cause the processor to generate a first request including a click resource link and transmit the first request including the click resource link to a click server, the click resource link including the click identifier. The computer-executable instructions, when executed by the processor, may also cause the processor to generate a resource link that identifies i) a resource identifier of a landing page corresponding to the content item and ii) a click identifier that uniquely identifies the interaction with the content item; and independently of transmitting the first request, transmit a second request to access the landing page of the content item. The second request includes the generated resource link.

[0007] In some embodiments, the memory stores computer-executable instructions that, when executed by a processor, can further cause the processor to transmit the first request to the click server at approximately the same time as a second request to transmit the landing page of the accessed content item. In some embodiments, the memory stores computer-executable instructions that, when executed by a processor, can also cause the processor to transmit the first request to the click server via an asynchronous interface of an application of a computing device on which information resources are presented. In some embodiments, the asynchronous interface includes a BEACON application plugin (API).

[0008] In some embodiments, the memory stores computer-executable instructions that, when executed by a processor, can further enable the processor to determine that the application is configured with an asynchronous interface. In some embodiments, content items received from the data processing system may also include a flash identifier that uniquely identifies the content item. The click identifier may include a flash identifier and a counter indicating the number of interactions with the content item. In some embodiments, the memory stores computer-executable instructions that, when executed by a processor, can further enable the processor to recognize an indication of a second interaction with a content item presented in a content slot of an information resource, and adjust the value of the click identifier's counter in response to recognizing the second interaction indication.

[0009] At least one aspect relates to a method for reducing latency in online network services. The method includes: receiving, via a computer network, a content item to be presented in a content slot of an information resource from a data processing system through a computing device including one or more processors. The method includes: identifying, via the computing device, an indication of interaction with the content item presented in the content slot of the information resource. The method includes: generating, via the computing device, a click identifier that uniquely identifies the interaction with the content item. The method further includes: generating, via the computing device, a first request including a click resource link; and transmitting, via the computing device, the first request including the click resource link to a click server, the click resource link including the click identifier. The method includes: generating, via the computing device, a resource link identifying i) a resource identifier of a landing page corresponding to the content item and ii) a click identifier that uniquely identifies the interaction with the content item; and transmitting, via the computing device, a second request to access the landing page of the content item, the second request including the generated resource link, independently of transmitting the first request.

[0010] In some embodiments, the method further includes transmitting a first request to a click server at approximately the same time as a second request to transmit a landing page for accessing content items. In some embodiments, the method further includes transmitting the first request to the click server via an asynchronous interface of an application of a computing device on which information resources are presented. In some embodiments, the method further includes determining that the application is configured with an asynchronous interface. In some embodiments, the method further includes identifying an indication of a second interaction with a content item presented in a content slot of the information resource; and adjusting the value of a counter for a click identifier in response to identifying the second interaction indication.

[0011] At least one aspect relates to a method for reducing latency in online network services. The method includes: a data processing system having one or more processors receiving from a client device a content request for a content item to be presented in a content slot of an information resource. The method includes: in response to the content request, the data processing system transmitting the content item to be presented in the content slot of the information resource to the client device via a computer network. The content item includes an asynchronous click transfer script, the asynchronous click transfer script including computer-executable instructions. When executed by a processor of the client device, the computer-executable instructions can cause a computing device to recognize instructions for interaction with the content item presented in the content slot of the information resource. When executed by a processor of the client device, the computer-executable instructions can cause the client device to generate a click identifier that uniquely identifies the interaction with the content item. When executed by a processor of the client device, the computer-executable instructions can also cause the client device to generate a first request including a click resource link and transmit the first request including the click resource link to a click server, the click resource link including the click identifier. When executed by the processor of the client device, the computer-executable instructions may further cause the client device to generate a resource link that identifies i) a resource identifier of a landing page corresponding to a content item and ii) a click identifier that uniquely identifies an interaction with the content item; and independently of transmitting the first request, transmit a second request to access the landing page of the content item, the second request including the generated resource link.

[0012] In some embodiments, the computer-executable instructions, when executed by the processor of the client device, may further cause the client device to transmit the first request to the click server at approximately the same time as the second request to transmit the landing page for accessing the content item. In some embodiments, the computer-executable instructions, when executed by the processor of the client device, may further cause the client device to transmit the first request to the click server via an asynchronous interface of an application of a computing device on which the information resources are presented.

[0013] In some embodiments, the computer-executable instructions, when executed by the processor of the client device, may further enable the client device to determine that the application is configured with an asynchronous interface. In some embodiments, the computer-executable instructions, when executed by the processor of the client device, may further enable the client device to recognize an indication of a second interaction with a content item presented in a content slot of an information resource, and in response to recognizing the indication of the second interaction, adjust the value of a counter for a click identifier.

[0014] Another aspect provides a computer-readable medium containing instructions that, when executed by a computing device, cause the computing device to perform the methods of the present disclosure. This computer-readable medium may be a non-transitory computer-readable medium, but is not limited thereto. These and other aspects, as well as embodiments, will be discussed in detail below. The foregoing information and the following detailed description include illustrative examples of various aspects and embodiments, and provide an overview or framework for understanding the nature and characteristics of the claimed aspects and embodiments. The accompanying drawings provide illustration and further understanding of the various aspects and embodiments and are incorporated in and constitute a part of this specification. It will be understood that various aspects and embodiments may be combined, and features described in the context of one aspect or embodiment may be implemented in the context of other aspects. Attached Figure Description

[0015] The accompanying drawings are not intended to be drawn to scale. In the various drawings, similar reference numerals and names indicate similar elements. For clarity, not every part may be labeled in every drawing. In the drawings:

[0016] Figure 1 This is a block diagram depicting one embodiment of an environment for reducing latency in online network services, according to an illustrative implementation.

[0017] Figure 2 This is a block diagram depicting one embodiment of an environment for reducing latency in online network services, according to an illustrative implementation.

[0018] Figure 3 This is a block diagram depicting one embodiment of a system for reducing latency in online network services, according to an illustrative implementation.

[0019] Figure 4 This is a block diagram illustrating an information resource having content items provided at a client device according to an illustrative embodiment.

[0020] Figure 5 It is a flowchart depicting a method for reducing latency of online network services according to an illustrative embodiment.

[0021] Figure 6It is an illustrative block diagram depicting a general implementation of the architecture of a computer system of elements and methods that can be used to implement the systems and methods described and illustrated herein. Detailed Implementation

[0022] The following is a more detailed description of various concepts and implementations related to methods, apparatus, and systems for reducing latency of online network services in a computer network environment. Because the described concepts are not limited to any particular implementation, the various concepts introduced above and discussed in more detail below can be implemented in any of a variety of ways.

[0023] This disclosure generally relates to systems and methods for reducing latency in online web services by generating click identifiers (IDs) at a client device in response to interaction with content items (e.g., interactive content that may form part of an interactive user interface). The generated click ID is transmitted to the click server using asynchronous requests or APIs at approximately the same time as the server transmitting the generated click ID to the landing page of the content item.

[0024] In some methods, after a content item is clicked on a client device, the client device sends a request to a click server indicating that the specific content item has been clicked. In response to this request, the click server can record the click, generate a click ID indicating the click, and return a "302 redirect" (i.e., a redirect identified by the HTTP status code 302) along with the generated click ID to the client device. The browser on the client device can then be redirected to the landing page of the content item based on the "302 redirect." However, this method of monitoring clicks on content items can introduce latency due to the client device sending the request to the click server and receiving the "302 redirect" from the click server before it can be redirected to the landing page. In some implementations with added security layers such as SSL, additional round trips are necessary before the client device is redirected to the landing page. Depending on the type of connection, for example, if the client device is on a 3G / 4G network or other networks with low bandwidth or low transmission speeds, the amount of time from clicking the content item to the client device being redirected to the landing page can be approximately several seconds. This latency can be reduced by separating the click tracking process from the request to access the landing page of the content item.

[0025] The systems and methods described in this paper reduce latency by generating a click ID on the client device in response to a clicked content item, and transmitting the generated click ID to the click server using an asynchronous request or API, while simultaneously redirecting the browser to the Uniform Resource Locator (URL) of the content item's landing page. Therefore, the systems and methods described in this paper avoid the steps of sending a request to the click server and receiving a "302 redirect" before redirecting the browser to the landing page.

[0026] In some implementations, upon receiving a request for one or more content items, the content server may transmit the content items, including an asynchronous click delivery script that can be executed on the client device, to the client device. The content item may also include a flash identifier that uniquely identifies the content item flash. The asynchronous click delivery script allows the client device to determine whether its application (e.g., a browser) is compatible with an asynchronous API (e.g., a Beacon API). If the application on the client device is compatible with the asynchronous API, the asynchronous click delivery script allows the client device to generate a unique click ID that uniquely identifies the interaction (e.g., a click) with the content item. In one implementation, the click ID may include a flash identifier and a counter. The flash identifier of the click ID identifies the content item displayed on the client device. The counter of the click ID identifies the number of times the client device records clicks on the content item. Therefore, each click can be identified by a unique click ID.

[0027] Once a click ID is generated, the asynchronous click delivery script allows the client device to transmit the generated click ID to the click server using an asynchronous request or an API such as the Beacon API. For example, the asynchronous click delivery script can cause the application on the client device to generate a beacon request and transmit that request using the Beacon API. The beacon request can include the click ID generated by the client device. The asynchronous click delivery script can also cause the client device to generate a resource link by appending the generated click ID to the landing page URL and to navigate to the landing page of the content item. In this way, the client device can directly provide information identifying flashes and clicks to the content provider associated with the content item. In one implementation, the asynchronous click delivery script causes the client device's application to navigate to the landing page based on the generated resource link in approximately the same amount of time as using an asynchronous API to transmit the click ID to the click server, thus avoiding latency in navigating to the landing page.

[0028] Figure 1This is a block diagram depicting one embodiment of an environment for reducing latency in online network services, according to an illustrative implementation. Environment 100 includes at least one data processing system 110. Data processing system 110 may include at least one processor (or processing circuitry) and memory. The memory stores processor-executable instructions that, when executed on the processor, cause the processor to perform one or more operations described herein. The processor may include a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination thereof. The memory may include, but is not limited to, electronic storage, optical storage, magnetic storage, or other storage, or a transmission means capable of providing program instructions to the processor. The memory may further include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ASIC, FPGA, read-only memory (ROM), random access memory (RAM), electrically erasable ROM (EEPROM), erasable programmable ROM (EPROM), flash memory, optical media, or any other suitable memory from which the processor can read instructions. Instructions may include code from any suitable computer programming language. Data processing system 110 may include one or more computing devices or servers capable of performing various functions.

[0029] Network 105 may include computer networks such as the Internet, local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), or other regional networks, intranets, satellite networks, other computer networks such as voice or data mobile phone communication networks, and combinations thereof. The data processing system 110 of environment 100 may communicate via network 105, for example, with at least one content provider computing device 115, at least one content publisher computing device 120, or at least one client device 125. Network 105 may be any form of computer network that relays information between client device 125, data processing system 110, and one or more content sources such as web servers, content servers, etc. For example, network 105 may include the Internet and / or other types of data networks, such as local area networks (LANs), wide area networks (WANs), cellular networks, satellite networks, or other types of data networks. Network 105 may also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and / or transmit data within network 105. Network 105 may further include any number of hardwired connections and / or wireless connections. For example, client device 125 can (e.g., via WiFi, cellular, radio, etc.) wirelessly communicate with transceivers of other computing devices in network 105 via hard connections (e.g., via optical fiber, CAT5 cable, etc.).

[0030] Content provider computing device 115 may include a server or other computing device operated by a content provider entity to provide one or more content items to be displayed on an information resource at a client device. The content provided by content provider computing device 115 may include third-party content items to be displayed on an information resource, such as a website or webpage containing, for example, the main content provided by content provider computing device 120. Content items may also be displayed on search results webpages. For example, content provider computing device 115 may provide or serve as a source for one or more content items to be displayed in content slots on a content webpage or on a search results landing page provided by a search engine, such as a company webpage where the main content is provided by a company. Content items associated with content provider computing device 115 may be displayed on information resources other than webpages, such as content displayed as part of an application (such as a GPS or map application, or other type of application) running on a smartphone or other client device 125.

[0031] Content publisher computing device 120 may include a server or other computing device operated by a content publishing entity to provide primary content to be displayed via network 105. For example, content publisher computing device 120 may include a webpage operator that provides primary content to be displayed on a webpage. The primary content may include content other than that provided by content publisher computing device 120, and the webpage may include content slots configured to display third-party content items from content provider computing device 115. For example, content publisher computing device 120 may operate a company's website and provide content related to that company to be displayed on webpages of the website. The webpage may include content slots configured to display third-party content items from content provider computing device 115. In some embodiments, content publisher computing device 120 includes a search engine computing device (e.g., a server) that operates a search engine operator for a search engine website. The primary content of a search engine webpage (e.g., results or landing page) may include search results and third-party content items displayed in content slots, such as content items from content provider computing device 115. In some embodiments, content publisher computing device 120 may include a server for providing video content.

[0032] Client device 125 may include computing devices configured to communicate via network 105 to display data such as content provided by content publisher computing device 120 (e.g., main web page content or other information resources) and content provided by content provider computing device 115 (e.g., third-party content items configured to be displayed in content slots of a web page). Client device 125, content provider computing device 115, and content publisher computing device 120 may include desktop computers, laptop computers, tablet computers, smartphones, personal digital assistants, mobile devices, consumer computing devices, servers, clients, digital video recorders, set-top boxes, video game consoles, or any other computing devices configured to communicate via network 105. Client device 125 may be a communication device through which an end user can submit a request to receive content. This request may be a request to a search engine and may include a search query. In some embodiments, the request may include a request to access a web page.

[0033] Content provider computing device 115, content publisher computing device 120, and client device 125 may include a processor and memory, i.e., processing circuitry. The memory stores machine instructions that, when executed on the processor, cause the processor to perform one or more operations described herein. The processor may include a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination thereof. The memory may include, but is not limited to, electronic storage, optical storage, magnetic storage, or other storage, or a transmission means capable of providing program instructions to the processor. The memory may further include floppy disks, CD-ROMs, DVDs, magnetic disks, memory chips, ASICs, FPGAs, read-only memory (ROM), random access memory (RAM), electrically erasable ROM (EEPROM), erasable programmable ROM (EPROM), flash memory, optical media, or any other suitable memory from which the processor can read instructions. Instructions may include code from any suitable computer programming language.

[0034] The content provider computing device 115, the content publisher computing device 120, and the client device 125 may also include one or more user interface devices. Generally, a user interface device refers to any electronic device (e.g., keyboard, mouse, pointing device, touchscreen display, microphone, etc.) that conveys data to a user by generating sensory information (e.g., visualization on a display, one or more sounds, etc.) and / or converts sensory information received from the user into electronic signals. According to various embodiments, one or more user interface devices may be located inside the housing of the content provider computing device 115, the content publisher computing device 120, and the client device 125 (e.g., a built-in display, microphone, etc.) or outside the housing of the content provider computing device 115, the content publisher computing device 120, and the client device 125 (e.g., a monitor connected to the user computing device 115, a speaker connected to the user computing device 115, etc.). For example, the content provider computing device 115, the content publisher computing device 120, and the client device 125 may include an electronic display that visually displays web pages using web page data received via network 105 from one or more content sources and / or from data processing system 110. In some implementations, the content delivery manager or a third-party content provider may communicate with the data processing system 110 via the content provider computing device 115. In some implementations, the content delivery manager or a third-party content provider may communicate with the data processing system 110 via a user interface displayed on a user interface device of the content provider computing device 115.

[0035] Data processing system 110 may include at least one server. For example, data processing system 110 may include multiple servers located in at least one data center or server cluster. In some embodiments, data processing system 110 may include a third-party content delivery system, such as a content server. Data processing system 110 may include at least one content request module 130, at least one content selection module 135, at least one script provider module 140, and at least one database 145. Content request module 130, content selection module 135, and script provider module 140 may each include at least one processing unit, server, virtual server, circuit, engine, agent, application, or other logical device, such as a programmable logic array configured to communicate via network 105 with database 145 and other computing devices (e.g., content provider computing device 115, content publisher computing device 120, or client device 125).

[0036] Content request module 130, content selection module 135, and script provider module 140 may include or execute at least one computer program or at least one script. Content request module 130, content selection module 135, and script provider module 140 may be separate components, a single component, or part of data processing system 110. Content request module 130, content selection module 135, and script provider module 140 may include a combination of software and hardware, such as one or more processors configured to execute one or more scripts.

[0037] The data processing system 110 may also include one or more content repositories or databases 145. Database 145 may be located locally on the data processing system 110. In some embodiments, database 145 may be located remotely from the data processing system 110, but may communicate with the data processing system 110 via network 105. Database 145 may include web pages, portions of web pages, third-party content items, and asynchronous click-through scripts, etc., to serve client devices 125.

[0038] Content request module 130 can receive content requests from client device 125. Content requests may include requests for information resources, requests for one or more third-party content items, requests for scripts (e.g., asynchronous click-to-transfer scripts), or combinations thereof. In some embodiments, a content request may include a request for third-party content. In some embodiments, a request for third-party content may include the address or identifier of an information resource on which the third-party content is to be displayed. A request for third-party content may also include or identify one or more parameters that the data processing system 110 may use to determine the content to be provided in response to a content request. For example, the parameter may identify the size of the content slot to which the requested content is to be inserted. The parameter may identify the type of content associated with the information resource, the type of the requested third-party content (e.g., text, image, video, etc.), client device information, size information of the requested third-party content item, or a combination thereof. In some embodiments, the request may identify a script, such as an asynchronous click-to-transfer script.

[0039] In some implementations, a request for content may include a request for an information resource. A request for an information resource may include the address or identifier of the information resource. For example, a request for an information resource may include the URL of a specific resource, such as a webpage (e.g., "http: / / www.example.com"). A request for an information resource may also include client device information (such as device type, device identifier, or a combination thereof).

[0040] In some embodiments, a request for content may include a request for an asynchronous click-to-transfer script. In some embodiments, a request for an asynchronous click-to-transfer script may include an instruction for the requested script, an address or identifier of an information resource, or a combination thereof. In some embodiments, a request for an asynchronous click-to-transfer script may identify the asynchronous click-to-transfer script. In some embodiments, the content request module 130 may be configured to parse the request for content and determine whether to forward the request to the content selection module 135 or the script provider module 140. For example, if, in response to receiving a request for content, it is determined that an asynchronous click-to-transfer script should be sent to the client device 125, the content request module 130 may forward the request to the script provider module 140. Otherwise, the content request module 130 may forward the request to the content selection module 135. In some embodiments, the content request module 130 may determine whether to forward the request to both the content selection module 135 and the script provider module 140. The content request module 130 may determine whether to send the script to the client device 125 based on the type of the content request (e.g., a request for information resources, a request for third-party content, or a request for asynchronous click-transfer scripts), an indicator in the content request (e.g., an indicator indicating an asynchronous click-transfer script or an indicator indicating that the information resource meets the conditions for asynchronous click-transfer), an information resource identifier in the content request, an indication that the client device can generate a click identifier, or a combination thereof. In some embodiments, the content request module 130 may determine whether to send the script to the client device 125 by comparing the identification of the information resource with a list of information resource identifiers (e.g., information resource identifiers eligible to receive asynchronous click-transfer scripts). In some embodiments, the information resource identifier may be a URL. In some embodiments, the information resource identifier may be the domain to which the information resource belongs. In some embodiments, the information resource identifier may be an IP address corresponding to a server hosting the information resource. In some embodiments, the content request module 130 may automatically forward the content request to the content selection module 135 without determining whether to send the script to the client device 125. In some implementations, regardless of whether the request for content includes a request for an asynchronous click transfer script, the content request module 130 can forward the request to the script provider module 140.

[0041] Content selection module 135 can be configured to determine, in response to receiving a request for content, the content to be transmitted to client device 125. Content selection module 135 can determine the content to be sent to client device 125 based on information included in the request for content. For example, upon receiving a request for an information resource, content selection module 135 can use the address or identifier of the information resource in the request for content to determine the content to be sent to the client device. Upon receiving a request for one or more third-party content items, content selection module 135 can select the third-party content item based on the address or identifier of the information resource on which the third-party content item is to be presented, the content type information of the information resource (e.g., sports, news, music, movies, travel, etc.), the size information of the content slot where the third-party content item is to be displayed, and client device information (e.g., device type, device identifier, device location, etc.). In some embodiments, content selection module 135 can access database 145 and retrieve content to be sent to client device 125.

[0042] In some embodiments, the content selection module 135 may be configured to determine, in response to a request for content, whether to send a script to the client device 125. The content selection module 135 may determine whether to send the script to the client device 125 based on the type of content request (e.g., a request for information resources, a request for third-party content, or a request for asynchronous click-to-transfer scripts), an indicator in the content request (e.g., an indicator indicating an asynchronous click-to-transfer script), an information resource identifier in the content request, or a combination thereof. In some embodiments, the content selection module 135 may determine whether to send the script to the client device 125 by comparing an identification of an information resource with a list of information resource identifiers (information resource identifiers eligible to receive asynchronous click-to-transfer scripts). Upon determining that the script should be sent to the client device 125, the content selection module 135 may forward the request for content or its indication to the script provider module 140. In some embodiments, the content selection module 135 may select third-party content items to be sent to the client device 125, as well as scripts such as asynchronous click-to-transfer scripts.

[0043] Script provider module 140 can be configured to retrieve asynchronous click-transfer scripts from database 145 and transmit the retrieved scripts to client device 125 (or to another entity for delivery to client device 125). In some embodiments, the asynchronous click-transfer scripts can be transmitted to client device 125 separately or together with third-party content items. For example, script provider module 140, content selection module 135, or another entity of data processing system 110 can include the asynchronous click-transfer scripts within third-party content items before sending them to client device 125. In some embodiments, script provider module 140, content selection module 135, or another entity of data processing system 110 can send the asynchronous click-transfer scripts together with requested information resources to client device 125.

[0044] The asynchronous click transfer script may include computer-executable instructions. These computer-executable instructions may include scripts such as Hypertext Markup Language (HTML), Extensible Hypertext Markup Language (XHTML), Extensible Markup Language (XML), Cascading Style Sheets (CSS), and JavaScript. The computer-executable instructions may be executed within an application on client device 125, such as an application that causes client device 125 to transfer a content request received through content request module 130. This application may include, for example, an internet browser, mobile application, game application, GPS application, or any other computer program capable of reading and executing computer-executable instructions. In brief, the computer-executable instructions, when executed by the processor of the client device 125, enable the application of the client device to: (a) identify an instruction to interact with a content item presented in a content slot of an information resource; (b) generate a click identifier that uniquely identifies the interaction with the content item; (c) generate a first request including a click resource link, the click resource link including the click identifier; (d) transmit the first request including the click resource link to a click server, the click resource link including the click identifier; (e) generate a resource link that identifies i) a resource identifier of a landing page corresponding to the content item and ii) a click identifier that uniquely identifies the interaction with the content item; and (f) independently of transmitting the first request, transmit a second request to access the landing page of the content item, the second request including the generated resource link. See reference. Figure 2 , 3 Sections 4 and 5 further provide additional details regarding asynchronous click-to-transfer scripts.

[0045] Figure 2 This is a block diagram depicting one embodiment of an environment for reducing latency in online network services, according to an illustrative implementation. The client device 125 can be as described herein.Figure 1 The device 125 is located within the network 105 and can communicate with the content server 205, the click server 210, and the landing page provider server 215 via the network 105. The content server 205 and / or the click server 210 can be... Figure 1 The data processing system 110 contains servers. Content server 205 and / or click server 210 may also include servers outside the data processing system 110. Landing page provider server 215 may include... Figure 1 The content provider computing device 115 is a server. The landing page provider server 215 may also include a server within the data processing system 110 or a server outside of the content provider computing device 115 and the data processing system 110. In some embodiments, the content server 205, the click server 210, and the landing page provider server 215 may include the hardware and software described herein with respect to servers in the data processing system 110, client device 125, content provider computing device 115, or content publisher computing device 125. In some embodiments, the content server 205 may include the servers as described herein. Figure 1 The content request module 130, the content selection module 135, and the script provider module 140.

[0046] Now refer to Figure 1 and 2 In some implementations, the data processing system 110 may receive content requests for content items to be presented in content slots of an information resource from the client device 125 via a computer network 105. For example, the content server 205 or the content request module 130 of the data processing system 110 may receive content requests for content (or content items) to be presented in content slots of an information resource (e.g., a webpage) from the client device 125.

[0047] In some implementations, in response to a content request, data processing system 110 may transmit content items to be presented in content slots of an information resource via computer network 105. For example, content server 205 or content request module 130 of data processing system 110 may transmit content items to be presented in content slots of an information resource to client device 125. In some implementations, content items may be selected by data processing system 110 or content server 205. In some implementations, one or more content items may be selected and transmitted to client device 125. In some implementations, content items may include scripts such as asynchronous click-to-transfer scripts, which include computer-executable instructions. The computer-executable instructions may be executed at client device 125 to cause one or more processors of client device 125 to perform the operations described herein. Figure 3An example of a system related to asynchronous click-to-transfer scripts is shown in the figure.

[0048] Figure 3 This is a block diagram depicting one embodiment of a system 300 for reducing latency in online network services, according to an illustrative implementation. The asynchronous click transmission system 300 may include an application 305, an information resource 310, a configuration determination module 320, a click identifier generation module 325, a first request generation module 330, and a second request generation module 335. In some embodiments, the configuration determination module 320, the click identifier generation module 325, the first request generation module 330, and the second request generation module 335 may be modules within an asynchronous click transmission script 315. This can be achieved by one or more processors of a computing device—such as those described below. Figure 6 The processors described herein run or execute the asynchronous click transfer system 300. In some embodiments, any of the configuration determination module 320, the click identifier generation module 325, the first request generation module 330, and the second request generation module 335 can be part of the application 305, the information resource 310, or the asynchronous click transfer script 315.

[0049] Application 305 may include, for example, an internet browser, mobile application, game application, GPS application, or any other computer program capable of executing or invoking computer-executable instructions, such as computer-executable instructions included in information resource 310, configuration determination module 320, click identifier generation module 325, first request generation module 330, and second request generation module 335. Application 305 may obtain or receive information resource 310 from a server hosting the information resource, such as the server of content publisher 120, content provider 115, or data processing system 110. For example, application 305 may send a request including the address or identifier of information resource 310 to the server hosting the information resource and receive information resource 310 in response. Information resource 310 may include one or more content portions (or content elements). Information resource 310 may specify the location of one or more content elements. In some embodiments, information resource 310 may include portions of main content and portions of third-party content or content items.

[0050] Now refer to Figure 1 , 2In some embodiments, the configuration determination module 320, executing on client device 125, can cause client device 125 to determine whether application 305 is configured with an asynchronous interface or asynchronous application programming interface (API). As described in more detail below, the asynchronous interface or asynchronous API may be a BEACON interface or BEACON API. Some applications, such as certain browsers or certain older versions of certain browsers, may not support or may be incompatible with asynchronous interfaces or asynchronous APIs. In some embodiments, the configuration determination module 320 can determine whether the browser or application 305 executing on client device 125 is configured with an asynchronous interface or asynchronous API by checking the application's version and comparing that version with a list of known applications configured with asynchronous interfaces or asynchronous APIs. In some embodiments, the configuration determination module 320 can run one or more tests to determine whether application 305 is configured with an asynchronous interface or asynchronous API. For example, the configuration determination module 320 can cause the application to execute one or more instructions that cause the application executing on the client device to use an asynchronous interface or asynchronous API to send a request to a destination address. The configuration determination module 320 can then confirm whether the application can send a request by analyzing the activity log or by receiving confirmation from the server at the destination address that the request from application 305 has been received. If the configuration determination module 320 determines that application 305 is not configured with an asynchronous interface or is incompatible with an asynchronous interface, it can invoke the method using "302 redirection" as described above. Conversely, if the configuration determination module 320 determines that application 305 is configured with an asynchronous interface or is compatible with an asynchronous interface, it can invoke the method using a click identifier generated at the client device as described below.

[0051] In some embodiments, a click identifier generation module 325 executing on client device 125 can enable client device 125 to recognize indications of interaction with content items presented in content slots of an information resource. In some embodiments, content items or third-party content items received by client device 125 from data processing system 110 or content server 205 can be presented in content slots of information resource 310 on client device 125. Figure 4 The diagram illustrates an example of an information resource with third-party content items.

[0052] Figure 4 This is a block diagram illustrating an information resource 400 having content items provided at a client device 125 according to an illustrative embodiment. The information resource 400 may be a webpage or other document displayed on the client device 125. For example... Figure 4As shown, news article 405, which is the main content of information resource 400, is located in one part of information resource 400. Content items or third-party content items 410, 415, and 420 are located in different parts of information resource 400. In some embodiments, various functions associated with content items 410, 415, and 420 can be implemented by including one or more tags within the information resource code located in HTML and / or other files. For example, the HTML file may include a tag specifying the location of the content item slot to be in content item 410. Another tag may request content items from a more distant location, for example, from database 145 of data processing system 110. Such a request may include one or more keywords or other data (e.g., small text files (cookies)) used by data processing system 110 to select content items to provide to user device 125.

[0053] In some implementations, when interacting with a content item (such as content item 410) presented in a content slot (such as content slot 412) of information resource 400, a click identifier generation module 325 executed on client device 125 can enable client device 125 to recognize such interaction. For example, the interaction may include a user clicking or selecting content item 410 using a mouse, keypad, or other input device. The user may also interact with content items displayed on a touchscreen using a stylus / pen or one or more fingers. For example, as... Figure 4 As shown, content item 410 is clicked. In some embodiments, application 305, on which information resource 400 is presented, can execute instructions that cause the client device to deploy listeners or other agents to detect interactions performed via input devices (such as keyboards, mice, or touchscreens). In some embodiments, the client device can deploy listeners such as OnScroll listeners to detect actions performed by the input devices. Through the listeners, the client device can detect click events on content item 410. The application can cause the client device to generate signals or events indicating click events.

[0054] In some implementations, the click identifier generation module 325, executing on the client device 125, can generate a click identifier that uniquely identifies an interaction with a content item. For example, in response to a detected click on content item 410, the click identifier generation module 325 can cause the client device to generate a click identifier. In some implementations, the click identifier may include a flash identifier and a counter. The flash identifier can uniquely identify a flash of the content item. The counter can indicate the number of times the content item was interacted with at the client device. In some implementations, a random number generator or a map routine (e.g., a hash function) can be used to generate the click identifier.

[0055] In some implementations, content items received from data processing system 110 or content server 205 may include a flash identifier that uniquely identifies the flash of the content item. In some implementations, each instance of transmitting content items from data processing system 110 (or content server 205) to a client device can be considered a flash and can be identified by a flash identifier. For example, data processing system 110 (or content server 205) may generate a unique identifier that uniquely identifies the flash of the content item and include it within the content item. The flash identifier may be a combination of information associated with the flash of the content item. For example, the flash identifier may include the name of an identifier or content item (e.g., the content item is the 50th content item from this particular content provider), the date and time the content item was selected or transmitted by data processing system 110, the location of the client device requesting the content item (e.g., geographic location, Internet Protocol (IP) address), the URL or other identifier identifying the domain (website) or webpage to which the content item is to be displayed, keywords, the identifier of the content slot that presents the content item, search queries, the subject of the information resource, the type of client device, profile information, or any other information associated with the content item and / or the request for the content item. In other embodiments, the flash identifier may be generated by a random number generator of data processing system 110 or content server 205.

[0056] In some implementations, each time an application of the client device displaying the content item in a content slot of an information resource interacts with it, the client device can adjust the value of a counter used to generate a click identifier. For example, the value of the click identifier counter is adjusted each time content item 410 is clicked. For example, the counter can have an initial value (e.g., 0, 10, 100, etc.), and can be incremented or decremented each time content item 410 is clicked. Therefore, in these implementations, each click on a content item can be uniquely identified. As an example, in some implementations, content items transmitted from data processing system 110 or content server 205 can be cached at client device 125. In this case, when the user reloads the information resource that previously displayed the content item (e.g., by refreshing the information resource presented on the application), the cached content item can be displayed again in the same content slot of the information resource. Therefore, in these implementations, the flash identifier of the content item can remain consistent. However, by using a counter, different counter values ​​can be generated each time a content item is clicked, even if the flash identifier remains consistent. Therefore, the click identifier, which may include a flash identifier and a counter, can be unique, ensuring that each click on a content item can be uniquely identified. In some implementations, one or more additional parameters can be used to generate the click identifier. For example, in some implementations, a combination of system time or other system data can be used to generate the click identifier to ensure that even if the counter data is lost during page reloading, a different unique click ID will still be generated for each subsequent click.

[0057] In some implementations, the first request generation module 330, executed on the client device 125, can cause the client device to generate a first request including a clickable resource link, the clickable resource link including a click identifier. In some implementations, when clicking or accessing a content item or interacting with a content item, the client device can generate a request (e.g., a Hypertext Transfer Protocol (HTTP) request) with a clickable resource link including a click identifier, for example, as follows: example.g.click.net / pagead / aclk?ai={the impression identifier}&p={COUNTER}.

[0058] As mentioned above, the click identifier can include a flash identifier and a counter. The counter can be adjusted (e.g., incremented or decremented) each time a content item is clicked. For example, for the first click on a content item, clicking a resource link could be as follows:

[0059] example.g.click.net / pagead / aclk? ai={the impression identifier}&p=0.

[0060] Continuing with this example, when the content item is clicked a second time, clicking the resource link can be done as follows:

[0061] example.g.click.net / pagead / aclk? ai={the impression identifier}&p=1.

[0062] In some implementations, a first request generation module 330 executing on client device 125 may cause the client device to transmit a first request, including a clickable resource link, to click server 210 via network 105. The clickable resource link includes a click identifier. As described above, click server 210 may be a server within or outside of data processing system 110. Click server 210 may be used to record clicks (interactions with content items) on content items at client device 125. In response to the client device transmitting a generated click identifier that uniquely identifies the interaction with the content item to click server, click server may record each click on a content item (or each interaction with the content item). Such recording can be used for many purposes. For example, by recording clicks on content items displayed on an information resource of a content publisher (e.g., content publisher 120), payment to the information resource's content publisher may be based on the number of clicks if the number of clicks is one of the criteria by which a content provider (e.g., content provider 115) pays the content publisher for placing the content provider's content on the content publisher's information resource. Furthermore, content providers can determine whether they will place their content on a specific content publisher's information resources based on the number of clicks received on the content item. In some implementations, in response to the first request, the click server 210 can return a response message to the client device 125. The response message may include completion status information of the first request and may include other information in the message body.

[0063] In some implementations, the first request generation module 330 executing on client device 125 may transmit the first request to click server 210 via an asynchronous interface of application 305 of client device 125 on which information resource 310 is presented. For example, the first request generation module 330 may cause application 305 to use an asynchronous application programming interface (API) to arrange asynchronous requests to generated click resource links. In some implementations, the first request generation module 330 may cause application 305 to use the BEACON API or an application plugin to arrange beacon requests to generated click resource links. In some implementations, the asynchronous interface may be part of application 305 of client device 125 on which information resource 310 is displayed. In other implementations, the asynchronous interface may be a standalone application. By using the asynchronous interface to transmit the generated click identifier to the click server, client device 125 can transmit the generated click identifier to the click server independently of and separately from requests to access landing pages for content items. Furthermore, client device 125 may transmit the generated click identifier via processing separate from requests to access landing pages. In this way, the click server can receive the generated click identifier and store the received click identifier in a data structure maintained by the click server.

[0064] In some implementations, the `navigator.sendBeacon()` method can be used to asynchronously transfer small amounts of HTTP data from a client device to a server. In some implementations, the syntax is: `navigator.sendBeacon(url, data)`, where the `url` parameter indicates the parsed URL from which data is to be transferred and the `data` parameter is the data to be transferred. In some implementations, the `url` parameter may correspond to the URL of the click server, and the `data` parameter may include a value corresponding to a generated click identifier. The `sendBeacon` method transfers the data provided by the `data` parameter to the URL provided by the `url` parameter. The client device can transfer data as early as possible, but data transfer may have a lower priority compared to other network traffic. In some implementations, the `sendBeacon` method may return true if the client device can successfully arrange the data for transfer. Otherwise, the `sendBeacon` method may return false.

[0065] In some implementations, a second request generation module 335 executing on client device 125 may cause the client device to generate a resource link that identifies (i) a resource identifier of a landing page corresponding to a content item and (ii) a click identifier that uniquely identifies the interaction with the content item. The resource link can be used to access the landing page of the content item. The landing page may be a webpage or other document that is presented on the client device in response to an action taken on the content item when it is presented on the client device. For example, the second request generation module 335 may cause client device 125 to generate a resource link by appending a click identifier to the resource identifier (e.g., a URL) of the landing page. The resource identifier of the landing page may be a URL of the landing page or another identifier. The landing page may be a webpage of the content provider of the content item and may provide more information about the content item.

[0066] In some implementations, independent of transmitting the first request, a second request generation module 335 executing on client device 125 can transmit a second request for accessing the landing page of the content item via network 105. This second request may include a generated resource link. In some implementations, the second request generation module 335 may cause application 305 to submit an HTML request including the generated resource link to landing page provider server 215. The generated resource link may identify (i) a resource identifier of the landing page corresponding to the content item and (ii) a click identifier that uniquely identifies the interaction with the content item. For example, landing page provider server 215 may be a server of content provider computing device 115 and may host the landing page of the content item. By including the click identifier that uniquely identifies the interaction with the content item within the resource link, a conversion occurring at the landing page can be associated with a specific interaction or click at the client device and can be recorded by data processing system 110 or content server 210. In some implementations, in response to the second request, landing page provider server 215 may return a response message to client device 125. The response message may include completion status information for the second request and may include the requested content in the message body. For example, the requested landing page may be transmitted to client device 125 and displayed at client device 125.

[0067] In some embodiments, independent of the first request generation module 330 transmitting a first request including a click identifier to the click server, the second request generation module 335, executed on the client device 125, can transmit a second request to access the landing page. In some embodiments, while the first request generation module 330 transmits the first request to the click server 210, the second request generation module 335 transmits the second request to access the landing page before (or without waiting for a response message to be returned from the click server to the client device 125) the first response message is sent from the click server to the client device 125. In other embodiments, the second request generation module 335 may first transmit the second request to access the landing page, and the first request generation module 330 may transmit the first request to the click server 210 before (or without waiting for a response message to be returned from the landing page provider server 215 to the client device 125) the first response message is sent from the landing page provider server 215. In these embodiments, the first request to the click server 210 and the second request to the landing page provider server 215 can be transmitted independently of each other. This mechanism reduces latency because the landing page can be presented to the user without waiting for the click server 210 to return a "302 redirect" or other message or request to the client device 125. By avoiding the step of waiting for the click server to return a "302 redirect" to the client device and then navigating to the landing page, the landing page can be presented to the user on the client device faster or in less time compared to the "302 redirect" method described above.

[0068] In some embodiments, the first request generation module 330, executing on client device 125, may transmit the first request to click server 210 at approximately the same time as the second request generation module 335, executing on client device 125, transmits the second request for accessing the content item of the landing page. In some embodiments, once the first request generation module 330 causes client device 125 to transmit the first request to click server 210, the second request generation module 335 causes client device 125 to transmit the second request to landing page provider server 215. In other embodiments, the first request generation module 330 may immediately cause client device 125 to transmit the first request to click server 210 after the second request generation module 335 causes client device 125 to transmit the second request to landing page provider server 215. In some embodiments, the amount of time between transmitting the two requests may be based on the processing power of the client device. In some embodiments, application 305 may cause client device 125 to execute a first set of instructions to transmit the first request, and then execute a second set of instructions to transmit the second request. The time taken for the client device to execute the second set of instructions after executing the first set of instructions can be less than 100 milliseconds, equal to 100 to 500 milliseconds, or more than 500 milliseconds. In some embodiments, the application may allow the client device to transmit one of the first or second requests after executing other instructions on the information resource. In some such embodiments, the time between the two requests may be based on other factors, including the number and type of instructions that the client device has to execute. In some embodiments, the application may allow the client device to delay transmitting the first request to the click server based on network traffic and resource availability.

[0069] As described above, in some examples where the systems and methods for reducing latency described herein are not implemented, after a content item is clicked on a client device, the client device sends a request indicating that the specific content item has been clicked to a click server. In response to this request, the click server may record the click, generate a click ID indicating the click, and return a "302 redirect" along with the generated click ID to the client device. In some implementations, the click server may be further configured to set a small text file on the client device included in the "302 redirect". However, in some implementations, for example, if a user clicks a content item to install a mobile application on a mobile device, the click server does not set a small text file on the client device. Instead, a content identifier or IDFA associated with the mobile device and usable by the content provider is used to track the conversion.

[0070] In some examples where the systems and methods described herein for reducing latency are not implemented, for instance, content items may be presented to a client device to install a mobile application on the client device. In response to a user clicking on a content item, the client device generates a request to be directed to a click server associated with the content item. The click server may be configured to append a click identifier generated by the click server to the URL of the content item's landing page (which is the URL that enables the client device to run another application, such as a marketplace app from which a mobile application can be installed). The client device can then run the marketplace app. In response to the client device receiving a request to install a mobile application via the marketplace app, the client device may annotate the referrer parameter via a conversion tracking software development kit (SDK) that may be included within the marketplace app, and issue a ping command to the data processing system 110 that can be logged as a conversion.

[0071] In some embodiments of the systems and methods described herein for reducing latency, the application installation process differs from that described above. In one such embodiment, content items may be presented to a client device to install a mobile application on the client device. In response to a user's click on a content item on the client device, the client device may generate a click identifier at the client device based on a random universally unique identifier (UUID) generated on the client device or a number generated by a server. The client device may then append the generated click identifier to the URL of a landing page and transmit a request to access the URL of the landing page including the generated click identifier. The client device may then run the marketplace application. The client device may annotate reference parameters via a conversion tracking software development kit (SDK) that may be included in the marketplace application and issue a ping command to the data processing system 110 that can be logged as a conversion. In some embodiments, the data processing system 110 may be configured to perform a lookup on the generated click identifier to attribute a conversion to a flash or click identified by the generated click identifier.

[0072] Figure 5This is a flowchart depicting a method 500 for reducing latency in online network services according to an illustrative embodiment. In brief, method 500 may include: a client device transmitting a content request for a content item to be presented in a content slot of an information resource to a data processing system (block 505). Method 500 may include: the data processing system receiving the content request for the content item (block 510); and, in response, transmitting the content item, including an asynchronous click transfer script, to the client device (block 515). Method 500 may include: the client device receiving the content item, including the asynchronous click transfer script, from the data processing system (block 520). Method 500 may include: when executing an asynchronous click transfer script, the client device identifies an indication of interaction with a content item (box 525); generates a click identifier that uniquely identifies the interaction (box 530); generates a first request including a click resource link, the click resource link including the click identifier (box 535); transmits the first request including the click identifier to a click server (box 540); generates a resource link that identifies (i) a resource identifier of a landing page and (ii) the click identifier (box 545); and transmits a second request including the resource link to access the landing page independently of transmitting the first request (box 550).

[0073] In further detail, method 500 may include: a client device transmitting a content request for a content item in a content slot of an information resource to be presented on the client device to a data processing system via a computer network (block 505). For example, the client device or its application may send a request for a content item including the address or identifier of the information resource and the identifier of the content slot to the data processing system, and transmit other information (e.g., keywords, queries, etc.) to the data processing system or content server.

[0074] Method 500 may include: a data processing system receiving a content request for a content item (block 510); and, in response, transmitting the content item, including an asynchronous click-to-transfer script, to a client device (block 515). For example, a content request module or content server of the data processing system may receive the content request and transmit the content item, including the asynchronous click-to-transfer script, to the client device. In some embodiments, the content item transmitted to the client device may further include a flash identifier that uniquely identifies the flash of the content item at the client device.

[0075] Method 500 may include: a client device receiving a content item including an asynchronous click-transfer script from a data processing system or content server (box 520). The asynchronous click-transfer script includes computer-executable instructions that, when executed by one or more processors of the client device, cause the client device to perform the steps of the method described below. In some embodiments, an asynchronous click-transfer script configuration determination module may enable the client device to determine whether an application (e.g., a browser) on which the information resource (e.g., a webpage) is presented is configured with an asynchronous interface (e.g., the BEACON API).

[0076] Method 500 may include: a client device recognizing an indication of interaction with a content item presented in a content slot of an information resource (block 525). For example, a click identifier generation module of an asynchronous click transfer script can enable the client device to recognize interactions with content items presented in a content slot of an information resource (e.g., click, selection, touch, command, etc.). In some implementations, once a content item is clicked, a signal or event indicating the click can be generated and detected by an application or asynchronous click transfer script executing on the client device.

[0077] Method 500 may include: a client device generating a click identifier that uniquely identifies an interaction with a content item (box 530). For example, a click identifier generation module of an asynchronous click transmission script may enable the client device to generate a click identifier that uniquely identifies an interaction with a content item. In some implementations, the generated click identifier includes a flash identifier and a counter transmitted from the data processing system along with the content item. The counter indicates the number of times an interaction with the content item occurs at the client device. For example, upon recognizing an indication of interaction with a content item presented in a content slot of an information resource, the value of the counter for the click identifier may be adjusted (e.g., incremented or decremented).

[0078] Method 500 may include: a client device generating a first request including a clickable resource link, the clickable resource link including a click identifier (box 535). For example, a first request generation module for an asynchronous click transfer script may cause the client device to generate a first request including a clickable resource link, the clickable resource link including a click identifier. In some implementations, when a content item is clicked, a request (e.g., a Hypertext Transfer Protocol (HTTP) request) may be generated that includes a clickable resource link, the clickable resource link including a click identifier that uniquely identifies the click on the content item.

[0079] Method 500 may include: a client device transmitting a first request, including a clickable resource link, to a click server, the clickable resource link including a click identifier (box 540). For example, a first request generation module of an asynchronous click transmission script may enable the client device to transmit the first request to the click server. In some embodiments, the first request may be transmitted to the click server via an asynchronous interface of an application of the client device on which information resources are presented. For example, the asynchronous interface may be a BEACON application plugin (API).

[0080] Method 500 may include: a client device generating a resource link (box 545) that identifies (i) a resource identifier of a landing page corresponding to a content item and (ii) a click identifier that uniquely identifies the interaction with the content item. For example, a second request generation module of an asynchronous click transfer script may enable the client device to generate the resource link by appending the click identifier to the resource identifier of the landing page. The landing page may be a webpage or other document displayed to the user when the user clicks on a content item. The resource identifier of the landing page may be the URL of the landing page or other identifier.

[0081] Method 500 may include: independently of transmitting the first request, the client device transmitting a second request, including a generated resource link, to access a landing page (box 550). For example, an asynchronous click transfer script may allow the client device to transmit the first and second requests independently of each other. In some embodiments, the second request may be transmitted without waiting for the client device to receive a response message for the first request. In some embodiments, the first request may be transmitted without waiting for the client device to receive a response message for the second request. In some embodiments, the first request may be transmitted to the click server at approximately the same time as transmitting the second request to the landing page provider server. For example, the second request may be transmitted immediately while the first request is being transmitted, or vice versa. For example, the first and second requests may be transmitted in parallel.

[0082] Regarding the situations discussed here where systems collect or utilize personal information related to users, users can be provided with the following opportunities: control over whether programs or features can collect personal information (e.g., information related to the user's social networks, social actions or activities, user preferences, or the user's current location), or control over whether and / or how content potentially more relevant to the user is received from the content server. Furthermore, specific data can be processed in one or more ways before storage or use, thereby removing specific information related to the user when generating parameters (e.g., demographic parameters). For example, user identity can be processed to make it impossible to determine the user's identifying information, or the user's geographic location information obtained from it can be generalized (e.g., city, postal code, or state / county level), making it impossible to determine the user's specific location. Therefore, users can control how user-related information is collected and how the content server uses that information.

[0083] Figure 6 A general architecture of an illustrative computer system 600, according to some embodiments, is shown that can be used to implement any of the computer systems discussed herein (including system 110 and its components, such as content request module 130, content selection module 135, and script provider module 140). The computer system 600 can be used to provide information to be displayed via network 105. Figure 6 The computer system 600 includes one or more processors 620 communicatively coupled to memory 625, one or more communication interfaces 605, and one or more output devices 610 (e.g., one or more display units) and one or more input devices 615. The processors 620 may be included within the data processing system 110 or other components of the system 110 such as the content request module 130 and the content selection module 135.

[0084] exist Figure 6 In the computer system 600, memory 625 may include any computer-readable storage medium and may store computer instructions—such as processor-executable instructions for the corresponding system for implementing the various functions described herein, and any data associated with, generated by, or received via a communication interface or input device (if present). See again Figure 1 The system 110, data processing system 110, may include memory 625 to store information related to the availability of inventory of one or more content units, the reservation of one or more content units, etc. Memory 625 may include database 145. It can be used... Figure 6The processor 620 shown executes instructions stored in memory 625, and in this way, can also read from memory various information processed and / or generated according to the execution of instructions, or write them to memory.

[0085] Figure 6 The processor 620 of the computer system 600 shown can also be communicatively coupled to or control the communication interface 605 to transmit or receive various information according to the execution of instructions. For example, the communication interface 605 can be coupled to a wired or wireless network, a bus, or other communication device, thereby enabling the computer system 600 to transmit information to or receive information from other devices (e.g., other computer systems). Although in Figure 1 While not explicitly shown in the system, one or more communication interfaces facilitate the flow of information between components of system 600. In some embodiments, the communication interface may be configured (e.g., via various hardware or software components) to provide a webpage as a portal for accessing at least some aspects of computer system 600. Examples of communication interface 605 include a user interface (e.g., a webpage) through which a user can communicate with data processing system 110.

[0086] Can provide Figure 6 The output device 610 of the computer system 600 shown enables, for example, various information to be viewed or perceived in conjunction with the execution of instructions. For example, an input device 615 may be provided to enable a user to manually adjust, make selections, input data, or interact with the processor in any of a variety of ways during instruction execution. This document further provides additional information relating to the general computer system architecture that can be used in the various systems discussed herein.

[0087] The embodiments of the subject matter and operations described herein can be implemented using digital electronic circuit systems, or using computer software, firmware, or hardware (including the structures disclosed herein and their equivalents) embodied on tangible media, or combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium for execution by a data processing device or for controlling the operation of such data processing device. The program instructions can be encoded on artificially generated propagated signals, such as machine-generated electrical, optical, or electromagnetic signals generated to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer storage medium can be a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination thereof, or included therein. Furthermore, when the computer storage medium is not a propagated signal, it can include a source or destination of computer program instructions encoded in artificially generated propagated signals. The computer storage medium can also be one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices), or included therein.

[0088] The features disclosed herein can be implemented on a smart TV module (or a connected TV module, hybrid TV module, etc.), which may include a processing module configured to integrate internet connectivity with more traditional (e.g., received via cable, satellite, wireless, or other signals) television program sources. The smart TV module may be physically integrated into a television set or may include a separate device, such as a set-top box, Blu-ray or other digital media player, game console, hotel TV system, and other complementary devices. The smart TV module may be configured to enable viewers to search for and find videos, movies, photos, and other content on the internet, local cable TV channels, satellite TV channels, or stored on a local hard drive. A set-top box (STB) or set-top unit (STU) may include an information appliance that may include a tuner and connect to the television set and external signal sources to convert signals into content to be displayed on the television screen or other display devices. The smart TV module may be configured to provide a main screen or top-level screen with icons for multiple different applications, such as web browsers and multiple streaming media services, connected cable or satellite media sources, other network "channels," etc. The smart TV module can be further configured to provide users with electronic viewing guides. Companion applications for the smart TV module can operate on mobile computing devices to provide users with additional information about available programming, enabling users to control the smart TV module, etc. In alternative implementations, these features can be implemented on laptops or other personal computers, smartphones, other mobile phones, handheld computers, tablet PCs, or other computing devices.

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

[0090] The terms "data processing device," "data processing system," "user device," or "computing device" encompass all kinds of devices, apparatuses, and machines used for processing data, including, for example, programmable processors, computers, systems-on-a-chip, or a combination thereof. Devices may include dedicated logic circuit systems, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, the device may also include code for creating a computer program execution environment, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or combinations thereof. The device and execution environment can implement various computing model infrastructures, such as network services, distributed computing, and grid computing infrastructures. Content request module 130 and content selection module 135 may include or share one or more data processing devices, computing devices, or processors.

[0091] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative languages, or procedural languages, and can be deployed in any form, including as stand-alone programs or modules, components, subroutines, objects, or other units suitable for a computing environment. A computer program may, but is not required to, correspond to a file in a file system. A program may be stored as part of a file that holds other programs or data (e.g., in one or more scripts stored in a markup language document), or in a single file dedicated to the program in question, or in multiple collaborating files (e.g., in a file storing one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected via a communication network.

[0092] The processes and logic flows described in this specification can be performed by one or more programmable processors, which execute one or more computer programs to perform actions by manipulating input data and generating outputs. The processes and logic flows can also be performed by a dedicated logic circuit system (e.g., an FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit)), and the device can also be implemented as such an FPGA or ASIC.

[0093] Processors suitable for executing computer programs include, for example, general-purpose microprocessors, special-purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, the processor receives instructions and data from read-only memory or random access memory, or both. The essential components of a computer are: a processor for performing actions according to instructions, and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices (e.g., disks, magneto-optical disks, or optical disks) for storing data, or the computer may be operatively coupled to receive data from or transfer data to or both from such mass storage devices. However, a computer does not necessarily need to have such devices. Furthermore, for example, the computer may be embedded in another device, such as a mobile phone, personal digital assistant (PDA), mobile audio or video player, game console, global positioning system (GPS) receiver, or portable storage device (e.g., a universal serial bus (USB) flash drive). Suitable devices for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto-optical disks, CD-ROMs, and DVD-ROMs. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry systems.

[0094] To provide interaction with the user, embodiments of the subject matter described herein can be implemented on a computer having: a display device for displaying information to the user, such as a CRT (cathode ray tube), plasma, or LCD (liquid crystal display) monitor; and a keyboard and pointing device, such as a mouse or trackball, through which the user provides 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 include 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 sound input, voice input, or tactile input). Additionally, 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 a webpage to a web browser on the user's client device in response to a request received from a web browser.

[0095] The embodiments of the subject matter described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a client computer with a graphical user interface or web browser through which a user can interact with embodiments of the subject matter described herein), or computing systems that include one or more such backend components, middleware components, or frontend components. The components of the system can be interconnected via digital data communication (e.g., a communication network) of any form or medium. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0096] Computing systems such as System 600 or System 110 may include clients and servers. For example, data processing system 110 may include one or more servers in one or more data centers or server clusters. Clients and servers are generally geographically distant from each other and typically interact via a communication network. The client-server relationship is created by computer programs running on respective computers and having a client-server relationship with each other. In some implementations, the server transmits data (e.g., HTML pages) to the client device (e.g., to display data to a user interacting with the client device and to receive user input from that user). Data generated at the client device (e.g., the result of user interaction) may be received at the server from the client device.

[0097] While this specification contains numerous details of specific implementations, these details should not be construed as limiting the scope of this disclosure or any other claimable content, but rather as descriptions of features specific to embodiments of the systems and methods described herein. Certain features described in this specification within the context of individual embodiments may also be implemented in combination within 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, while the above features may be described as operating in certain combinations, and even as initially claimed, one or more features of the claimed combination may be removed from the combination in certain circumstances, and the claimed combination may be for sub-combinations or variations thereof.

[0098] Similarly, although operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring that such operations be performed in the specific order shown or in a sequential order, or that all of the shown operations be performed to achieve the desired result. In some cases, the actions described in the claims can be performed in a different order and still achieve the desired result. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order or sequential order shown to achieve the desired result.

[0099] 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 together in a single software product or packaged into multiple software products. For example, content request module 130 and content selection module 135 may be part of data processing system 110, a single module, a logic device having one or more processing modules, part of one or more servers, or part of a search engine.

[0100] Some illustrative embodiments and implementations have now been described. It is obvious that the foregoing is illustrative and not limiting, and has been presented by way of example. Specifically, although many of the examples presented herein relate to specific combinations of method behaviors or system elements, these behaviors and elements can be combined in other ways to achieve the same objective. Behaviors, elements, and features discussed in connection with only one embodiment are not intended to be excluded from similar roles in other embodiments or implementations.

[0101] In embodiments of this disclosure, content or content items can be any suitable content. In some applications, content or content items can be advertisements (“advertisements”), but this disclosure is not limited thereto. When content or content items are advertisements, content server 205 can be an advertisement server and / or a third-party content provider can be an advertiser.

[0102] In some implementations, a request for third-party content items may also include displaying a minimum revenue (or minimum bid) for the third-party content items on the information resource. In some implementations, the content selection module 135 may communicate with an auction system (e.g., an advertising auction system) and provide auction system information included in the request for third-party content received from the client device. In response to providing the information included in the request for third-party content, the content selection module 135 may also receive one or more third-party content items from the auction system.

[0103] In some embodiments, the data processing system 110 may include an auction system configured to host an auction, such as an advertising auction system. In other embodiments, the data processing system 110 may not include an auction system, but may be configured to communicate with an auction system via network 105.

[0104] In some implementations, the landing page may include additional product information for the product advertised in the content item. A conversion related to the content item may occur on the landing page; for example, a user may purchase the product or service advertised in the content item via the landing page. A conversion may also occur when a user clicks on a content item and then takes action via the landing page (e.g., makes a purchase, signs up, registers, etc.).

[0105] The wording and terminology used herein are for descriptive purposes and should not be considered limiting. The use of “including,” “comprising,” “having,” “containing,” “involving,” “characterized by,” “characterized in that,” and variations thereof is intended to encompass all items listed thereafter, their equivalents and additions, and alternative embodiments consisting solely of the items listed thereafter. In one embodiment, the systems and methods described herein consist of each combination, or all, of one or more of the described elements, behaviors, or components.

[0106] Any reference to an embodiment or element of a system or method mentioned herein in the singular may also include embodiments that include multiple such elements, and any reference to any embodiment, element, or behavior mentioned herein in the plural may also include embodiments that include only a single element. Neither singular nor plural references are intended to limit the currently disclosed system or method, its components, behaviors, or elements to a single or multiple configuration. A reference to any behavior or element based on any information, behavior, or element may include an embodiment of that behavior or element that is at least partially based on the information, behavior, or element.

[0107] Any implementation disclosed herein may be combined with any other implementation, and references to “implementation,” “some implementations,” “alternative implementations,” “various implementations,” “an implementation,” etc., are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with an implementation may be included within at least one implementation. These terms used herein do not necessarily refer to the same implementation. Any implementation may be combined with any other implementation in any manner consistent with the aspects and implementations disclosed herein, either inclusively or exclusively.

[0108] A reference to "or" can be interpreted as inclusive, such that any term described using "or" can refer to a single term, multiple terms, or all the terms described.

[0109] Where reference numerals are appended to the accompanying drawings, detailed description, or any technical features in the claims, these reference numerals are included solely to enhance the comprehensibility of the drawings, detailed description, and claims. Therefore, the presence or absence of reference numerals does not limit the scope of any claim element.

[0110] The systems and methods described herein may be embodied in other specific forms without departing from their characteristics. While the examples provided herein relate to the display of content from controlled information resources, the systems and methods described herein may be suitable for other environments. The foregoing embodiments are illustrative and not limiting of the systems and methods described herein. The scope of the systems and methods described herein is therefore indicated by the appended claims rather than the foregoing description, and any changes falling within the meaning and scope of equivalents of the claims are included within that scope.

Claims

1. A system for reducing latency in online network services, the system comprising: A memory and a processor, the processor being configured to provide computer program instructions via a communication network to a client computing device for monitoring interaction with content items, the computer program instructions causing the client computing device, when executed by one or more processors of the client computing device, to: The system detects and interacts with content items presented in content slots of information resources presented by the client computing device, the content items being received from the data processing system in response to a request for content sent by the client computing device. In response to detecting an interaction with the content item, a click identifier is generated that uniquely identifies the interaction with the content item; Generate resource links, wherein the resource links identify i) a resource identifier of the landing page corresponding to the content item and ii) a click identifier that uniquely identifies the interaction with the content item; as well as The transmission access includes a request for the landing page of the content item of the generated resource link.

2. The system according to claim 1, wherein, The computer program instructions, when executed by one or more processors, cause the client computing device to transmit the click identifier to the click server.

3. The system according to claim 2, wherein, When executed by one or more processors, the computer program instructions cause the client computing device to transmit the click identifier to the click server using an asynchronous request or an asynchronous application programming interface (API).

4. The system according to any one of claims 1 to 3, wherein, When executed by one or more processors, the computer program instructions cause the client computing device to generate the click identifier based on a random universally unique identifier (UUID).

5. The system according to any one of claims 1 to 3, wherein, in generating the resource link, the computer program instructions, when executed by one or more processors, cause the client computing device to attach the click identifier to the resource identifier of the landing page.

6. The system according to any one of claims 1 to 3, wherein, The computer program instructions are part of the information resource.

7. A method for reducing latency in online network services, the method comprising: A data processing system provides computer program instructions via a communication network to a client computing device for monitoring interaction with content items. These computer program instructions, when executed by one or more processors of the client computing device, cause the client computing device to: The system detects and interacts with content items presented in content slots of information resources presented by the client computing device, the content items being received from the data processing system in response to a request for content sent by the client computing device. In response to detecting an interaction with the content item, a click identifier is generated that uniquely identifies the interaction with the content item; Generate resource links, wherein the resource links identify i) a resource identifier of the landing page corresponding to the content item and ii) a click identifier that uniquely identifies the interaction with the content item; as well as The transmission access includes a request for the landing page of the content item of the generated resource link.

8. The method according to claim 7, wherein, The computer program instructions, when executed by one or more processors, cause the client computing device to transmit the click identifier to the click server.

9. The method according to claim 8, wherein, When executed by one or more processors, the computer program instructions cause the client computing device to transmit the click identifier to the click server using an asynchronous request or an asynchronous application programming interface (API).

10. The method according to claim 8, wherein, When executed by one or more processors, the computer program instructions cause the client computing device to generate the click identifier based on a random universally unique identifier (UUID).

11. The method according to any one of claims 8 to 10, wherein in generating the resource link, the computer program instructions, when executed by one or more processors, cause the client computing device to attach the click identifier to the resource identifier of the landing page.

12. The method according to any one of claims 8 to 10, wherein, The computer program instructions are part of the information resource.

13. The method according to any one of claims 8 to 10, wherein, The information resources are provided by an application installed on the client computing device, the application including at least one of a browser, mobile application, game application, or Global Positioning System (GPS) application.