Method and system for content mediation selection

By running intermediary code on the user device to analyze the image data of the content item and update the content network table, the control problem of undesirable content items in multiple third-party content provider networks is solved, and the user experience is improved.

CN113868520BActive Publication Date: 2025-10-03GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111107470.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-03-03
Filing Date
2017-03-02
Publication Date
2025-10-03
Estimated Expiration
2037-03-13

AI Technical Summary

Technical Problem

In a network of multiple third-party content providers, it is difficult to effectively control undesirable content items, resulting in a degraded user experience.

Method used

The intermediary code is executed on the user device to analyze the image data of the content item, classify the content item based on the extracted data and the content network identifier, and update the table of content networks to remove undesirable content networks from providing the content item to the user device.

Benefits of technology

It achieves effective control over content quality, improves user experience, and ensures that the content provided to users meets expected standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113868520B_ABST
    Figure CN113868520B_ABST
Patent Text Reader

Abstract

Systems and methods are described for providing an interface and implementing rules and metrics received from the interface regarding selection of content networks that provide content items. This may include: providing intermediary code to a publisher for inclusion in publisher content provided to a user device, the intermediary code being associated with a table of content networks; receiving an image of the content item and a content network identifier from the user device; analyzing the image of the content item, the analysis generating extracted image data from the content item; categorizing the content item based on the extracted image data and the content network identifier; receiving instructions to filter content networks that exceed the metrics based on the category; and updating the table of content networks to remove specific content networks.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with application date of March 2, 2017, application number 201780004862.3, and invention name “Publisher tool for controlling content quality across intermediary platforms”.

[0002] Cross-references

[0003] This application claims the benefit of U.S. Patent Application No. 15 / 060,339, filed on March 3, 2016, entitled “Publisher Tool for Controlling Sponsored Content Quality Across Mediation Platforms,” which is hereby incorporated by reference in its entirety. Background Art

[0004] Publishers can request content from multiple third-party content providers as part of selecting content items to display with publisher content in order to provide an interactive user interface containing content tailored for the user, so as to provide an enhanced user interface. This is often accomplished by using a mediation platform that interacts with the third-party content providers. The mediation platform selects the third-party content providers, and the third-party content provider network is then responsible for requesting and providing the content items. When many different third-party content provider networks are providing content items, accountability for undesirable content items can be difficult. Summary of the Invention

[0005] One implementation involves a method, executed on one or more processors of a computing device, that provides intermediary code to a publisher for inclusion in publisher content provided to a user device. The intermediary code is associated with a table of content networks. The method further involves receiving an image of a content item and a content network identifier from the user device, analyzing the image of the content item, the analysis generating extracted image data from the content item, and categorizing the content item based on the extracted image data and the content network identifier. The method further involves receiving instructions to filter content networks that exceed a metric based on a category, the instructions including the metric and associated with the publisher, and updating the table of content networks to remove specific content networks that exceed the metric based on the category, thereby preventing the content item from being provided to the user device from the specific content network.

[0006] Another implementation involves a system running on one or more processors of a demonstration system that receives interaction data with a user electronic device. The method may include: receiving data over a network, the data including an identifier of a model of the user device, an identifier of an application on the user device, and an indication of an interaction with the application; and initiating one of a video playback, a tutorial, a demonstration, and a simulation in response to receiving the data. The method may also include receiving additional data over the network, the additional data including an identifier of the application, an indication of a response from the application, and an indication of another interaction with the application subsequent to the response from the application.

[0007] Another implementation relates to a system having at least one processor and a memory operatively coupled to the processor, wherein the memory stores instructions for execution by the at least one processor, wherein execution of the instructions causes the system to provide intermediary code to a publisher for inclusion in publisher content provided to a user device, the intermediary code being associated with a table of content networks, receiving an image of a content item and a content network identifier from the user device, analyzing the image of the content item, the analysis generating extracted image data from the content item, categorizing the content item based on the extracted image data and the content network identifier, receiving instructions to filter content networks that exceed a metric based on a category, the instructions including the metric and associated with the publisher, and updating the table of content networks to remove a particular content network that exceeds the metric based on the category, thereby preventing provision of the content item from the particular content network to the user device.

[0008] Another implementation relates to a non-transitory computer-readable storage medium storing instructions executable by one or more processing devices to perform operations. Performing the operations may include providing intermediary code to a publisher to include in publisher content provided to a user device, the intermediary code being associated with a table of content networks, receiving an image of a content item and a content network identifier from the user device, analyzing the image of the content item, the analysis generating extracted image data from the content item, categorizing the content item based on the extracted image data and the content network identifier, receiving instructions to filter content networks that exceed a metric based on a category, the instructions including the metric and associated with the publisher, and updating the table of content networks to remove a particular content network that exceeds the metric based on the category, thereby preventing the content item from being provided to the user device from the particular content network.

[0009] Implementations may optionally include one or more of the following features. Execution of the intermediary code may control which content networks are sent requests for content items. Analyzing the image may further include extracting text from the image using optical character recognition, the extracted image data including the extracted text. Analyzing the image may further include: extracting features from the image; comparing feature templates stored in a database with features extracted from the image to find matching templates. The extracted image data may include data associated with any matching templates from the feature templates stored in the database. Analyzing the image may further include: extracting image objects from the image; comparing image objects stored in the database with image objects extracted from the image to find matching image objects. The extracted image data may include data associated with any matching image objects from image objects stored in the database. Classifying content items based on the extracted image data and the content network identifier may further include using a classification tree based on image features obtained from the extracted image data. A user interface may be provided to the publisher. Instructions to filter the content network may be received via the user interface. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosure will become apparent from the description, drawings, and claims.

[0011] Figure 1 is a block diagram depicting an implementation of an environment for providing publisher tools for controlling the quality of content items across intermediary platforms.

[0012] Figure 2a is a block diagram depicting an implementation of a method of capturing images of content items for analysis and classification.

[0013] Figure 2b is a block diagram depicting an implementation of a method of executing intermediary code to capture and send an image of a content item.

[0014] Figure 3 is a block diagram depicting an implementation of a method for receiving information via a user interface provided to a publisher.

[0015] Figure 4 Depicted are implementations of screens for a user interface provided to a publisher to review recent content items.

[0016] Figure 5 Depicted are implementations of screens for a user interface provided to publishers to set rules and metrics regarding a content network.

[0017] Figure 6 is a block diagram depicting the general architecture of a computer system that may be employed to implement the various elements of the systems and methods described and illustrated herein. DETAILED DESCRIPTION

[0018] What follows is a more detailed description of various concepts and implementations related to methods, apparatus, and systems for publisher tools for controlling content item quality across intermediary platforms. The various concepts introduced above and discussed in greater detail below can be implemented in any of a number of ways, as the concepts described are not limited to any particular implementation. Specific implementations and applications are provided primarily for illustrative purposes.

[0019] In some cases, there is a need for systems and methods for an intermediary platform that performs text and image analysis on content provided by a content network. The content may, for example, be provided as part of an interactive user interface generated to include content tailored to the user based on user preferences or attributes associated with the user. The systems and methods allow users—often publishers and content providers—to flag objectionable content items and manage the content provided using the user interface. Managing content items may include enabling or disabling specific content items or even entire networks. Disabling an entire network may be based on metrics regarding the undesirable content provided by the network. In some cases, content can be tagged for specific purposes, including nudity, profanity, and so on. Content items can be uploaded to a server to run a classification algorithm to categorize and tag them. Alternatively, image and text processing can be performed on a system running the intermediary platform or even on the user's device. The intermediary platform thus allows for an improved user interface that includes additional content beyond that provided by the content publisher while maintaining control over the content provided to the user.

[0020] In order to read the following description of various implementations, the following description of the various sections of the specification and their respective contents may be helpful:

[0021] - Section A describes an environment for publisher tools for controlling the quality of content items across intermediary platforms that may be useful for practicing the implementations described herein;

[0022] - Section B describes an implementation of a method for controlling the quality of content items across intermediary platforms using publisher tools.

[0023] - Section C describes user interfaces that may be useful for practicing the implementations described herein.

[0024] - Section D describes network and computing environments that may be useful for practicing the implementations described herein.

[0025] A. Controlling Content Item Quality Across Intermediary Platforms Environment Before discussing the details of implementations of systems and methods for controlling content item quality across intermediary platforms using publisher tools, it may be helpful to discuss implementations of environments in which such systems and methods may be deployed. Figure 1 One implementation of environment 100 is described. In brief overview, the environment includes a user device 104 that communicates with a publisher computing system 102 and a content network 108 via a network 110. An intermediary partner computing system 106 communicates with the publisher computing system 102 and the user device 104 via the network 110. The electronic user device 104 can be any number of different types of personal and mobile devices (e.g., laptop computers, tablet computers, smartphones, digital video recorders, set-top boxes for televisions, video game consoles, combinations of these, etc.) configured to communicate via the network 110.

[0026] The network 110 can be any form of computer network that relays information between the publisher computing system 102, the user device 104, the intermediary partner computing system 106, and the content network 108. In other arrangements, the network 110 can include the Internet and / or other types of data networks, such as a local area network (LAN), a wide area network (WAN), a cellular network, a satellite network, or other types of data networks. The network 110 can also include any number of additional computing devices (e.g., computers, servers, routers, network switches, smartphones, tablet devices, mobile phones, etc.) configured to receive and / or send data within the network 110. These devices can also connect to the network using wireless communication methods such as Bluetooth transceivers, Bluetooth beacons, RFID transceivers, near field communication (NFC) transmitters, or other similar technologies known in the art. The network 110 can also include any number of hardwired and / or wireless connections. For example, the user device 104 may communicate wirelessly (e.g., via WI-FI, cellular, radio, etc.) with a transceiver that is hardwired (e.g., via fiber optic cable, CAT5 cable, etc.) to other computing devices to communicate over the network 110 to communicate with the publisher computing system 102. In some arrangements, reliable communication methods are used over the network, with acknowledgments and retransmissions if acknowledgments are not received.

[0027] Still refer to Figure 1As shown, one or more publisher computing systems 102 include a processor 112, memory 114, a network interface 116, and a user interface 118. Memory 114 may store machine instructions that, when executed by processor 112, cause processor 112 to perform one or more of the operations described herein. Processor 112 may include one or more microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), other forms of processing circuitry, or a combination thereof. Memory 114 may include, but is not limited to, electronic, optical, magnetic, or any other storage or transmission device capable of providing program instructions to processor 112. Memory 114 may include storage devices such as floppy disks, CD-ROMs, DVDs, magnetic disks, memory chips, ROMs, RAMs, EEPROMs, EPROMs, flash memory, optical media, or any other suitable memory from which processor 112 can read instructions. Processor 112 and memory 114 may form a processing module. Memory 114 may include files to run an operating system and user interface module 118. In some arrangements, publisher computing systems 102 are servers that are associated with publishers and that compile and host data associated with the publishers for display on user devices 104 that access publisher content via network 110. The publisher data can be combined for display with content items obtained from one or more content networks 108 via network 110. The publisher data can be combined for display with the content items at the user device 104 without the content items ever being sent to or stored on the publisher computing system 102. In other arrangements, the publisher computing system 102 is any computing device associated with a publisher that interacts with an intermediary partner computing system 106 to set filters and rules for selecting a content network 108 when a user device 104 requests a content network to be displayed in conjunction with content associated with the publisher.

[0028] Publisher computing system 102 is shown as including a network interface 116. In some arrangements, network interface 116 is a hardware interface that allows data to be transferred to and from network 110 (e.g., the Internet). In some arrangements, network interface 116 includes the hardware and logic necessary to communicate over multiple data communication channels. For example, network interface 116 may include an Ethernet transceiver, a cellular modem, a Bluetooth transceiver, a Bluetooth beacon, an RFID transceiver, and / or an NFC transmitter. Data transferred through network interface 116 may be encrypted, thereby making network interface 116 a secure communication module.

[0029] The publisher computing system 102 is shown as including a user interface module 118. In some arrangements, the user interface module 118 is provided by the intermediary partner computing system 106. The user interface module 118 can interact with a user of the publisher computing system 102 through a web browser interface. In other arrangements, the user interface module 118 can be an application or other software running on the publisher computing system 102 that communicates with the intermediary partner computing system 106 through an application program interface (API). In some arrangements, the user interface module 118 is configured to accept input from a user associated with a publisher to set filters and rules for selecting content from the content network 108 when a user device 104 requests a content item to be displayed in conjunction with content associated with the publisher.

[0030] As shown, user device 104 includes a processor 122 and a memory 124. Memory 124 may store machine instructions that, when executed by processor 122, cause processor 122 to perform one or more of the operations described herein. Processor 122 may include one or more microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), other forms of processing circuitry, or a combination thereof. Memory 124 may include, but is not limited to, electronic, optical, magnetic, or any other storage or transmission device capable of providing program instructions to processor 122. Memory 124 may include storage devices such as floppy disks, CD-ROMs, DVDs, magnetic disks, memory chips, ROMs, RAMs, EEPROMs, EPROMs, flash memory, optical media, or any other suitable memory from which processor 122 can read instructions. Processor 122 and memory 124 may form a processing module. Memory 124 may include files to run an operating system and intermediate code module 130.

[0031] User device 104 is shown as including a network interface 126. In some arrangements, network interface 126 is a hardware interface that allows data to be transferred to and from network 110 (e.g., the Internet). In some arrangements, network interface 126 includes the hardware and logic necessary to communicate through multiple data communication channels. For example, network interface 126 may include an Ethernet transceiver, a cellular modem, a Bluetooth transceiver, a Bluetooth beacon, an RFID transceiver, and / or an NFC transmitter. Data transferred through network interface 126 may be encrypted, thereby making network interface 126 a secure communication module.

[0032] The user device 104 includes a display 128. In some arrangements, the display 128 is combined with a user input device in the form of a touch screen device. The display can be any electronic device that conveys data to the user by generating sensory information (e.g., visual, sound, etc.). According to various implementations, the display 128 can be inside the housing of the user device 104 or outside the housing of the user device 104 (e.g., a monitor connected to the user device 104). For example, the user device 104 may include a display 128 that can display a web page, a user interface for an application, and / or other visual sources of information. In various implementations, the display 128 can be located inside or outside the housing identical to the processor 122 and / or memory 124. For example, the display 128 can be an external display, such as a computer monitor, a television, or any other independent form of electronic display. In other examples, the display 128 can be integrated into the housing of a laptop computer, mobile device, smart phone, tablet device, or other form of computing device with an integrated display.

[0033] In some arrangements, the display 128 and the user input device are combined in the form of a touch screen device. The display 128 can be any electronic device that communicates data to the user by generating sensory information (e.g., visual, audio, etc.). The input / output (not shown) of the user device 104 can be any electronic device that converts information received from the user into electronic signals (e.g., a keyboard, mouse, pointing device, touch screen display, microphone, etc.).

[0034] The user device 104 is shown as including an intermediary code module 130. In some arrangements, the intermediary code module 130 is sent from the publisher computing system 102 via the network 110 along with publisher content for display on the user device 104. In other arrangements, the intermediary code module 130 has been obtained from the intermediary partner computing system 106 via the network 110. In some arrangements, the intermediary code module 130 is configured to select from a selection of content networks 108 from which to request content items for display on the user device 104. The content networks 108 are accessible to the intermediary code module 130 in the form of a table or list in the memory 124. In some arrangements, the intermediary code module 130 is received by the user device 104 with a pre-ordered or pre-ranked list of content networks 108 for use in selecting content items. The intermediary code module 130 may request the content item from the first content network 108 in the list and, if unsuccessful, try the next content network. In some other arrangements, the intermediary code module 130 selects the order or priority of the content networks 108 from which to request the content item, and if a request is unsuccessful with one content network 108, attempts to request the content item from the next content network 108 in the order. In some arrangements, the intermediary code module 130 is configured to receive a list of banned or blacklisted content items with the intermediary code, and when a content item matching the list is provided to the user device 104, reject the provided content item and request another.

[0035] In some arrangements, the intermediary code module 130 is configured to allow the user of the user device 104 to mark or report the content item. The mark or report content item can also provide a mechanism for describing the mark or reporting the reason of the item (for example, a drop-down menu of reporting the reason, a text box for writing the mark or report, etc.). In some arrangements, the intermediary code module 130 is configured to capture an image or screenshot of the requested content item. The captured image can be a screenshot of the content item displayed on the display of the user device 104 or a screenshot of the full screen of the image of the display that also comprises the content item. Therefore, after the content item has been requested by the intermediary code module 130 to the content network 108 and received via the network 110, the screenshot of the content item is captured. In some arrangements, the image captured is a reconstruction from web data (for example, html5 data). In some arrangements, the intermediary code module 130 is configured to send other data together with the captured image data. Other data may include one or more of the following: an associated publisher (e.g., a publisher ID), an associated content network 108 (e.g., a content network ID, a time and date requested or received at the user device 104, a time and date displayed at the user device 104), a user's flagging status for the content item, feedback accompanying the flagging status, and the like.

[0036] As shown, the intermediary partner computing system 106 includes a processor 132, a memory 134, and a network interface 136. The memory 134 may store machine instructions that, when executed by the processor 132, cause the processor 132 to perform one or more of the operations described herein. The processor 132 may include one or more microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), other forms of processing circuitry, or a combination thereof. The memory 134 may include, but is not limited to, electronic, optical, magnetic, or any other storage or transmission device capable of providing program instructions to the processor 132. The memory 134 may include storage devices such as floppy disks, CD-ROMs, DVDs, magnetic disks, memory chips, ROMs, RAMs, EEPROMs, EPROMs, flash memory, optical media, or any other suitable memory from which the processor 132 can read instructions. The processor 132 and the memory 134 may form a processing module. The memory 134 may include files to run the operating system, the intermediary module 138, the image analysis module 140, and the classification module 142.

[0037] The intermediary partner computing system 106 is shown as including a network interface 136. In some arrangements, the network interface 136 is a hardware interface that allows data to be transferred to and from the network 110 (e.g., the Internet). In some arrangements, the network interface 136 includes the hardware and logic necessary to communicate through multiple data communication channels. For example, the network interface 136 may include an Ethernet transceiver, a cellular modem, a Bluetooth transceiver, a Bluetooth beacon, an RFID transceiver, and / or an NFC transmitter. Data transferred through the network interface 136 may be encrypted, thereby making the network interface 136 a secure communication module.

[0038] The intermediary partner computing system 106 is shown as including an intermediary module 138. In some arrangements, the intermediary module 138 is configured to communicate with the publisher computing system 102 and the user device 104. The communication with the publisher computing system 102 may include receiving filter settings, rules, or publisher-related configuration settings for the intermediary of content items displayed with the publisher content. In such an arrangement, the intermediary module 138 applies the settings, rules, and / or configuration settings to intermediary code associated with the publisher to give the publisher more control over the selection of content networks 108 that can be selected when the user device 104 requests a content item. In some arrangements, applying the settings, rules, and / or configuration settings to the intermediary code includes modifying a table or list of available content networks 108 sent with the intermediary code. In some arrangements, the intermediary module 138 is configured to communicate with the publisher computing system 102 to provide the intermediary code that is provided with the publisher content. In other arrangements, the broker module 138 is configured to communicate directly with the user device 104 to provide broker code to the user device 104 to execute while the publisher content is displayed.

[0039] In some arrangements, the intermediary module 138 is configured to apply settings, rules, and / or configuration settings to the intermediary code associated with the publisher to give the publisher more control over the selection of specific content items provided by the content network 108 to the user device 104. If the publisher applies rules to disallow or block specific content items (e.g., blacklisting specific content items), the intermediary partner attempts to prevent the content item from being displayed on the user device 104 displaying content from the publisher, regardless of the identity of the content network 108 providing the content item. In some arrangements, the intermediary module 138 is configured to include a list of disallowed content items. Each content item can be identified by a hash of the image content of the content item, by a destination URL associated with the item, or by other unique criteria identifiable in the content item. In some arrangements, the intermediary module 138 is configured to send the list of disallowed content items along with the intermediary code to the user device 104, and when a content item matching the list is provided to the user device 104, the intermediary code module 130 executing on the user device 104 rejects the provided content item and requests another content item.

[0040] The intermediary partner computing system 106 is shown as including an image analysis module 140. In some arrangements, the image analysis module 140 is configured to receive images captured as screenshots from the user device 104 and then analyze these images. The received images and associated data can be stored in an image database 144. The associated data can include the associated publisher, the associated content network 108, the time and date received at the user device 104, a content identifier (ID), and the like. In some arrangements, the image analysis module 140 is configured to analyze the images using optical character recognition (OCR). OCR can be capable of recognizing a wide variety of character sets and languages, including languages ​​written from left to right, from right to left, and vertically. OCR can use image normalization, feature extraction, and / or pattern classification using neural networks, support vector machines, and the like. Feature extraction can include detecting maximum stable external regions, removing non-text regions based on geometric properties, and / or removing non-text regions based on stroke width variations. Ultimately, the detected individual text characters are merged into words and / or text lines. In some arrangements, the image analysis module 140 is configured to analyze the image or further analyze the image using object extraction to extract identifiable objects within the image. Object extraction can use various edge detection, corner detection, large object detection, and ridge detection techniques to facilitate extraction. In some arrangements, template matching is used to match objects extracted from the image with template images. The template images used for matching can be stored in a database (e.g., image database 144). In some arrangements, other feature detectors can be used, including Kadir-Brady saliency detectors, multi-scale Harris detectors, Gaussian difference, and the like.

[0041] The intermediary partner computing system 106 is shown as including a classification module 142. In some arrangements, the classification module 142 is configured to classify images that have been received from the user device 104, captured as screenshots, and analyzed in the image analysis module 140. The classification module can classify the image using both text extracted using OCR methods and extracted objects or features matched to the template image. In some arrangements, the classification module 142 utilizes a classifier trained on category names and / or descriptions. In some arrangements, probabilistic latent semantic analysis can be used. In other arrangements, the extracted features are encoded as scale-invariant feature transform descriptors. In some arrangements, the classification can separate the detected background image from the various features detected in the image and weight the background differently when determining one or more categories to which the image belongs.

[0042] The intermediary partner computing system may also include an image database 144. The image database 144 may include files stored in non-volatile memory, including files required to operate the intermediary module 138, the image analysis module 140, and the classification module 142. In some arrangements, the image analysis module 140 may use the image database 144 to store template images for matching extracted features, as well as to store any extracted features as images. The classification module 142 may store received images in the image database 144 before or after classification of the images. Classification data, content network 108 data associated with the received images, data regarding user tags for the images, and other received data associated with the received images may be associated with the images in the image database 144.

[0043] In some arrangements, one or more of the image analysis or classification (e.g., image analysis module 140 and classification module 142) may be performed on a computer system separate from the intermediary partner computing system 106, and the results of the image analysis and classification are sent to the intermediary partner computing system 106. The various modules depicted in the intermediary partner computing system 106 may be performed on other computing systems and servers and are not limited to the implementation shown. In some arrangements, the intermediary code module 130 may be on the intermediary partner computing system 106 or on a computing system other than the user device 104 (e.g., in a server-side intermediary implementation). In such an arrangement, image analysis and classification may be performed before the content item is provided to the user device 104, and "pre-filtering" of the content item may be implemented using metrics set by the publisher. Pre-filtering may also be performed on blacklisted content items provided by any user device 104, where the content item is identified by a hash of the image content of the content item, by a destination URL associated with the item, or by other unique criteria identifiable in the content item. In some arrangements, the intermediary partner computing system 106 may be configured to receive additional information associated with the content item ID from the publisher computing system 102, including click-through rates, conversion rates, impressions, etc. associated with the content item and the publisher, and / or click-through rates, conversion rates, impressions, and total revenue associated with the content network 108 and the publisher.

[0044] Still refer to Figure 1As shown, content network 108 includes a processor 152, a memory 154, and a network interface 156. Memory 154 may store machine instructions that, when executed by processor 152, cause processor 152 to perform one or more of the operations described herein. Processor 152 may include one or more microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), other forms of processing circuitry, or a combination thereof. Memory 154 may include, but is not limited to, electronic, optical, magnetic, or any other storage or transmission device capable of providing program instructions to processor 152. Memory 154 may include storage devices such as floppy disks, CD-ROMs, DVDs, magnetic disks, memory chips, ROMs, RAMs, EEPROMs, EPROMs, flash memory, optical media, or any other suitable memory from which processor 152 can read instructions. Processor 152 and memory 154 may form a processing module. Memory 154 may include files to run an operating system and content selection module 158.

[0045] The content network 108 is shown as including a network interface 156. In some arrangements, the network interface 156 is a hardware interface that allows data to be transferred to and from the network 110 (e.g., the Internet). In some arrangements, the network interface 156 includes the hardware and logic necessary to communicate over multiple data communication channels. For example, the network interface 156 may include an Ethernet transceiver, a cellular modem, a Bluetooth transceiver, a Bluetooth beacon, an RFID transceiver, and / or an NFC transmitter. Data transferred through the network interface 156 may be encrypted, thereby making the network interface 156 a secure communication module.

[0046] The content network 108 is shown as including a content selection module 158. In some arrangements, the content selection module 158 is configured to communicate with the user device 104. The configuration for communicating with the user device 104 may include being configured to receive a content request from the intermediary code module 130 executing on the user device 104. In some arrangements, additional data regarding the type, format, category, and / or display requirements of the content of the requesting user device 104 accompanies or is included in the request. The content selection module 158 is configured to select a content item to satisfy the request and transmit the selected content item to the requesting user device 104 via the network 110.

[0047] B. Methods for controlling the quality of content items across intermediary platforms

[0048] Now refer to Figure 2a, depicts a block diagram of a method 200 for capturing an image of a content item for analysis and classification, according to one implementation. In some arrangements, the method 200 is performed by a processor 132 executing instructions from a memory 134 on an intermediary partner computing system 106. While executing the method 200, the intermediary partner computing system 106 transmits data via a network interface 136 to a network interface 126 of a user device 104 and / or a network interface 116 of a publisher computing system 102 over a network 110. Briefly summarizing the method 200, the method 200 includes the steps of providing intermediary code, receiving a captured image of a content item, analyzing the received image, classifying the content item, receiving a metric to apply to the content item, and updating a table of the content network 108 based on the metric.

[0049] Still refer to Figure 2a In more detail, method 200 begins when intermediary code is provided at 204. In some arrangements, a module of the intermediary partner computing system 106 provides the intermediary code to a computing device, which may be a publisher computing system 102. The intermediary code is then provided to the user device 104 via the publisher computing system 102 along with the publisher content. The intermediary code may be a client-side script embedded within an HTML or XHTML document or included as an external script in a separate file. In some arrangements, some or all of the intermediary code resides on the server as a server-side script and is executed when the document is requested by the user device 104 displaying the publisher content.

[0050] Receive the image of the content item that is captured at 206. In some arrangements, the image that is captured is sent by user device 104 in response to the execution of the intermediary code. The image that is captured can be a screenshot of the content item displayed on the display of user device 104 or a screenshot of the full screen of the image that also contains the display of the content item. Therefore, after having requested and received the content item via network 110 from content network 108, the screenshot of the content item is captured. In some arrangements, the image that is captured is a reconstruction from web data (e.g., html5 data). In some arrangements, other data is sent together with the image data that is captured, creating the image data that is captured. Other data can include one or more of the following: associated publisher (e.g., publisher ID), associated content network 108 (e.g., content network ID, time and date requested or received at user device 104, time and date displayed at user device 104), etc.

[0051] At 208, the received image is analyzed. In some arrangements, the received image is analyzed by the user device 104. In some arrangements, the analysis includes optical character recognition (OCR) analysis of the image to extract text elements from the image. OCR can be capable of recognizing a variety of character sets and languages, including languages ​​written from left to right, right to left, and vertically. OCR can use image normalization, feature extraction, and / or pattern classification using neural networks, support vector machines, etc. Feature extraction can include detecting maximum stable external regions, removing non-text areas based on geometric properties, and removing non-text areas based on stroke width variations. Ultimately, the detected individual text characters are merged into words and / or text lines. In some arrangements, the analysis includes analyzing the image or further analyzing the image using object extraction or feature extraction to extract recognizable objects or features within the image. Object extraction can use various edge detection, corner detection, large object detection, and ridge detection techniques to facilitate extraction. In some arrangements, template matching is used to match objects extracted from the image with template images. The template images used for matching can be stored in a database (e.g., image database 144). In some arrangements, other feature detectors may be used, including Kadir-Brady saliency detector, multi-scale Harris detector, Difference of Gaussians, and the like.

[0052] At 210, the content items captured in the received image are classified. In some arrangements, the classification is based on data extracted from the received image at 208. The classification may include "nudity", "profanity", "high contrast", "suitable for a certain age range", etc. Other classifications are possible, such as "low income", "low click-through rate", "low conversion rate", etc. More than one category may be applied to the received image and / or related content items. The classification may utilize both text extracted using OCR methods and extracted objects or features matched to a template image to classify the image. In some arrangements, a classifier trained on category names and / or descriptions is used. In some arrangements, probabilistic latent semantic analysis may be used. In other arrangements, the extracted features are encoded as scale-invariant feature transform descriptors. In some arrangements, the classification may separate the detected background image from the various features detected in the image and weight the background differently when determining the category or categories to which the image belongs.

[0053] At 212, metrics are received to be applied to content items. In some arrangements, the metrics are received from a publisher computing system 102. In some arrangements, the metrics are associated with rules that apply to individual content items associated with a content network 108. For example, a rule may be to not use a particular content item that is associated with a content network 108. In another example, a rule may be to not use a particular content item regardless of the content network 108 that provided the content item. In another example, a rule may be to not use a particular content network 108 that provided a particular content item that has been displayed on a user device 104.

[0054] In other arrangements, the provided metrics are associated with rules regarding a particular content network 108. For example, the metric and rule may be to no longer request content items from that particular content network 108. The provided metrics may be used to filter out entire content networks 108 from being used when a content item is requested. For example, a metric may be received that states: Do not use any content network 108 where more than 10% of the content items have been tagged by users. In another example, a metric may be received that states: Do not use any content network 108 where more than 20% of the content items have been determined to contain content of a particular (e.g., profane) nature based on image analysis of captured images of the content items. Metrics may be applied to data regarding content items and associated content networks 108. Metrics may include tagging of items, categorization of content items based on image analysis, undesirable elements in text or images of displayed content items (regardless of category), revenue generated by a content network 108, click-through rates for a content network 108, conversion rates for a content network 108, and the like.

[0055] At 214, a table or list of content networks 108 is updated based on the metric. In some arrangements, the table or list is updated only if application of the metric results in one or more specific content networks 108 being excluded from requests for content items. In some arrangements, the table or list, or the contents of the table or list, are included in the mediation code provided at 204, and the absence of a particular content network 108 from the table or list results in requests for content items not being sent to the content network 108 not included in the table or list. The table or list may be associated with the publisher that sent the metric. Using the above example, a metric may be received that states: Do not use any content network 108 where more than 10% of the content items have been tagged by the user. Application of the rule and metric includes determining content networks 108 where more than 10% of the content items have been tagged by the user, removing these content networks 108 from the list in the mediation code provided, associated with the publisher that provided the metric, and re-providing the mediation code with the updated list. In another example, a metric may be received that does not use any content network 108 in which more than 20% of the content items have been determined to contain content of a particular nature based on image analysis of captured images of the content items. Application of the rule and metric includes determining content networks 108 in which more than 20% of the content items have been determined to contain content of the particular nature based on the image analysis and removing those content networks 108 from a list associated with the publisher setting the metric.

[0056] In some arrangements, the metric may be to disallow or block a particular content item (e.g., blacklist the particular content item), and then the intermediary partner attempts to prevent the content item from being displayed on the user device 104 displaying content from the publisher, regardless of the identity of the content network 108 providing the content item. In some arrangements, in a client-side implementation, a list of disallowed content items is created or updated and sent along with the intermediary code to be blocked on the user device 104. In other arrangements, in a server-side implementation, the list of disallowed or blocked content items is used on the server (e.g., the intermediary partner computing system 106) to filter out blocked content items. Individual content items may be identified by a hash of the image content of the content item, by a destination URL associated with the item, or by other unique criteria identifiable in the content item.

[0057] Now refer to Figure 2b, a block diagram depicts a method 250 for executing intermediary code to capture and send an image of a content item, according to one implementation. In some arrangements, the method 250 is executed by the processor 122 running instructions from the memory 124 of the user device 104. While executing the method 250, the user device 104 transmits data via the network interface 126 over the network 110 to the network interface 156 of the content network 108, the network interface 116 of the publisher computing system 102, and the network interface 136 of the intermediary partner computing system 106. Briefly summarizing the method 250, the method 250 includes the steps of receiving the intermediary code, executing the intermediary code, receiving the content item, capturing an image of the content item, and sending the captured image and a network identifier.

[0058] Still refer to Figure 2b In more detail, at 252, the intermediary code is received. In some arrangements, the intermediary code is received by the user device 104. In some arrangements, the intermediary code is provided by the publisher as part of the publisher content after the intermediary partner computing system 106 has provided the intermediary code to the publisher computing system 102 via the network 110. The intermediary code can be a client-side script embedded within an HTML or XHTML document or included as an external script in a separate file. In some arrangements, some or all of the intermediary code resides on the server as a server-side script and is executed when the document is requested by the user device 104 displaying the publisher content.

[0059] At 254, the intermediary code is executed. In some arrangements, the intermediary code is executed by a processor of a user device 104 running a web browser. The execution of the intermediary code determines the content network 108 from which to request the content item. In some arrangements, a list or table of available content networks 108 is used to request the content item for display. The list or table can be sorted or ranked, and when a content item cannot be received from a certain content network 108, the next content network 108 on the list or table is used. In some arrangements, the execution of the intermediary code determines which content network 108 to send the request to. Factors used in this determination may include publisher content with which the content item is to be displayed, content slot size or location, location of the user device 104, type of device associated with the user device 104, and other factors.

[0060] Receive content items at 256. In some arrangements, the content items are received by the user device 104 running the intermediary code. In some arrangements, the content items are images (static or animated). Other content item formats are possible, such as text, video, widgets, interactive items (e.g., Flash format), etc. In some arrangements, the received content items can be compared with a list of disallowed content items. Each content item can be identified by a hash of the image content of the content item, by a destination URL associated with the item, or by other unique criteria that can be identified in the content item. If the content item is identified as being on the disallowed list, the content item is rejected and a new content item is requested from the same content network 108 or a different content network 108.

[0061] At 258, an image of the content item is captured. In some arrangements, the captured image is a screenshot of the screen displayed on the user device 104 displaying the content item. In other arrangements, the image is obtained from received data associated with the received content item (e.g., an image obtained from a received HTML5). In some arrangements, the captured image is also sampled, and only a portion of the captured image is stored for transmission. This may also include capturing only a portion of the screen displayed on the user device.

[0062] At 260, after receiving the content item and capturing an image of the content item, the captured image and the network identifier are sent as part of the captured image data. In some arrangements, the captured image data is sent by the user device 104 to the intermediary partner computing system 106. In some arrangements, other data is included with the captured image data, such as one or more of the following: an associated publisher (e.g., a publisher ID), an associated content network 108 (e.g., a content network ID, the time and date requested or received at the user device 104, the time and date displayed at the user device 104), the status of the tagged content item, and the like. The captured image or captured image data may not be sent immediately after receiving the content item and capturing the image. It may be sent at a later, more ideal time. Determining an ideal time for sending the captured image and / or captured image data may include a period of low processor activity on the user device 104, a period of low network activity on the user device 104, an accumulation or batching of multiple captured images and / or captured image data to be sent all at once, a predetermined time of day, and the like. In some arrangements, a sampling of the captured image is first performed and only a portion of the captured image is sent.

[0063] Now refer to Figure 3, depicts a block diagram of a method 300 for receiving information via a user interface provided to a publisher. In some arrangements, the method 300 is performed by a processor 132 executing instructions from a memory 134 on an intermediary partner computing system 106. While executing the method 300, the intermediary partner computing system 106 transmits data to a network interface 116 of a publisher computing system 102 via a network interface 136 over a network 110. Briefly summarizing the method 300, the method 300 includes the steps of providing a user interface to a publisher, receiving metrics via the user interface, and applying the metrics to a content network listing associated with the publisher.

[0064] Still refer to Figure 3 In more detail, method 300 begins when, at 302, an intermediary module of an intermediary partner computing system 106 provides a user interface to a computing device. In some arrangements, the user interface is provided to a publisher computing system 102 or a computing system associated with the publisher computing system 102. The user interface may be provided via an interface displayed by a web browser. In other arrangements, the user interface may be a standalone application, plug-in, or other software running on the publisher computing system 102 that communicates with the intermediary partner computing system 106 via an application programming interface (API). In some arrangements, the user interface accepts input from a user associated with a publisher to set filters and rules for selecting content from the content network 108 when a user device 104 requests content items for display in conjunction with content associated with the publisher. In some arrangements, the user interface provides access to data stored on the intermediary partner computing system 106. This information may include data about content items displayed on the user device 104 in conjunction with content provided by the publisher. This data may include individual content items displayed (e.g., content item IDs or images of content items), content items tagged by users, statistics about tagged or reported content items, and the like.

[0065] At 304, metrics are received via the user interface. In some arrangements, the metrics are associated with rules that apply to individual content items associated with content network 108. For example, when the intermediary is server-side, the rule may be to not use a specific content item selected from a list associated with content network 108. In another example, the rule may be to not use a specific content item selected from a list, regardless of the content network 108 that provided the content item. In another example, the rule may be to not use a specific content network 108 that provided a content item selected from a list of content items displayed on user device 104. In other arrangements, the provided metrics are used to filter out and no longer use content networks 108 based on the provided rules and metrics. For example, a metric may be received that does not use any content network 108 in which more than 10% of the content items have been tagged by the user, regardless of the reason. In another example, a metric may be received that does not use any content network 108 in which more than 20% of the content items have been determined to contain content of a particular nature based on image analysis of captured images of the content items. Metrics may be applied to data about content items and associated content networks 108, such as tags for items, categories of content items based on image analysis, undesirable elements in text or images of displayed content items (regardless of category), content ID categories of content items, categories of content networks 108, revenue of content networks 108, click-through rates of content networks 108, conversion rates of content networks 108, and the like.

[0066] At 306, metrics are applied to the content network list associated with the publisher using the user interface. In some arrangements, the content network list is immediately updated and sent as part of the mediation code to the publisher computing system 102 associated with the publisher for future inclusion with publisher content. In other arrangements, the content network list is periodically updated according to a schedule. In some arrangements, the updated mediation code is sent directly to the user device 104.

[0067] C. User interface implementation

[0068] Now refer to Figure 4, depicts a screen 400 of a user interface provided to a publisher to review recent content items according to an implementation. This screen allows a user associated with the publisher to review a list 404 of recent content items that have been displayed on a user device 104 along with the publisher's publisher content. A drop-down menu 402 allows the list to be sorted using different criteria. As shown, the list is sorted by date. Other options on the drop-down menu may include sorting by: the ID of the content item, the number of exposures of the displayed content item, the ID or descriptive identifier of the content network 108 that provides the content item, the category (or categories) associated with the content item after performing image analysis, the status of the user mark of the user device 104 that displayed the content item, and the like. The date can be displayed in more detail to include a timestamp. In some arrangements, additional information about the tagged content item can be provided, such as the number of times tagged, the number of unique user devices that tagged the content item, the frequency of the mark, and other statistical information associated with the mark of the content item. In some arrangements, other information about the demographic characteristics of the user of the user device 104 that tagged the content item may be available.

[0069] Now refer to Figure 5 , according to one implementation, depicts a screen 500 of a user interface provided to a publisher for setting rules and metrics for a content network 108. This screen allows a user associated with the publisher to set rules and metrics for a content network 108. For example, a drop-down menu 502 can be used to implement rules for a specific content item or content network 108. Drop-down menu 502 can be used to select an option to block a specific ID of a content network 108. Drop-down menu 504 can then be used to select from available IDs to block. Other available options in drop-down menu 502 can include the ID of a specific content item, the category of the content item, the category of the content network 108, and so on. In some arrangements, it may be possible to block a specific content item 108 without blocking the entire content. Metrics can also be set starting from drop-down menu 506. Various options are available for drop-down menu 506, including the content ID category of the content item, the category of the content network 108, the revenue of the content network 108, the click-through rate of the content network 108, the conversion rate of the content network 108, and so on. Once a selection is made in the drop-down menu 506, a selection of items available for selection is available under the drop-down menu 508. For example, if "Network" is selected under the drop-down menu 506, the drop-down menu 508 may be used to select a list of available content network IDs.

[0070] In this implementation, parameters for when metrics should be implemented to block content items or content network 108 are determined using drop-down menus 510, 512, and 514. Drop-down menu 510 allows selection of comparison options such as "more than," "less than," "equal to," and so on. Drop-down menu 512 allows selection of numerical values ​​such as percentages and / or numeric values, depending on the selection made in drop-down menu 510. Drop-down menu 514 allows selection of an element to be compared, such as a content item ID. Other options in drop-down menu 514 may include "content item exposure," "content item click-through rate," "revenue," and so on. Drop-down menu 516 allows selection of criteria for the element to be compared, such as "tagged" for content items provided by content network 108. Other options in drop-down menu 516 may include "classified as nudity," "provided by content network," and so on. Button 518 is provided for adding rules or metrics to the currently applied rules and metrics. More than one metric may be added to refine the filter. For example, a content network 108 may be blocked if more than 2% of the content items it provides are flagged, or it may be blocked if it begins to provide less than 5% of the total revenue among all available content networks 108. In some arrangements, the order in which the metrics have been added may determine the priority. For example, a content network 108 may be blocked if more than 5% of the content items it provides are flagged, but only if it also provides less than 20% of the total revenue.

[0071] In one example use case, a publisher offers a mobile game that includes in-app content items, such as third-party content that provides an interactive user interface based on user preferences or attributes associated with the user. The publisher notices reviews of the mobile game complaining that the third-party content displayed in the game is age-inappropriate. The publisher's agent logs in using the user interface and reviews images of content delivered to the mobile game, identifies which content items have been flagged in the mobile game, and blocks content networks 108 associated with the flagged content items. In a similar use case, no content items are flagged, but the publisher's agent audits all content items displayed within a certain timeframe and blocks content networks 108 that appear to be the source of negative reviews. In another example, instead of blocking specific content networks 108, the publisher determines that nudity in content items appears to be the primary source of flagged items and sets metrics to automatically block any content network 108 where image analysis of the content items determines that more than 5% of the content items served from that content network contain nudity or profanity. In some implementations, the content may be sponsored content and the content network may be a sponsored content network.

[0072] D. Network and computing environment

[0073] Figure 66 is a block diagram of a computer system 600 that can be used to implement publisher computing system 102, user device 104, intermediary computing system 106, content network 108, and / or any other computing device described herein. Computing system 600 includes a bus 605 or other communication component for communicating information, and a processor 605 or processing module coupled to bus 610 for processing information. Computing system 600 also includes a main memory 615, such as a RAM or other dynamic storage device, coupled to bus 605 for storing information and instructions to be executed by processor 610. Main memory 615 can also be used to store location information, temporary variables, or other intermediate information during execution of instructions by processor 610. Computing system 600 may also include a ROM 620 or other static storage device coupled to bus 605 for storing static information and instructions for processor 610. A storage device 625, such as a solid-state device, magnetic disk, or optical disk, is coupled to bus 605 for persistent storage of information and instructions. Computing system 600 may include, but is not limited to, digital computers such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, cellular phones, smartphones, mobile computing devices (e.g., notebooks, readers, etc.), and the like.

[0074] The computing system 600 may be coupled to a display 635, such as a liquid crystal display (LCD), a thin-film transistor (TFT), an organic light emitting diode (OLED), an LED, an electronic paper display, a plasma display panel (PDP), and / or other display, via bus 605, for displaying information to a user. An input device 630, such as a keyboard including alphanumeric and other keys, may be coupled to bus 605 for communicating information and command selections to the processor 610. In another implementation, the input device 630 may be integrated with the display 635, such as in a touch screen display. The input device 630 may include a cursor control, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 610 and for controlling cursor movement on the display 635.

[0075] According to various implementations, the processes and / or methods described herein may be implemented by the computing system 600 in response to the processor 610 executing an arrangement of instructions contained in the main memory 615. Such instructions may be read into the main memory 615 from another computer-readable medium (e.g., the storage device 625). Execution of the arrangement of instructions contained in the main memory 615 causes the computing system 600 to perform the illustrative process and / or method steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in the main memory 615. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement the illustrative implementations. Thus, the implementations are not limited to any specific combination of hardware circuitry and software.

[0076] The computing system 600 also includes a communication module 640 that can be coupled to the bus 605 for providing a communication link between the system 600 and the network 110. In this way, the communication module 640 enables the processor 610 to communicate, either wired or wirelessly, with other electronic systems coupled to the network 110. For example, the communication module 640 can be coupled to an Ethernet line that connects the system 600 to the Internet or another network 110. In other implementations, the communication module 640 can be coupled to an antenna (not shown) and provide functionality for sending and receiving information with the network 110 through a wireless communication interface.

[0077] In various implementations, the communication module 640 may include one or more transceivers configured to perform data communications according to one or more communication protocols, such as, but not limited to, WLAN protocols (e.g., IEEE 802.11a / b / g / n / ac / ad, IEEE 802.16, IEEE802.20, etc.), PAN protocols, low-rate wireless PAN protocols (e.g., ZIGBEE, IEEE802.15.4-2003), infrared protocols, Bluetooth protocols, EMI protocols including passive or active RFID protocols, and the like.

[0078] The communication module 640 may include one or more transceivers configured to communicate using different types of communication protocols, communication ranges, operating power requirements, RF sub-bands, information types (e.g., voice or data), usage scenarios, applications, etc. In various implementations, the communication module 640 may include one or more transceivers configured to support communication with local devices using any number or combination of communication standards. In various implementations, the communication module 640 may also exchange voice and data signals with devices using any number of standard communication protocols.

[0079] Although Figure 6An example computing system 600 has been described in the specification, but the subject matter and implementation of the functional operations described in this specification may be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware—including the structures disclosed in this specification and their structural equivalents—or in a combination of one or more of them.

[0080] The subject matter and implementation of the operations described in this specification can be implemented using digital electronic circuitry, or using computer software, firmware, or hardware embodied on a non-transitory tangible medium, including the structures disclosed in this specification and their structural equivalents, or using a combination of one or more of these. The subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage media for execution by a data processing apparatus or to control the operation of the data processing apparatus. Alternatively or in addition, the program instructions can be encoded on a machine-generated propagated signal, such as a machine-generated electrical, optical, or electromagnetic signal, which is generated to encode information for transmission to an appropriate receiving device for execution by the data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of these. In addition, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium may also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Thus, the computer storage medium is both tangible and non-transitory.

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

[0082] The term "data processing apparatus" or "computing device" or "processing module" encompasses all kinds of apparatus, equipment, and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or a plurality of these, a portion of a programmable processor, or a combination of these. The apparatus may include dedicated logic circuitry, such as an FPGA or an ASIC. In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program of interest, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0083] A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program of interest, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or code portions). A computer program can be deployed to execute on one or more computers that are located in one location or distributed across multiple locations and interconnected by a communication network.

[0084] Processors suitable for executing computer programs include, for example, general-purpose and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Typically, a processor will receive instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices, or be operatively coupled to one or more mass storage devices for receiving data from or transferring data to them, or both include and be operatively coupled to one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks. However, a computer need not necessarily have such devices. Furthermore, a computer may be embedded in another device, such as, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and storage devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROMs and DVDs. The processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0085] To provide interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD monitor, for displaying information to the user, and a keyboard and pointing device, such as a mouse or trackball, that the user can use to provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including sound, voice, or tactile input.

[0086] Although this specification contains many specific implementation details, these details should not be interpreted as limitations on the scope of what may be claimed, but rather as descriptions of features that are unique to a particular implementation. Certain features described in this specification in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented in multiple implementations separately or in any appropriate subcombination. In addition, although features may be described above as acting in certain combinations, or even as initially claimed, one or more features from a claimed combination may in some cases be deleted from that combination, and a claimed combination may refer to a subcombination or a variant of a subcombination.

[0087] Similarly, although operations are depicted in a particular order in the accompanying drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in a sequential order, or that all illustrated operations be performed, in order to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may generally be integrated into a single software product or packaged into multiple software products embodied on tangible media.

[0088] References to "or" may be construed as inclusive such that any term described with "or" may refer to any one of a single, more than one, and all of the described terms.

[0089] Thus, specific implementations of the subject matter have been described. Other implementations are within the scope of the appended claims. In some cases, the actions recited in the claims can be performed in a different order while still achieving the desired results. Furthermore, the processes depicted in the accompanying figures do not necessarily require the particular order or sequential sequence shown to achieve the desired results. In certain implementations, multitasking and parallel processing may be advantageous.

[0090] The claims should not be construed as limited to the described order or elements unless so stated. It should be understood that various changes in form and details may be made by one skilled in the art without departing from the spirit and scope of the appended claims. Protection is sought for all implementations that fall within the spirit and scope of the appended claims and their equivalents.

Claims

1. A method for facilitating content intermediary selection, comprising: receiving, by a user device including a memory and one or more processors, content from a publisher server, the content including intermediary code, the intermediary code including instructions executable by the one or more processors of the user device; executing, by the user device, instructions included in the intermediary code in response to displaying the content received from the publisher server; determining, by the user device through execution of the intermediary code, a content network from which to request the content item, the content network being associated with the content network identifier; Sending, by the user device through execution of the intermediary code, a request for the content item from the content network; receiving, by the user device, from the content network by executing the intermediary code, a content item requested from the content network; capturing, by the user device, an image of the content item by executing the intermediary code; as well as The user device executes the mediation code to send the image of the content item and the content network identifier to the content mediation platform server.

2. The method according to claim 1, wherein Receiving the content from the publisher server further includes receiving a document based on at least one of XHMTL or HMTL, and wherein the mediation code is embedded in the received document.

3. The method according to claim 1, wherein Instructions included in the intermediary code are executed in response to a request sent from the user device.

4. The method according to claim 1, wherein Identify the content network as also including: Accessing, by a user device through execution of intermediary code, a list or table comprising a collection of content networks; and A content network from the set of content networks is selected from the list or table by the user device through execution of the intermediary code.

5. The method according to claim 4, wherein Identify the content network as also including: determining, by the user device through execution of the intermediary code, that the user device has failed to receive the requested content item from a first content network of the set of content networks; and A second content network is selected from the set of content networks by the user device through execution of the intermediary code.

6. The method according to claim 1, wherein Receiving the content item requested from the content network also includes: determining, by the user device through execution of the intermediary code, that a content item received from the content network satisfies a rejection criterion; sending, by the user device through execution of the intermediary code, a second request for a second content item from the content network; and A second content item is received by the user device from the content network by executing the intermediary code.

7. The method according to claim 1, wherein Receiving the content item requested from the content network also includes: An image of the content item is received by a user device through execution of the intermediary code.

8. The method according to claim 1, wherein Capturing an image of a content item received from a content network also includes: While the user device is displaying the content item, a screenshot of the display of the user device is captured by the user device by executing the intermediary code.

9. The method according to claim 7, wherein: Capturing an image of a content item received from a content network also includes: Sampling, by the user device, a screenshot of a display of the user device by executing intermediary code to identify a portion of the screenshot; and A portion of the screenshot is stored as an image of the content item by the user device through execution of the intermediary code.

10. The method according to claim 1, wherein Sending the image and content network identifier of the content item to the content mediation platform server also includes: determining, by the user device executing the intermediary code, when to send the captured image based on processor activity of the user device being below a threshold; and An image of the content item and a content network identifier are sent by the user device at a determined time.

11. A system for content intermediary selection, comprising: One or more processors and memory, the one or more processors configured to: receiving content from a publisher server, the content including intermediary code, the intermediary code including instructions executable by one or more processors of a user device; executing instructions included in the intermediary code in response to displaying content received from the publisher server; determining, by executing the intermediary code, a content network from which to request the content item, the content network being associated with the content network identifier; sending a request for a content item from a content network by executing the intermediary code; receiving, from the content network, a content item requested from the content network by executing the intermediary code; capturing an image of the content item by executing intermediary code; as well as The image of the content item and the content network identifier are sent to the content mediation platform server by executing the mediation code.

12. The system according to claim 11, wherein Upon receiving the content from the publisher server, the one or more processors are further configured to: A document is received based on at least one of XHMTL or HMTL, and wherein the mediating code is embedded in the received document.

13. The system according to claim 11, wherein: The one or more processors are further configured to: Instructions included in the intermediary code are executed in response to a request sent from the user device.

14. The system according to claim 11, wherein: The one or more processors are further configured to: Accessing a list or table comprising a collection of content networks by executing intermediary code; and A content network from a collection of content networks is selected from a list or table by executing intermediary code.

15. The system according to claim 11, wherein The one or more processors are further configured to: determining, by executing the intermediary code, that the user device has failed to receive the requested content item from a first content network of the set of content networks; as well as A second content network is selected from the set of content networks by executing the intermediary code.

16. The system according to claim 11, wherein The one or more processors are further configured to: determining, by executing the intermediary code, that a content item received from the content network satisfies rejection criteria; sending, by executing the intermediary code, a second request for a second content item from the content network; as well as A second content item is received from the content network by executing the intermediary code.

17. The system according to claim 11, wherein: Upon receiving a content item requested from a content network, the one or more processors are further configured to: An image of the content item is received by executing intermediary code.

18. The system according to claim 11, wherein When capturing an image of a content item received from a content network, the one or more processors are further configured to: While the user device is displaying the content item, a screenshot of the display of the user device is captured by executing the intermediary code.

19. The system according to claim 11, wherein: The one or more processors are further configured to: sampling a screenshot of a display of a user device by executing intermediary code to identify a portion of the screenshot; as well as Stores a portion of the screenshot as an image for the content item by executing intermediary code.

20. The system of claim 11, wherein: The one or more processors are further configured to: determining, by executing intermediary code, when to send the captured image based on processor activity of the user device being below a threshold; and An image of the content item and a content network identifier are sent at a determined time.

Citation Information

Patent Citations

  • System for providing an interface for collaborative innovation

    CN101515282A

  • System and method of providing content including information derived from social network

    CN104823212A