US20210097045A1 - Object identifier index - Google Patents
Object identifier index Download PDFInfo
- Publication number
- US20210097045A1 US20210097045A1 US17/117,976 US202017117976A US2021097045A1 US 20210097045 A1 US20210097045 A1 US 20210097045A1 US 202017117976 A US202017117976 A US 202017117976A US 2021097045 A1 US2021097045 A1 US 2021097045A1
- Authority
- US
- United States
- Prior art keywords
- entry
- index
- content
- identifier
- client device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013507 mapping Methods 0.000 claims abstract description 77
- 238000013515 script Methods 0.000 claims abstract description 77
- 238000000034 method Methods 0.000 claims description 18
- 230000003068 static effect Effects 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims 2
- 238000012545 processing Methods 0.000 abstract description 28
- 230000015654 memory Effects 0.000 description 34
- 238000011156 evaluation Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 239000000047 product Substances 0.000 description 15
- 230000006855 networking Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 235000014510 cooky Nutrition 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
- G06Q30/0629—Directed, with specific intent or strategy for generating comparisons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
Definitions
- This disclosure relates generally generating an index of object identifiers in a networked computing system.
- the Internet provides access to a wide variety of resources. For example, content providers serve video, audio, and Web pages over the Internet. Content providers determine what content that users are interested in and provide targeted content to those users.
- the data processing system described herein provides several advantages.
- the data processing system generates an object identifier index that enables targeted digital content to be served to a client device.
- the object identifier index enables digital content to be served, the digital content relating to the object(s) in which a user of a client device has indicated an interest (e.g., by selecting content related to the object(s)).
- the data processing system uses the object identifier index to determine the object to interest for the user of the client device by using a static script tag embedded in digital content (e.g., a web page) served by the content provider (e.g., a publisher).
- the static script tag is simpler and less prone to causing errors than a dynamic script tag, which requires customized configuration and ongoing support for each individual content provider.
- the object identifier index of the data processing system enables faster lookup times for retrieving identifiers of objects of interest of the user of a client device, relative to lookup times for retrieving identifiers of objects using a non-indexed object identifier list.
- the data processing system builds the object identifier index in advance of client device requests for data from content providers. The content provider does not need to send an additional request for data (e.g., cached data in a browser application) from the client device.
- the content provider executes the script tag and determines the identity of the client device and which objects a user associated with the device has shown interest in (e.g., selected, viewed, etc.).
- the content provider sends this data to an evaluation platform (e.g., an ad exchange), which then uses the object identifier index to determine which objects are of interest to the user.
- the evaluation platform determines which targeted digital content items to provide to the content provider that the content provider serves along with other content (e.g., web page data).
- the evaluation platform does not need to send additional requests for data from the client device, reducing bandwidth usage in the networked computer environment, relative to bandwidth usage of a system that does not gather object identifier information when content is requested by the client device.
- This document describes a network interface system that receives script data specifying a network address and a content title of digital content accessible at the network address, where the network address comprises domain data; a data retrieval interface that retrieves, based on the domain data of the network address, executable logic for parsing the network address; a parsing engine that executes the executable logic to extract, from the network address, an identifier of an object that is referenced by the digital content accessible at the network address; a search engine that searches an index to identify a first entry with indexed data representing a descriptor of the object for which the identifier is extracted; and a mapping engine that generates, in the index, a second entry with data representing the content title of the digital content accessible at the network address and with data representing the identifier of the object that is referenced by the digital content accessible at the network address and that generates, in the index, a mapping between the first entry and the second entry.
- the descriptor includes an object title that describes a product represented by the descriptor.
- the second entry includes two sub entries that are linked together.
- the network interface receives the script data in response to execution of logic embedded in the digital content accessible at the network address.
- the logic embedded in the digital content at the network address is embedded in a static script tag of the digital content at the network address.
- the mapping engine matches the identifier of the object to a stored object title based on the mapping of the first entry to the second entry in the index.
- the index enables a retrieval of a content item representing the object with a reduced latency relative to a latency caused by retrieval of the content item representing the object independent of the index.
- the parsing engine analyses a plurality of network addresses of a domain specified by the domain data and compares each of the plurality of the network address to other network addresses of the plurality to determine an additional one or more rules for the domain specified by the domain data.
- the mapping engine determines that stored object titles are related based on comparing identifiers each mapped to a respective stored object title of the stored object titles.
- the identifier comprises a product identifier, and where the object comprises a product.
- the content title is a first content title, and where a second content title is not unique from the first content title, and where upon detection of non-unique second content title, the mapping engine removes, from the index, the first entry including the first content title and an additional entry including the second content title.
- the mapping engine maps the first entry and the second entry using a lookup table.
- one or more processing devices are configured to perform operations including receiving script data specifying a network address and a content title of digital content accessible at the network address, where the network address comprises domain data; retrieving, based on the domain data of the network address, executable logic for parsing the network address; executing the executable logic to extract, from the network address, an identifier of an object that is referenced by the digital content accessible at the network address; searching an index to identify a first entry with indexed data representing a descriptor of the object for which the identifier is extracted; and generating, in the index, a second entry with data representing the content title of the digital content accessible at the network address and with data representing the identifier of the object that is referenced by the digital content accessible at the network address and that generates, in the index, a mapping between the first entry and the second entry.
- the descriptor includes an object title that describes a product represented by the descriptor.
- the script data is received in response to execution of logic embedded in the digital content accessible at the network address.
- the logic embedded in the digital content at the network address is embedded in a static script tag of the digital content at the network address.
- the operations include matching the identifier of the object to a stored object title based on the mapping of the first entry to the second entry in the index.
- the index enables a retrieval of a content item representing the object with a reduced latency relative to a latency caused by retrieval of the content item representing the object independent of the index.
- the operations include analyzing a plurality of network addresses of a domain specified by the domain data and compares each of the plurality of the network address to other network addresses of the plurality to determine an additional one or more rules for the domain specified by the domain data.
- a non-transitory computer readable medium stores instructions operable to cause one or more processing devices to perform operations including receiving script data specifying a network address and a content title of digital content accessible at the network address, where the network address comprises domain data; retrieving, based on the domain data of the network address, executable logic for parsing the network address; executing the executable logic to extract, from the network address, an identifier of an object that is referenced by the digital content accessible at the network address; searching an index to identify a first entry with indexed data representing a descriptor of the object for which the identifier is extracted; and generating, in the index, a second entry with data representing the content title of the digital content accessible at the network address and with data representing the identifier of the object that is referenced by the digital content accessible at the network address and that generates, in the index, a mapping between the first entry and the second entry.
- FIG. 1 is a diagram of a data processing system that accesses an object identifier index.
- FIG. 2 shows representative user interfaces.
- FIG. 3 is a flow diagram showing actions for generating an object identifier index.
- FIG. 4 is a block diagram of components of a system for logical segmentation data processing.
- a data processing system 100 includes content provider system 170 , and client device 180 .
- the data processing system 100 includes networking interface system 110 , data repository 120 , mapping engine system 130 , and evaluation platform system 160 .
- the mapping engine system 130 generates an object identifier index 150 for associating a client device 180 with one or more objects that have been identified as of interest to a user of the client device 180 .
- the object identifier index 150 includes entries that form columns and rows in the object identifier index 150 . Each column includes a plurality of entries that have a similar type of data.
- the object identifier index 150 includes an object identifier column 150 a , content title column 150 b , object title column 150 c , and client device identifier list column 150 d.
- the object identifier index 150 includes rows.
- the rows include entries that are related to one another.
- row 150 g includes entries 150 h - k .
- Entry 150 h includes data 150 w representing object identifier 02212 (hereinafter, referred to as object identifier 150 w ).
- the object identifier 150 w includes a unique code that distinguishes the object from other objects and that can be used by computing systems as a reference for the object.
- Entry 150 i includes data 150 x representing content title “Store/Clothes/Polos/Green” (hereinafter, referred to as content title 150 w ).
- the content title 150 w includes a title (e.g., a webpage title) of the website in which the object is being referenced, and the website includes content 175 that is published or displayed to the user on the client device 180 .
- Entry 150 j includes data 150 y representing object title “Green Polo Large” (hereinafter, referred to as object title 150 y ).
- the object title includes a descriptor of the object that distinguishes the object from other objects.
- Entry 150 k includes data 150 z representing a list of client devices associated with the object identifier (hereinafter, referred to as list 150 z ).
- the client device identifiers include references to the devices of the users.
- the entries 150 h - k and data 150 w - z are examples for illustrating the behavior of the object identifier index 150 .
- a user of the client device 180 browses content (e.g., websites) hosted by the content provider system 170 over a network.
- Websites include one or more resources hosted by one or more servers of the content provider system 170 .
- An example website is a collection of webpages formatted in hypertext markup language (HTML) that includes text, images, multimedia content, and programming elements, such as scripts.
- HTML hypertext markup language
- Each website is maintained by a content provider (e.g., a publisher), which may be an entity that controls, manages and/or owns the website.
- the data processing system 100 may be hosted by one or more of the servers that host websites (and may be part of the resources provided by websites).
- the data processing system 100 may be part of another system.
- the data processing system 100 may be distributed among various hardware elements shown in the network of FIG. 1 .
- the content provider system 170 sends content 175 to the client device 180 .
- the content 175 includes data that is provided over a network from a content provider system 170 .
- the content 175 is identified by a content identifier (e.g., network address, portion of a network address, etc.) that is associated with the content.
- the content 175 includes one or more of HTML, pages, word processing documents, portable document format (PDF) documents, images, video, and news feed sources, etc.
- PDF portable document format
- the content 175 includes one or more of words, phrases, images and sounds.
- the content 175 includes embedded information (such as meta-information hyperlinks) and/or embedded instructions, such as a script tag.
- networking interface system includes scripts tags 140 - 145 .
- the script tag 140 includes one or more of executable scripts, code snippets, etc.
- Examples of the content 175 also include information about keywords, online video, electronic commerce, or any other subject for which a graphic is generated.
- the content 175 can include references to one or more objects, such as object A, object B, or object C, as shown in FIG. 1 .
- a digital content item 165 associated with an object may be provided to client devices (such as the client device 180 ) based on the content 175 that was previously accessed by the client device 180 .
- the digital content item 165 is an advertisement.
- the mapping engine system 130 infers an interest, by a user, in an object (e.g., objects A, B, and/or C) referenced by the content 175 .
- the mapping engine system 130 classifies the client device 180 of the user into one or more audience segments (e.g., lists of client devices associated with the respective objects A, B, and/or C).
- the client device 180 requests the content 175 including data related to object A (e.g., a webpage for purchasing object A).
- the mapping engine system 130 classifies the client device 180 into an audience segment that represents users interested in object A.
- the mapping engine system 130 upon classifying the user into the audience segment, stores cookie data 185 on the client device 180 .
- the cookie data 185 includes data indicating that the user has an interest in the object.
- the cookie data 185 (and thus inference of interest in the object) is set based on the user's membership in the audience segment.
- the script tag 140 (or one of script tags 141 - 145 ) causes the content provider system 170 to execute a script that associates the client device 180 with the content 175 being accessed by the client device 180 .
- the script tag 140 sets the cookie data 185 for the client device 180 .
- the script tag 140 causes the content provider system 170 to send data to the networking interface system 110 for adding data representing the client device 180 to the audience segment associated with the object represented in the content 175 accessed by the client device 180 .
- the mapping engine system 130 generates, for each object, a client device identifier list 150 z of client devices that have some association with the object based on accessing content representing the object.
- the mapping engine system 130 analyzes other data sent by the content provider system 170 after execution of the script tag 140 .
- the content provider system 170 sends, to the networking interface system 110 of the data processing system 100 , data including the content title 150 x (e.g., a webpage title as specified by HTML, fields) of the content 175 in which the script tag 140 is embedded.
- the content provider system 170 sends, to the networking interface system 110 , a content identifier (e.g., webpage identifier including a uniform resource locator (URL)).
- the content provider system 170 sends, to the networking interface system 110 , the client device identifier, such as described above.
- the script tag 140 (and script tags 141 - 145 ) show representative data that is sent to the networking interface system 110 when the script tag 140 (or script tags 145 ) is executed.
- the script tag 140 is a static script tag because it does not require custom input values to be encoded in the script that dynamically request data from the content provider system 180 when the script is executed.
- the script tag 140 does not need to be customized for a particular content provider system 170 or content provider webpage.
- script tag 140 is implemented for many different content provider systems that are each different from one another without changing one or more parameters of the script tag 140 code.
- a dynamic script tag requires one or more unique values to be input into fields of the script tag code that varies between different content provider systems.
- a content provider system 170 to implement a dynamic tag, customizes one or more fields of the dynamic tag for different webpages of the content provider system. If an operator of the content provider system 170 makes a mistake, the dynamic script tag returns inaccurate data or does not return data.
- the script tag 140 is a static script tag, and can be implemented uniformly and automatically across many different content provider systems. Since implementation of the script tag 140 is simpler than a dynamic script tag implementation, the implementation is less error prone and reliably sends data for mapping into the object identifier index.
- the script tag 140 does not explicitly cause the content provider system 170 to return an object identifier for an object represented in the content (e.g., webpage) of the content provider system 170 because doing so includes script tag customization for each content provider system, which is labor intensive and error-prone, as described above.
- the mapping engine system 130 determines the identification of an object represented by the content of a content provider system 170 , when the content is accessed by the client device 180 .
- the mapping engine system 130 determines the object identifier of the object based on the data provided by the script tag 140 .
- the mapping engine system 130 analyzes the content title 150 x and the content identifier provided by the script tag 140 to the networking interface system 110 .
- mapping engine system 130 uses a set of rules to determine the object identifier 150 w (e.g., product identifier) for associating with the client device 180 in a client identifier list 150 z in the object identifier index 150 .
- the content title 150 x includes a webpage title of the HTML, of the webpage in which the object is being represented.
- the mapping engine system 130 performs a semantic analysis on a content title (e.g., content title 150 x specified by an entry in content title column 150 b ) to determine the object identifier 150 w .
- the mapping engine system 130 compares the content title 150 x to an object title 150 y in an object feed (e.g., a library of objects registered in the repository 120 ).
- an object feed e.g., a library of objects registered in the repository 120 .
- one or more terms of the object title 150 y can be present in the website title, such as brand name, a product name, a version number, a product number, etc.
- the semantic analysis is a part of a machine learning system, such as a deep learning or neural network that includes one or more classifiers.
- the mapping engine system 130 uses one or more rules to increase the quality of the object identifier index 150 . For example, if a content title 150 x is matched to more than two objects, the content title is discarded as generic, rather than being indicative of a particular object.
- the mapping engine system 130 removes, from the index, content titles (such as content title 150 x ) that are associated with more than two or three object identifiers because it is less likely that the mapping engine system 130 determines for which object of the more than two or three identifiers there is interest of the user. For example, if one or more objects are no longer represented by a content provider system 180 , the content provider system redirects the client device to a second webpage.
- the second webpage can be a homepage, a “sold out” page, etc. The second webpage can thus be incorrectly associated with many objects if the mapping engine system 130 does not remove generic content titles from the object identifier index 150 .
- the mapping engine system 130 groups similar content titles into groups.
- the groups are associated with a class of objects, and when a user is interested in an object of the class of objects, content associated with any object of the group is sent to the client device 180 of the user.
- a class of objects includes objects having the same product number except for a change in size, color, type, etc.
- a group identifier is used to associate the object identifier 150 w to the client device 180 .
- the objects in the class include a portion of the object identifier 150 w that is identical to other object identifiers of the class, such as a product number or category designation.
- the mapping engine system 130 uses the group identifier to ensure that similar object titles of column 150 c and content titles of column 150 b are not mistakenly classified as generic.
- the mapping engine system 130 parses the HTML code (or other webpage or content code used to render the content) and uses patterns of the code to determine object identifiers to associate with the client device 180 .
- the webpage title and the object title 150 y are similar for many webpages and the objects they represent.
- the mapping engine system 130 uses an edit distance between the object title 150 y and the content title 150 x to further increase the accuracy of the object identifier index 150 . For example, if the edit distance is greater than a threshold value, the mapping engine system 130 assumes that the object title 150 y and the content title 150 x are not necessarily semantically linked.
- content titles of column 150 b are truncated to a particular length, such as 256 bytes.
- the mapping engine system 130 includes a search engine.
- the search engine searches the object identifier index 150 to identify the entry (e.g., entry 150 j ) with indexed data representing the object title (e.g., 150 y ) of the object for which the content title 150 x matches.
- the mapping system 130 then maps another entry (e.g., entry 150 i ) including the content title 150 x to the entry 150 j including the object title 150 y .
- the client device identifier that was received from the content provider system 170 is also included in an entry (e.g., entry 150 k ) that is mapped to the entry 150 j including the object title 150 y.
- the mapping engine system 130 uses a content identifier (e.g., the webpage URL, network address, etc.) to determine the object identifier 150 w of the object represented in the content.
- the content identifier is parsed to determine whether the object identifier 150 w is included in the content identifier.
- the mapping engine system 130 determines, based on the data received from the content provider system 170 , a domain of the content provider system.
- the domain of the content provider system 170 is indicative of a format of the content identifier, such as where the object identifier 150 w is located in the content identifier for product pages of the domain. For example, a domain includes many webpages, each with similar network addresses that might vary with sequential numbering.
- the mapping engine system 130 includes a data retrieval interface.
- the data retrieval interface retrieves, based on the domain data of the content identifier, executable logic for parsing the content identifier, the executable logic including a rule set.
- the data retrieval interface retrieves
- the mapping engine system 130 includes a parsing engine.
- the parsing engine executes the executable logic (e.g., the rule set) to extract, from the content identifier, an object identifier (e.g., object identifier 150 w ) of an object that is referenced by the content 175 accessible at the network address specified by the content identifier.
- an object identifier e.g., object identifier 150 w
- the mapping engine system 130 develops the rule set for parsing the content identifiers using machine learning (deep learning, neural networks, etc.). In some implementations, the mapping engine system 130 analyzes the content identifiers of an entire domain or multiple domains together for determining a pattern in the content identifiers. The pattern is indicative of an object identifier 150 w that is in the content identifier. For example, a pattern for a domain might indicate that the object identifier 150 w is in each content identifier for the domain as the last path component of URLs for each webpage of the domain.
- the mapping engine system 130 stores one or more of the object identifier, the content title 150 x , the object title 150 y , and the client device identifier(s) list 150 z that have been found to be related to one another in entries in the object identifier index 150 .
- the search engine searches the object identifier index 150 to identify the entry (e.g., entry 150 j ) with indexed data representing the object title (e.g., 150 y ) of the object for which the identifier is extracted.
- the mapping system 130 then maps another entry (e.g., entry 150 h ) including the object identifier (e.g., object identifier 150 w ) to the entry 150 j including the object title 150 y . Since the object title entry 150 j is mapped to the client device entry 150 k and the content title entry 150 i , the object identifier entry 150 h is also mapped to the client device identifier entry 150 k.
- entry 150 h including the object identifier (e.g., object identifier 150 w ) to the entry 150 j including the object title 150 y . Since the object title entry 150 j is mapped to the client device entry 150 k and the content title entry 150 i , the object identifier entry 150 h is also mapped to the client device identifier entry 150 k.
- the evaluation platform system 160 uses the object identifier index 150 to determine which digital content item 165 (e.g., product ad) should be sent to the content provider system 170 for presenting with the content of the content provider system. For example, when a client device identifier of the list 150 z and the object identifier 150 w are in an entry of the object identifier index 150 , the evaluation platform system 160 marks a digital content item 165 for the object as eligible to be selected for presentation along with the content of the content provider system 170 .
- the eligible content items list 190 includes the list of digital content items representing objects (e.g., products) that are of interest to the user of the client device 180 .
- the eligible content items list 190 is sent to the evaluation platform system 160 as a “pool” of digital content items from which a digital content item 165 can be selected for serving to the client device 180 along with the content 175 that is being requested.
- Data repository 120 stores the object identifier index 150 .
- the repository 120 is a part of the data processing system 100 .
- the repository 120 is accessible by one or more of the mapping engine system 130 , the evaluation platform system 160 , and the networking interface system 110 for generating the object identifier index 150 .
- the evaluation platform 160 which serves digital content item 165 , receives a request from the website for a digital content item 165 (e.g., an ad) relating to the object in which the client device 180 has matched an object identifier 150 w .
- the evaluation platform system 160 provides appropriate content to the content provider system 170 which, in turn, incorporates that digital content item 165 into the content of the webpage, and outputs the content to the user, along with the remainder of the webpage content.
- the content 175 and the digital content item 165 are displayed on a computing device, such as the client device 180 . In some implementations, when displayed, the digital content item 165 is incorporated into an appropriate slot.
- the user of the client device 180 may select the ad by clicking-on the ad.
- a hyperlink associated with the ad directs the user to another webpage.
- the webpage to which the user is directed may be the home page for ABC Product Store.
- This type of content access is known as click-through.
- a “click” is not limited to a mouse click, but rather may include a touch, a programmatic selection, or any other interaction by which the digital content item 165 may be selected.
- the evaluation platform system 160 runs a content evaluation (e.g., an auction) to determine which digital content item 165 is to be output in response to receipt the one or more client device identifier lists (such as list 150 z ) and mapped object identifiers (such as object identifier 150 w ).
- providers of digital content items submit eligibility values on specific keywords (which are associated with content).
- the evaluation platform system 160 determines the list of eligible digital content items for a client device 180 based on which object identifiers specified in object identifier row 150 a represent the client device 180 . This ensures that the evaluation platform system 160 returns, for presentation, a digital content item 165 for an object for which the user of the client device has expressed interest (e.g., by visiting a webpage hosting content related to the object).
- the content provider system 170 provides notice to the evaluation platform system 160 .
- the data processing system 100 removes the client device identifier of the list 150 z from the corresponding audience segment by removing the mapping of the client device identifier to the object identifier 150 w .
- the evaluation platform system 160 removes the cookie data 185 from the browser of the client device 180 that indicates that the user has an interest in that object.
- the client device 180 stores other, different cookie data indicating that the client device has made a conversion (e.g., purchased the object of the object identifier 150 w ). This additional cookie data is readable by subsequently-visited content provider systems. As a result, those content provider systems know not to send instructions to the networking interface system 110 to place the user into an audience segment corresponding to the subject matter.
- the networking interface system 110 communicates with the content provider system 170 and the client device 180 using a network (not shown).
- the network includes one or more sub-networks.
- the network(s) provide for communications under various modes or protocols, such as Global System for Mobile communication (GSM) voice calls, Short Message Service (SMS), Enhanced Messaging Service (EMS), or Multimedia Messaging Service (MMS) messaging, Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Personal Digital Cellular (PDC), Wideband Code Division Multiple Access (WCDMA), CDMA2000, General Packet Radio System (GPRS), or one or more television or cable networks, among others.
- GSM Global System for Mobile communication
- SMS Short Message Service
- EMS Enhanced Messaging Service
- MMS Multimedia Messaging Service
- CDMA Code Division Multiple Access
- TDMA Time Division Multiple Access
- PDC Personal Digital Cellular
- WCDMA Wideband Code Division Multiple Access
- CDMA2000 General Packet Radio System
- GPRS General Packet Radio System
- An example client device 180 is an electronic device that is under control of a user and that is capable of requesting and receiving resources over the network.
- a client device 180 can include one or more processing devices, and can be, or include, a mobile telephone (e.g., a smartphone), a laptop computer, a handheld computer, an interactive or so-called “smart” television or set-top box, a tablet computer, a network appliance, a camera, an enhanced general packet radio service (EGPRS) mobile phone, a media player, a navigation device, an email device, a game console, or a combination of any two or more of these data processing devices or other data processing devices.
- a mobile telephone e.g., a smartphone
- a laptop computer e.g., a laptop computer, a handheld computer, an interactive or so-called “smart” television or set-top box, a tablet computer, a network appliance, a camera, an enhanced general packet radio service (EGPRS) mobile phone, a media player, a navigation device,
- the client device 180 includes/stores one or more user applications, such as a browser, to facilitate the sending and receiving of data over network.
- the client device 180 is mobile (“mobile device”), such as a smartphone or a table computer, and can include an application (“app”) that allows the user to conduct a network (e.g., web) search.
- mobile device such as a smartphone or a table computer
- app an application that allows the user to conduct a network (e.g., web) search.
- the evaluation platform system 160 receives a request for one or more digital content item 165 to be provided with the content 175 .
- the request for the digital content items 165 includes characteristics of one or more “slots” that are defined for the content 175 that is requested.
- data representing the content 175 can include data specifying a portion of content 175 or a portion of a user display, such as a presentation location of a pop-up window or a slot of a third-party content site or webpage, in which the content 175 can be presented.
- Search results pages can also include one or more slots in which the digital content item 165 is presented for the client device 180 .
- the content provider system 170 provides data about slots to the evaluation platform system 160 .
- the content provider system 170 a provides data including a content identifier (e.g., URL) of the content 175 for which the slot is defined, a size of the slot, and/or media types that are available for presentation in the slot, to the network interface system 110 .
- object titles (such as object title 150 y ) and eligible content items list 190 associated with requested content 175 are also provided to the evaluation platform system 160 to facilitate identification of content that is relevant to the client device 180 .
- eligible digital content items include content items associated with one or more of the objects included in the object identifiers (such as object identifier 150 w ) mapped to the client device identifier of the list 150 z.
- a diagram 200 shows representative graphical user interfaces (GUIs) of webpages 202 , 220 and example script tag data 210 , 214 .
- Webpage 202 shows a first example of script tag data 210 being extracted from content of a content provider system.
- a mapping engine system can parse the webpage identifier 226 and the webpage HTML (or other code for assembling the webpage content) to determine the object identifier.
- the webpage title is “Greed Med. Polo,” as indicated by the script tag data 210 .
- the webpage identifier 226 is also included in the script tag data 210 .
- the mapping engine system parses the content 230 of the website 202 and the digital content items 224 , 228 and performs a semantic analysis, as described above, to determine the object title.
- the content items 224 , 228 and content 230 indicate that the object represented on the webpage is a green polo shirt of medium size.
- the mapping engine system determines that the object title is a “green polo shirt.”
- the object is identified in an object feed and added to the object identifier index, if not already present.
- Webpage 220 shows a second example of script tag data 214 being extracted from content of a content provider system.
- a mapping engine system can parse the webpage identifier 234 and the webpage HTML (or other code for assembling the webpage content) to determine the object identifier.
- the webpage title is “Greed Med. Polo,” as indicated by the script tag data 214 .
- the webpage identifier 264 is also included in the script tag data 214 .
- the mapping engine system parses the content 230 of the website 220 and the digital content items 232 , 228 and performs a semantic analysis, as described above, to determine the object title.
- the content items 232 , 228 and content 230 indicate that the object represented on the webpage is a red polo shirt of medium size.
- the mapping engine system determines that the object title is a “red polo shirt.”
- the object is identified in an object feed and added to the object identifier index, if not already present.
- the mapping engine system identifies that the webpages 202 and 220 have the same domain, and are from the same content provider system.
- the mapping engine system identifies the object identifiers as “02211” for a “green polo shirt” and “02213” for a “red polo shirt,” the object titles identified previously.
- the mapping engine system maps the object titles, accessing device identifier retrieved from cookie data, and determined object identifiers into entries of the object identifier index.
- digital content items representing objects “green polo shirt” and “red polo shirt” are tagged as eligible digital content items for the evaluation platform system evaluation process.
- FIG. 3 is a flow diagram showing actions for generating an object identifier index.
- a data processing system receives ( 302 ) script data including a network address and content titles of content of the network address.
- the data processing system retrieves ( 304 ), based on the domain data of the network address, one or more rules for parsing the network address.
- the data processing system extracts ( 306 ), from the network address according to the one or more rules, an identifier that represents an object that is referenced in the content stored at the network address.
- the data processing system maps ( 308 ) the content title of the content of the network address to the stored object title representing the object.
- FIG. 4 shows example computing devices 400 , 450 that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers.
- Computing device 400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
- Computing device 450 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices.
- computing device 400 or 450 can include Universal Serial Bus (USB) flash drives.
- USB flash drives may store operating systems and other applications.
- the USB flash drives can include input/output components, such as a wireless transmitter or USB connector that may be inserted into a USB port of another computing device.
- the components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
- Computing device 400 includes a processor 402 , memory 404 , a storage device 406 , a high-speed interface 408 connecting to memory 404 and high-speed expansion ports 410 , and a low speed interface 412 connecting to low speed bus 414 and storage device 406 .
- Each of the components 402 , 404 , 406 , 408 , 410 , and 412 are interconnected using various buses, and may be mounted on a common motherboard or in other manners as appropriate.
- the processor 402 can process instructions for execution within the computing device 400 , including instructions stored in the memory 404 or on the storage device 406 to display graphical information for a GUI on an external input/output device, such as display 416 coupled to high speed interface 408 .
- multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
- multiple computing devices 400 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
- the memory 404 stores information within the computing device 400 .
- the memory 404 is a volatile memory unit or units.
- the memory 404 is a non-volatile memory unit or units.
- the memory 404 may also be another form of computer-readable medium, such as a magnetic, computer-readable hardware storage device or optical disk.
- the storage device 406 is capable of providing mass storage for the computing device 400 .
- the storage device 406 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
- a computer program product can be tangibly embodied in an information carrier.
- the computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 404 , the storage device 406 , or memory on processor 402 .
- the high speed controller 408 manages bandwidth-intensive operations for the computing device 400 , while the low speed controller 412 manages lower bandwidth-intensive operations.
- the high-speed controller 408 is coupled to memory 404 , display 416 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 410 , which may accept various expansion cards (not shown).
- low-speed controller 412 is coupled to storage device 406 and low-speed expansion port 414 .
- the low-speed expansion port which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- input/output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- the computing device 400 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 420 , or multiple times in a group of such servers. It may also be implemented as part of a rack server system 424 . In addition, it may be implemented in a personal computer such as a laptop computer 422 . Alternatively, components from computing device 400 may be combined with other components in a mobile device (not shown), such as device 450 . Each of such devices may contain one or more of computing devices 400 , 450 , and an entire system may be made up of multiple computing devices 400 , 450 communicating with each other.
- Computing device 450 includes a processor 452 , memory 464 , an input/output device such as a display 454 , a communication interface 466 , and a transceiver 468 , among other components.
- the device 450 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage.
- a storage device such as a microdrive or other device, to provide additional storage.
- Each of the components 450 , 452 , 464 , 454 , 466 , and 468 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
- the processor 452 can execute instructions within the computing device 450 , including instructions stored in the memory 464 .
- the processor may be implemented as a chip set of chips that include separate and multiple analog and digital processors. Additionally, the processor may be implemented using any of a number of architectures.
- the processor 410 may be a CISC (Complex Instruction Set Computers) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimal Instruction Set Computer) processor.
- the processor may provide, for example, for coordination of the other components of the device 450 , such as control of user interfaces, applications run by device 450 , and wireless communication by device 450 .
- Processor 452 may communicate with a user through control interface 458 and display interface 456 coupled to a display 454 .
- the display 454 may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.
- the display interface 456 may comprise appropriate circuitry for driving the display 454 to present graphical and other information to a user.
- the control interface 458 may receive commands from a user and convert them for submission to the processor 452 .
- an external interface 462 may be in communication with processor 452 , so as to enable near area communication of device 450 with other devices. External interface 462 may provide, for example, for wired communication, or for wireless communication in other implementations, and multiple interfaces may also be used.
- the memory 464 stores information within the computing device 450 .
- the memory 464 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.
- Expansion memory 474 may also be provided and connected to device 450 through expansion interface 472 , which may include, for example, a SIMM (Single In-Line Memory Module) card interface.
- SIMM Single In-Line Memory Module
- expansion memory 474 may provide extra storage space for device 450 , or may also store applications or other information for device 450 .
- expansion memory 474 may include instructions to carry out or supplement the processes described above, and may include secure information also.
- expansion memory 474 may be a security module for device 450 , and may be programmed with instructions that permit secure use of device 450 .
- secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
- the memory may include, for example, flash memory and/or NVRAM memory, as discussed below.
- a computer program product is tangibly embodied in an information carrier.
- the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 464 , expansion memory 474 , or memory on processor 452 that may be received, for example, over transceiver 468 or external interface 462 .
- Device 450 may communicate wirelessly through communication interface 466 , which may include digital signal processing circuitry where necessary. Communication interface 466 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 468 . In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 470 may provide additional navigation- and location-related wireless data to device 450 , which may be used as appropriate by applications running on device 450 .
- GPS Global Positioning System
- Device 450 may also communicate audibly using audio codec 460 , which may receive spoken information from a user and convert it to usable digital information. Audio codec 460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 450 .
- Audio codec 460 may receive spoken information from a user and convert it to usable digital information. Audio codec 460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 450 .
- the computing device 450 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 480 . It may also be implemented as part of a smartphone 482 , personal digital assistant, or other similar mobile device.
- implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
- ASICs application specific integrated circuits
- These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- the systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components.
- the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), peer-to-peer networks (having ad-hoc or static members), grid computing infrastructures, and the Internet.
- LAN local area network
- WAN wide area network
- peer-to-peer networks having ad-hoc or static members
- grid computing infrastructures and the Internet.
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application is a continuation application of, and claims priority to, U.S. patent application Ser. No. 15/695,584, titled “OBJECT IDENTIFIER INDEX,” filed on Sep. 5, 2017. The disclosure of the foregoing application is incorporated herein by reference in its entirety for all purposes.
- This disclosure relates generally generating an index of object identifiers in a networked computing system.
- The Internet provides access to a wide variety of resources. For example, content providers serve video, audio, and Web pages over the Internet. Content providers determine what content that users are interested in and provide targeted content to those users.
- The data processing system described herein provides several advantages. The data processing system generates an object identifier index that enables targeted digital content to be served to a client device. Specifically, the object identifier index enables digital content to be served, the digital content relating to the object(s) in which a user of a client device has indicated an interest (e.g., by selecting content related to the object(s)). The data processing system uses the object identifier index to determine the object to interest for the user of the client device by using a static script tag embedded in digital content (e.g., a web page) served by the content provider (e.g., a publisher). The static script tag is simpler and less prone to causing errors than a dynamic script tag, which requires customized configuration and ongoing support for each individual content provider. Bypassing the use of a dynamic script tag to retrieve object identifiers improves the existing technological process because the static script tag represents a standardized, robust alternative that is integrated in a content provider's computing system more quickly than a dynamic tag and that requires little or no ongoing support or updating as the content provider updates content of the content provider's domain. The data processing system reduces errors in returning targeted content to client devices, relative to a system using dynamic tags, and enables content providers to provide targeted content more quickly and effectively than a system that uses dynamic script tags.
- In addition to simplifying the setup process and reducing maintenance overhead for delivering targeted digital content, the object identifier index of the data processing system enables faster lookup times for retrieving identifiers of objects of interest of the user of a client device, relative to lookup times for retrieving identifiers of objects using a non-indexed object identifier list. The data processing system builds the object identifier index in advance of client device requests for data from content providers. The content provider does not need to send an additional request for data (e.g., cached data in a browser application) from the client device. When the client device requests content from the content provider, the content provider executes the script tag and determines the identity of the client device and which objects a user associated with the device has shown interest in (e.g., selected, viewed, etc.). The content provider sends this data to an evaluation platform (e.g., an ad exchange), which then uses the object identifier index to determine which objects are of interest to the user. The evaluation platform determines which targeted digital content items to provide to the content provider that the content provider serves along with other content (e.g., web page data). By gathering object identifier information using the static script tag, the evaluation platform does not need to send additional requests for data from the client device, reducing bandwidth usage in the networked computer environment, relative to bandwidth usage of a system that does not gather object identifier information when content is requested by the client device.
- This document describes a network interface system that receives script data specifying a network address and a content title of digital content accessible at the network address, where the network address comprises domain data; a data retrieval interface that retrieves, based on the domain data of the network address, executable logic for parsing the network address; a parsing engine that executes the executable logic to extract, from the network address, an identifier of an object that is referenced by the digital content accessible at the network address; a search engine that searches an index to identify a first entry with indexed data representing a descriptor of the object for which the identifier is extracted; and a mapping engine that generates, in the index, a second entry with data representing the content title of the digital content accessible at the network address and with data representing the identifier of the object that is referenced by the digital content accessible at the network address and that generates, in the index, a mapping between the first entry and the second entry.
- In some implementations, the descriptor includes an object title that describes a product represented by the descriptor. In some implementations, the second entry includes two sub entries that are linked together. In some implementations, the network interface receives the script data in response to execution of logic embedded in the digital content accessible at the network address.
- In some implementations, the logic embedded in the digital content at the network address is embedded in a static script tag of the digital content at the network address. In some implementations, the mapping engine matches the identifier of the object to a stored object title based on the mapping of the first entry to the second entry in the index.
- In some implementations, the index enables a retrieval of a content item representing the object with a reduced latency relative to a latency caused by retrieval of the content item representing the object independent of the index.
- In some implementations, the parsing engine analyses a plurality of network addresses of a domain specified by the domain data and compares each of the plurality of the network address to other network addresses of the plurality to determine an additional one or more rules for the domain specified by the domain data.
- In some implementations, the mapping engine determines that stored object titles are related based on comparing identifiers each mapped to a respective stored object title of the stored object titles. In some implementations, the identifier comprises a product identifier, and where the object comprises a product. In some implementations, the content title is a first content title, and where a second content title is not unique from the first content title, and where upon detection of non-unique second content title, the mapping engine removes, from the index, the first entry including the first content title and an additional entry including the second content title. In some implementations, the mapping engine maps the first entry and the second entry using a lookup table.
- In some implementations, one or more processing devices are configured to perform operations including receiving script data specifying a network address and a content title of digital content accessible at the network address, where the network address comprises domain data; retrieving, based on the domain data of the network address, executable logic for parsing the network address; executing the executable logic to extract, from the network address, an identifier of an object that is referenced by the digital content accessible at the network address; searching an index to identify a first entry with indexed data representing a descriptor of the object for which the identifier is extracted; and generating, in the index, a second entry with data representing the content title of the digital content accessible at the network address and with data representing the identifier of the object that is referenced by the digital content accessible at the network address and that generates, in the index, a mapping between the first entry and the second entry.
- In some implementations, the descriptor includes an object title that describes a product represented by the descriptor. In some implementations, the script data is received in response to execution of logic embedded in the digital content accessible at the network address.
- In some implementations, the logic embedded in the digital content at the network address is embedded in a static script tag of the digital content at the network address. In some implementations, the operations include matching the identifier of the object to a stored object title based on the mapping of the first entry to the second entry in the index.
- In some implementations, the index enables a retrieval of a content item representing the object with a reduced latency relative to a latency caused by retrieval of the content item representing the object independent of the index.
- In some implementations, the operations include analyzing a plurality of network addresses of a domain specified by the domain data and compares each of the plurality of the network address to other network addresses of the plurality to determine an additional one or more rules for the domain specified by the domain data.
- In some implementations, a non-transitory computer readable medium stores instructions operable to cause one or more processing devices to perform operations including receiving script data specifying a network address and a content title of digital content accessible at the network address, where the network address comprises domain data; retrieving, based on the domain data of the network address, executable logic for parsing the network address; executing the executable logic to extract, from the network address, an identifier of an object that is referenced by the digital content accessible at the network address; searching an index to identify a first entry with indexed data representing a descriptor of the object for which the identifier is extracted; and generating, in the index, a second entry with data representing the content title of the digital content accessible at the network address and with data representing the identifier of the object that is referenced by the digital content accessible at the network address and that generates, in the index, a mapping between the first entry and the second entry.
- The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
-
FIG. 1 is a diagram of a data processing system that accesses an object identifier index. -
FIG. 2 shows representative user interfaces. -
FIG. 3 is a flow diagram showing actions for generating an object identifier index. -
FIG. 4 is a block diagram of components of a system for logical segmentation data processing. - Like reference symbols in the various drawings indicate like elements.
- Referring to
FIG. 1 , adata processing system 100 includescontent provider system 170, andclient device 180. Thedata processing system 100 includesnetworking interface system 110,data repository 120,mapping engine system 130, andevaluation platform system 160. Themapping engine system 130 generates anobject identifier index 150 for associating aclient device 180 with one or more objects that have been identified as of interest to a user of theclient device 180. - The
object identifier index 150 includes entries that form columns and rows in theobject identifier index 150. Each column includes a plurality of entries that have a similar type of data. In this example, theobject identifier index 150 includes anobject identifier column 150 a,content title column 150 b,object title column 150 c, and client deviceidentifier list column 150 d. - The
object identifier index 150 includes rows. The rows include entries that are related to one another. For example,row 150 g includesentries 150 h-k.Entry 150 h includesdata 150 w representing object identifier 02212 (hereinafter, referred to asobject identifier 150 w). Theobject identifier 150 w includes a unique code that distinguishes the object from other objects and that can be used by computing systems as a reference for the object.Entry 150 i includesdata 150 x representing content title “Store/Clothes/Polos/Green” (hereinafter, referred to ascontent title 150 w). Thecontent title 150 w includes a title (e.g., a webpage title) of the website in which the object is being referenced, and the website includescontent 175 that is published or displayed to the user on theclient device 180.Entry 150 j includesdata 150 y representing object title “Green Polo Large” (hereinafter, referred to asobject title 150 y). The object title includes a descriptor of the object that distinguishes the object from other objects.Entry 150 k includesdata 150 z representing a list of client devices associated with the object identifier (hereinafter, referred to aslist 150 z). The client device identifiers include references to the devices of the users. Theentries 150 h-k anddata 150 w-z are examples for illustrating the behavior of theobject identifier index 150. - A user of the client device 180 (e.g., laptop, mobile phone, desktop, tablet, etc.) browses content (e.g., websites) hosted by the
content provider system 170 over a network. Websites include one or more resources hosted by one or more servers of thecontent provider system 170. An example website is a collection of webpages formatted in hypertext markup language (HTML) that includes text, images, multimedia content, and programming elements, such as scripts. Each website is maintained by a content provider (e.g., a publisher), which may be an entity that controls, manages and/or owns the website. In some implementations, thedata processing system 100 may be hosted by one or more of the servers that host websites (and may be part of the resources provided by websites). In some implementations, thedata processing system 100 may be part of another system. In some implementations, thedata processing system 100 may be distributed among various hardware elements shown in the network ofFIG. 1 . - The
content provider system 170 sendscontent 175 to theclient device 180. Thecontent 175 includes data that is provided over a network from acontent provider system 170. Thecontent 175 is identified by a content identifier (e.g., network address, portion of a network address, etc.) that is associated with the content. Thecontent 175 includes one or more of HTML, pages, word processing documents, portable document format (PDF) documents, images, video, and news feed sources, etc. Thecontent 175 includes one or more of words, phrases, images and sounds. Thecontent 175 includes embedded information (such as meta-information hyperlinks) and/or embedded instructions, such as a script tag. In this example, networking interface system includes scripts tags 140-145. For example, thescript tag 140 includes one or more of executable scripts, code snippets, etc. Examples of thecontent 175 also include information about keywords, online video, electronic commerce, or any other subject for which a graphic is generated. Thecontent 175 can include references to one or more objects, such as object A, object B, or object C, as shown inFIG. 1 . - A
digital content item 165 associated with an object (e.g., a product, good, service, etc.) may be provided to client devices (such as the client device 180) based on thecontent 175 that was previously accessed by theclient device 180. In some implementations, thedigital content item 165 is an advertisement. For example, in response to theclient device 180 requesting thecontent 175 from acontent provider system 170, themapping engine system 130 infers an interest, by a user, in an object (e.g., objects A, B, and/or C) referenced by thecontent 175. Themapping engine system 130 classifies theclient device 180 of the user into one or more audience segments (e.g., lists of client devices associated with the respective objects A, B, and/or C). For example, theclient device 180 requests thecontent 175 including data related to object A (e.g., a webpage for purchasing object A). Themapping engine system 130 classifies theclient device 180 into an audience segment that represents users interested in object A. - In some implementations, upon classifying the user into the audience segment, the
mapping engine system 130stores cookie data 185 on theclient device 180. Thecookie data 185 includes data indicating that the user has an interest in the object. The cookie data 185 (and thus inference of interest in the object) is set based on the user's membership in the audience segment. - When the
client device 180 accesses thecontent 175 hosted by thecontent provider system 170, the script tag 140 (or one of script tags 141-145) causes thecontent provider system 170 to execute a script that associates theclient device 180 with thecontent 175 being accessed by theclient device 180. Thescript tag 140 sets thecookie data 185 for theclient device 180. Thescript tag 140 causes thecontent provider system 170 to send data to thenetworking interface system 110 for adding data representing theclient device 180 to the audience segment associated with the object represented in thecontent 175 accessed by theclient device 180. Themapping engine system 130 generates, for each object, a clientdevice identifier list 150 z of client devices that have some association with the object based on accessing content representing the object. - To determine which objects to associate with which devices, the
mapping engine system 130 analyzes other data sent by thecontent provider system 170 after execution of thescript tag 140. Thecontent provider system 170 sends, to thenetworking interface system 110 of thedata processing system 100, data including thecontent title 150 x (e.g., a webpage title as specified by HTML, fields) of thecontent 175 in which thescript tag 140 is embedded. Thecontent provider system 170 sends, to thenetworking interface system 110, a content identifier (e.g., webpage identifier including a uniform resource locator (URL)). Thecontent provider system 170 sends, to thenetworking interface system 110, the client device identifier, such as described above. The script tag 140 (and script tags 141-145) show representative data that is sent to thenetworking interface system 110 when the script tag 140 (or script tags 145) is executed. - The
script tag 140 is a static script tag because it does not require custom input values to be encoded in the script that dynamically request data from thecontent provider system 180 when the script is executed. Thescript tag 140 does not need to be customized for a particularcontent provider system 170 or content provider webpage. For example,script tag 140 is implemented for many different content provider systems that are each different from one another without changing one or more parameters of thescript tag 140 code. In contrast, a dynamic script tag requires one or more unique values to be input into fields of the script tag code that varies between different content provider systems. - Since dynamic script tags require some customization, implementation can be error-prone and can take a long time relative to an amount of time for implementation of a static script tag, such as
script tag 140. For example, acontent provider system 170, to implement a dynamic tag, customizes one or more fields of the dynamic tag for different webpages of the content provider system. If an operator of thecontent provider system 170 makes a mistake, the dynamic script tag returns inaccurate data or does not return data. - The
script tag 140 is a static script tag, and can be implemented uniformly and automatically across many different content provider systems. Since implementation of thescript tag 140 is simpler than a dynamic script tag implementation, the implementation is less error prone and reliably sends data for mapping into the object identifier index. Thescript tag 140 does not explicitly cause thecontent provider system 170 to return an object identifier for an object represented in the content (e.g., webpage) of thecontent provider system 170 because doing so includes script tag customization for each content provider system, which is labor intensive and error-prone, as described above. - The
mapping engine system 130 determines the identification of an object represented by the content of acontent provider system 170, when the content is accessed by theclient device 180. Themapping engine system 130 determines the object identifier of the object based on the data provided by thescript tag 140. Themapping engine system 130 analyzes thecontent title 150 x and the content identifier provided by thescript tag 140 to thenetworking interface system 110. - When analyzing a
content title 150 x specified by the script tag 140 (and stored in an entry incolumn 150 b),mapping engine system 130 uses a set of rules to determine theobject identifier 150 w (e.g., product identifier) for associating with theclient device 180 in aclient identifier list 150 z in theobject identifier index 150. In some implementations, thecontent title 150 x includes a webpage title of the HTML, of the webpage in which the object is being represented. - In some implementations, the
mapping engine system 130 performs a semantic analysis on a content title (e.g.,content title 150 x specified by an entry incontent title column 150 b) to determine theobject identifier 150 w. Themapping engine system 130 compares thecontent title 150 x to anobject title 150 y in an object feed (e.g., a library of objects registered in the repository 120). For example, one or more terms of theobject title 150 y can be present in the website title, such as brand name, a product name, a version number, a product number, etc. The semantic analysis is a part of a machine learning system, such as a deep learning or neural network that includes one or more classifiers. - The
mapping engine system 130 uses one or more rules to increase the quality of theobject identifier index 150. For example, if acontent title 150 x is matched to more than two objects, the content title is discarded as generic, rather than being indicative of a particular object. Themapping engine system 130 removes, from the index, content titles (such ascontent title 150 x) that are associated with more than two or three object identifiers because it is less likely that themapping engine system 130 determines for which object of the more than two or three identifiers there is interest of the user. For example, if one or more objects are no longer represented by acontent provider system 180, the content provider system redirects the client device to a second webpage. The second webpage can be a homepage, a “sold out” page, etc. The second webpage can thus be incorrectly associated with many objects if themapping engine system 130 does not remove generic content titles from theobject identifier index 150. - The
mapping engine system 130 groups similar content titles into groups. The groups are associated with a class of objects, and when a user is interested in an object of the class of objects, content associated with any object of the group is sent to theclient device 180 of the user. For example, a class of objects includes objects having the same product number except for a change in size, color, type, etc. In some implementations, a group identifier is used to associate theobject identifier 150 w to theclient device 180. For example, the objects in the class include a portion of theobject identifier 150 w that is identical to other object identifiers of the class, such as a product number or category designation. Themapping engine system 130 uses the group identifier to ensure that similar object titles ofcolumn 150 c and content titles ofcolumn 150 b are not mistakenly classified as generic. - The
mapping engine system 130 parses the HTML code (or other webpage or content code used to render the content) and uses patterns of the code to determine object identifiers to associate with theclient device 180. For example, the webpage title and theobject title 150 y are similar for many webpages and the objects they represent. Themapping engine system 130 uses an edit distance between theobject title 150 y and thecontent title 150 x to further increase the accuracy of theobject identifier index 150. For example, if the edit distance is greater than a threshold value, themapping engine system 130 assumes that theobject title 150 y and thecontent title 150 x are not necessarily semantically linked. To conserve memory, content titles ofcolumn 150 b are truncated to a particular length, such as 256 bytes. - The
mapping engine system 130 includes a search engine. The search engine searches theobject identifier index 150 to identify the entry (e.g.,entry 150 j) with indexed data representing the object title (e.g., 150 y) of the object for which thecontent title 150 x matches. Themapping system 130 then maps another entry (e.g.,entry 150 i) including thecontent title 150 x to theentry 150 j including theobject title 150 y. The client device identifier that was received from thecontent provider system 170 is also included in an entry (e.g.,entry 150 k) that is mapped to theentry 150 j including theobject title 150 y. - The
mapping engine system 130 uses a content identifier (e.g., the webpage URL, network address, etc.) to determine theobject identifier 150 w of the object represented in the content. The content identifier is parsed to determine whether theobject identifier 150 w is included in the content identifier. Themapping engine system 130 determines, based on the data received from thecontent provider system 170, a domain of the content provider system. The domain of thecontent provider system 170 is indicative of a format of the content identifier, such as where theobject identifier 150 w is located in the content identifier for product pages of the domain. For example, a domain includes many webpages, each with similar network addresses that might vary with sequential numbering. Themapping engine system 130 includes a data retrieval interface. The data retrieval interface retrieves, based on the domain data of the content identifier, executable logic for parsing the content identifier, the executable logic including a rule set. The data retrieval interface retrieves the executable logic from therepository 120. - The
mapping engine system 130 includes a parsing engine. The parsing engine executes the executable logic (e.g., the rule set) to extract, from the content identifier, an object identifier (e.g., objectidentifier 150 w) of an object that is referenced by thecontent 175 accessible at the network address specified by the content identifier. - The
mapping engine system 130 develops the rule set for parsing the content identifiers using machine learning (deep learning, neural networks, etc.). In some implementations, themapping engine system 130 analyzes the content identifiers of an entire domain or multiple domains together for determining a pattern in the content identifiers. The pattern is indicative of anobject identifier 150 w that is in the content identifier. For example, a pattern for a domain might indicate that theobject identifier 150 w is in each content identifier for the domain as the last path component of URLs for each webpage of the domain. In some implementations, a semantic analysis of the content identifiers of a domain enables a determination by themapping engine system 130 that theobject identifier 150 w appears at a specific offset after a common term or phrase of the content identifiers. For example, if a URL specifies www.website.com/productid=12345 themapping engine system 130 determines that the object identifier is one space offset from the term “productid,” and that for this URL, the object identifier is 12345. - Once the
object identifier 150 w is determined for a webpage, themapping engine system 130 stores one or more of the object identifier, thecontent title 150 x, theobject title 150 y, and the client device identifier(s)list 150 z that have been found to be related to one another in entries in theobject identifier index 150. The search engine searches theobject identifier index 150 to identify the entry (e.g.,entry 150 j) with indexed data representing the object title (e.g., 150 y) of the object for which the identifier is extracted. Themapping system 130 then maps another entry (e.g.,entry 150 h) including the object identifier (e.g., objectidentifier 150 w) to theentry 150 j including theobject title 150 y. Since theobject title entry 150 j is mapped to theclient device entry 150 k and thecontent title entry 150 i, theobject identifier entry 150 h is also mapped to the clientdevice identifier entry 150 k. - The
evaluation platform system 160 uses theobject identifier index 150 to determine which digital content item 165 (e.g., product ad) should be sent to thecontent provider system 170 for presenting with the content of the content provider system. For example, when a client device identifier of thelist 150 z and theobject identifier 150 w are in an entry of theobject identifier index 150, theevaluation platform system 160 marks adigital content item 165 for the object as eligible to be selected for presentation along with the content of thecontent provider system 170. The eligible content items list 190 includes the list of digital content items representing objects (e.g., products) that are of interest to the user of theclient device 180. The eligible content items list 190 is sent to theevaluation platform system 160 as a “pool” of digital content items from which adigital content item 165 can be selected for serving to theclient device 180 along with thecontent 175 that is being requested. -
Data repository 120 stores theobject identifier index 150. Therepository 120 is a part of thedata processing system 100. Therepository 120 is accessible by one or more of themapping engine system 130, theevaluation platform system 160, and thenetworking interface system 110 for generating theobject identifier index 150. - The
evaluation platform 160, which servesdigital content item 165, receives a request from the website for a digital content item 165 (e.g., an ad) relating to the object in which theclient device 180 has matched anobject identifier 150 w. Theevaluation platform system 160 provides appropriate content to thecontent provider system 170 which, in turn, incorporates thatdigital content item 165 into the content of the webpage, and outputs the content to the user, along with the remainder of the webpage content. Thecontent 175 and thedigital content item 165 are displayed on a computing device, such as theclient device 180. In some implementations, when displayed, thedigital content item 165 is incorporated into an appropriate slot. The user of theclient device 180 may select the ad by clicking-on the ad. In response, a hyperlink associated with the ad directs the user to another webpage. For example, if thedigital content item 165 is for product ABC, the webpage to which the user is directed may be the home page for ABC Product Store. This type of content access is known as click-through. In this context, a “click” is not limited to a mouse click, but rather may include a touch, a programmatic selection, or any other interaction by which thedigital content item 165 may be selected. - The
evaluation platform system 160 runs a content evaluation (e.g., an auction) to determine whichdigital content item 165 is to be output in response to receipt the one or more client device identifier lists (such aslist 150 z) and mapped object identifiers (such asobject identifier 150 w). In the evaluation, providers of digital content items submit eligibility values on specific keywords (which are associated with content). Theevaluation platform system 160 determines the list of eligible digital content items for aclient device 180 based on which object identifiers specified inobject identifier row 150 a represent theclient device 180. This ensures that theevaluation platform system 160 returns, for presentation, adigital content item 165 for an object for which the user of the client device has expressed interest (e.g., by visiting a webpage hosting content related to the object). - In response to a conversion or other action on a website (e.g., indication that a purchase has been made), the
content provider system 170 provides notice to theevaluation platform system 160. Thedata processing system 100 removes the client device identifier of thelist 150 z from the corresponding audience segment by removing the mapping of the client device identifier to theobject identifier 150 w. Theevaluation platform system 160 removes thecookie data 185 from the browser of theclient device 180 that indicates that the user has an interest in that object. In some implementations, theclient device 180 stores other, different cookie data indicating that the client device has made a conversion (e.g., purchased the object of theobject identifier 150 w). This additional cookie data is readable by subsequently-visited content provider systems. As a result, those content provider systems know not to send instructions to thenetworking interface system 110 to place the user into an audience segment corresponding to the subject matter. - The
networking interface system 110 communicates with thecontent provider system 170 and theclient device 180 using a network (not shown). The network includes one or more sub-networks. The network(s) provide for communications under various modes or protocols, such as Global System for Mobile communication (GSM) voice calls, Short Message Service (SMS), Enhanced Messaging Service (EMS), or Multimedia Messaging Service (MMS) messaging, Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Personal Digital Cellular (PDC), Wideband Code Division Multiple Access (WCDMA), CDMA2000, General Packet Radio System (GPRS), or one or more television or cable networks, among others. For example, the communication occurs through a radio-frequency transceiver. In addition, short-range communication occurs, such as using a Bluetooth®, WiFi®, or other such transceiver. - An
example client device 180 is an electronic device that is under control of a user and that is capable of requesting and receiving resources over the network. Aclient device 180 can include one or more processing devices, and can be, or include, a mobile telephone (e.g., a smartphone), a laptop computer, a handheld computer, an interactive or so-called “smart” television or set-top box, a tablet computer, a network appliance, a camera, an enhanced general packet radio service (EGPRS) mobile phone, a media player, a navigation device, an email device, a game console, or a combination of any two or more of these data processing devices or other data processing devices. - The
client device 180 includes/stores one or more user applications, such as a browser, to facilitate the sending and receiving of data over network. In some implementations, theclient device 180 is mobile (“mobile device”), such as a smartphone or a table computer, and can include an application (“app”) that allows the user to conduct a network (e.g., web) search. - When the content 175 (e.g., webpage data, search results, etc.) are requested by a
client device 180, theevaluation platform system 160 receives a request for one or moredigital content item 165 to be provided with thecontent 175. The request for thedigital content items 165 includes characteristics of one or more “slots” that are defined for thecontent 175 that is requested. For example, data representing thecontent 175 can include data specifying a portion ofcontent 175 or a portion of a user display, such as a presentation location of a pop-up window or a slot of a third-party content site or webpage, in which thecontent 175 can be presented. Search results pages can also include one or more slots in which thedigital content item 165 is presented for theclient device 180. - The
content provider system 170 provides data about slots to theevaluation platform system 160. For example, the content provider system 170 a provides data including a content identifier (e.g., URL) of thecontent 175 for which the slot is defined, a size of the slot, and/or media types that are available for presentation in the slot, to thenetwork interface system 110. Similarly, object titles (such asobject title 150 y) and eligible content items list 190 associated with requestedcontent 175 are also provided to theevaluation platform system 160 to facilitate identification of content that is relevant to theclient device 180. - Based on the eligible content items list 190, the
evaluation platform system 160 selects content that is eligible to be provided in response to the request (“eligible digital content items”). For example, eligible digital content items include content items associated with one or more of the objects included in the object identifiers (such asobject identifier 150 w) mapped to the client device identifier of thelist 150 z. - Referring to
FIG. 2 , a diagram 200 shows representative graphical user interfaces (GUIs) ofwebpages script tag data Webpage 202 shows a first example ofscript tag data 210 being extracted from content of a content provider system. Thewebpage 202 includes a webpage identifier 226 (a URL) of http://www/localstore.com/clothing/shirts/polo/id=02211. A mapping engine system can parse thewebpage identifier 226 and the webpage HTML (or other code for assembling the webpage content) to determine the object identifier. For example, the webpage title is “Greed Med. Polo,” as indicated by thescript tag data 210. Thewebpage identifier 226 is also included in thescript tag data 210. - The mapping engine system parses the
content 230 of thewebsite 202 and thedigital content items content items content 230 indicate that the object represented on the webpage is a green polo shirt of medium size. The mapping engine system determines that the object title is a “green polo shirt.” The object is identified in an object feed and added to the object identifier index, if not already present. -
Webpage 220 shows a second example ofscript tag data 214 being extracted from content of a content provider system. Thewebpage 220 includes a webpage identifier 234 (a URL) of http://www/localstore.com/clothing/shirts/polo/id=02213. A mapping engine system can parse thewebpage identifier 234 and the webpage HTML (or other code for assembling the webpage content) to determine the object identifier. For example, the webpage title is “Greed Med. Polo,” as indicated by thescript tag data 214. The webpage identifier 264 is also included in thescript tag data 214. - The mapping engine system parses the
content 230 of thewebsite 220 and thedigital content items content items content 230 indicate that the object represented on the webpage is a red polo shirt of medium size. The mapping engine system determines that the object title is a “red polo shirt.” The object is identified in an object feed and added to the object identifier index, if not already present. - The mapping engine system identifies that the
webpages webpage identifiers webpages webpage identifiers webpages -
FIG. 3 is a flow diagram showing actions for generating an object identifier index. A data processing system receives (302) script data including a network address and content titles of content of the network address. The data processing system retrieves (304), based on the domain data of the network address, one or more rules for parsing the network address. The data processing system extracts (306), from the network address according to the one or more rules, an identifier that represents an object that is referenced in the content stored at the network address. The data processing system maps (308) the content title of the content of the network address to the stored object title representing the object. -
FIG. 4 showsexample computing devices Computing device 400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.Computing device 450 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. Additionally,computing device -
Computing device 400 includes aprocessor 402,memory 404, astorage device 406, a high-speed interface 408 connecting tomemory 404 and high-speed expansion ports 410, and alow speed interface 412 connecting tolow speed bus 414 andstorage device 406. Each of thecomponents processor 402 can process instructions for execution within thecomputing device 400, including instructions stored in thememory 404 or on thestorage device 406 to display graphical information for a GUI on an external input/output device, such asdisplay 416 coupled tohigh speed interface 408. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 400 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system). - The
memory 404 stores information within thecomputing device 400. In one implementation, thememory 404 is a volatile memory unit or units. In another implementation, thememory 404 is a non-volatile memory unit or units. Thememory 404 may also be another form of computer-readable medium, such as a magnetic, computer-readable hardware storage device or optical disk. - The
storage device 406 is capable of providing mass storage for thecomputing device 400. In one implementation, thestorage device 406 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as thememory 404, thestorage device 406, or memory onprocessor 402. - The
high speed controller 408 manages bandwidth-intensive operations for thecomputing device 400, while thelow speed controller 412 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 408 is coupled tomemory 404, display 416 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 410, which may accept various expansion cards (not shown). In the implementation, low-speed controller 412 is coupled tostorage device 406 and low-speed expansion port 414. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter. - The
computing device 400 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as astandard server 420, or multiple times in a group of such servers. It may also be implemented as part of arack server system 424. In addition, it may be implemented in a personal computer such as alaptop computer 422. Alternatively, components fromcomputing device 400 may be combined with other components in a mobile device (not shown), such asdevice 450. Each of such devices may contain one or more ofcomputing devices multiple computing devices -
Computing device 450 includes aprocessor 452,memory 464, an input/output device such as adisplay 454, acommunication interface 466, and atransceiver 468, among other components. Thedevice 450 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of thecomponents - The
processor 452 can execute instructions within thecomputing device 450, including instructions stored in thememory 464. The processor may be implemented as a chip set of chips that include separate and multiple analog and digital processors. Additionally, the processor may be implemented using any of a number of architectures. For example, theprocessor 410 may be a CISC (Complex Instruction Set Computers) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimal Instruction Set Computer) processor. The processor may provide, for example, for coordination of the other components of thedevice 450, such as control of user interfaces, applications run bydevice 450, and wireless communication bydevice 450. -
Processor 452 may communicate with a user throughcontrol interface 458 anddisplay interface 456 coupled to adisplay 454. Thedisplay 454 may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Thedisplay interface 456 may comprise appropriate circuitry for driving thedisplay 454 to present graphical and other information to a user. Thecontrol interface 458 may receive commands from a user and convert them for submission to theprocessor 452. In addition, anexternal interface 462 may be in communication withprocessor 452, so as to enable near area communication ofdevice 450 with other devices.External interface 462 may provide, for example, for wired communication, or for wireless communication in other implementations, and multiple interfaces may also be used. - The
memory 464 stores information within thecomputing device 450. Thememory 464 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 474 may also be provided and connected todevice 450 throughexpansion interface 472, which may include, for example, a SIMM (Single In-Line Memory Module) card interface.Such expansion memory 474 may provide extra storage space fordevice 450, or may also store applications or other information fordevice 450. Specifically,expansion memory 474 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example,expansion memory 474 may be a security module fordevice 450, and may be programmed with instructions that permit secure use ofdevice 450. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner. - The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the
memory 464,expansion memory 474, or memory onprocessor 452 that may be received, for example, overtransceiver 468 orexternal interface 462. -
Device 450 may communicate wirelessly throughcommunication interface 466, which may include digital signal processing circuitry where necessary.Communication interface 466 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 468. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System)receiver module 470 may provide additional navigation- and location-related wireless data todevice 450, which may be used as appropriate by applications running ondevice 450. -
Device 450 may also communicate audibly usingaudio codec 460, which may receive spoken information from a user and convert it to usable digital information.Audio codec 460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset ofdevice 450. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating ondevice 450. - The
computing device 450 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as acellular telephone 480. It may also be implemented as part of asmartphone 482, personal digital assistant, or other similar mobile device. - Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
- To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), peer-to-peer networks (having ad-hoc or static members), grid computing infrastructures, and the Internet.
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- Elements of different implementations described herein can be combined to form other implementations not specifically set forth above. Elements can be left out of the processes, computer programs, etc. described herein without adversely affecting their operation. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Various separate elements can be combined into one or more individual elements to perform the functions described herein.
- Other implementations not specifically described herein are also within the scope of the following claims.
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/117,976 US20210097045A1 (en) | 2017-09-05 | 2020-12-10 | Object identifier index |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/695,584 US10909100B2 (en) | 2017-09-05 | 2017-09-05 | Object identifier index |
US17/117,976 US20210097045A1 (en) | 2017-09-05 | 2020-12-10 | Object identifier index |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/695,584 Continuation US10909100B2 (en) | 2017-09-05 | 2017-09-05 | Object identifier index |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210097045A1 true US20210097045A1 (en) | 2021-04-01 |
Family
ID=62916739
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/695,584 Active 2038-12-17 US10909100B2 (en) | 2017-09-05 | 2017-09-05 | Object identifier index |
US17/117,976 Pending US20210097045A1 (en) | 2017-09-05 | 2020-12-10 | Object identifier index |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/695,584 Active 2038-12-17 US10909100B2 (en) | 2017-09-05 | 2017-09-05 | Object identifier index |
Country Status (3)
Country | Link |
---|---|
US (2) | US10909100B2 (en) |
EP (1) | EP3482300A1 (en) |
WO (1) | WO2019050586A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210342405A1 (en) * | 2015-02-18 | 2021-11-04 | Ubunifu, LLC | Dynamic search set creation in a search engine |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10820650B2 (en) | 2018-02-27 | 2020-11-03 | Levi Strauss & Co. | Surface projection for apparel in an apparel design system |
CN111831878B (en) * | 2019-04-22 | 2023-09-15 | 百度在线网络技术(北京)有限公司 | Method for constructing value index relationship, index system and index device |
WO2021042068A1 (en) | 2019-08-29 | 2021-03-04 | Levi Strauss & Co. | Digital showroom with virtual previews of garments and finishes |
CN114444440B (en) * | 2022-01-30 | 2024-10-29 | 中国农业银行股份有限公司 | Identifier generation method, device, storage medium and system |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050010486A1 (en) * | 2003-07-07 | 2005-01-13 | Giftwisdom | A system and a method for adding a desired product item from an internet based online store to an internet based universal product item registry |
US20100261454A1 (en) * | 2009-04-14 | 2010-10-14 | Research In Motion Limited | Retrieving additional content based on data within a mobile code |
US20120089648A1 (en) * | 2010-10-08 | 2012-04-12 | Kevin Michael Kozan | Crowd sourcing for file recognition |
US20130085894A1 (en) * | 2011-09-30 | 2013-04-04 | Jimmy Honlam CHAN | System and method for presenting product information in connection with e-commerce activity of a user |
US20130103666A1 (en) * | 2011-10-21 | 2013-04-25 | Google Inc. | Mapping uniform resource locators of different indexes |
US20140108677A1 (en) * | 2011-06-24 | 2014-04-17 | Sony Corporation | Information processing device, program, information processing method, and information processing system |
US9049076B1 (en) * | 2013-01-07 | 2015-06-02 | Google Inc. | Content selection with privacy features |
US20160239733A1 (en) * | 2012-05-23 | 2016-08-18 | Allen D. Hertz | Misplaced or forgotten article recovery process |
US20160283460A1 (en) * | 2013-12-03 | 2016-09-29 | Sharethrough Inc. | Dynamic native content insertion |
US20180165709A1 (en) * | 2016-12-09 | 2018-06-14 | Mastercard International Incorporated | Methods, systems, and computer readable media for suppressing cookie based advertisement retargeting |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918214A (en) | 1996-10-25 | 1999-06-29 | Ipf, Inc. | System and method for finding product and service related information on the internet |
US6725214B2 (en) * | 2000-01-14 | 2004-04-20 | Dotnsf | Apparatus and method to support management of uniform resource locators and/or contents of database servers |
US7136851B2 (en) * | 2004-05-14 | 2006-11-14 | Microsoft Corporation | Method and system for indexing and searching databases |
US7421441B1 (en) * | 2005-09-20 | 2008-09-02 | Yahoo! Inc. | Systems and methods for presenting information based on publisher-selected labels |
US20070276808A1 (en) | 2006-05-09 | 2007-11-29 | Mcgushion Kevin David | URL Embedded Product Identifications Means and Method |
US9582804B2 (en) * | 2006-12-22 | 2017-02-28 | Excalibur Ip, Llc | Link retrofitting of digital media objects |
US8549099B2 (en) | 2007-07-12 | 2013-10-01 | Viasat, Inc. | Methods and systems for javascript parsing |
US9037585B2 (en) | 2010-03-12 | 2015-05-19 | Kristopher Kubicki | Method and system for generating prime uniform resource identifiers |
EP2533161A1 (en) | 2010-11-29 | 2012-12-12 | Hughes Network Systems, LLC | Computer networking system and method with javascript injection for web page response time determination |
US20130066675A1 (en) * | 2011-09-07 | 2013-03-14 | Robert Hyer Bercaw | Dual-purpose automated system that provides a consumer interface and a client interface |
US9342462B2 (en) * | 2013-10-31 | 2016-05-17 | Oracle International Corporation | Systems and methods for implementing low-latency lookup circuits using sparse hash functions |
-
2017
- 2017-09-05 US US15/695,584 patent/US10909100B2/en active Active
-
2018
- 2018-06-13 WO PCT/US2018/037403 patent/WO2019050586A1/en unknown
- 2018-06-13 EP EP18740936.2A patent/EP3482300A1/en not_active Withdrawn
-
2020
- 2020-12-10 US US17/117,976 patent/US20210097045A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050010486A1 (en) * | 2003-07-07 | 2005-01-13 | Giftwisdom | A system and a method for adding a desired product item from an internet based online store to an internet based universal product item registry |
US20100261454A1 (en) * | 2009-04-14 | 2010-10-14 | Research In Motion Limited | Retrieving additional content based on data within a mobile code |
US20120089648A1 (en) * | 2010-10-08 | 2012-04-12 | Kevin Michael Kozan | Crowd sourcing for file recognition |
US20140108677A1 (en) * | 2011-06-24 | 2014-04-17 | Sony Corporation | Information processing device, program, information processing method, and information processing system |
US20130085894A1 (en) * | 2011-09-30 | 2013-04-04 | Jimmy Honlam CHAN | System and method for presenting product information in connection with e-commerce activity of a user |
US20130103666A1 (en) * | 2011-10-21 | 2013-04-25 | Google Inc. | Mapping uniform resource locators of different indexes |
US20160239733A1 (en) * | 2012-05-23 | 2016-08-18 | Allen D. Hertz | Misplaced or forgotten article recovery process |
US9049076B1 (en) * | 2013-01-07 | 2015-06-02 | Google Inc. | Content selection with privacy features |
US20160283460A1 (en) * | 2013-12-03 | 2016-09-29 | Sharethrough Inc. | Dynamic native content insertion |
US20180165709A1 (en) * | 2016-12-09 | 2018-06-14 | Mastercard International Incorporated | Methods, systems, and computer readable media for suppressing cookie based advertisement retargeting |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210342405A1 (en) * | 2015-02-18 | 2021-11-04 | Ubunifu, LLC | Dynamic search set creation in a search engine |
US11816170B2 (en) * | 2015-02-18 | 2023-11-14 | Ubunifu, LLC | Dynamic search set creation in a search engine |
Also Published As
Publication number | Publication date |
---|---|
EP3482300A1 (en) | 2019-05-15 |
US20190073389A1 (en) | 2019-03-07 |
US10909100B2 (en) | 2021-02-02 |
WO2019050586A1 (en) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210097045A1 (en) | Object identifier index | |
US10997265B1 (en) | Selecting a template for a content item | |
US11004109B2 (en) | Automated creative extension selection for content performance optimization | |
CN110941778B (en) | Automatic verification of advertiser identifiers in advertisements | |
US8600979B2 (en) | Infinite browse | |
CN102467541B (en) | A kind of Situational searching method and system | |
CN108090111B (en) | Animated excerpts for search results | |
US20200412675A1 (en) | Network based data traffic latency reduction | |
AU2019201386A1 (en) | Automated click type selection for content performance optimization | |
US9679309B2 (en) | Placement attribute targeting | |
WO2015172490A1 (en) | Method and apparatus for providing extended search item | |
WO2017041359A1 (en) | Information pushing method, apparatus and device, and non-volatile computer storage medium | |
WO2021160157A1 (en) | Group display method and device | |
US10262057B2 (en) | Presenting content in accordance with a placement designation | |
US20120158496A1 (en) | System and method for classifying webpages | |
CN112136127B (en) | Action indicator for search operation output element | |
CN106156244A (en) | A kind of information search air navigation aid and device | |
CN110674620A (en) | Target file generation method, device, medium and electronic equipment | |
US10318562B2 (en) | Triggering application information | |
CN111078986A (en) | Data retrieval method, device and computer readable storage medium | |
TWI447662B (en) | An ad management apparatus, an advertisement selecting apparatus, an advertisement management method, an advertisement management program, and a recording medium on which an advertisement management program is recorded | |
US20140101163A1 (en) | Keyword generation | |
RU2589856C2 (en) | Method of processing target message, method of processing new target message and server (versions) | |
KR20100042129A (en) | System and method for providing keyword link corresponding interressting information | |
US20240143698A1 (en) | Electronic information extraction using a machine-learned model architecture method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AGRAWAL, SHIREESH;GALI, MOISES MORGENSTERN;SWAMY, SUMEDHA;AND OTHERS;SIGNING DATES FROM 20170828 TO 20170905;REEL/FRAME:055047/0794 Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:055136/0752 Effective date: 20170930 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |