Patentable/Patents/US-RE050980-B2
US-RE050980-B2

Systems and methods for optimizing content layout using behavior metrics

PublishedAugust 4, 2026
Assigneenot available in USPTO data we have
Technical Abstract

Systems and methods for optimizing content layout using behavior metrics are provided. Behavioral data is collected for a content item presented on a client device. The behavioral data indicates various locations within a display area of the content item at which a user action (e.g., clicking) occurs. The behavioral data is used to assign weights to various components of a layout scheme for the content item. A user action that occurs within an area of the content item associated with a particular component of the layout scheme contributes to the weight of the corresponding component. The weights associated with each component of the layout scheme are used to optimize the layout for the content item. Components with greater assigned weights are highlighted or emphasized. The display sizes of components in the optimized layout scheme may correspond to the weights associated with the components.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

identifying, by a processing system, using a layout scheme of a content item, a plurality of display zones of a display area of the content item, each display zone defined by a corresponding component of a plurality of components of the layout scheme of the content item and the content itemfor display in a content slot of an information resourceincluding third-party content; providing, by the processing system to a plurality of client devices,(i)the content itemfor display within a respective single content corresponding to an inline frame element of a respective information resource, the respective information resource also including first-party content external to the inline frame element,and(ii)a script for executing on the plurality of client devices to cause the plurality of client devices to monitor interactions with the content itemwithin the respective single content slot; receiving, by the processing system, interaction data for the content item generated by the script executing on each of the plurality of client devices, the interaction data indicating,for each client device of the plurality of client devicesand within the respective single content slot,corresponding display coordinates within the display area of the content item at which a user action occurs on the client device; mapping, by the processing system, the display coordinates for at least one client device of the plurality of client devices to a first display zone of the plurality of display zones associated with a first component of the layout scheme for the content item; assigning, by the processing system, a first weight to the first component and a second weight different from the first weight to a second component of the layout scheme for the content item based on the interaction data received for the content item and the mapping of the display coordinates for the at least one client device of the plurality of client devices to the first display zone associated with the first component, the first and second weights are non-zero weights; and modifying, by the processing system, a displaysizeattributeof the first component of the layout scheme that has the first assigned weight relative to a displaysizeattributeof the second component of the layout scheme that has the second assigned weight different from the first assigned weight. . A method for optimizing a layout of content presented on a client device, the method comprising:

2

claim 1 calculating, by the processing system, a weight ratio between the first component that has the first assigned weight and the second component that has the second assigned weight; and modifying, by the processing system, a display size of the second component that has the second assigned weight until a display size ratio between the first component that has the first assigned weight and the second component that has the second assigned weight matches the calculated weight ratio. . The method of, further comprising:

3

claim 1 prior to modifying the displaysizeattributeof the first component that has the first assigned weight, modifying, by the processing system, a display size of each of the plurality of components of the layout scheme to a minimum display size; and after modifying the displaysizeattributeof the first component that has the first assigned weight, uniformly modifying, by the processing system, the display size of each of the plurality of components of the layout scheme that have not yet been modified in display size until any usable space in the content item is filled. . The method of, further comprising:

4

claim 1 clicking on the content item at the location; or hovering over the content item at the location. . The method of, wherein the user action within the display area of the content item comprises at least one of:

5

claim 1 . The method of, wherein the interaction data for the content item comprises an indication of separate coordinates for each of a plurality of user actions that occur within the display area of the content item on a client device of the plurality of client devices.

6

claim 1 using, by the processing system, an initial layout scheme for the content item to identify for each client device of the plurality of client devices a corresponding component of the initial layout scheme associated with a corresponding display zone of the content item within which the user action occurs on the client device of the plurality of client devices; and incrementing, by the processing system, for each identified component of the layout scheme a corresponding weight. . The method of, wherein assigning a weight to a component of the layout scheme comprises:

7

claim 1 increasing, by the processing system,theadisplay size of the first component that has the first assigned weight; or decreasing, by the processing system,theadisplay size of the second component that has the second assigned weight. . The method of, wherein modifying the displaysizeattributeof the first component that has the first assigned weight relative to the displaysizeattributeof the second component that has the second assigned weight comprises at least one of:

8

claim 1 prior to modifying the displaysizeattributeof the second component that has the second assigned weight, decreasing, by the processing system,theadisplay size of each of a plurality of components of the layout scheme to a minimum display size; whereintheadisplay size of the component that has the first assigned weight is increased from the minimum display size to a maximum display size. . The method of, wherein modifying the displaysizeattributeof the first component that has the first assigned weight relative to the displaysizeattributeof the second component that has the second assigned weight comprises:

9

claim 8 determining, by the processing system, for each of the plurality of components of the layout scheme, whether the component is an image component or a text component; wherein the minimum display size for an image component is a threshold display area; and wherein the minimum display size for a text component is a minimum threshold font size. . The method of, further comprising:

10

claim 8 determining, by the processing system, whether the first component that has the first weight is an image component or a text component; wherein, if the component that has the first assigned weight is an image component, the maximum display size is a display size of a raw image used to generate the image component; and wherein, if the first component that has the first assigned weight is a text component, the maximum display size is a maximum threshold font size. . The method of, further comprising:

11

a memory storing one or more software modules; and identify, using a layout scheme of a content item, a plurality of display zones of a display area of the content item, each display zone defined by a corresponding component of a plurality of components of the layout scheme of the content item and the content itemfor display in a content slot of an information resourceincluding third-party content; provide, to a plurality of client devices,(i)the content itemfor display within a respective single content slot corresponding to an inline frame element of a respective information resource, the respective information resource also including first-party content external to the inline frame element,and(ii)and a script for executing on the plurality of client devices to cause the plurality of client devices to monitor interactions with the content itemwithin the respective single content slot; receive interaction data for the content item generated by the script executing on each of the plurality of client devices, the interaction data indicating for each client device of the plurality of client devicesand within the respective single content slot,corresponding display coordinates within the display area of the content item at which a user action occurs on the client device; map the display coordinates for at least one client device of the plurality of client devices to a first display zone of the plurality of display zones associated with a first component of the layout scheme for the content item; assign, by the processor, a first weight to the first component and a second weight different from the first weight to a second component of the layout scheme for the content item based on the interaction data received for the content item and the mapping of the display coordinates for the at least one client device of the plurality of client devices to the first display zone associated with the first component, the first and second weights are non-zero weights; and modify a displaysizeattributeof the first component of the layout scheme that has the first assigned weight relative to a displaysizeattributeof the second component of the layout scheme that has the second assigned weight different from the first assigned weight. at least one processor, the one or more software modules when executed by the at least one processor cause the system to: . A system for optimizing a layout of content presented on a client device, the system comprising:

12

claim 11 calculate a weight ratio between the first component that has the first assigned weight and the second component that has the second assigned weight; and modify a display size of the second component that has the second assigned weight until a display size ratio between the first component that has the first assigned weight and the second component that has the second assigned weight matches the calculated weight ratio. . The system of, wherein the one or more software modules when executed by the at least one processor further cause the system to:

13

claim 11 prior to modifying the displaysizeattributeof the first component that has the first assigned weight, modify a display size of each of the plurality of components of the layout scheme to a minimum display size; and after modifying the displaysizeattributeof the first component that has the first assigned weight, uniformly modify the display size of each of the plurality of components of the layout scheme that have not yet been modified in display size until any usable space in the content item is filled. . The system of, wherein the one or more software modules when executed by the at least one processor cause the system to:

14

claim 11 clicking on the content item at the location; or hovering over the content item at the location. . The system of, wherein the user action within the display area of the content item comprises at least one of:

15

claim 11 . The system of, wherein the interaction data for the content item comprises an indication of separate coordinates for each of a plurality of user actions that occur within the display area of the content item on a client device of the plurality of client devices.

16

identifying, by the one or more processors, using a layout scheme of a content item, a plurality of display zones of a display area of the content item, each display zone defined by a corresponding component of a plurality of components of the layout scheme of the content item and the content itemfor display in a content slot of an information resourceincluding third-party content; providing, by the one or more processors to a plurality of client devices,(i)the content itemfor display within a respective single content slot corresponding to an inline frame element of a respective information resource, the respective information resource also including first-party content external to the inline frame element,and(ii)a script for executing on the plurality of client devices to cause the plurality of client devices to monitor interactions with the content itemwithin the respective single content slot; receiving, by the one or more processors, interaction data for the content item generated by the script executing on each of the plurality of client devices, the interaction data indicating,for each client device of the plurality of client devicesand within the respective single content slot,corresponding display coordinates within the display area of the content item at which a user action occurs on the client device; mapping, by the one or more processors, the display coordinates for at least one client device of the plurality of client devices to a first display zone of the plurality of display zones associated with a first component of the layout scheme for the content item; assigning, by the one or more processors, a first weight to the first component and a second weight different from the first weight to a second component of the layout scheme for the content item based on the interaction data received for the content item and the mapping of the display coordinates for the at least one client device of the plurality of client devices to the first display zone associated with the first component, the first and second weights are non-zero weights; and modifying, by the one or more processors, a displaysizeattributeof the first component of the layout scheme that has the first assigned weight relative to a displaysizeattributeof the second component of the layout scheme that has the second assigned weight different from the first assigned weight. . A non-transitory computer-readable storage medium having instructions stored therein, wherein the instructions are executable by one or more processors to cause the one or more processors to perform operations comprising:

17

claim 16 calculating, by the one or more processors, a weight ratio between the first component that has the first assigned weight and the second component that has the second assigned weight;and modifying, by the one or more processors, a display size of the second component that has the second assigned weight until a display size ratio between the first component that has the first assigned weight and the second component that has the second assigned weight matches the calculated weight ratio. . The non-transitory computer-readable storage medium of, the operations further comprising:

18

identifying, by a processing system, using a layout scheme of a content item, a plurality of display zones of a display area of the content item, each display zone defined by a corresponding component of a plurality of components of the layout scheme of the content item and the content item for display in a content slot of an information resource; providing, by the processing system to a plurality of client devices, the content item and a script for executing on the plurality of client devices to cause the plurality of client devices to monitor interactions with the content item; receiving, by the processing system, interaction data for the content item generated by the script executing on each of the plurality of client devices, the interaction data indicating for each client device of the plurality of client devices corresponding display coordinates within the display area of the content item at which a user action occurs on the client device; mapping, by the processing system, the display coordinates for at least one client device of the plurality of client devices to a first display zone of the plurality of display zones associated with a first component of the layout scheme for the content item; assigning, by the processing system, a first weight to the first component and a second weight different from the first weight to a second component of the layout scheme for the content item based on the interaction data received for the content item and the mapping of the display coordinates for the at least one client device of the plurality of client devices to the first display zone associated with the first component, the first and second weights are non-zero weights; modifying, by the processing system, a display attribute of the first component of the layout scheme that has the first assigned weight relative to a display attribute of the second component of the layout scheme that has the second assigned weight different from the first assigned weight; prior to modifying the display attribute of the first component that has the first assigned weight, modifying, by the processing system, a display size of each of the plurality of components of the layout scheme to a minimum display size; and after modifying the display attribute of the first component that has the first assigned weight, uniformly modifying, by the processing system, the display size of each of the plurality of components of the layout scheme that have not yet been modified in display size until any usable space in the content item is filled. 18. A method for optimizing a layout of content presented on a client device, the method comprising:

19

identifying, by a processing system, using a layout scheme of a content item, a plurality of display zones of a display area of the content item, each display zone defined by a corresponding component of a plurality of components of the layout scheme of the content item and the content item for display in a content slot of an information resource; providing, by the processing system to a plurality of client devices, the content item and a script for executing on the plurality of client devices to cause the plurality of client devices to monitor interactions with the content item; receiving, by the processing system, interaction data for the content item generated by the script executing on each of the plurality of client devices, the interaction data indicating for each client device of the plurality of client devices corresponding display coordinates within the display area of the content item at which a user action occurs on the client device; mapping, by the processing system, the display coordinates for at least one client device of the plurality of client devices to a first display zone of the plurality of display zones associated with a first component of the layout scheme for the content item; assigning, by the processing system, a first weight to the first component and a second weight different from the first weight to a second component of the layout scheme for the content item based on the interaction data received for the content item and the mapping of the display coordinates for the at least one client device of the plurality of client devices to the first display zone associated with the first component, the first and second weights are non-zero weights; and modifying, by the processing system, a display attribute of the first component of the layout scheme that has the first assigned weight relative to a display attribute of the second component of the layout scheme that has the second assigned weight different from the first assigned weight, wherein modifying the display attribute of the first component that has the first assigned weight relative to the display attribute of the second component that has the second assigned weight comprises, prior to modifying the display attribute of the second component that has the second assigned weight, decreasing, by the processing system, a display size of each of a plurality of components of the layout scheme to a minimum display size, and wherein a display size of the component that has the first assigned weight is increased from the minimum display size to a maximum display size. 19. A method for optimizing a layout of content presented on a client device, the method comprising:

20

claim 19 determining, by the processing system, for each of the plurality of components of the layout scheme, whether the component is an image component or a text component; wherein the minimum display size for an image component is a threshold display area; and wherein the minimum display size for a text component is a minimum threshold font size. 20. The method of, further comprising:

21

claim 19 determining, by the processing system, whether the first component that has the first weight is an image component or a text component; wherein, if the component that has the first assigned weight is an image component, the maximum display size is a display size of a raw image used to generate the image component; and wherein, if the first component that has the first assigned weight is a text component, the maximum display size is a maximum threshold font size. 21. The method of, further comprising:

22

a memory storing one or more software modules; and processor cause the system to: identify, using a layout scheme of a content item, a plurality of display zones of a display area of the content item, each display zone defined by a corresponding component of a plurality of components of the layout scheme of the content item and the content item for display in a content slot of an information resource; at least one processor, the one or more software modules when executed by the at least one provide, to a plurality of client devices, the content item and a script for executing on the plurality of client devices to cause the plurality of client devices to monitor interactions with the content item; receive interaction data for the content item generated by the script executing on each of the plurality of client devices, the interaction data indicating for each client device of the plurality of client devices corresponding display coordinates within the display area of the content item at which a user action occurs on the client device; map the display coordinates for at least one client device of the plurality of client devices to a first display zone of the plurality of display zones associated with a first component of the layout scheme for the content item; assign, by the processor, a first weight to the first component and a second weight different from the first weight to a second component of the layout scheme for the content item based on the interaction data received for the content item and the mapping of the display coordinates for the at least one client device of the plurality of client devices to the first display zone associated with the first component, the first and second weights are non-zero weights; prior to modifying the display attribute of the first component that has the first assigned weight, modify a display size of each of the plurality of components of the layout scheme to a minimum display size; and after modifying the display attribute of the first component that has the first assigned weight, uniformly modify the display size of each of the plurality of components of the layout scheme that have not yet been modified in display size until any usable space in the content item is filled. modify a display attribute of the first component of the layout scheme that has the first assigned weight relative to a display attribute of the second component of the layout scheme that has the second assigned weight different from the first assigned weight; 22. A system for optimizing a layout of content presented on a client device, the system comprising:

23

claim 1 23. The method of, wherein the respective single content slot causes a respective client device of the plurality of client devices to send a request to the processing system, and wherein providing the content item for display within the respective single content slot is in response to receiving the request from the respective client device.

Detailed Description

Complete technical specification and implementation details from the patent document.

This application isa Broadening Reissue of U.S. Pat. No. 10,146,743 (previously U.S. patent application No. 15/261,169) titled “SYSTEMS AND METHODS FOR OPTIMIZING CONTENT LAYOUT USING BEHAVIOR METRICS” and issued on Dec. 4, 2018, which isaContinuationcontinuationof and claims priority to U.S. Ser. No. 14/308,955, filed Jun. 19, 2014,incorporated herein by reference in its entirety,which is aContinuationcontinuationofPCTInternationalApplication No. PCT/CN2014/074648, filed Apr. 2, 2014 and titled “SYSTEMS AND METHODS FOR OPTIMIZING CONTENT LAYOUT USING BEHAVIOR METRICS.” Thecontentscontentofwhich areall these applications isincorporated herein by reference in its entirety.

The Internet provides access to a wide variety of content. Publishers of webpages and other types of first-party content often monetize their content by allowing sponsored third-party content (e.g., advertisements) to be integrated therewith. A programmatic Internet advertising system can be used to automate the selection and integration of third-party content with the first-party content. Third-party content providers typically create content items for presentation on a client device. It can be difficult and challenging for third-party content providers to create effective and attractive content items.

One implementations of the present disclosure is a method for optimizing a layout of content. The method includes collecting behavioral data for a content item presented on a client device. The content item may be a third-party content item or a non-third-party content item. The behavioral data indicates a location within a display area of the content item at which a user action occurs. The method further includes assigning a weight to each of a plurality of components of a layout scheme for the content item based on the behavioral data collected for the content item, identifying a component of the layout scheme that has a greatest assigned weight, and increasing a display size of the component of the layout scheme that has the greatest assigned weight relative to a display size of a component of the layout scheme that has a lesser assigned weight.

In some implementations, the method further includes identifying a component of the layout scheme that has a second greatest assigned weight, calculating a weight ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight, and increasing a display size of the component that has the second greatest assigned weight until a display size ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight matches the calculated weight ratio.

In some implementations, the method further includes prior to increasing the display size of the component that has the greatest assigned weight, decreasing a display size of each of the plurality of components of the layout scheme to a minimum display size. In some implementations, the method further includes after increasing the display size of the component that has the greatest assigned weight, uniformly increasing the display size of each of the plurality of components of the layout scheme that have not yet been increased in display size until any usable space in the content item is filled.

In some implementations, the user action at the location within the display area of the content item includes at least one of clicking on the content item at the location or hovering over the content item at the location.

In some implementations, the behavioral data for the content item includes an indication of a location at which a user action occurs for each of a plurality of user actions that occur within the display area of the content item.

In some implementations, collecting behavioral data for the content item includes delivering the content item to the client device, monitoring user actions performed via the client device for user actions that occur within the display area of the content item, and, in response to a determination that a user action occurs within the display area of the content item, identifying the location of the content item at which the user action occurs.

In some implementations, the method further includes accessing an initial layout scheme for the content item. The initial layout scheme may indicate, for each of the plurality of components of the layout scheme, an area of the content item associated therewith. The method may further include identifying an area of the content item within which the user action occurs.

In some implementations, assigning a weight to a component of the layout scheme includes using an initial layout scheme for the content item to identify a component of the initial layout scheme associated with an area of the content item within which the user action occurs and incrementing a weight for the identified component of the layout scheme.

In some implementations, increasing the display size of the of the component that has the greatest assigned weight relative to a display size of a component that has a lesser assigned weight includes at least one of increasing the display size of the component that has the greatest assigned weight or decreasing the display size of the component that has the lesser assigned weight.

In some implementations, increasing the display size of the of the component that has the greatest assigned weight relative to a display size of a component that has a lesser assigned weight includes, prior to increasing the display size of the component that has the greatest assigned weight, decreasing a display size of each of a plurality of components of the layout scheme to a minimum display size. The display size of the component that has the greatest assigned weight may be increased from the minimum display size to a maximum display size.

In some implementations, the method further includes determining, for each of the plurality of components of the layout scheme, whether the component is an image component or a text component. The minimum display size for an image component may be a threshold display area. The minimum display size for a text component may be a minimum threshold font size.

In some implementations, the method further includes determining whether the component that has the greatest assigned weight is an image component or a text component. If the component that has the greatest assigned weight is an image component, the maximum display size may be a display size of a raw image used to generate the image component. If the component that has the greatest assigned weight is a text component, the maximum display size may be a maximum threshold font size.

Another implementation of the present disclosure is a system for optimizing a layout of content. The system includes a processing system configured to collect behavioral data for a content item presented on a client device. The content item may be a third-party content item or a non-third-party content item. The behavioral data indicates a location within a display area of the content item at which a user action occurs. The processing system is configured to assign a weight to each of a plurality of components of a layout scheme for the content item based on the behavioral data collected for the content item, to identify a component of the layout scheme that has a greatest assigned weight, and to increase a display size of the component of the layout scheme that has the greatest assigned weight relative to a display size of a component of the layout scheme that has a lesser assigned weight.

In some implementations, the processing system is configured to generate a behavioral data collection object and to deliver the behavioral data collection object to the client device. The behavioral data collection object may cause the client device to monitor user actions performed at the client device for user actions that occur within a display area of the content item and to report user actions that occur within the display area of the content item back to the processing system.

In some implementations, the processing system is configured to integrate the behavioral data collection object with the content item and to deliver the behavioral data collection object to the client device in conjunction with the content item.

In some implementations, the user action at the location within the display area of the content item includes at least one of clicking on the content item at the location or hovering over the content item at the location.

In some implementations, the processing system is configured to identify a component of the layout scheme that has a second greatest assigned weight, to calculate a weight ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight, and to increase a display size of the component that has the second greatest assigned weight until a display size ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight matches the calculated weight ratio.

In some implementations, the processing system is configured to decrease a display size of each of the plurality of components of the layout scheme to a minimum display size prior to increasing the display size of the component that has the greatest assigned weight. In some implementations, the processing system is configured to increase the display size of each of the plurality of components of the layout scheme that have not yet been increased in display size until any usable space in the content item is filled after increasing the display size of the component that has the greatest assigned weight.

Another implementation of the present disclosure is a computer-readable storage medium having instructions stored therein. The instructions are executable by one or more processors to cause the one or more processors to perform operations including collecting behavioral data for a content item presented on a client device. The behavioral data indicates a location within a display area of the content item at which a user action occurs. The operations include assigning a weight to each of a plurality of components of a layout scheme for the content item based on the behavioral data collected for the content item, identifying a component of the layout scheme that has a greatest assigned weight, and increasing a display size of the component of the layout scheme that has the greatest assigned weight relative to a display size of a component of the layout scheme that has a lesser assigned weight.

In some implementations, the operations further include identifying a component of the layout scheme that has a second greatest assigned weight, calculating a weight ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight, and increasing a display size of the component that has the second greatest assigned weight until a display size ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight matches the calculated weight ratio.

The foregoing is a summary and thus by necessity contains simplifications, generalizations, and omissions of detail. Consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the devices and/or processes described herein, as defined solely by the claims, will become apparent in the detailed description set forth herein and taken in conjunction with the accompanying drawings.

Referring generally to the FIGURES, systems and methods for optimizing content layout using behavior metrics are shown, according to a described implementation. The layout of a content item may be important for conveying information effectively to viewers. Layout options such as font size, logo size, and image size may have a significant impact on both the ability of the content to convey information and the performance of the content (e.g., conversions, clicks, etc.). Content providers may not have the experience or knowledge required to optimize the layout of their content items. Even for experienced content providers, it can be difficult to determine which components of a content item should be optimized to improve content performance.

The systems and methods described herein may be used to optimize the layout of a content item presented on a client device. The content item may be a third-party content item (e.g., an advertisement) or a non-third-party content item. Content items can be optimized by emphasizing or highlighting the most important components thereof (e.g., making images or logos bigger, increasing font size, bolding text, etc.). The systems and methods of the present disclosure can be used to identify which components of a content item are most important and to optimize the content item by emphasizing the identified components.

Behavioral data can be collected for the content item when the content item is presented on a client device. The behavioral data may describe an action performed by a user of the client device with respect to the content item. The behavioral data may indicate a location (e.g., x and y coordinates) within a display area of the content item at which a user action occurs (e.g., a location that the content item is clicked, a location that a mouse cursor hovers over the content item, etc.). Computer code and/or script can be delivered to the client device (e.g., by a content server) along with the content item to cause the client device to collect and report the behavioral data. The behavioral data can be used to identify the components of the content item that receive user actions most frequently.

A layout scheme for the content item may be used to determine the areas of the content item that correspond to each component (e.g., images, text, logos, etc.) of the layout scheme. The layout scheme for the content item may define an area of the content item occupied by each component of the layout scheme. The layout scheme for a content item can be used to map the location of a user action within the display area of the content item to a particular component of the layout scheme.

The systems and methods described herein may be used to assign weights to various components of a layout scheme for a content item based on the behavioral data collected for the content item. A user action that occurs within an area of the content item associated with a particular component of the layout scheme may add to the weight of the corresponding component. Components of the layout scheme that are clicked more frequently may be assigned a greater weight than components that are clicked less frequently.

The weights associated with each component of the layout scheme may be used to optimize the layout for the content item. Components with greater assigned weights may be highlighted or emphasized (e.g., increased in display size, bolded, etc.). In various implementations, components with lesser assigned weights are decreased in display size (e.g., to make room for the greater weighted components) or left unmodified. The display sizes of components in the adjusted layout scheme may correspond to the weights associated with the components.

1 FIG. 1 FIG. 100 100 102 104 106 108 110 112 100 100 110 112 104 106 108 104 106 Referring now to, a block diagram of a computing systemis shown, according to a described implementation. In brief overview, computing systemis shown to include a network, resources, content providers, client devices, data storage devices, and a content server. It should be noted that although the various components of computing systemare shown and described separately with reference to, in some implementations, one or more components of computing systemmay be combined into a single component. Data storage devicesmay be a component of content server, resources, content providers, and/or client devices. In some implementations, the functions of resourcesand content providersmay be performed by a single entity.

100 104 106 108 108 104 102 104 106 108 106 104 Computing systemmay facilitate communication between resources, content providers, and client devices. Client devicesmay request and receive first-party resource content (e.g., web pages, documents, etc.) from resourcesvia network. In some implementations, resourcesinclude content slots for presenting content items from content providers. When resource content is viewed by client devices, content items from content providersmay be delivered and presented in the content slots of resources.

100 104 106 108 112 112 108 104 108 112 106 108 112 108 108 104 108 104 Computing systemmay also facilitate communication between resources, content providers, client devices, and content server. Content servermay receive a notification of an available impression from client deviceswhen resource content from resourcesis loaded and/or viewed by client devices. Content servermay select one or more third-party content items (e.g., advertisements provided by content providers) and deliver the selected content items to client devices. In some implementations, content servergenerates a behavioral data collection object (e.g., computer-readable instructions) and delivers the behavioral data collection object to client devices. The behavioral data collection object may cause client devicesto monitor and/or report a location of a user action within the display area of the content item. In other implementations, the behavioral data collection object may be included in the content of resources(e.g., by a webpage publisher) and delivered to client devicesalong with first-party content from resources.

1 FIG. 100 102 102 102 102 108 102 Still referring to, and in greater detail, computing systemis shown to include a network. Networkmay be a local area network (LAN), a wide area network (WAN), a cellular network, a satellite network, a radio network, the Internet, or any other type of data network or combination thereof. Networkmay include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to transmit, receive, or relay data. Networkmay further include any number of hardwired and/or wireless connections. Client devicesmay communicate wirelessly (e.g., via WiFi, cellular, radio, etc.) with a transceiver that is hardwired (e.g., via a fiber optic cable, a CAT5 cable, etc.) to a computing device of network.

1 FIG. 100 104 104 102 104 104 Still referring to, computing systemis shown to include resources. Resourcesmay include any type of information or data structure that can be provided over network. In some implementations, resourcesmay be identified by a resource address associated with each resource (e.g., a uniform resource locator (URL)). Resourcesmay include websites, webpages (e.g., HTML webpages, PHP webpages, etc.), word processing documents, portable document format (PDF) documents, images, video, programming elements, interactive content, streaming video/audio sources, or other types of electronic information.

104 104 112 104 Resourcesmay include first-party content provided by various publishers. In some implementations, a publisher may operate a website which includes a plurality of webpages (e.g., a first webpage, a second webpage, etc.). The website and the webpages may be part of resources. Publishers may interact with content server(e.g., via a management interface) to adjust the configuration settings for various webpages of resources.

104 104 108 104 Resourcesmay include a variety of content elements. Content elements may include, textual content elements (e.g., text boxes, paragraph text, text snippets, etc.), image content elements (e.g., pictures, graphics, etc.), video content elements (e.g., streaming video, moving graphics, etc.), hyperlink content elements (e.g., links to webpages, links to other resources, etc.), or any other type of content element that is rendered when resourcesare viewed and/or loaded by client devices. Content elements can have various sizes, positions, orientations, or other attributes defining how content elements are displayed on resources(e.g., a transparency attribute, a position attribute, a size attribute, etc.).

104 104 106 108 108 108 104 In some implementations, resourcesinclude content slots for presenting content items. Resourcesmay include one or more inline frame elements (e.g., HTML “iframe” elements, <iframe> . . . </iframe>) for presenting third-party content items from content providers. An inline frame can be a target frame for links defined by other elements and can be selected by user agents (e.g., client devices, a web browser running on client devices, etc.) as the focus for printing, viewing its source, or other forms of user interaction. The content slots may cause client devicesto request third-party content items in response to viewing first-party resource content from resources.

104 104 104 104 104 104 106 112 108 104 104 108 104 Various elements of resourcesmay be included in the original content of resourcesor added to resources. Some elements of resourcesmay be part of the source code of resources. Other elements of resourcesmay be added by content providers, content server, and/or client devices. Added content may include third-party content items, computer-readable instructions, configuration information, tag firing rules, or other content which can be inserted into resources. In various implementations, the additional content may be inserted into an existing frame of resourcesor a new element may be created for the additional content. Client devicesmay create and/or insert a new <ins> element in the document object model (DOM) of resources.

104 108 108 104 104 108 Resourcesmay include elements (e.g., tags, script elements, etc.) which have embedded information (e.g., meta-information embedded in hyperlinks) and/or embedded instructions. Embedded instructions may include computer-readable instructions (e.g., software code, JavaScript®, ECMAScript®, etc.) which are executed by client devices(e.g., by a web browser running on client devices). Computer-readable instructions may be included in the original (i.e., source) content of resourcesor added to resourceswhen rendered by client devices.

104 108 104 104 104 112 112 108 108 104 In some implementations, resourcesinclude a block of computer-readable code or script which causes client devicesto collect and/or report behavioral data. Resourcesmay include a behavioral data collection object which causes user devices to collect and/or report a location (e.g., x and y coordinates) at which a user action occurs (e.g., clicking at a particular location, hovering over a particular location, etc.). The behavioral data collection object may be part of the source content of resourcesor inserted into resources(e.g., by content server). Content servermay generate and deliver the behavioral data collection object to client devicesalong with a third-party content item. Client devicesmay insert the behavioral data collection object into the content of resources.

1 FIG. 100 106 106 104 106 108 106 106 112 110 Still referring to, computing systemis shown to include content providers. Content providersmay include one or more electronic devices representing advertisers, business owners, advertising agencies, or other entities capable of generating third-party content to be presented along with first-party content from resources. In some implementations, content providersproduce third-party content items (e.g., an ad creative) for presentation to client devices. In other implementations, content providersmay submit a request to have third-party content items automatically generated. The third-party content items may be stored in one or more data storage devices local to content providers, within content server, or in data storage devices.

In some implementations, the third-party content items are advertisements. The advertisements may be display advertisements such as image advertisements, animated advertisements, moving picture advertisements, audio advertisements, video advertisements, text-based advertisements, or any combination thereof. In other implementations, the third-party content items may include other types of content which serve various non-advertising purposes.

106 112 108 112 108 In some implementations, content providerssubmit campaign parameters to content server. The campaign parameters may be used to control the distribution of third-party content items to client devices. The campaign parameters may include keywords associated with the third-party content items, bids corresponding to the keywords, a content distribution budget, geographic limiters, or other criteria used by content serverto determine when a third-party content item may be presented to client devices.

106 112 106 112 108 Content providersmay access content serverto monitor the performance of the third-party content items distributed according to the established campaign parameters. In some implementations, content providersmay access content serverto review one or more behavior metrics associated with a third-party content item or set of third-party content items. The behavior metrics may describe the interactions between client deviceswith respect to a distributed third-party content item or set of third-party content items (e.g., number of impressions, number of clicks, a click location, a number of conversions, an amount spent, etc.). The behavior metrics may be based on user actions logged and processed by an accounting system or a log file processing system.

1 FIG. 100 108 108 108 100 108 104 106 112 108 Still referring to, computing systemis shown to include client devices. Client devicesmay include any number and/or type of user-operable electronic devices. Client devicesmay include desktop computers, laptop computers, smartphones, tablets, mobile communication devices, remote workstations, client terminals, entertainment consoles, or any other devices capable of interacting with the other components of computing system(e.g., via a communications interface). Client devicesmay be capable of receiving resource content from resourcesand/or third-party content items from content providersor content server. Client devicesmay include mobile devices or non-mobile devices.

108 108 108 In some implementations, client devicesinclude an application (e.g., a web browser, a resource renderer, etc.) for converting electronic content into a user-comprehensible format (e.g., visual, aural, graphical, etc.). Client devicesmay include a user interface element (e.g., an electronic display, a speaker, a keyboard, a mouse, a microphone, a printer, etc.) for presenting content to a user, receiving user input, or facilitating user interaction with electronic content (e.g., clicking on a content item, hovering over a content item, etc.). Client devicesmay function as a user agent for allowing a user to view HTML encoded content.

108 108 104 108 112 108 Client devicesmay include a processor capable of processing embedded information (e.g., meta information embedded in hyperlinks, etc.) and executing embedded instructions. Embedded instructions may include computer-readable instructions (e.g., software code, JavaScript®, ECMAScript®, etc.) associated with a content slot within which a content item is presented. Client devicesmay be configured to load one or more embedded tags or objects in conjunction with resource content from resources. An embedded tag or object may include computer-readable instructions which cause client devicesto request a third-party content item from content serverwhen the instructions are executed by client devices.

108 108 104 112 112 108 Client devicesmay be configured to receive and execute a behavioral data collection object. In various implementations, client devicesmay receive the behavioral data collection object from resources(e.g., as part of the original resource content) or from content server. Content servermay deliver the behavioral data collection object to client devicesalong with a content item. The behavioral data collection object may include computer-readable instructions (e.g., a code snippet) for collecting and/or reporting a location at which a user action occurs (e.g., a click, a mouse hover, etc.) within the display area of a content item.

108 108 108 108 Client devicesmay run (e.g., process, execute, perform instructions provided by, etc.) the behavioral data collection object to perform various operations in accordance with the instructions included therein. The behavioral data collection object may cause client devicesto monitor user actions performed at client devicesto determine whether a user action has occurred within the display area of a content item. In response to such a determination, the behavioral data collection object may cause client devicesto identify and/or report the location of the content item (e.g., x and y coordinates) at which the user action has occurred.

108 108 106 112 In some implementations, client devicesare capable of detecting an interaction with a distributed content item. An interaction with a content item may include displaying the content item, hovering over the content item, clicking on the content item, viewing source information for the content item, or any other type of interaction between client devicesand a content item. Interaction with a content item does not require explicit action by a user with respect to a particular content item. In some implementations, an impression (e.g., displaying or presenting the content item) may qualify as an interaction. The criteria for defining which user actions (e.g., active or passive) qualify as an interaction may be determined on an individual basis (e.g., for each content item), by content providers, or by content server.

108 108 108 108 112 Client devicesmay generate a variety of user actions. In some implementations, client devicesmay generate a user action in response to a detected interaction with a content item. The user action may include a plurality of attributes including a content identifier (e.g., a content ID or signature element), a device identifier, a referring URL identifier, a timestamp, a location identifier (e.g., indicating a particular location within a content item), an action type identifier, or any other attributes describing the action. Client devicesmay generate user actions when particular actions are performed (e.g., viewing a resource, making an online purchase, submitting a search query, clicking on a link or a content item, hovering over a content item, etc.). The user actions generated by client devicesmay be communicated to content serveror a separate accounting system.

112 108 112 For situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated (e.g., by content server) in one or more ways before it is stored or used, so that personally identifiable information is removed. A user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, a user may have control over how information is collected (e.g., by an application, by client devices, etc.) and used by content server.

1 FIG. 100 110 110 112 100 110 110 Still referring to, computing systemis shown to include data storage devices. Data storage devicesmay be any type of memory device capable of storing profile data, content item data, accounting data, or any other type of data used by content serveror another component of computing system. Data storage devicesmay include any type of non-volatile memory, media, or memory devices. Data storage devicesmay include semiconductor memory devices (e.g., EPROM, EEPROM, flash memory devices, etc.) magnetic disks (e.g., internal hard disks, removable disks, etc.), magneto-optical disks, and/or CD ROM and DVD-ROM disks.

110 112 104 108 106 110 112 100 102 110 112 108 In some implementations, data storage devicesare local to content server, resources, client devices, or content providers. In other implementations, data storage devicesare remote data storage devices connected with content serverand/or other components of computing systemvia network. In some implementations, data storage devicesare part of a data storage server or system capable of receiving and responding to queries from content serverand/or client devices.

110 In some implementations, data storage devicesare configured to store event data (e.g., event logs) for various content items. Event data may include behavioral data describing various user actions or interactions with respect to a content item. An event may include an event type attribute (e.g., a click event, a hover event, a conversion event, an impression event, etc.), a time attribute (e.g., a time at which the event occurs), a content item attribute (e.g., a content ID), a device attribute, a referring URL attribute, a location attribute (e.g., indicating a particular location within a content item at which the event occurs), or any other attribute describing the event.

110 In some implementations, data storage devicesare configured to store layout schemes for content items. A layout scheme for a content item may define the areas of the content item occupied by each of a plurality of components of the layout scheme. A layout scheme may indicate that a particular image (e.g., defined by a URL or other image identifier), text string, or other component of the layout scheme occupies a particular area of the content item. The area of a content item occupied by a layout component may be defined by coordinates (e.g., a top left coordinate and a bottom right coordinate of a rectangular area) or any other indicator of a specific portion of the content item.

110 112 112 110 In some implementations, data storage devicesare configured to store weight data for various components of a layout scheme. Weight data may be generated by content serverbased on the behavioral data for a content item. In some implementations, each component of a layout scheme has a weight associated therewith. The weight for a component of a layout scheme may be stored as an attribute of the associated component. Content servermay retrieve the weight data from data storage devicesand use the weight data to optimize the layout of the layout scheme to which the weight data applies.

1 FIG. 100 112 112 112 104 108 104 108 104 108 108 112 112 112 108 Still referring to, computing systemis shown to include a content server. In some implementations, content serveris a third-party content server. Content servermay receive a notification of an available impression from resourcesand/or client devices. The notification of an available impression may be received in response to first-party content from resourcesbeing viewed and/or loaded by client devices. In some implementations, when client devices load resource content from resources, client devicesmay also load one or more embedded tags (e.g., code snippets) that cause client devicesto send a notification of an available impression to content server. The notification of an available impression may include a request for third-party content. Content servermay be configured to identify a particular resource with which the third-party content item will be displayed (e.g., by URL, by domain name, etc.). Content servermay select a third-party content item and deliver the selected third-party content item to client devices.

112 112 108 108 108 108 112 112 2 FIG. In some implementations, content servergenerates behavioral data collection object. The behavioral data collection object may include computer-readable instructions collecting and/or reporting behavioral data (e.g., click locations, mouse hover locations, etc.) relating to the selected third-party content item. Content servermay deliver the behavioral data collection object to client devicesalong with a selected third-party content item. The behavioral data collection object may be executed by client devices. The behavioral data collection object may cause client devicesto monitor user actions performed at client devices, to determine whether a user action has occurred within the display area of the third-party content item, to identify a location within the display area of the third-party content item at which a user action has occurred, and/or to report the location of the user action and type of action to content server. Content serveris described in greater detail with reference to.

2 FIG. 112 112 202 204 202 202 112 104 106 108 102 110 Referring now to, a block diagram illustrating content serverin greater detail is shown, according to a described implementation. Content serveris shown to include a communications interfaceand a processing circuit. Communications interfacemay include wired or wireless interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, Ethernet ports, WiFi transceivers, etc.) for conducting data communications with local or remote devices or systems. Communications interfacemay allow content serverto communicate with resources, content providers, client devices, network, and/or data storage devices.

204 206 208 206 Processing circuitis shown to include a processorand memory. Processormay be implemented as a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a CPU, a GPU, a group of processing components, or other suitable electronic processing components.

208 208 208 208 206 204 208 208 210 212 214 216 218 220 Memorymay include one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and/or computer code for completing and/or facilitating the various processes, layers, and modules described in the present disclosure. Memorymay include volatile memory or non-volatile memory. Memorymay include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. In some implementations, memoryis communicably connected to processorvia processing circuitand includes computer code (e.g., data modules stored in memory) for executing one or more processes described herein. Memoryis shown to include an impression notification module, a content selection module, a behavioral data collection module, a layout detection module, a component weighting module, and a layout optimization module.

2 FIG. 208 210 210 104 108 108 Still referring to, memoryis shown to include an impression notification module. Impression notification modulemay be configured to receive a notification of an available impression from a first-party resource (e.g., resources) and/or from client devices. First-party resources may include one or more content slots for presenting third-party content items. The content slots may cause first-party resources to request a third-party content item when loaded by client devices.

210 108 108 108 112 108 210 112 In some implementations, impression notification modulereceives a notification of an available impression from client devices. When client devicesload a first-party resource, an embedded content slot in the first-party resource (e.g., an embedded tag, a “show_ads” tag, etc.) may cause client devicesto request a third-party content item from content server. Client devicesmay notify impression notification moduleof an available impression by requesting a third-party content item from content server. The notification of the available impression may include an indication of the first-party resource with which the third-party content item will be presented. The notification of the available impression may include a webpage URL, a document URL, a domain name, or other indication of a particular first-party resource.

2 FIG. 208 212 212 108 212 212 Still referring to, memoryis shown to include a content selection module. Content selection modulemay be configured to select a third-party content item in response to the request for content received from client devices. In some implementations, content selection moduleidentifies a particular resource with which the third-party content item will be displayed (e.g., by URL, by domain name, etc.). Content selection modulemay select a third-party content item for presentation in association with the identified resource. The third-party content item may be a non-interstitial content item (e.g., a content item presented in a slot of a webpage, alongside resource content) or an interstitial content item.

212 212 106 104 104 In some implementations, content selection moduleselects a third-party content item that is relevant to the first-party resource content in conjunction with which the third-party content item will be presented (e.g., based on the content of the first resource). Content selection modulemay select a third-party content item by comparing the keywords associated with the content item (e.g., specified by content providers, additional keywords extracted from the content item, etc.) with the keywords associated with the first resource. A topic or type of content included in resourcesmay be used to establish keywords for resources.

212 108 212 108 In some implementations, content selection moduleselects a third-party content item by considering whether the content item is relevant to the client deviceto which the content item will be presented. Content selection modulemay compare the keywords associated with the content item with information (e.g., profile data, user preferences, etc.) associated with a particular client devicerequesting the content item.

212 106 212 106 212 212 In some implementations, content selection moduleexposes the available impression to content providers. Content selection modulemay auction the available impression to content providers. In some implementations, content selection moduleselects an eligible third-party content item based on a result of the auction. Content selection modulemay select an eligible content item associated with the content provider that submits the highest bid.

212 212 106 Content selection modulemay generate a quality signal for the available impression. The quality signal may be based on one or more indications of an estimated return on investment associated with the impression (e.g., an established click-through-rate, a predicted click-through-rate, etc.). The quality signal may be a general quality signal for the identified resource, a particular quality signal for the available impression, or an individualized quality signal for the available impression and a particular third-party content item. Content selection modulemay provide the quality signal to content providersto consider when bidding on the available impression.

212 212 212 212 212 108 In some implementations, content selection moduleselects a third-party content item which has characteristics matching the characteristics of a content slot in which the content item will be presented. Content selection modulemay select a content item having a display size which fits in a destination content slot. Content selection modulemay resize a selected content item to fit a content slot or add additional visual content to the selected content item (e.g., padding, a border, etc.) based on the display size of the content item and the display size of the content slot. In some implementations, eligible content items include content items matching established user preferences for receiving individualized content; however, content selection modulemay select a content item that does not match established user preferences if an insufficient number of preferred content items are available. Content selection modulemay deliver the selected third-party content item to client devicesfor presentation in association with the first resource.

2 FIG. 208 214 214 108 214 Still referring to, memoryis shown to include a behavioral data collection module. Behavioral data collection modulemay be configured to collect behavioral data for a content item presented on client devices. The content item may be a third-party content item or a non-third-party content item. In some implementations, behavioral data collection modulegenerates a behavioral data collection object. The behavioral data collection object may include computer-readable instructions (e.g., a code snippet) for collecting and/or reporting a location at which a user action occurs (e.g., a click, a mouse hover, etc.) within the display area of a content item.

214 108 212 214 108 Behavioral data collection modulemay deliver the behavioral data collection object to client devicesalong with a content item selected by content selection module. In some implementations, behavioral data collection moduleembeds the behavioral data collection object (e.g., a snippet of computer-readable code) in the content item delivered to client devices.

108 108 108 108 214 Client devicesmay run (e.g., process, execute, perform instructions provided by, etc.) the behavioral data collection object to perform various operations in accordance with the instructions included therein. The behavioral data collection object may cause client devicesto monitor user actions performed at client devicesto determine whether a user action has occurred within the display area of a content item. User actions may include clicking on the content item, hovering over the content item (e.g., with a mouse cursor), selecting the content item, or otherwise interacting with the content item. The behavioral data collection object may cause client devicesto identify a location of the content item (e.g., x and y coordinates) at which the user action has occurred and to report the identified location to behavioral data collection module.

214 214 Behavioral data collection modulemay be configured to collect (e.g., receive, process, log, etc.) the behavioral data obtained by the behavioral data collection object. In some implementations, behavioral data collection modulereceives click location data from the behavioral data collection object. Click location data may include one or more click events that occur within the display area of a content item. Each click event may include an event type attribute classifying the event as a click event, a timestamp identifying a time at which the click event occurs, and/or a location attribute indicating a location within the display area of the content item at which the click event occurs.

214 214 110 In some implementations, behavioral data collection modulereceives hover location data from the behavioral data collection object. Hover location data may include one or more hover events that occur within the display area of a content item. Each hover event may include an event type attribute classifying the event as a hover event, a time attribute identifying a duration of the hover event (e.g., a time that the mouse cursor remains in the same location within the display area of the content item), and/or a location attribute indicating a location within the display area of the content item at which the hover event occurs. Behavioral data collection modulemay store the click event data and/or the hover event data in a database (e.g., data storage devices) for subsequent use in assigning a weight to various components of a layout scheme for the content item.

2 FIG. 208 216 216 Still referring to, memoryis shown to include a layout detection module. Layout detection modulemay be configured to provide an initial layout scheme for a content item. A layout scheme for a content item may include a display position, a display size, a transparency, and/or other display attributes for various components of the content item (e.g., images, logos, text snippets, etc.). A layout scheme for a content item may define the areas of the content item occupied by each of a plurality of components of the layout scheme. A layout scheme may indicate that a particular image (e.g., defined by a URL or other image identifier), text string, or other component of the layout scheme occupies a particular area of the content item. The area of a content item occupied by a layout component may be defined by coordinates (e.g., a top left coordinate and a bottom right coordinate of a rectangular area), shapes, or any other indicator of a specific portion of the content item.

216 106 216 In some implementations, layout detection moduleloads an existing layout scheme associated with the content item. Layout schemes may be generated by content providersor by an automated content generation system. Layout detection modulemay identify a layout scheme associated with a particular content item (e.g., by content item ID) and retrieve the layout scheme from a database.

216 216 216 216 216 216 In other implementations, layout detection moduledetects a layout scheme by analyzing the visual content of a content item. Layout detection modulemay use optical character recognition (OCR) to determine the size and location of any text in the content item. Layout detection modulemay detect images in the content item (e.g., product images, logo images, prominent images, etc.) by comparing the visual content of the content item with a database of existing images. If a match is found between the content item and an image in the image database, layout detection modulemay identify the location of the image in the content item. In some implementations, layout detection moduleperforms any of a variety of image analysis processes (e.g., foreground image detection, background image detection, edge analysis, pixel color analysis, etc.) to identify and/or locate images in the content item. Layout detection modulemay generate an initial layout scheme for the content item based on a result of the layout detection.

2 FIG. 208 218 218 218 216 218 Still referring to, memoryis shown to include a component weighting module. Component weighting modulemay be configured to assign a weight to various components of a layout scheme for a content item based on the behavioral data collected for the content item. Component weighting modulemay receive or load an initial layout scheme for a content item from layout detection module. In some implementations, component weighting moduleuses the layout scheme to divide the display area of the content item into a plurality of smaller areas or zones. Each zone of the content item may correspond to a particular component of the layout scheme (i.e., the component which occupies the corresponding zone).

218 214 218 218 218 218 Component weighting modulemay receive behavioral data (e.g., click event data and/or hover event data) for the content item from behavioral data collection module. In some implementations, component weighting moduleassociates each user action represented in the behavioral data with a component of the layout scheme. Component weighting modulemay associate a user action with a component of the layout scheme if the user action occurs within the zone of the content item corresponding to the component. In some implementations, component weighting moduleidentifies a zone of the content item that includes the location defined by the location attribute of a user action event (e.g., x and y coordinates). Component weighting modulemay associate the user action event with the component of the layout scheme that corresponds to the identified zone.

218 218 c c c c c c In some implementations, component weighting moduleassigns a weight to a component of the layout scheme based on the number of click events associated with the component. Each click event that occurs within a particular zone of the content item may increment (e.g., increase, add to, etc.) the weight of the corresponding component of the layout scheme. Component weighting modulemay calculate the weight of a layout scheme component attributable to click events (i.e., a click event weight “W”) by multiplying the total number of click events associated with the component (“N”) by a click weight multiplier (“k”) (e.g., W=N*k). In various implementations, other click event weight formulas may be used to calculate the click event weight for each component as a function of the behavioral data.

218 218 h h h h h h In some implementations, component weighting moduleassigns a weight to a component of the layout scheme based on the number of hover events associated with the component. Each hover event that occurs within a particular zone of the content item may increment the weight of the corresponding component of the layout scheme. Component weighting modulemay calculate the weight of a layout scheme component attributable to hover events (i.e., a hover event weight “W”) by multiplying the total duration of hover events associated with the component (“T”) by a hover weight multiplier (“k”) (e.g., W=T*k). The total duration of hover events associated with a component may be the total amount of time that a mouse cursor hovers over the component of the content item. In various implementations, other hover event weight formulas may be used to calculate the hover event weight for each component as a function of the behavioral data.

218 c h Component weighting modulemay calculate the combined weight (“W”) for a component of the layout scheme by summing the click event weight and the hover event weight (e.g., W=W+W). In various implementations, the click event weight and/or the hover event weight may be multiplied by weighting factors or otherwise adjusted when calculating the combined weight for the component. In some implementations, other formulas may be used to calculate the combined weight for each component as a function of the behavioral data.

218 218 220 Component weighting modulemay assign the calculated weights to the corresponding components of the layout scheme for the content item (e.g., as attributes of each component). In some implementations, component weighting modulestores and/or outputs the assigned weights. The weights assigned to each component of the layout scheme may be used (e.g., by layout optimization module) to optimize the layout of the content item.

2 FIG. 208 220 220 220 220 Still referring to, memoryis shown to include a layout optimization module. Layout optimization modulemay access the layout scheme for a content item and identify the weight assigned to each component of the layout scheme. Layout optimization modulemay be configured to optimize the layout of a content item based on the weights assigned to each component of the layout scheme. Optimizing the layout of the content item may include adjusting a display size of a component of the layout scheme such that a display size ratio between a relatively greater-weighted component of the layout scheme and a relatively lesser-weighted component of the layout scheme is increased. In other words, layout optimization modulemay increase the display size of relatively greater-weighted components relative to the display size of relatively lesser-weighted components.

220 220 220 In some implementations, layout optimization moduleinitially decreases the display size of each component of the layout scheme. Layout optimization modulemay decrease the display size of each component of the layout scheme to a minimum display size for the component. In some implementations, the minimum display size for a component is defined as the minimum size of the component for the component to be clearly legible. The minimum display size for an image component of the layout scheme may be a minimum threshold display area. The minimum threshold display area may be a fixed display size (e.g., a minimum number of horizontal pixels, a minimum number of vertical pixels, a minimum display area, etc.) or a function of the original display size of the image component (e.g., 75% of the original display size, 50% of the original display size, etc.). The original display aspect ratio of an image component may be maintained. The minimum display size for a text component may be a minimum threshold font size. Layout optimization modulemay decrease the display size of each component of the layout scheme to the minimum display size to make room for components having a high assigned weight.

220 220 220 220 1 2 Layout optimization modulemay optimize the layout of the content item by highlighting or emphasizing one or more highly-weighted components of the layout scheme. In some implementations, layout optimization modulehighlights and/or emphasizes a predetermined number of components of the layout scheme with the greatest assigned weights (e.g., the two greatest-weighted components). Layout optimization modulemay identify the component of the layout scheme with the greatest assigned weight (i.e., the “first component”) and the component of the layout scheme with the second-greatest assigned weight (i.e., the “second component”). In some implementations, layout optimization modulecalculates a weight ratio between the weight assigned to the first component (“W”) and a weight assigned to the second component (“W”) (e.g.,

220 Layout optimization modulemay increase the display size of the first component to a maximum permissible display size. The maximum permissible display size of the first component may be limited by various layout constraints such as a minimum margin (e.g., spacing) between the first component and other components of the layout scheme, a minimum margin or padding between the first component and the perimeter of the content item, and/or a maximum size threshold for the first component. For image components, the maximum size threshold may be a fixed display size or a function of the original display size of the image component. For text components, the maximum size threshold may be a maximum font size (e.g., 32 pt. font). In some implementations, increasing the display size of the first component includes increasing the display size incrementally (e.g., by one pixel at a time) until the display size cannot be increased any further without violating a layout constraint.

The maximum size threshold for an image may prevent the image from being stretched larger than the display size of a raw image source for the image in the content item (e.g., a stored image used to create the content item). The raw image source may have a display size larger than the image component of the original content item. The image component of the original content item may be a scaled (e.g., reduced-size) version of the raw image source. An image component of the content item can be expanded to a size greater than the original size of the image component in the content item without exceeding the maximum size threshold.

220 220 220 1 1 2 2 1 2 1 2 Layout optimization modulemay identify the display size (“S”) of the first component of the layout scheme after the display size of the first component has been increased to the maximum permissible display size. Layout optimization modulemay use the display size Sof the first component and the weights assigned to each component to calculate a target display size (“S”) for the second component of the layout scheme. In some implementations, layout optimization modulecalculates the target display size Sfor the second component of the layout scheme such that the ratio between Sand Smatches the ratio between Wand W(e.g.,

220 2 2 Layout optimization modulemay increase the display size of the second component to the target display size S. In some implementations, increasing the display size of the second component includes increasing the display size incrementally (e.g., by one pixel at a time) until the display size reaches the target display size Sor until the display size cannot be increased any further without violating a layout constraint. Layout constraints for the second component may include a minimum margin (e.g., spacing) between the second component and other components of the layout scheme, a minimum margin or padding between the second component and the perimeter of the content item, and/or a maximum size threshold for the second component. For image components, the maximum size threshold may be a fixed display size or a function of the original display size of the image component. For text components, the maximum size threshold may be a maximum font size (e.g., 32 pt. font).

220 220 220 In various implementations, layout optimization moduleincreases the display sizes of one or more additional components of the content item (e.g., a third greatest-weighted component, a fourth greatest-weighted component, etc.). Layout optimization modulemay determine whether any usable space remains in the content item after increasing the display sizes of the first component, the second component, and any additional components which have been increased in size. If any useable space remains, layout optimization modulemay increase the display sizes of any components that have not yet been increased in size in order to fill the usable space (e.g., increasing the display sizes of each remaining component evenly until the usable space is filled).

220 220 220 In some implementations, layout optimization moduledetermines whether each component of the layout scheme is an image component or a text component. For text components, layout optimization modulemay highlight or emphasize the text by bolding, underlining, italicizing, or using other special font attributes for the text component. Layout optimization modulemay use such techniques for highlighting or emphasizing text in addition to or in place of adjusting the display size for selected components of the layout scheme.

3 8 FIGS.- 3 8 FIGS.- 3 FIG. 8 FIG. 302 302 220 302 Referring now to, several drawings of a content itemare shown, according to a described implementation.illustrate content itemat various stages of an optimization process. The optimization process may be performed by layout optimization moduleto transform content itemfrom the layout scheme shown into the layout scheme shown in.

3 FIG. 300 302 300 304 306 308 310 312 300 304 312 Referring specifically to, an initial layout schemefor content itemis shown, according to a described implementation. Layout schemeis shown to include several components including a product image component, a headline text component, a creative text component, a logo image component, and an action button component. Layout schememay be defined by the positions, display sizes, and other attributes of components-(e.g., font attributes, transparency attributes, etc.).

300 302 304 312 302 300 302 302 304 304 304 302 300 302 108 Layout schememay indicate an area of content itemassociated with each of components-. The area of content itemassociated with a particular component of layout schememay be the area of content itemthat is occupied by the associated component. The area of content itemthat is associated with product image componentmay be the area bounded by the perimeter of product imagecomponent. Content itemmay be arranged according to layout schemewhen content itemis initially delivered to client devices.

4 FIG. 400 302 108 302 302 302 302 302 108 302 Referring now to, a user action mapfor content itemis shown, according to a described implementation. Users of client devicesmay perform a variety of user actions with respect to content item. Users can click on content item, hover over content item, inspect content item, or otherwise act or interact with respect to content item. Client devicesmay run a behavioral data collection object which reports the locations (e.g., x and y coordinates) at which user actions occur within the display area of content item.

400 302 108 400 400 108 400 302 302 108 302 User action mapillustrates a collection of locations within the display area of content itemat which click events and hover events occur (e.g., as reported by behavioral data collection objects running on client devices). Each click event is represented by an “X” and each hover event is represented by an “O” in user action map. User action mapmay be illustrative of behavioral data collected from many different client devices. Although only a small subset (e.g., approximately one hundred) of click events and hover events are shown in user action map, any number and/or type of user action events (e.g., click events, hover events, inspection events, impression events, etc.) can be logged for content item. The number and type of user action events recorded may depend upon a frequency with which content itemis delivered to client devicesand/or a frequency with which users interact with content item.

4 FIG. 302 304 302 310 302 306 308 312 302 218 302 300 400 218 304 310 In the collection of behavioral data shown in, the greatest number of user action events occur within an area of content itemassociated with product image component. The second greatest number of user action events occur within an area of content itemassociated with logo image component. The remaining user action events occur at other locations within the display area of content item(e.g., within an area associated with headline text component, creative text component, action button component, or elsewhere within the display area of content item). Component weighting modulemay use the number of user action events that occur within each area of content itemto assign a weight to the corresponding component of layout scheme. For the behavioral data represented in user action map, component weighting modulemay assign the greatest weight to product image componentand the second greatest weight to logo image component.

5 FIG. 302 500 220 300 500 500 300 504 304 506 306 508 308 510 310 512 312 220 300 Referring now to, content itemis shown with components arranged according to a minimum size layout scheme. Layout optimization modulemay reduce each of the components of layout schemeto a minimum size to generate layout scheme. Each of the components of layout schemeis a reduced-size version of a corresponding component in layout scheme. Product image componentis a smaller version of product image component; headline text componentis a smaller version of headline text component; creative text componentis a smaller version of creative text component, logo image componentis a smaller version of logo image component; and action button componentis a smaller version of action button component. Layout optimization modulemay decrease the display size of each component of layout schemeto the minimum display size so that space is available for increasing the display size of components having a high assigned weight.

In some implementations, the minimum display size for a component is defined as the minimum size of the component for the component to be clearly legible. The minimum display size for an image component of the layout scheme may be a minimum threshold display area. The minimum threshold display area may be a fixed display size (e.g., a minimum number of horizontal pixels, a minimum number of vertical pixels, a minimum display area, etc.) or a function of the original display size of the image component (e.g., 75% of the original display size, 50% of the original display size, etc.). The original display aspect ratio of an image component may be maintained. The minimum display size for a text component may be a minimum threshold font size.

6 FIG. 302 600 600 220 504 600 604 504 Referring now to, content itemis shown with components arranged according to an intermediary layout scheme. Intermediary layout schememay result from layout optimization moduleincreasing the display size of the component having the greatest assigned weight (i.e., product image component) to a maximum permissible display size. In layout scheme, product image componentis a maximum-size version of product image component.

604 604 604 302 604 500 The maximum permissible display size of product image componentmay be limited by various layout constraints such as a minimum margin (e.g., spacing) between componentand other components of the layout scheme, a minimum margin or padding between componentand the perimeter of content item, and/or a maximum size threshold for product image component. For image components, the maximum size threshold may be a fixed display size or a function of the original display size of the image component. For text components, the maximum size threshold may be a maximum font size (e.g., 32 pt. font). Other components of layout schememay be moved to ensure that layout constraints are satisfied.

7 FIG. 302 700 700 220 510 700 710 510 Referring now to, content itemis shown with components arranged according to another intermediary layout scheme. Intermediary layout schememay result from layout optimization moduleincreasing the display size of the component having the second greatest assigned weight (i.e., logo image component) to a target display size. In layout scheme, logo image componentis a target version of logo image component.

710 604 220 220 710 1 2 1 2 1 2 In some implementations, the target size for the component having the second greatest assigned weight (i.e., component) is a function of the display size of the component having the greatest assigned weight (i.e., component). Layout optimization modulemay identify the display size Sof the component having the greatest assigned weight after the display size of the first component has been increased to the maximum permissible display size. In some implementations, layout optimization modulecalculates the target display size Sfor the component of the layout scheme having the second greatest assigned weight (i.e., component) such that the ratio between Sand Smatches the ratio between Wand W(e.g.,

1 2 604 710 Wand Wmay be the weights assigned to product image componentand logo image component, respectively.

220 510 710 710 710 710 302 710 2 2 Layout optimization modulemay increase the display size of logo image componentuntil the display size reaches the target display size Sfor logo image component. In some implementations, increasing the display size of the component having the second greatest assigned weight includes increasing the display size incrementally (e.g., by one pixel at a time) until the display size reaches the target display size Sor until the display size cannot be increased any further without violating a layout constraint. Layout constraints for componentmay include a minimum margin (e.g., spacing) between componentand other components of the layout scheme, a minimum margin or padding between componentand the perimeter of content item, and/or a maximum size threshold for component. For image components, the maximum size threshold may be a fixed display size or a function of the original display size of the image component. For text components, the maximum size threshold may be a maximum font size (e.g., 32 pt. font).

8 FIG. 302 800 800 700 506 508 512 220 302 604 710 220 Referring now to, content itemis shown with components arranged according to an optimized layout scheme. Layout schememay be generated by increasing the display sizes of one or more components of layout schemethat have not yet been increased in size (e.g., headline text component, creative text component, action button, etc.). Layout optimization modulemay determine whether any usable space remains in content itemafter increasing the display sizes of product image componentand logo image component. If any useable space remains, layout optimization modulemay increase the display sizes of any components that have not yet been increased in size.

806 808 812 700 806 506 808 508 812 512 220 700 806 808 812 Each of components,, andmay be an increased-size version of a corresponding component in layout scheme. Headline text componentis a larger version of headline text component; creative text componentis a larger version of creative text component; and action button componentis a larger version of action button component. Layout optimization modulemay increase the display size of each component of layout schemethat has not yet been increased in size in order to fill the usable space. In some implementations, the display sizes of components,, andmay be increased evenly or uniformly until the usable space is filled.

9 FIG. 2 FIG. 900 900 112 210 220 Referring now to, a flowchart of a processfor optimizing the layout of a content item is shown, according to a described implementation. In some implementations, processis performed by content server(e.g., using one or more of memory modules-) as described with reference to.

900 902 902 108 Processis shown to include collecting behavioral data for a content item presented on a client device (step). The content item may be a third-party content item or a non-third party content item. In some implementations, stepincludes generating a behavioral data collection object. The behavioral data collection object may include computer-readable instructions (e.g., a code snippet) for collecting and/or reporting a location at which a user action occurs (e.g., a click, a mouse hover, etc.) within the display area of a content item. The behavioral data collection object may be delivered to the client device (e.g., client devices) along with a content item. In some implementations, the behavioral data collection object includes computer-readable instructions embedded in the content item delivered to the client device.

112 The client device may run (e.g., process, execute, perform instructions provided by, etc.) the behavioral data collection object to perform various operations in accordance with the instructions included therein. The behavioral data collection object may cause the client device to monitor user actions performed at the client device for user actions that occur within the display area of the content item. User actions may include clicking on the content item, hovering over the content item (e.g., with a mouse cursor), selecting the content item, or otherwise interacting with the content item. The behavioral data collection object may cause the client device to identify a location of the content item (e.g., x and y coordinates) at which the user action occurs and to report the identified location to content server.

902 902 Stepmay include collecting (e.g., receiving, processing, logging, etc.) the behavioral data obtained by the behavioral data collection object. In some implementations, stepincludes receiving click location data from the behavioral data collection object. Click location data may include one or more click events that occur within the display area of a content item. Each click event may include an event type attribute classifying the event as a click event, a timestamp identifying a time at which the click event occurs, and/or a location attribute indicating a location within the display area of the content item at which the click event occurs.

902 902 110 In some implementations, stepincludes receiving hover location data from the behavioral data collection object. Hover location data may include one or more hover events that occur within the display area of a content item. Each hover event may include an event type attribute classifying the event as a hover event, a time attribute identifying a duration of the hover event (e.g., a time that the mouse cursor remains in the same location within the display area of the content item), and/or a location attribute indicating a location within the display area of the content item at which the hover event occurs. Stepmay include storing the click event data and/or the hover event data in a database (e.g., data storage devices).

9 FIG. 900 904 904 Still referring to, processis shown to include assigning a weight to a plurality of components of a layout scheme for the content item based on the behavioral data collected for the content item (step). Stepmay include receiving or loading an initial layout scheme for the content item. The layout scheme may be used to divide the display area of the content item into a plurality of smaller areas or zones. Each zone of the content item may correspond to a particular component of the layout scheme (i.e., the component which occupies the corresponding zone).

904 904 904 Stepmay include associating each user action represented in the behavioral data with a component of the layout scheme. A user action may be associated with a component of the layout scheme if the user action occurs within the zone of the content item corresponding to the component. In some implementations, stepincludes identifying a zone of the content item that includes the location defined by the location attribute of a user action event (e.g., x and y coordinates). Stepmay include associating the user action event with the component of the layout scheme that corresponds to the identified zone.

904 904 c c c c c c In some implementations, stepincludes assigning a weight to a component of the layout scheme based on the number of click events associated with the component. Each click event that occurs within a particular zone of the content item may increment (e.g., increase, add to, etc.) the weight of the corresponding component of the layout scheme. Stepmay include calculating the weight of a layout scheme component attributable to click events (i.e., a click event weight “W”) by multiplying the total number of click events associated with the component (“N”) by a click weight multiplier (“k”) (e.g., W=N*k). In various implementations, other click event weight formulas may be used to calculate the click event weight for each component as a function of the behavioral data.

904 904 h h h h h h In some implementations, stepincludes assigning a weight to a component of the layout scheme based on the number of hover events associated with the component. Each hover event that occurs within a particular zone of the content item may increment the weight of the corresponding component of the layout scheme. Stepmay include calculating the weight of a layout scheme component attributable to hover events (i.e., a hover event weight “W”) by multiplying the total duration of hover events associated with the component (“T”) by a hover weight multiplier (“k”) (e.g., W=T*k). The total duration of hover events associated with a component may be the total amount of time that a mouse cursor hovers over the component of the content item. In various implementations, other hover event weight formulas may be used to calculate the hover event weight for each component as a function of the behavioral data.

904 c h Stepmay include calculating the combined weight (“W”) for a component of the layout scheme by summing the click event weight and the hover event weight (e.g., W=W+W). In various implementations, the click event weight and/or the hover event weight may be multiplied by weighting factors or otherwise adjusted when calculating the combined weight for the component. In some implementations, other formulas may be used to calculate the combined weight for each component as a function of the behavioral data.

904 904 220 Stepmay include assigning the calculated weights to the corresponding components of the layout scheme for the content item (e.g., as attributes of each component). In some implementations, stepincludes storing and/or outputting the assigned weights. The weights assigned to each component of the layout scheme may be used (e.g., by layout optimization module) to optimize the layout of the content item.

9 FIG. 900 906 908 908 Still referring to, processis shown to include identifying a component of the layout scheme that has the greatest assigned weight (step) and increasing the display size of the component of the layout scheme that has the greatest assigned weight (step). In some implementations, stepincludes increasing the display size of the of the component that has the greatest assigned weight relative to a display size of a component that has a lesser assigned weight (e.g., increasing the display size of the component that has the greatest assigned weight and/or decreasing the display size of the component that has the lesser assigned weight).

908 In some implementations, stepincludes initially decreasing the display size of each component of the layout scheme. The display size of each component of the layout scheme may be decreased to a minimum display size for the component. In some implementations, the minimum display size for a component is defined as the minimum size of the component for the component to be clearly legible. The minimum display size for an image component of the layout scheme may be a minimum threshold display area. The minimum threshold display area may be a fixed display size (e.g., a minimum number of horizontal pixels, a minimum number of vertical pixels, a minimum display area, etc.) or a function of the original display size of the image component (e.g., 75% of the original display size, 50% of the original display size, etc.). The original display aspect ratio of an image component may be maintained. The minimum display size for a text component may be a minimum threshold font size. The display size of each component of the layout scheme may be decreased to the minimum display size to make room for components having a high assigned weight.

908 In some implementations, stepincludes increasing the display size of the component having the greatest assigned weight to a maximum permissible display size. The maximum permissible display size of the first component may be limited by various layout constraints such as a minimum margin (e.g., spacing) between the first component and other components of the layout scheme, a minimum margin or padding between the first component and the perimeter of the content item, and/or a maximum size threshold for the first component. For image components, the maximum size threshold may be a fixed display size or a function of the original display size of the image component. For text components, the maximum size threshold may be a maximum font size (e.g., 32 pt. font). In some implementations, increasing the display size of the first component includes increasing the display size incrementally (e.g., by one pixel at a time) until the display size cannot be increased any further without violating a layout constraint.

The maximum size threshold for an image may prevent the image from being stretched larger than the display size of a raw image source for the image in the content item (e.g., a stored image used to create the content item). The raw image source may have a display size larger than the image component of the original content item. The image component of the original content item may be a scaled (e.g., reduced-size) version of the raw image source. An image component of the content item can be expanded to a size greater than the original size of the image component in the content item without exceeding the maximum size threshold.

9 FIG. 900 910 910 904 1 2 Still referring to, processis shown to include calculating a weight ratio between the component that has the greatest assigned weight and a component of the layout scheme that has the second greatest assigned weight (step). Stepmay include accessing the weights assigned in stepto identify the greatest weight (“W”) and the second greatest weight (“W”). Calculating the weight ratio may include dividing the greatest weight by the second greatest weight (e.g.,

9 FIG. 900 912 912 912 1 2 1 2 1 2 Still referring to, processis shown to include increasing a display size of the component that has the second greatest assigned weight until a display size ratio between the component that has the greatest assigned weight and the component that has the second greatest assigned weight matches the calculated weight ratio (step). Stepmay include identifying the display size (“S”) of the component having the greatest assigned weight after the display size of the component having the greatest assigned weight has been increased to the maximum permissible display size. In some implementations, stepincludes calculating a target display size (“S”) for the component of the layout scheme having the second greatest assigned weight. The target display size may be calculated such that the ratio between Sand Smatches the ratio between Wand W(e.g.,

9 FIG. 900 914 914 914 914 914 Still referring to, processis shown to include increasing the display size of remaining components of the layout scheme to fill any available space (step). Stepmay include increasing the display sizes of one or more components of the layout scheme that have not yet been increased in size (e.g., components other than the components having the greatest two assigned weights). Stepmay include determining whether any usable space remains in the content item after increasing the display sizes of the most heavily weighted components. If any useable space remains, stepmay include increasing the display sizes of any components that have not yet been increased in size. In some implementations, stepincludes increasing the display sizes evenly or uniformly until the usable space is filled.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

December 3, 2020

Publication Date

August 4, 2026

Inventors

Guannan Zhang
Zhenguo Ou

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Systems and methods for optimizing content layout using behavior metrics” (US-RE050980-B2). https://patentable.app/patents/US-RE050980-B2

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.