US20160189214A1 - Personalizing Advertisements Using Subscription Data - Google Patents
Personalizing Advertisements Using Subscription Data Download PDFInfo
- Publication number
- US20160189214A1 US20160189214A1 US14/743,589 US201514743589A US2016189214A1 US 20160189214 A1 US20160189214 A1 US 20160189214A1 US 201514743589 A US201514743589 A US 201514743589A US 2016189214 A1 US2016189214 A1 US 2016189214A1
- Authority
- US
- United States
- Prior art keywords
- advertisement
- user
- application
- category
- user 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0267—Wireless devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Definitions
- This disclosure relates to using subscription data associated with one or more applications installed on a user device to provide user with targeted advertisements.
- One aspect of the disclosure provides a method for personalizing advertisements using subscription data.
- the method includes receiving, at data processing hardware, usage data of a user and receiving advertisement parameters for one or more advertisements.
- the usage data includes device usage data associated with a user device of the corresponding user and subscription usage data associated with one or more applications installed on the user device.
- the method further includes determining, using the data processing hardware, whether any of the advertisement parameters are satisfied by the usage data of the user.
- the method includes outputting, from the data processing hardware to the user device of the user, the advertisement corresponding to the satisfied advertisement parameter.
- Implementations of the disclosure may include one or more of the following optional features.
- the method includes receiving, at the data processing hardware an advertisement request from the user device for an advertisement.
- the advertisement request is sent from the user device based on a trigger from a software application executing on the user device.
- the device usage data may include at least one of a device location, a device operating system, or a list of the one or more applications installed on the corresponding user device.
- the subscription data may include one or more subscription tags to content access mechanisms. Each subscription tag is associated with one of the one or more applications installed on the user device. Each subscription tag associated with one or more entities and/or categories.
- the advertising parameters of an advertisement are associated with one or more entities and/or categories.
- An entity may include a person, a location, a business, a product, a service, a media content, or a destination.
- a category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category.
- Each advertisement may include advertisement data and an advertisement access mechanism having a reference to a corresponding application installed on the user device. The advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement.
- Another aspect of the disclosure provides a second method for personalizing advertisements using subscription data.
- This method includes sending, from a user device to an advertisement system, usage data of a user.
- the usage data includes device usage data associated with the user device and subscription usage data associated with one or more applications installed on the user device.
- the subscription usage data defines one or more subscription content feeds. Each subscription content feed is associated with an application installed on the user device.
- the method further includes sending an advertisement request from the user device to the advertisement system and receiving one or more advertisements transmitted from the advertisement system.
- Each advertisement includes advertisement data and an advertisement access mechanism that has a reference to a corresponding application installed on the user device.
- the advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement.
- the advertisement has one or more advertisement parameters that are satisfied by the usage data of the user.
- the method further includes displaying, on a display in communication with the user device, a graphical user interface including the one or more advertisements.
- Each advertisement includes a user selectable link associated with the corresponding
- the advertisement request sent from the user device is based on a trigger from a software application executing on the user device.
- the device usage data includes at least one of a device location, a device operating system, or a list of the one or more applications installed on the corresponding user device.
- the subscription usage data includes one or more subscription tags to content access mechanisms. Each subscription tag is associated with one of the one or more applications installed on the user device. Each subscription tag is associated with one or more entities and/or categories.
- the advertising parameters of an advertisement are associated with one or more entities and/or categories.
- An entity may include a person, a location, a business, a product, a service, a media content, or a destination.
- a category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category.
- the user device includes a display, a data processing hardware in communication with the display and memory hardware in communication with the data processing hardware.
- the memory hardware stores instructions that when executed on the data processing hardware causes the data processing hardware to perform operations.
- the operations include sending to an advertisement data, usage data of a user, the usage data including device usage data associated with the user device and subscription usage data associated with one or more applications installed on the user device.
- the subscription usage data defines one or more subscription content feeds, each subscription content feed is associated with an application installed on the user device.
- the operations further include sending an advertisement request to the advertisement system and receiving one or more advertisements transmitted from the advertisement system.
- Each advertisement includes advertisement data and an advertisement access mechanism having a reference to a corresponding application installed on the user device.
- the advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement, the advertisement having one or more advertisement parameters that are satisfied by the usage data of the user.
- the operations further include displaying, on the display in communication with the user device, a graphical user interface including the one or more advertisements, each advertisement including a user selectable link associated with the corresponding advertisement access mechanism.
- the advertisement request sent from the user device is based on a trigger from a software application executing on the user device.
- the device usage data includes at least one of a device location, a device operating system, or a list of the one or more applications installed on the corresponding user device.
- the subscription usage data may include one or more subscription tags to content access mechanisms, each subscription tag associated with one of the one or more applications installed on the user device, each subscription tag associated with one or more entities and/or categories.
- the advertisement parameters of an advertisement are associated with one or more entities and/or categories.
- An entity may include a person, a location, a business, a product, a service, a media content, or a destination.
- a category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category.
- Yet another method provides a third application for personalizing deep search results using subscription data.
- the method includes receiving, at data processing hardware, one or more user permissions to access one or more applications installed on a user device and generating, at the data processing hardware, a user profile associated with the user device.
- the user profile includes user profile data including a device location, device data defining at least one of a device operating system, and a list of applications installed on the user device.
- the user profile further includes subscription tags defining one or more user subscriptions to application access mechanisms.
- the method further includes receiving, at the data processing hardware from the user device, usage data of one or more applications installed on the user device, receiving, at the data processing hardware from the user device, an advertising request including an application state and identifying, at the data processing hardware, one or more advertisements based on the subscription tags.
- Implementations of the disclosure may include one or more of the following optional features.
- the method includes transmitting to the user device an identified advertisement in response to a user selection of a subscription tag.
- Each advertisement may define advertisement parameters including one or more of access mechanisms, advertisement subscription, and/or keyword parameters.
- the method may further include transmitting to the user device an identified advertisement when a user subscription tags and the advertisement subscriptions have a threshold similarity value.
- FIG. 1 is a schematic view of an example environment including a user device in communication with a profile system, an advertisement system, and content providers.
- FIG. 2 is a functional block diagram of an example environment including a profile system interacting with an advertisement system, user devices, and data sources.
- FIGS. 3A and 3B are schematic views of example user devices in communication with a profile system, and an advertisement system.
- FIG. 4 is a functional block diagram of a profile system.
- FIGS. 5A and 5B are schematic views of example profile records.
- FIGS. 5C and 5D are schematic views of example application state records.
- FIGS. 5E and 5F are schematic views of example feed records.
- FIGS. 5G and 5H are schematic views of example entity records.
- FIG. 6 is a functional block diagram of an example advertisement system.
- FIGS. 7A and 7B are schematic views of example advertisement records.
- FIG. 8 is a schematic view illustrating an example method for generating a user profile.
- FIG. 9 is a schematic view illustrating an example method for receiving an advertisement request and generating advertisements
- FIG. 9 is a functional block diagram of a user device.
- FIG. 10 is a functional block diagram of an example user device.
- FIGS. 11A and 11B are schematic views of example user devices displaying advertisements.
- FIG. 12 is a schematic view of an example method for personalizing advertisements using subscription data.
- FIG. 13 is a schematic view of an example method for personalizing advertisements using subscription data.
- FIG. 14 is a schematic view of an example method for receiving and displaying personalized advertisement results.
- FIG. 15 is a schematic view of an example computing device executing any systems or methods described herein.
- a system of the present disclosure personalizes advertisements for a user using subscription data.
- the subscription data may refer to any information related to one or more content feeds, such as Rich Site Summary (RSS) feeds, subscribed to by users.
- RSS Rich Site Summary
- the system receives usage data of users.
- the usage data may include device usage data related to a user device of the user and/or subscription usage data associated with one or more applications installed on the user device.
- the system may also receive advertisement data of one or more advertisements.
- the system determines one or more advertisements to send to the user device based on the usage data.
- the system may select one or more advertisement results from an advertisement data store.
- Each advertisement result is associated with an advertisement that is provided by an advertiser and advertises a product, a service, or goods of the advertiser.
- the system transmits the advertisement results to the user device.
- the system determines which advertisement result to send to the user by determining if the usage data of the user satisfies one or more parameters or attributes of the advertisement.
- Each advertisement result may include an advertisement access mechanism that has a reference to an application installed on the user device and indicates a performable operation for the application.
- the user device may launch the application referenced by the advertisement access mechanism and perform the one or more operations indicated in the advertisement access mechanism.
- the user may opt to share usage data of applications installed on his/her user device, for example, to enhance the overall experience of using one or more applications installed on the user device.
- the system may generate a user profile associated with the user of the application(s).
- the user profile may include subscription data (e.g., subscription tags) that the system may use to provide customized advertisements.
- FIG. 1 illustrates an example system 100 that includes a user device 200 associated with a user 10 in communication with a remote system 110 via a network 120 .
- the remote system 110 may be a distributed system (e.g., cloud environment) having scalable/elastic computing resources 112 and/or storage resources 114 .
- the user device 200 and/or the remote system 110 may execute an advertisement system 400 and optionally receive data from one or more data sources 130 .
- the user device 200 and/or the remote system 110 may additionally execute a profile system 300 .
- the profile system 300 is part of the advertisement system 400 .
- the profile system 300 and the advertisement system 400 communicate with each other and with one or more user devices 200 and the data source(s) 130 via the network 120 , as shown in the figures.
- the network 120 may include various types of networks, such as a local area network (LAN), wide area network (WAN), and/or the Internet.
- the user device 200 may execute an advertisement application 216 configured to send an advertisement request 212 to the advertisement system 400 .
- the advertisement request 212 may be triggered by one or more actions or behaviors of the user device 200 .
- the advertisement application 216 may generally be part of another application 204 that provides a different and distinct functionality.
- the user device 200 displays advertisement results 330 received from the advertisement system 400 on a graphical user interface (GUI) 240 shown on a screen 201 of the user device 200 by way of displayed results 230 having links 234 , 236 .
- the executed advertisement search/analysis may be based on a user profile record 370 ( FIGS. 5A and 5B ) generated by the profile system 300 and an advertisement record 530 ( FIGS. 7A and 7B ).
- the profile system 300 that generates the user profile record 370 is a standalone system (as shown in FIG. 4 ) and in communication with the advertisement system 400 via the network 120 , while in other examples, the profile system 300 is part of the advertisement system 400 .
- FIG. 2 provides a functional block diagram of the system 100 .
- a user device 200 is in communication with the profile system 300 and the advertisement system 400 .
- User devices 200 can be any computing devices that are capable of providing advertisement requests 212 to the advertisement system 400 .
- User devices 200 include, but are not limited to, mobile computing devices, such as laptops 200 a , tablets 200 b , smart phones 200 c , and wearable computing devices 200 d (e.g., headsets and/or watches).
- User devices 200 may also include other computing devices having other form factors, such as computing devices included in desktop computers 200 e , vehicles, gaming devices, televisions, or other appliances (e.g., networked home automation devices and home appliances).
- the user devices 200 may use a variety of different operating systems 224 .
- the user device 200 may run an operating system including, but not limited to, ANDROID® developed by Google Inc., IOS® developed by Apple Inc., or WINDOWS PHONE® developed by Microsoft Corporation.
- the operating system 224 running on the user device 200 may include, but is not limited to, one of ANDROID®, IOS®, or WINDOWS PHONE®.
- a user device 200 may run an operating system 224 including, but not limited to, MICROSOFT WINDOWS® by Microsoft Corporation, MAC OS® by Apple, Inc., or Linux.
- User devices 200 may also access or communicate with the advertisement system 400 and/or the profile system 300 while running operating systems 224 other than those operating systems 224 described above, whether presently available or developed in the future.
- the advertisement system 400 receives an advertisement request 212 from a user device 200 and the advertisement system 400 performs a search and/or analysis within each its respective databases 420 (i.e., advertising data store 420 ) to identify one or more advertisements 431 for sending corresponding advertisement results 220 to the user device 200 .
- the system 100 spiders, crawls, and indexes applications 204 .
- Examples of data include, but are not limited to, news articles, blog posts, and sports scores.
- content providers 140 that provide content feeds 142 where the content feed 142 provides near real-time data.
- RSS feeds utilize a standard family of Web feed formats to publish frequently updated content, such as blog entries, news articles, audio, and video.
- Content obtained from a content feed 142 may be referred to as a content document 144 .
- a content document 144 includes a web link to the source of the content. For example, a web link to a news article.
- a content feed 142 may refer to a collection of grouped application states within an application 204 .
- a content feed 142 may represent content documents 144 of an application that is grouped for any suitable reason. The grouping can be made by other users 10 of the application or the application provider 140 (“content provider”).
- a user 10 may subscribe to a YOUTUBE® channel, a FACEBOOK® feed (follow on FACEBOOK®), a team feed on ESPN® (e.g., follow DETROIT TIGERS®), a topic feed on THE NEW YORK TIMES® (e.g., Science and Tech news).
- the user 10 of the application groups the content (e.g., YOUTUBE® and FACEBOOK®), while in other examples the content provider groups the content (e.g., ESPN® and THE NEW YORK TIMES®).
- the foregoing is all referred to as subscription data.
- Subscription data can refer to any information that indicates a set of content feeds 142 that a user 10 has expressly requested to receive from an application or a content provider 140 .
- the current system 100 leverages the user's subscription data 229 to content feeds 142 to enhance and personalize advertisement results 220 that include one or more advertisements 431 that may be rendered on a GUI 240 of a user display 240 as displayed advertisement results 230 .
- the user 10 may be subscribed (via the user device 200 ) to one or more content feeds 142 (e.g., RSS feeds) provided by a content provider 140 .
- the content feeds 142 may also be referred to as subscription data 229 .
- the advertisement system 400 may recommend advertised content feed data 144 based on a user's subscription to one or more other content feeds 142 from one or more content providers 140 .
- the advertisement system 400 may personalize advertisements 431 based on the user profile 370 , which includes subscription data of a user's subscription to one or more content feeds 142 .
- Types of content feeds 142 may include, but are not limited to, RSS feeds and Atom feeds.
- the advertisement application 216 may be part of another application 204 that allows a user 10 to enter text into a text field 214 or that can send an advertisement request 212 to the advertisement system 400 based on one or more triggering events.
- a triggering event may be when the user 10 opens an application 204 associated with the advertisement application 216 to view content provided by the application 204 .
- the triggering event that sends the advertisement request 212 to the advertising system 400 is the user 10 entering text in a text field 214 .
- the action of launching an application 204 associated with the advertisement application 216 is the triggering event.
- the user 10 enters the letters ‘ear’ in the text field 214 (e.g., a search box) of the graphical user interface (GUI) 240 of the application 204 that includes the advertisement application 216 (which may be part of a native application, such as, but not limited to, a search application, a news application, or a restaurant review application) running on the user device 200 .
- the GUI displays a list 231 of displayed results 230 .
- the displayed results 230 include advertisement results 230 and non-advertisement results (not shown).
- the advertisement results 230 are visually distinguishable from the non-advertisement results.
- the advertisement results 230 may include an advertisement icon 238 associated with the advertisement results 230 .
- the advertisement icon 238 is indicative of an advertisement from an advertiser.
- the advertisement results 220 are sent to the user 10 of the user device 200 that initiated the advertisement request 212 . Therefore, the advertisement results 220 are based on a search/analysis of the advertisement data store 420 using the advertisement request 212 , a user data store 360 storing the user profiles 370 , and target parameters 580 (stored in the advertisement data store 420 ). As a result, the advertisement results 220 are personalized based on the user profile record 370 of the user 10 .
- the displayed advertisements 230 are a combination of information from the data sources 130 , a user data store 360 , and advertising data store 420 .
- the system 100 provides the user with content feeds 142 (e.g., RSS feeds) from one or more content providers 140 as an advertisement 230 .
- content feeds 142 e.g., RSS feeds
- the advertisement system 400 considers the user profile 370 , including the user subscriptions tags 376 , and any target parameters 580 provided in the advertisement data store 420 .
- the target parameters 580 included in the advertisement data store 420 may indicate one or more elements (e.g., user location) that once satisfied, provides the user 10 with a specific advertisement.
- the advertisement system 400 may provide advertisements 431 (i.e., displayed advertisements 230 ) relating to the ‘San Jose Earthquakes,’ which are a professional soccer team based in San Jose, Calif.
- the advertisements 230 may include, for example, purchasing tickets to an upcoming game, or a restaurant hosting a soccer event.
- the displayed advertisement results 230 may be a combination of information from the data sources 130 , the user data store 360 , the advertisement data store 420 , and content feeds 142 (e.g., RSS feeds) from one or more content providers 140 , satisfying one or more targeting parameters 538 ( FIGS. 6A and 6B ).
- content feeds 142 e.g., RSS feeds
- the user device 200 executes one or more software applications 204 .
- a software application 204 may refer to computer software that, when executed by a computing device, causes the computing device to perform a task.
- a software application 204 is referred to as an “application”, an “app”, or a “program”.
- Example software applications 204 include, but are not limited to, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and games.
- Applications 204 may be executed on a variety of different user devices 200 .
- a native application 204 a is installed on a user device 200 prior to a user 10 purchasing the user device 200 .
- the user may 10 download and install native applications 204 a on the user device 200 .
- an application 204 may be accessed on the computing device 200 on which the application 204 is installed. Additionally or alternatively, the functionality of an application 204 may be accessed via a remote computing device 112 . In some examples, all of an application's functionality is included on the computing device 112 , 200 on which the application 204 is installed. These applications 204 may function without communication with other computing devices 112 , 200 (e.g., via the network 120 ). In other examples, an application 204 installed on a computing device 200 may access information from other remote computing devices 112 during operation. For example, a weather application installed on a computing device 200 may access the latest weather information via the Internet and display the accessed weather information to the user 10 through the installed weather application.
- a web-based application 204 b may be partially executed by the user's computing device 200 and partially executed by a remote computing device 112 .
- a web application 204 b may be an application 204 that is executed, at least in part, by a web server and accessed by a web browser (e.g., a native application 204 a ) of the user's computing device 200 .
- Example web applications 204 b may include, but are not limited to, web-based email, online auctions, and online retail sites.
- the user device 200 may communicate with the profile system 300 and/or the advertisement system 400 using any software application 204 (e.g., advertisement application 216 ) that can transmit advertisement requests 212 to the advertisement system 400 and usage data to the profile system 300 .
- the user device 200 runs a native application 204 a that is dedicated to interfacing with the profile system 300 and/or the advertisement system 400 , such as a native application 204 a dedicated to advertisement (e.g., an advertisement application 216 ).
- the user device 200 communicates with the profile system 300 and/or the advertisement system 400 using a more general application 204 , such as a web-browser application 204 b accessed using a web browser native application 204 a .
- the user device 200 may communicate with the profile system 300 and/or the advertisement system 400 using the native advertisement application 216 and/or a web-browser application 204 b , the user device 200 may be described hereinafter as using the native advertisement application 216 to communicate with the profile system 300 and/or the advertisement system 400 .
- the functionality attributed to the advertisement application 216 is included as a component of a larger application 204 that has additional functionality.
- the functionality attributed to the advertisement application 216 may be included as part of a native application 204 a or a web application 204 b as a feature that provides advertisement capabilities.
- Native applications 204 a can perform a variety of different functions for a user 10 .
- a restaurant reservation application can make reservations for restaurants.
- an internet media player application can stream media (e.g., a song or movie) from the Internet.
- a single native application 204 a can perform more than one function.
- a restaurant reservation application may also allow a user 10 to retrieve information about a restaurant and read user reviews for the restaurant in addition to making reservations.
- an internet media player application may also allow a user 10 to perform searches for digital media, purchase digital media, and generate media playlists.
- the advertisement system 400 may include advertisements in the results associated with each of the native applications 204 a.
- the advertisement system 400 includes an advertisement module 410 in communication with an advertisement data store 420 .
- the profile system 300 may include a profile generation module 350 and a data collection module 380 , both in communication with a user data store 360 .
- the profile system 300 includes an entity data store 362 in communication with the user data store 360 , the profile generation module 350 , and the data collection module 380 .
- the user data store 360 and/or the entity data store 362 and/or advertisement data store 420 may include one or more databases, indices (e.g., inverted indices), tables, files, or other data structures, which may be used to implement the techniques of the present disclosure.
- the profile system 300 is a standalone system, but in some examples, the profile system 300 is part of the advertisement system 400 .
- the data sources 130 may include a variety of different data providers.
- the data sources 130 may include data from application developers 130 a , such as application developers' websites and data feeds provided by developers.
- the data sources 130 may include operators of digital distribution platforms 130 b configured to distribute native applications 204 a to user devices 200 .
- Example digital distribution platforms 130 b include, but are not limited to, the GOOGLE PLAY® digital distribution platform by Google, Inc., the APP STORE) digital distribution platform by Apple, Inc., and WINDOWS PHONE® Store developed by Microsoft Corporation.
- the data sources 130 may also include other websites, such as websites that include web logs 130 c (i.e., blogs), application review websites 130 d , or other websites including data related to applications. Additionally, the data sources 130 may include social networking sites 130 e , such as “FACEBOOK®” by Facebook, Inc. (e.g., Facebook posts) and “TWITTER®” by Twitter Inc. (e.g., text from tweets). Data sources 130 may also include online databases 130 f that include, but are not limited to, data related to movies, television programs, music, and restaurants. Data sources 130 may also include additional types of data sources in addition to the data sources described above. Different data sources 130 may have their own content and update rate.
- social networking sites 130 e such as “FACEBOOK®” by Facebook, Inc. (e.g., Facebook posts) and “TWITTER®” by Twitter Inc. (e.g., text from tweets).
- Data sources 130 may also include online databases 130 f that include, but are not limited to, data related to movies, television
- the profile system 300 or the advertisement system 400 retrieves data from one or more of the data sources 130 .
- the data retrieved from the data sources 130 can include any type of data related to application functionality and/or application states.
- the profile system 300 or the advertisement system 400 generates application state records 330 based on the data retrieved from the data sources 130 .
- a human operator manually generates some data included in the application state records 330 .
- the profile system 300 or the advertisement system 400 may update data included in the application state records 330 over time so that the profile system 300 or the advertisement system 400 provides up-to-date results 220 .
- the profile system 300 includes a processing system 302 that includes a profile generation module 350 and a data collection module 380 .
- the profile system 300 also includes a storage system (i.e., non-transitory storage device) that includes a user data store 360 for storing one or more user profiles 370 .
- the storage system 304 of the profile system 300 includes an entity data store 362 for storing a plurality of entity records 500 . Each entity record 500 includes data related to an entity 501 .
- An entity 501 may be any business or place with a geolocation, a person, or an event (e.g., restaurants, bars, gas stations, supermarkets, movie theaters, doctor offices, parks, and libraries, etc.).
- Each entity record 500 may be associated with one or more subscription tags 376 of the user profile 370 , and allows the system to provide the user 10 with personalized advertisements 431 .
- a user profile record 370 includes a subscription tag 376 to The Detroit News
- an entity 501 associated with the subscription tag 376 may be Detroit or News. Therefore, the system 100 utilizes the entity 501 information associated with the subscription tags 376 provide advertisements that also have similar or the same entities 501 .
- the advertisement system 400 may provide an advertisement result 220 to, for example, subscribe to the “Detroit Press,” which also provides news relating to Detroit.
- the profile generation module 350 generates user profile records 370 and stores the generated user profile records 370 in the user data store 360 .
- a user 10 wants to share usage data of his/her usage of one or more applications installed on the user device 200 .
- the profile generation module 350 (executing on the user device 200 or the in communication with the user device 200 ) generates a user profile record 370 of a user.
- the advertisement system 400 executes an application programming interface (API) for accessing the subscription data; while in others, the user 10 may manually enter the subscription data.
- API application programming interface
- the profile generation module 350 generates a profile record with each user 10 .
- the profile record 370 is associated with one device 200 of a user 10 , while in other examples; the profile record 370 is associated with more than one user device 200 of the same user 10 .
- a user 10 may have at least two of a laptop 200 a , a tablet 200 b , a smart phone 200 c , a wearable computing device 200 d (see FIG. 1 ), and desktop computers 200 e ; therefore, the profile record 370 of a user 10 is associated with all the devices 200 of that user 10 .
- the profile record 370 includes a profile identifier (ID) 372 , user profile data 374 , and user subscription tags 376 (in some examples, the user subscription tags 376 are part of the user profile data 374 ).
- the profile ID 372 uniquely identifies a user 10 associated with the profile record 370 .
- the user profile data 374 may indicate any suitable information relating to the user 10 or the one or more user device(s) 200 .
- User profile data can include a user ID 374 a that uniquely identifies each user 10 , a city/state/country of the user 10 (e.g., location data 374 b ), one or more devices 200 of the user 10 (e.g., device data 374 c ), and applications 204 downloaded by the user 10 on the user device 200 and/or applications 204 installed on the user device 200 installed by the manufacturer of the device 200 and not the user 10 (e.g., application(s) data 374 d ).
- the subscription tags 376 indicate one or more subscription(s) of the user 10 to one or more content feed(s) 142 .
- a subscription tag 376 may be an ordered pair that indicates the application 204 and the content feed 142 .
- a subscription tag 376 may take the form (application, feed) (e.g., (ESPNO, DETROIT LIONS®) or (YOUTUBE®, Funny_stuff).
- the subscription tags 376 may be alphanumeric strings that represent the ordered pair.
- the ordered pairs may be stored in a lookup table that is indexed by the alphanumeric strings in the user data store 360 .
- the subscription tags 376 may be known subscription tags 376 a or unknown subscription tags 376 b .
- Known subscription tags 376 a are subscription tags 376 that have been crawled before, while unknown subscription tags 376 b are subscription tags 376 to content feeds 142 that may have only a few followers and the corresponding data 144 has not been crawled before.
- the profile generation module 350 may obtain the user's subscription data by accessing the application data of the user's installed applications 204 (e.g., native applications 204 a ).
- each subscription tag 376 is associated with one or more entity tag data 377 .
- the entity tag data 377 relates to one or more entities 501 that the profile system 300 determines based on keywords of the subscription tag 376 . For example, if a known subscription tag 376 a is to the DETROIT LIONS NEWS, then one or more entities 501 that the profile system 300 may associate with the known subscription tag 376 a are, but not limited to, “Detroit Sports,” “Detroit News,” “Sports Scores,” . . . etc. Each entity 501 has an associated entity record 500 ( FIGS. 5G and 5H ). Therefore, the entities data tag 377 associated with the subscription tags 376 , allows the advertisement system 400 to provide the user 10 with more specific personalized advertisement 431 .
- the data collection module 380 identifies content feeds 142 for data or document 144 retrieval. In some implementations, the data collection module 380 searches a digital distribution platform 130 b to identify popular applications 204 . For these applications 204 , the data collection module 380 may filter applications 204 that provide content (e.g., news, lifestyle, video streaming, etc.) and may forego other types of applications (e.g., games, productivity, etc.).
- content e.g., news, lifestyle, video streaming, etc.
- other types of applications e.g., games, productivity, etc.
- the data collection module finds the “find website” link in the Play Store CNN Breaking News app page and can access the website of the application 204 .
- the data collection module 380 parses the website of the content provider 140 (e.g., CNN) to find a link to subscribe to a content feed 142 provided by the content provider 140 . Once subscribed to the content feed 142 , the data collection module 380 creates a feed record 390 ( FIG. 5E-5F ) corresponding to the content feed 142 (or RSS feed 142 ). Additionally, the collection module 380 creates one or more entity records 500 ( FIGS. 5G and 5H ) associated with the content feed records 390 .
- the content provider 140 e.g., CNN
- the data collection module 380 creates a feed record 390 ( FIG. 5E-5F ) corresponding to the content feed 142 (or RSS feed 142 ). Additionally, the collection module 380 creates one or more entity records 500 ( FIGS. 5G and 5H ) associated with the content feed records 390 .
- the user data store 360 includes a plurality of different application state records 330 .
- Each application state record 330 may include data related to a function of an application 204 and/or the state of the application 204 resulting from performance of the function.
- An application state record 330 may include an application state identifier (ID) 332 , application state information 334 , an application identifier (ID) 334 a , and one or more access mechanisms 202 , 202 a , 202 b , 202 c used to access functionality provided by an application 204 .
- ID application state identifier
- ID application identifier
- the application state ID 332 may be used to identify the application state record 330 among the other application state records 330 included in the user data store 360 .
- Each application state record 330 may be associated with a feed record 390 having associated documents 144 .
- the application state record 330 may provide access to a document 144 of the content feed 142 associated with the feed record 390 .
- an application state ID 332 is a string of alphabetic, numeric, and/or symbolic characters (e.g., punctuation marks) that uniquely identify a state of an application 204 .
- an application state ID 332 is a unique reference to a state of an application.
- an application state ID 332 can be in the format of a resource identifier.
- the application state ID 332 may be a uniform recourse locator (URL) or an application resource identifier.
- the application state ID 332 may be used by a user device 200 to access a web application or one or more editions of a native application 204 a , respectively.
- an application state ID 332 can map to one or more access mechanisms.
- the application state ID 332 may map to a web resource identifier (e.g., a URL) and/or one or more application resource identifiers.
- a state of an example software application may be accessed via a web application edition and two native application editions (e.g., an edition configured for the ANDROID operating system and an edition configured for the WINDOWS PHONE operating system).
- an application state ID 332 maps to the web resource identifier and the two application resource identifiers.
- An application state ID 332 may have a URL-like structure that utilizes a namespace other than http://, such as “func://”, which indicates that the string is an application state ID 332 .
- an application state ID 332 may take the form of a parameterizable function. For instance, an application state ID 332 may be in the form of “app_id[action(parameter_1, . . .
- an application state ID 332 may be “exampleapp[example_action(abc, xyz)]. Given this application state ID 332 and the referencing schema of the example application, the foregoing application state ID 332 may be used to generate the access mechanisms defined above. Additionally or alternatively, the above example application state ID 332 may map to the access mechanisms defined above.
- an application state ID 332 may map to one or more scripts that access a state of a software application or may be utilized to generate one or more scripts that access a state of the software application. It is noted that some software applications may have a common scheme for accessing all of their respective native application editions. In such scenarios, a single application resource identifier may access multiple application editions.
- the application state ID 332 may include the name “Yelp” along with a description of the application state described in the application state information 334 .
- the application state ID 332 for an application state record 330 that describes the restaurant named “The French Laundry” may be “Yelp—The French Laundry.”
- the application state ID 332 may include a URL using a namespace other than “http://,” such as “func://,” which may indicate that the URL is being used as an application state ID in an application state record 330 .
- the application state information 334 may include data that describes an application state into which an application 204 is set according to the access mechanism(s) 202 in the application state record 330 . Additionally or alternatively, the application state information 334 may include data that describes the function performed according to the access mechanism(s) 202 included in the application state record 330 .
- the application state information 334 can include text, numbers, and symbols that describe the application state.
- the types of data included in the application state information 334 may depend on the type of information associated with the application state and the functionality specified by the application access mechanism 202 a .
- the application state information 334 may include a variety of different types of data, such as structured, semi-structured, and/or unstructured data.
- the application state information 334 may be automatically and/or manually generated based on documents retrieved from the data sources 130 . Moreover, the application state information 334 may be updated so that up-to-date advertisement results 220 can be provided in response to an advertisement request 212 .
- the application state information 334 includes data that is presented to the user 10 by an application 204 when the application 204 is set in the application state defined by the access mechanism(s) 202 .
- the application state information 334 may include data that describes a state of the native application 204 a after the user device 200 has performed the one or more operations indicated in the application access mechanism 202 a .
- the application state record 330 is associated with a shopping application
- the application state information 334 may include data that describes products (e.g., names and prices) that are shown when the shopping application is set to the application state defined by the access mechanism(s) 202 .
- the application state information 334 may include data that describes a song (e.g., name and artist) that is played when the music player application is set to the application state defined by the access mechanism(s) 202 .
- the types of data included in the application state information 334 may depend on the type of information associated with the application state and the functionality defined by the access mechanism(s) 202 .
- the application state record 330 is for an application 204 that provides reviews of restaurants
- the application state information 334 may include information (e.g., text and numbers) related to a restaurant, such as a category of the restaurant, reviews of the restaurant, and a menu for the restaurant.
- the access mechanism(s) 202 may cause the application 204 (e.g., a native application 204 a or a web-browser application 204 b ) to launch and retrieve information for the restaurant.
- the application state information 334 may include information related to a song, such as the name of the song, the artist, lyrics, and listener reviews.
- the access mechanism(s) 202 may cause the application 204 to launch and play the song described in the application state information 334 .
- the profile system 300 and/or the advertisement system 400 may generate application state information 334 included in an application state record 330 in a variety of different ways.
- the profile system 300 and/or the advertisement system 400 retrieves data to be included in the application state information 334 via partnerships with database owners and developers of native applications 204 a .
- the profile system 300 and/or the advertisement system 400 may automatically retrieve the data from online databases 130 f that include, but are not limited to, data related to movies, television programs, music, and restaurants.
- a human operator manually generates some data included in the application state information 334 .
- the profile system 300 and/or the advertisement system 400 may update data included in the application state information 334 over time so that the profile system 300 and/or the advertisement system 400 300 provides up-to-date results 220 .
- the application ID 334 a may be used to identify a native application 204 a associated with the application state record 330 .
- the application ID 334 a may be a string of alphabetic, numeric, and/or symbolic characters (e.g., punctuation marks) that uniquely identifies the associated native application 204 a .
- the application ID 334 a is native application 204 a in human readable form.
- the application ID 334 a may include the name of the application 204 referenced in the access mechanism(s) 202 .
- the application ID 334 a for a restaurant finder application 204 may include the name of the restaurant finder application.
- An application state record 330 including an application access mechanism 202 that causes an application 204 to launch into a default state may include application state information 334 describing the native application 204 a , instead of any particular application state.
- the application state information 334 may include the name of the developer of the application 204 , the publisher of the application 204 , an application identifier (ID) 332 a identifying the application associated with the application state record 330 , keyword 334 b relating to the access mechanism 202 content (e.g., documents 144 ), a category 334 c (e.g., genre) of the application 204 , location data 334 d associated with the application state record 330 or the application providing the application ID 334 a , a description of the application 204 (e.g., a developer's description), and the price of the application 204 , or any other relevant data.
- ID application identifier
- keyword 334 b relating to the access mechanism 202 content (e.g., documents 144 )
- the application state information 334 may also include security or privacy data about the application 204 , battery usage of the application 204 , and bandwidth usage of the application 204 .
- the application state information 334 may also include application statistics.
- Application statistics may refer to numerical data related to a native application 204 a .
- application statistics may include, but are not limited to, a number of downloads, a download rate (e.g., downloads per month), a number of ratings, and a number of reviews.
- the access mechanisms 202 of an application state record 330 are based on or are generated from the feed access mechanism data 334 c , which provides a user 10 access to the feed document 144 .
- an application state record 330 includes multiple different application access mechanisms 202 , 202 a , 202 b , 202 c that include a variety of information.
- the application access mechanism 202 may include edition information that indicates the application edition with which the application access mechanism 202 is compatible.
- the edition information may indicate the operating system 224 with which the application access mechanism 202 is compatible.
- different application access mechanisms 202 may be associated with different editions of a native application 204 a .
- a native application edition (hereinafter “application edition”) refers to a particular implementation or variation of a native application 204 a .
- an application edition may refer to a version of a native application 204 a , such as a version 1.0 of a native application 204 a or a version 2.0 of a native application 204 a .
- an application edition may refer to an implementation of a native application 204 a for a specific platform, such as a specific operating system 224 .
- the different application access mechanisms 202 included in an application state record 330 may cause the corresponding application editions to launch and perform similar functions. Accordingly, the different application access mechanisms 202 included in an application state record 330 may cause the corresponding application editions to be set into similar application states. For example, if the different application access mechanisms 202 reference different editions of an information retrieval application, the different application access mechanisms 202 may cause the corresponding application editions to retrieve similar information. In another example, if the different application access mechanisms 202 reference different editions of an internet music player application, the different application access mechanisms 202 may cause the corresponding application editions to play the same song.
- an application state record 330 for a native application that retrieves restaurant information may include multiple different application access mechanisms 202 for multiple different application editions. Assuming the application state record 330 is associated with a specific Mexican restaurant, the application access mechanisms 202 for the different application editions may cause each application edition to retrieve information for the same specific Mexican restaurant. For example, a first application access mechanism 202 may cause a first application edition (e.g., on a first OS) to retrieve information for the specific Mexican restaurant. A second application access mechanism 202 may cause a second application edition (e.g., on a second OS) to retrieve information for the specific Mexican restaurant.
- the profile system 300 can determine whether to transmit the application access mechanism 202 in the advertisement results 220 based on whether the user device 200 can handle the application access mechanism 202 .
- FIGS. 5E and 5F illustrate exemplary feed records 390 .
- a feed record 390 may indicate a feed identifier (ID) 392 , identifying the content feed 142 .
- the feed record 390 may also include, an application ID 394 a of an application that provides the content feed 142 , a feed access mechanism 394 b , 202 from which the content of the content feed 142 is received (e.g., a URL of the content or RSS feed), access mechanism data 394 c that defines templates, rules, and/or instructions for generating access mechanisms 394 b to access content obtained from the content feed 142 , feed location data 394 d that indicates geographic regions to which the content feed 142 is pertinent, and feed category data 394 e that indicates the different categories of content that are obtained from the content feed 142 (e.g., US News, All News, Sports, Science, Tech, Entertainment, etc.).
- the data collection module 380 while the data collection module 380 is generating feed records 390 , the data collection module 380 also tags the feed record 390 with the location data 394 d .
- the location data 394 d is inherited by the application state records 330 that are generated from the content obtained from the content feed 142 .
- the generated feed geolocation data 394 d allows the system 100 to personalize and localize the feed documents 144 (i.e., the feed contents) to a specific user 10 .
- the data collection module 380 utilizes the subscription tags 376 to identify potential content of the content providers 140 to spider and crawl.
- many content feeds 142 within applications 204 are not readily known.
- YOUTUBE® channels many of which only have few followers who follow the channel.
- the data collection module 380 may utilize subscription tags 376 of the newly discovered content feeds 142 to identify content feeds 142 that may be crawlable.
- the profile generation module 350 verifies whether a subscription tag 376 is known or unknown, and each time the profile generation module 350 identifies an unknown subscription tag 376 , the profile generation module 350 may add the unknown subscription tag to a set of unknown subscription tags 376 .
- the data collection module 380 can utilize the set of unknown subscription tags 376 to determine how to spider and crawl an application. As the data collection module 380 crawls a new application state, the data collection module 380 creates an application state record 330 ( FIGS. 5B and 5C ) or a feed records 390 ( FIGS. 5D and 5E ) corresponding to the newly crawled state. If the application state belongs to a content feed 142 , the application record 330 is tagged with a subscription tag 376 . In this way, the application state record 330 indicates that the content document 144 obtained at the particular application state is accessible through the content feed 142 .
- the data collection module 380 periodically checks the content feed 142 for any new data or contents or documents 144 (e.g., every few minutes, hours, or days). The data collection module 380 periodically checks the feeds 142 for updated information for each content feed 142 it is subscribed to. When the data collection module 380 detects new content or feed documents 144 , the data collection module 380 crawls the new content (e.g., a new article) to identify data, such as the title, keywords, any access mechanisms 202 that are used (at the very least the data collection module 380 can identify the URL from which the content was obtained).
- new content e.g., a new article
- the template for generating application access mechanisms includes an article number field
- the data collection module 380 also generates application state records 330 for applications that do not have content feeds 142 . In these implementations, the data collection module 380 generates an application state ID 332 configured to generate one or more access mechanisms 202 for accessing the “other application.” First, the system 100 determines which applications 204 for which the system 100 should generate the application state records 330 .
- the system 100 can associate TWITTER® or FLIPBOARD® to CNN®, THE NEW YORK TIMES®, FOX NEWS®, etc., thereby indicating that when the system 100 finds new content or documents 144 on CNN® or THE NEW YORK TIMES® then the system 100 may also generate application state records 330 for TWITTER® or FLIPBOARD®.
- the system 100 uses a lookup table (not shown) to identify other applications (not initially identified) or the system 100 may include the other applications hard coded into the feed record 390 .
- the system 100 i.e., the data collection module 380
- the system 100 can then obtain access mechanism data 394 c for the other application and generate an application state ID 332 and/or access mechanisms 202 (application resource identifier or script) based on the content or documents 144 of the crawled application. For example, we can insert the title of the application into a template for generating access mechanisms 202 for the other application (see Twitter example above).
- the data collection module 380 can then generate an application state record 330 using the generated application state ID 332 and/or access mechanism 202 .
- the data collection module 380 can utilize some of the keywords extracted from the crawled content or documents 144 to populate the keywords of the new application state record 330 .
- the entity data store 362 includes a plurality of different entity records 500 .
- Each entity record 500 may include data related to an entity 501 .
- the entity 501 can be any business or place with a geolocation or person or event (e.g., restaurants, bars, gas stations, supermarkets, movie theaters, doctor offices, sports team, movie star, celebrity, politician, parks, and libraries, etc.).
- An entity record 500 may include an entity identifier or name (ID) 502 , entity location data 506 (e.g., geolocation data), an entity category 508 (and optionally one or more sub-categories 508 a - 508 n ), entity information 504 , and associated entity subscription tags 510 .
- ID entity identifier or name
- the entity ID 502 may be used to identify the entity record 500 among the other entity records 500 included in the entity data store 362 .
- the entity ID 502 may be a string of alphabetic, numeric, and/or symbolic characters (e.g., punctuation marks) that uniquely identifies the associated entity record 500 .
- the entity ID 502 describes the entity 501 in human readable form.
- the entity ID 502 may include the name string of the entity 501 or a human readable identifying the entity 501 .
- the entity ID 502 includes a string in the format of a uniform resource locator (URL).
- URL uniform resource locator
- the entity ID 502 for the entity record 500 can be “Qdoba.”
- the entity ID 502 may include the following string “Qdoba, 42967 Woodward Avenue. Bloomfield Township, MI 48304” to uniquely identify the entity record 500 .
- Other unique identifiers are possible as well, such a store number.
- the entity information 504 may include any information about the entity 501 , such as text (e.g., description, reviews) and numbers (e.g., number of reviews). This information may even be redundant to other information contained in the entity record 500 , but optionally structured for display, for example.
- the entity information 504 may include a variety of different types of data, such as structured, semi-structured, and/or unstructured data. Moreover, the entity information 504 may be automatically and/or manually generated based on documents retrieved from the data sources 130 .
- the entity information 504 includes data that is presented to the user 10 by an application 204 when the application 204 is set in the application state defined by the access mechanism(s) 202 .
- the entity information 504 may be used in conjunction with the application state information 334 of an application state record 330 to describe a state of the native application 204 a after the user device 200 has performed the one or more operations indicated in the application access mechanism 202 a.
- the entity location data 506 may include data that describes a location of the entity 501 . This data may include a geolocation (e.g., latitude and longitude coordinates), a street address, or any information that can be used to identify the location of the entity 501 within a geographical area. In some implementations, the entity location data 506 defines a geo-location associated with the application state record 330 .
- the entity category 508 provides a classification or grouping of the entity 501 . Moreover, the entity category can have one or more sub-categories to further classify the entity 501 .
- the entity record 500 could have an entity category 508 of “restaurant” and a sub-category 508 a a type of cuisine, such as “French cuisine” or “contemporary.” Any number of sub-categories 508 a - 508 n may be assigned to classify the entity 501 for use during a search.
- the associated entity subscription tags 376 , 510 include subscription tags 376 relating to the entity 502 .
- entity 501 is DETROIT LIONS®
- associated subscription tags 510 include any feed content 144 that mentions or includes the DETROIT LIONS®, which may include, but not limited to, subscription tags 376 , 510 to sports news, scores, and events relating to the DETROIT LIONS®.
- the subscription tags 376 , 510 are organized based on the entity categories 508 or sub-categories 508 a - 508 n . Therefore, the advertisement module 430 may determine the subscription tags 376 , 510 associated with the entity 501 based on the categories 508 and/or sub-categories 508 .
- the advertisement system 400 is a standalone system in communication with the profile system 300 ; while in other examples, the advertisement system 400 and the profile system 300 are one system.
- the advertisement system 400 includes an advertisement processing system 402 in communication with an advertisement storage system 404 .
- the processing system 402 includes an advertisement module 410
- the storage system 404 includes an advertisement record data store 420 for storing advertisement records 430 , and optionally the user data store 360 .
- the advertisement data store 420 stores advertisement records 530 that include parameters 538 , which may be used to determine when and to which user 10 to send the advertisement 431 associated with the advertisement record 530 .
- the advertisement system 400 delivers targeted/personalized advertisements 431 to a user 10 based on the user profile record 370 (e.g., subscription data 376 ) associated with the user 10 and the advertisement record 530 , which enhances targeted advertisement.
- the advertisement system 400 may receive an advertisement request 212 from the user device 200 .
- the user 10 may be logged into a third party application via the user GUI 240 of the user device 200 and the third party application may be configured to transmit an advertisement request 212 upon switching states within the third party application.
- the advertisement request 212 may trigger an internal advertisement request to the advertisement system 400 .
- the application 204 is a restaurant review application that lists restaurants within a certain distance of the user device 200 , a selection by the user 10 of one of the restaurants in a list of restaurants might trigger an advertisement request 212 to the advertisement system 400 .
- the advertisement system 400 determines one or more advertisements 431 (e.g., an advertisement record 430 ) to transmit to the user device 200 .
- third party advertisers agree to pay a certain amount per a specific action (e.g., impression, click, or purchase) of the user's interaction with the displayed advertisement 230 .
- the third party advertisers select one or more elements of the profile record 370 , application state record 330 , feed record 390 , or entity record 500 that trigger an advertisement result 220 to be delivered to the user device 200 .
- a third party advertiser may select the (YOUTUBE®, ROLLING STONES®) subscription tag 376 to trigger an advertisement for an advertisement to a third party music application 204 .
- an advertiser may select a (ESPN®, Detroit Tigers) subscription tag 376 to trigger an advertisement for a third party aftermarket ticket service.
- a third party advertiser may select (Detroit NEWS, LIONS) a user device location being within a threshold distance of Detroit to trigger an advertisement 431 for LIONS game ticket sales.
- the targeting parameters 538 associated with each advertisement record 530 of an advertisement 431 may include one or more elements (e.g., user device location) that when satisfied triggers a specific advertisement 431 to be sent to the user device 200 .
- the advertisers may select other constraints to limit when the advertisements 230 are shown (e.g., geo-location, device type, etc.). Therefore, more targeting parameters 538 provide for a more targeted advertisement 431 to the user 10 , where the advertisements 431 may have higher relevance.
- the third party advertiser may want an advertisement 431 to be shown to users 10 who live in the Detroit metropolitan area or in cities where the Detroit Tigers may be playing in the coming month. In this way, the advertisements 431 are more likely to result in a sale, as opposed to showing the advertisement to a random Tigers fan in Anchorage Ak.
- the advertisement module 410 After the advertisement module 410 determines which advertisement(s) 431 to send to the requesting user device 200 , the advertisement module 410 generates advertisement data 232 associated with the advertisement 431 that contains data and/or instructions that the user device 200 can use to render the advertisement 431 ( FIG. 3B ) on the user device GUI 240 . As shown, the advertisement data 232 is included in the advertisement results 220 sent to the user device 200 . In some examples, the advertisement data 232 includes pictures or special characters relating to the advertisement 431 .
- An advertiser may generally refer to any party that advertises a product, event, or may provide a message to a user 10 .
- the advertiser may advertise its own goods and services or the goods and services of a related party.
- An advertiser can advertise, for example, a business, products, services, media content, or any other suitable item of commerce referenced in an application 204 .
- An application 204 including an advertisement application 216 provides a medium for the advertisers to advertise websites or other services.
- an advertiser registers one or more keywords and restrictions and advertisement data with the system 100 .
- the advertisement module 410 generates one or more targeting parameters 538 based on the keywords and restrictions that the advertiser wants to trigger the advertisement 431 to be sent to the user 10 .
- the advertisement system 400 sends the corresponding advertisement 431 to the user device 200 .
- the advertiser provides multiple advertisement data versions associated with one advertisement 431 , where each advertisement data version satisfies a variation of a set of rules. For example, two users 10 having user profile records 370 that satisfy the targeting parameters 538 associated with an advertisement 431 except for the age of each user 10 associated with the profile record 370 . In this instance, the advertiser may want to send an advertisement having a different color based on the age of the users 10 .
- the advertisement system 400 sells keywords to advertisers.
- the keywords are used to generate the targeting parameters 538 .
- the keyword may be sold to the advertisers according to different advertising schemes, including cost per number of impressions (e.g., number of views), cost per click-through, and cost per action.
- the advertiser agrees to pay a specified amount when the advertisement 230 is displayed a specified number of times on a page of the GUI 240 in response to a relevant advertisement request 212 .
- the cost per click-through model the advertiser agrees to a pay a specified amount each time a user 10 clicks on the advertisement 431 displayed in response to a relevant advertisement request 212 .
- the advertiser agrees to pay a specified amount each time a user 10 performs a specific action in response to the advertisement 230 being displayed. For example, the advertiser can agree to pay the specified amount when a user 10 clicks on a hyperlink in the displayed advertisement 230 and makes a purchase from the website associated with the displayed advertisement 230 .
- the advertisement system 400 generates one or more advertisement results 220 for the user 10 .
- the advertisement system 400 transmits (e.g., serves) the selected advertisement results 220 to the user device 200 of the user 10 .
- the user device 200 associated with the user 10 may display on the display 201 of the user device 200 the advertisement 431 as a displayed advertisement 230 .
- the advertisement results 220 may be part of results of the other application 204 .
- the search application 204 may provide its search results to incorporate advertisements 431 within the search results.
- the user 10 may visually differentiate between the results provided by the application 204 and the advertisement results 220 .
- the advertisement 431 may include information indicating that the advertisement 431 is a sponsored result.
- the displayed advertisement 230 may include text indicating that the sponsored application is a “Sponsored Result” an “Advertisement” or an “AD,” as shown in icon 238 .
- the advertisement system 400 may include the advertisement data store 420 used for storing advertisement records 430 , which the advertisement system 400 uses to generate advertisement results 220 to send to a user device 200 .
- the advertisement data store 420 includes data associated with a plurality of different stored advertisement 430 .
- the data associated with a stored advertisement 430 may be referred to as “an advertisement record” (e.g., advertisement record 430 of FIGS. 7A and 7B ).
- the advertisement data store 420 may include a plurality of advertisement records 430 each including data for a different advertisement 431 .
- the advertisement records 430 may be generated by advertisers (using advertiser devices), by advertisement agencies, or by providers of any of the search and advertisement generation functionalities described above (i.e., by providers of one or more of the application 204 that incorporates the advertising application 216 ).
- An advertisement 431 may include an application advertisement (e.g., advertisement to download a restaurant review application), an entity advertisement (e.g., advertisement that includes a coupon for a restaurant, where the restaurant is the entity), or goods advertisement (e.g., an advertisement to buy a purse that is discounted).
- an advertisement record 430 may include a variety of different types of data related to an advertisement 431 .
- An advertisement record 430 may include data that identifies the advertisement 431 .
- the advertisement record 430 may include an advertisement name and/or advertisement identifier (i.e., an “advertisement ID”) 532 that identifies the advertisement record 430 among the different advertisement records 430 in the advertisement data store 420 .
- the advertisement record 430 may also include subscription data 534 .
- An advertisement record 430 may also include a sponsored application name and/or sponsored application ID that identifies a sponsored application and/or a business associated with the advertisement record 430 .
- a sponsored application 204 may be an application 204 for which an advertiser has paid to have the application 204 displayed to a user 10 on the user device display 201 .
- an advertiser may pay for a sponsored application 204 to be advertised along with other applications that are being displayed for the user 10 .
- the advertisement record 430 includes advertisement content or data 232 , 536 used to generate a displayed advertisement 230 for the sponsored application 204 of the advertisement record 430 .
- advertisement content 232 , 536 may include text, images (e.g., icons), animations, and videos associated with the sponsored application 204 .
- the advertisement 431 (e.g., text and images) for a sponsored application 204 may be displayed along with other results or information that is being displayed to the user 10 .
- the advertisement record 430 may also include advertisement parameters 538 .
- Advertisement parameters 538 may define budget parameters 592 associated with advertising the sponsored application 204 .
- Advertisement parameters 538 may also define timing parameters 594 associated with advertising the sponsored application 204 , such as start and stop dates for advertising the sponsored application 204 and/or time(s) of day during which the sponsored application 204 is to be advertised.
- advertisement parameters 538 may specify user parameters associated with advertising the sponsored application 204 , such as, e.g., one or more search query languages for which the sponsored application 204 is to be advertised and/or the number of times a particular advertisement is to be displayed to each user 10 . Other parameters are possible as well.
- Advertisement parameters 538 may also include a variety of different types of targeting parameters 580 .
- a targeting parameter 580 may refer to a condition that should be satisfied before the advertisement system 400 generates an advertisement 431 .
- the advertisement system 400 may use targeting parameters 580 in an advertisement record 430 to determine whether to generate an advertisement 431 for the sponsored application 204 , the goods, or services associated with the advertisement record 430 .
- the advertisement system 400 may generate an advertisement 431 for the sponsored application 204 , the goods, or services listed in an advertisement record 430 when one or more targeting parameters 580 of the advertisement record 430 are satisfied.
- Example types of targeting parameters 580 may include, but are not limited to, keyword targeting parameters 582 and platform targeting parameters 584 .
- Additional advertisement (e.g., target) parameters 538 may include, e.g., time-slotting, day-parting, category, geographical, contextual, demographic, behavioral, platform, device, and partner parameters.
- the advertisement system 400 generates an advertisement 431 for a sponsored application 204 in one or more of the following instances: 1) during one or more designated time slots; 2) on one or more given days or during one or more specified portions thereof; 3) for one or more particular categories of applications 204 on the user device 200 ; 4) for users 10 located in one or more geographic locations or regions; 5) based on context (e.g., for one or more states of the user's computing device 200 , the application 204 that includes the advertisement application 216 ; 6) for one or more specified user types or groups; 7) when one or more user behaviors are detected (e.g., when the user 10 interacts with the user's computing device 200 in a particular manner); 8) for one or more platform (e.g., operating system) and device types associated with the user
- platform e
- An advertisement record 430 may include a targeting parameter function 581 .
- a targeting parameter function 581 may define which of the targeting parameters 580 of the advertisement record 430 should be satisfied in order to generate an advertisement 431 .
- the targeting parameter function 581 includes a single targeting parameter 580 .
- the advertisement system 400 may generate an advertisement 431 for a sponsored application 204 based on satisfaction of a single targeting parameter 580 , such as a similarity targeting parameter 581 or a keyword targeting parameter 584 .
- the targeting parameter function 581 includes multiple different targeting parameters 580 (e.g., advertising parameters).
- the advertisement system 400 may generate an advertisement 431 for a sponsored application 204 based on satisfaction of multiple advertising parameters 538 , such as one or more similarity targeting parameters 581 , one or more keyword targeting parameters 582 , and a platform targeting parameter 584 .
- multiple advertising parameters 538 such as one or more similarity targeting parameters 581 , one or more keyword targeting parameters 582 , and a platform targeting parameter 584 .
- the targeting parameter function 581 may include a Boolean function that includes the multiple targeting parameters 580 .
- the user 10 executes an application 204 that includes the advertisement application 216 causing the user device 200 to send an advertisement request 212 to the advertisement system 400 .
- the application 204 is a search application, which allows the user 10 to select a search button 215 , after entering a search query in the text box 214 , which triggers the advertisement system 400 to initiate a search/analysis of which advertisement results 220 to select for sending to the user device 200 .
- the system executes an incremental search, e.g., an incremental advertisement request 212 .
- Incremental advertisement requests 212 refer to advertisement requests 212 that are updated each time the user 10 enters a new character in the text box 214 .
- the advertisement application 216 monitors each character entry and determines a set of possible query strings, as well as a probability that the possible query string is the intended string.
- TRIE also known as a digital tree, radix tree, or prefix tree
- the keys in a TRIE are usually a string.
- Other methods for generating query strings are possible as well.
- the incremental advertisement request 212 is only the partial query string entered by the user 10 .
- the advertisement wrapper 210 may include additional data along with the advertisement request 212 .
- the advertisement wrapper 210 may include device location data 218 (e.g., geo-location) that indicates the location of the user device 200 , such as latitude and longitude coordinates.
- the user device 200 may include a global positioning system (GPS) receiver that generates the geo-location data 218 transmitted in the advertisement wrapper 210 .
- GPS global positioning system
- the advertisement wrapper 210 may also include an IP address 228 , which the search module 310 may use to determine the location of the user device 200 .
- the advertisement wrapper 210 also includes additional data, including, but not limited to, platform data 222 (e.g., version of the operating system 224 , device type, and web-browser version), an identity of a user 10 of the user device 200 (e.g., a username), partner specific data, and other data.
- the advertisement wrapper 210 includes installed application data that includes applications 204 installed on the user device 200 .
- the advertisement wrapper 210 includes information that the profile generation module 350 used to update the user profile record 370 .
- the advertisement system 400 receives an advertisement request 212 and outputs application state identifiers (IDs) 332 (or application state records 330 ) that point to application states or documents 144 (i.e., RSS documents 144 included in the RSS feeds 142 having near-real time information) that includes the selected advertisement 431 .
- IDs application state identifiers
- Each application state ID 332 uniquely identifies a state of an application 204 , and provides a template or the parameters to uniquely identify one or more access mechanisms accessing a state of an application (e.g., different OS may use different access mechanisms to assess a state of an application).
- the application state IDs 332 include a Uniform Resource Locator (URL) referencing a functional state of an application 204 .
- URL Uniform Resource Locator
- the application state IDs may include another locator having a different form, e.g., func://exampleapp/param1¶m2, which includes the parameters (param1 and param2) that are used to generate the access mechanisms 202 .
- the advertisement system 400 receives an advertisement wrapper 210 and generates personalized/targeted advertisement results 220 based on data included in a storage system 404 of the advertisement system 400 .
- the advertisement system 400 receives an advertisement wrapper 210 from the user device 200 and performs a search for advertisement records 530 in the storage system 404 based on data included in the advertisement wrapper 210 , such as the advertisement request 212 .
- the user device 200 may generate user selectable links 234 , 236 based on the received advertisement results 220 (e.g., links 234 , 236 of FIG. 1 ).
- Each user selectable link 234 , 236 displayed to the user 10 may include an access mechanism 202 .
- An application link 236 allows the user 10 to access the application 204
- an advertisement link 234 allows the user 10 to access the advertisement 431 associated with the displayed text (i.e., link 234 ), using the application 204 associated with the application link 236 .
- the user 10 may select a user selectable link 234 , 236 on the user device 200 by interacting with the link 234 , 236 (e.g., touching or clicking the link).
- the user device 200 may launch a corresponding software application 204 (e.g., a native application 204 a or a web-browser application 204 b ) referenced by the access mechanism 202 and perform one or more operations indicated in the access mechanism 202 .
- a corresponding software application 204 e.g., a native application 204 a or a web-browser application 204 b
- Access mechanisms 202 may include at least one of a native application access mechanism 202 a (hereinafter “application access mechanism”), a web access mechanism 202 b , and an application download mechanism 202 c .
- the user device 200 may use the access mechanisms 202 to access functionality of applications 204 .
- the user 10 may select a user selectable link 234 , 236 including an access mechanism 202 in order to access functionality of an application 204 indicated in the user selectable link 234 , 236 .
- the search module 310 may transmit one or more application access mechanisms 202 a , one or more web access mechanisms 202 b , and one or more application download mechanisms 202 c to the user device 200 in the advertisement results 220 .
- An application access mechanism 202 a may be a string that includes a reference to a native application 204 a and indicates one or more operations for the user device 200 to perform. If a user 10 selects a user selectable link 234 , 236 including an application access mechanism 202 a , the user device 200 may launch the native application 204 a referenced in the application access mechanism 202 a and perform the one or more operations indicated in the application access mechanism 202 a.
- An application access mechanism 202 a includes data that the user device 200 can use to access functionality provided by a native application 204 a .
- an application access mechanism 202 a can include data that causes the user device 200 to launch a native application 204 a and perform a function associated with the native application 204 a .
- Performance of a function according to the access mechanism 202 may set the native application 204 a into a specified state. Accordingly, the process of launching a native application 204 a and performing a function according to an application access mechanism 202 a may be referred to herein as launching the native application 204 a and setting the native application 204 a into a state that is specified by the application access mechanism 202 a .
- an application access mechanism 202 a for a restaurant reservation application can include data that causes the user device 200 to launch the restaurant reservation application and assist in making a reservation at a restaurant.
- the restaurant reservation application may be set in a state that displays reservation information to the user 10 , such as a reservation time, a description of the restaurant, and user reviews.
- an application access mechanism 202 a for an internet media player application can include data that causes the user device 200 to launch the internet media player application and stream media from the Internet.
- the internet media player application may be set in a state that displays information regarding the media (e.g., music) being streamed, such as a song name, an artist, or an album name.
- Application access mechanisms 202 a may have various different formats and content. The format and content of an application access mechanism 202 a may depend on the native application 204 a with which the application access mechanism 202 is associated and the operations that are to be performed by the native application 204 a in response to selection of the application access mechanism 202 a .
- an application access mechanism 202 a for an internet music player application may differ from an application access mechanism 202 a for a shopping application.
- An application access mechanism 202 a for an internet music player application may include references to musical artists, songs, and albums, for example.
- the application access mechanism 202 a for an internet music player application may also reference operations, such as randomizing a list of songs and playing a song or album.
- An application access mechanism 202 a for a shopping application may include references to different products that are for sale.
- the application access mechanism 202 a for the shopping application may also include references to one or more operations, such as adding products to a shopping cart and proceeding to a checkout.
- FIG. 8 illustrates an example method 800 for receiving subscription data from a user device 200 and determining if the subscription tags 376 of a generated user profile record 370 are known tags 376 a or unknown tags 376 b .
- the profile system 300 receives subscription data 229 of a user 10 from a user device 200 .
- the profile system 300 i.e., data collection module 380
- the collection module 380 updates a user profile, i.e., profile record 370 , with the one or more received subscription tags 376 .
- the collection module 380 determines if any of the subscription tags 376 are unknown subscription tags 376 b . If there are unknown subscription tags 376 b , then at block 810 the collection module 380 adds the unknown tags 376 b to a set of ‘spidering tags’ for which the collection module 380 will crawl and spider the web to collect.
- FIG. 9 is a schematic view illustrating an example method 900 for receiving an advertisement request and generating advertisements.
- the processing system 402 of the advertisement system 400 receives an advertisement request from a user device 200 , and at block 904 , retrieves a user profile record 370 of the user 10 of the user device 200 .
- the processing system 402 may retrieve the user profile record 370 from the data store 360 using the profile ID 372 of the user 10 .
- the processing system 402 at block 906 , identifies subscription tags 376 contained in the user profile record 370 , and at block 908 , identifies one or more advertisement records 430 based on the subscription tags 376 .
- the advertisement module 410 of the processing system 402 may identify the one or more advertisement records 430 within the advertisement record data store 420 using the subscription tags 376 . Then, at block 910 , the processing system 402 generates one or more advertisements 238 based on the one or more advertisement records 430 and provides the advertisements 238 to the user device 200 .
- the user device 200 includes a processing device 203 (also referred to as a processor) and non-transitory memory 206 in communication with the processor 203 .
- the user device 200 may include a graphical user interface (GUI) 240 of an application 204 that includes the advertisement application 216 running on the user device 200 (e.g., executing on the processor 203 ).
- the GUI 240 displays a list 231 of displayed advertisement results 230 (user-selectable links) based on the advertisement requests 212 from the user device 200 .
- the processing device 203 executes one or more applications, including but not limited to an advertisement application 216 , native applications 204 , 204 a and web browser applications 204 , 204 b .
- the user device 200 may run an operating system 224 while executing one or more applications 204 , 216 .
- the advertisement system 400 may transmit data (e.g., advertisement data 232 , such as text and/or images), which may be used by the user device 200 to generate user selectable links 234 , 236 from the advertisement results 220 .
- a link 234 , 236 may include text and/or images that the user 10 may select (e.g., touch) via a user interface 240 displayed on the screen 201 (e.g., a display or touch screen) of the user device 200 .
- Each user selectable link 234 , 236 may be associated with an application access mechanism 202 a such that when the user 10 selects a link 234 , 236 , the user device 200 launches the native application 204 a referenced in the application access mechanism 202 a and performs the one or more operations indicated in the application access mechanism 202 a .
- the text and/or images of a link 234 , 236 displayed to the user 10 may indicate the operations that will be performed in response to selection of the link 234 , 236 .
- the text and/or images may identify the music application that will be launched by the user device 200 and the song that will be played by the music playing application when the user 10 selects the link 234 , 236 .
- the link 234 is to an advertisement 431
- the link 234 will display text associated with the advertisement, and the link 234 will launch an application 204 that allows the user 10 to view the advertisement.
- the user 10 may select a link 234 , 236 to cause the user device 200 to launch the native application 204 a identified in the link 234 , 236 and perform one or more operations according to the application access mechanism 202 a associated with the link 234 , 236 .
- the user device 200 launches a native application 204 a and sets the native application 204 a into a state defined by the application access mechanism 202 a associated with the link.
- a state of a native application 204 a may refer to the operations and/or the resulting outcome of the native application 204 a in response to selection of a link 234 , 236 .
- a state to which the native application is set may also be referred to herein as an “application state.”
- An application state specified by an application access mechanism 202 a may depend on the functionality provided by the native application 204 a .
- the native application 204 a can be set into a state in which the native application 204 a retrieves information from the Internet and displays information to the user 10 .
- the native application 204 a can be set into a state in which the native application 204 a is playing a song or a movie from the Internet.
- the native application 204 a can be set into a state in which the native application 204 a displays available restaurant reservations to the user 10 .
- a web access mechanism 202 b may include a resource identifier that includes a reference to a web resource (e.g., a page of a web application/website).
- a web access mechanism 202 b may include a uniform resource locator (URL) (i.e., a web address) used with hypertext transfer protocol (HTTP).
- URL uniform resource locator
- HTTP hypertext transfer protocol
- a user 10 selects a user selectable link 234 , 236 including a web access mechanism 202 b
- the user device 200 may launch a corresponding web-browser application 204 b and access a state (e.g., a page) of a web application/website.
- web access mechanisms 202 b include URLs for mobile-optimized sites and/or full sites.
- the web access mechanism 202 b included in an application state record 330 may be used by a web browser to access a web resource that includes similar information and/or performs similar functions as would be performed by a native application 204 a that receives an application access mechanism 202 a of the application state record 330 .
- the web access mechanism 202 b of an application state record 330 may direct the web-browser application 204 b of the user device 200 to a web version of the native application 204 a referenced in the application access mechanisms 202 a of the application state record 330 .
- the web access mechanism 202 b may direct the web-browser application 204 b of the user device 200 to a web page entry for the specific Mexican restaurant.
- FIGS. 11A-11C illustrate the different types of advertisement results 220 that may be presented to different users 10 based on the native applications 204 a that each user 10 has installed on his/her user device 200 and the user profile record 370 associated with each user device 200 .
- the user 10 may have two sports news applications 204 (e.g., Sports News A and Sports News B) and a News application (e.g., “Bay News”) installed on the user device 200 .
- the displayed list 231 of advertisement results 230 includes displayed results 230 , 230 a - c , where each displayed advertisement result 230 includes first and second user selectable links 234 , 236 .
- the advertisement system 400 considers the user profile 370 of the user 10 , including the user subscriptions tags 376 corresponding to an entity tag data 377 . Assuming that the user profile 370 indicates that the user 10 is located in the San Jose area and that the user 10 is a big fan of the soccer team ‘Earthquakes’, the advertisement system 400 may determine which advertisement 431 is associated with an advertisement record 530 that includes advertising parameters 538 satisfied by the user profile 370 . The advertisement system 400 may select the advertisement results 220 (i.e., displayed results 230 ) relating to the purchase of tickets for a game due to satisfying the advertising parameters 538 of a ticketing advertisement 431 that sells game tickets.
- the advertisement results 220 i.e., displayed results 230
- the advertising parameters 538 may include the user location, the applications downloaded on the user device 200 , entity tag data 377 of the user subscription tags 376 , or any other parameters of the user profile record 370 that the advertiser selects.
- the displayed advertisement results 230 include a first user-selectable link 236 that allows the user 10 to open the application 204 associated with the advertisement result 220 ; while a second user-selectable link 234 provides the user 10 with a link to the advertisement 431 related to the application 204 associated with the advertisement result 220 .
- the first displayed advertisement 230 a provides a first application link 236 a to the ‘Sports News A’ application and a second content link 234 a that provides the user 10 with an advertisement link to purchase tickets for an upcoming game.
- the second displayed advertisement 230 b includes a first application link 236 b to the ‘Sports News B’ application, and a second content link 234 b that provides the user 10 with a different ticketing service for the Earthquakes Game.
- the third displayed advertisement 230 c includes a first application link 236 c to the ‘Bay News’ application, and a second content link 234 c that provides the user 10 with an article in the Bay News about the Earthquakes team (in this case that the Earthquakes team is trading a starting player), which may be an advertisement article 431 .
- the second user-selectable links 234 are associated with applications previously installed on the user device 200 .
- the advertisement module 410 may be restricted to providing advertisements associated with applications 204 previously installed on the user device 200 .
- the user 10 has BookReader application(s) 204 and a news application 204 installed on the user device 200 .
- the system 100 may have previously collected content feeds (e.g., feed documents 144 ) from the BookReader application that are for a book called “Earthquakes Soccer History” and “Soccer History” and the system 100 may have collected from the Bay News application an article (e.g., a document 144 ) about the Earthquakes soccer team in San Jose.
- the displayed advertisement results 230 include three displayed advertisement results 230 .
- a first displayed advertisement result 230 a includes a first application link 236 a to the BookReader application, while a second content link 234 a provides the user 10 with a link to purchase a copy of the book Earthquake Soccer History.
- the second displayed advertisement result 230 b includes a first application link 236 a to the BookReader application 204 , and a second content link 234 b provides the user 10 with a link to download a copy of Soccer History on BookReader.
- the third displayed result 230 c includes a first application link 236 c to the ‘Bay News’ application, and a second content link 234 c that provides the user 10 with an article in the Bay News about the Earthquakes team (in this case that the Earthquakes team is trading a starting player).
- the advertisement results 230 relate to soccer, because the user profile 370 , including its subscription tags 376 and respective entity tag data 377 , indicate that the user 10 is a soccer fan, and therefore the advertisement 431 selection relate to soccer (in addition to satisfying the advertisement parameters 538 ).
- FIG. 12 illustrates a method 1200 for personalizing deep search results using subscription data 534 .
- the method 1200 includes receiving, at the computing device, one or more user permissions to access one or more applications 204 installed on a user device 200 .
- the method 1200 includes generating, at the computing device, a user profile record 370 associated with the user device 200 .
- the user profile record 370 includes user profile data including a device location 218 , device data defining at least one of a device operating system 224 , and a list of applications 204 installed on the user device 200 .
- the user profile record 370 further includes subscription tags 376 defining one or more user subscriptions to application access mechanisms 202 .
- the method 1200 further includes receiving, at the computing device from the user device 200 , usage data of one or more applications 204 installed on the user device 200 .
- the method 1200 includes receiving, at the computing device from the user device 200 , an advertising request including an application state.
- the method 1200 includes identifying, at the computing device, one or more advertisements 238 based on the subscription tags 376 .
- the method 1200 includes transmitting to the user device 200 an identified advertisement 431 in response to a user selection of a subscription tag 376 .
- Each advertisement 431 may define advertisement parameters 538 including one or more of access mechanisms 202 , advertisement subscription 534 , and/or keyword parameters 582 .
- the method 1200 may further include transmitting to the user device 200 an identified advertisement 431 when a user subscription tags 376 and the advertisement subscriptions 534 have a threshold similarity value.
- FIG. 13 illustrates a second method 1300 for personalizing advertisements using subscription data.
- the method 1300 includes receiving, at a computing device (e.g., advertisement system 500 ), usage data (e.g., subscription data 229 and device data that is used to generate the user profile record 370 ) of a user 10 .
- the method 1300 includes and receiving advertisement parameters 538 for one or more advertisements 431 .
- the usage data includes device usage data (e.g., user profile data 374 ) associated with a user device 200 of the corresponding user 10 and subscription usage data (e.g., subscription tags 376 ) associated with one or more applications 204 installed on the user device 200 .
- device usage data e.g., user profile data 374
- subscription usage data e.g., subscription tags 376
- the method 1300 includes determining whether any of the advertisement parameters 538 are satisfied by the usage data (or the profile record 370 ) of the user 10 .
- the method 1300 includes outputting, to the user device 200 of the user 10 , the advertisement 431 (e.g., an advertisement result 220 ) corresponding to the satisfied advertisement parameter.
- the method 1300 includes receiving an advertisement request 212 from the user device 200 for an advertisement.
- the advertisement request 212 is sent from the user device 200 based on a trigger from a software application executing on the user device 200 .
- FIG. 14 illustrates a method 1400 for receiving personalized advertisement search results.
- the method includes sending, from a user device 200 to an advertisement system 500 , usage data of a user 10 .
- the usage data includes device usage data (e.g., user profile data 374 ) associated with the user device 200 and subscription usage data (e.g., subscription tags 376 ) associated with one or more applications installed on the user device 200 .
- the subscription usage data 376 defines one or more subscription content feeds 376 . Each subscription content feed 376 is associated with an application installed on the user device.
- the method 1404 further includes sending an advertisement request 212 from the user device 200 to the advertisement system 400 .
- the method 1400 includes receiving one or more advertisements results 220 each associated with an advertisement 431 , transmitted from the advertisement system 400 .
- Each advertisement 431 includes advertisement data 232 and an advertisement access mechanism 202 that has a reference to a corresponding application installed on the user device 200 .
- the advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement 431 .
- the advertisement 431 has one or more advertisement parameters 538 that are satisfied by the usage data of the user 10 .
- the method 1400 further includes displaying, on a display 201 in communication with the user device 200 , a graphical user interface 240 including the one or more advertisements 431 as displayed advertisement results 230 .
- Each advertisement includes a user selectable link 234 associated with the corresponding advertisement access mechanism 202 .
- the advertisement request 212 sent from the user device 200 is based on a trigger from a software application executing on the user device 200 .
- the device usage data may include at least one of a device location 374 b , a device operating system 374 c , or a list of the one or more applications 374 d installed on the corresponding user device 200 .
- the subscription data 376 may include one or more subscription tags 376 , 376 a , 376 b to content access mechanisms. Each subscription tag 376 is associated with one of the one or more applications installed on the user device 200 . Each subscription tag associated with one or more entities and/or categories 377 .
- the advertising parameters 538 of an advertisement are associated with one or more entities and/or categories 501 .
- An entity 501 may include a person, a location, a business, a product, a service, a media content, or a destination.
- a category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category.
- Each advertisement 431 (e.g., advertisement result 220 sent to the user device 200 ) may include advertisement data 232 and an advertisement access mechanism 202 having a reference to a corresponding application installed on the user device 200
- the advertisement access mechanism indicates 202 a performable operation for the corresponding application relating to the advertisement 431 .
- FIG. 15 is a schematic view of an example computing device 1500 that may be used to implement the systems and methods described in this document.
- the computing device 1500 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.
- 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 disclosure described and/or claimed in this document.
- the computing device 1500 (e.g., the advertisement application 216 , the user device 200 , the profile system 300 , or the advertisement system 400 ) includes a processor 112 , 203 , 302 , 1510 , memory 1520 , a storage device 114 , 206 , 304 , 1530 , a high-speed interface/controller 1540 connecting to the memory 1520 and high-speed expansion ports 1550 , and a low speed interface/controller 1560 connecting to low speed bus 1570 and storage device 1530 .
- Each of the components 1510 , 1520 , 1530 , 1540 , 1550 , and 1560 are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate.
- the processor 1510 can process instructions for execution within the computing device 1500 , including instructions stored in the memory 1520 or on the storage device 1530 to display graphical information for a graphical user interface (GUI) on an external input/output device, such as display 1580 coupled to high speed interface 1540 .
- GUI graphical user interface
- multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
- multiple computing devices 1500 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 1520 stores information non-transitorily within the computing device 1500 .
- the memory 1520 may be a computer-readable medium, a volatile memory unit(s), or non-volatile memory unit(s).
- the memory hardware 1520 may be physical devices used to store programs (e.g., sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use by the computing device 1500 .
- non-volatile memory examples include, but are not limited to, flash memory and read-only memory (ROM)/programmable read-only memory (PROM)/erasable programmable read-only memory (EPROM)/electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware, such as boot programs) as well as disks or tapes.
- volatile memory examples include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM).
- the storage device 1530 is capable of providing mass storage for the computing device 1500 .
- the storage device 1530 is a computer-readable medium.
- the storage device 1530 may be 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 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 1520 , the storage device 1530 , or memory on processor 1510 .
- the high speed controller 1540 manages bandwidth-intensive operations for the computing device 1500 , while the low speed controller 1560 manages lower bandwidth-intensive operations. Such allocation of duties is exemplary only.
- the high-speed controller 1540 is coupled to the memory 1520 , the display 1580 (e.g., through a graphics processor or accelerator), and to the high-speed expansion ports 1550 , which may accept various expansion cards (not shown).
- the low-speed controller 1560 is coupled to the storage device 1530 and low-speed expansion port 1570 .
- the low-speed expansion port 1570 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 1500 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 1500 a or multiple times in a group of such servers 1500 a , as a laptop computer 1500 b , or as part of a rack server system 1500 c.
- implementations of the systems and techniques described here can be realized in digital electronic and/or optical 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.
- Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus.
- the computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
- data processing apparatus encompass all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
- the apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
- a propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.
- a computer program (also known as an application, program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
- the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer need not have such devices.
- a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few.
- Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- one or more aspects of the disclosure can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen for displaying information to the user and optionally 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), LCD (liquid crystal display) monitor, or touch screen for displaying information to the user and optionally 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 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
- One or more aspects of the disclosure can be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a frontend 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 subject matter described in this specification, or any combination of one or more such backend, middleware, or frontend 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”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
- LAN local area network
- WAN wide area network
- inter-network e.g., the Internet
- peer-to-peer networks e.g., ad hoc peer-to-peer networks.
- 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.
- a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device).
- client device e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device.
- Data generated at the client device e.g., a result of the user interaction
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- This U.S. patent application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application 62/099,088, filed on Dec. 31, 2014, which is hereby incorporated by reference in its entirety.
- This disclosure relates to using subscription data associated with one or more applications installed on a user device to provide user with targeted advertisements.
- In recent years, use of computers, smartphones, and other Internet-connected devices has grown exponentially. Correspondingly, the number of available software applications for such devices has also grown. Today, many diverse native and web software applications can be accessed on any number of different devices, including, but not limited to, smartphones, personal computers, automobiles, and televisions. These diverse applications can range from business driven applications, games, educational applications, news applications, shopping applications, messaging applications, media streaming applications, social networking applications, and so much more. Furthermore, application developers develop vast amounts of applications within each genre and each application may have numerous editions. Therefore, many applications provide broad content. For example, applications, such as YouTube, Facebook, Twitter, sports applications, and news applications offer content that span several different topics. Users of these applications may subscribe to specific content feeds.
- One aspect of the disclosure provides a method for personalizing advertisements using subscription data. The method includes receiving, at data processing hardware, usage data of a user and receiving advertisement parameters for one or more advertisements. The usage data includes device usage data associated with a user device of the corresponding user and subscription usage data associated with one or more applications installed on the user device. The method further includes determining, using the data processing hardware, whether any of the advertisement parameters are satisfied by the usage data of the user. When an advertisement parameter is satisfied by the usage data of the user, the method includes outputting, from the data processing hardware to the user device of the user, the advertisement corresponding to the satisfied advertisement parameter.
- Implementations of the disclosure may include one or more of the following optional features. In some implementations, the method includes receiving, at the data processing hardware an advertisement request from the user device for an advertisement. The advertisement request is sent from the user device based on a trigger from a software application executing on the user device. The device usage data may include at least one of a device location, a device operating system, or a list of the one or more applications installed on the corresponding user device. The subscription data may include one or more subscription tags to content access mechanisms. Each subscription tag is associated with one of the one or more applications installed on the user device. Each subscription tag associated with one or more entities and/or categories.
- In some examples, the advertising parameters of an advertisement are associated with one or more entities and/or categories. An entity may include a person, a location, a business, a product, a service, a media content, or a destination. A category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category. Each advertisement may include advertisement data and an advertisement access mechanism having a reference to a corresponding application installed on the user device. The advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement.
- Another aspect of the disclosure provides a second method for personalizing advertisements using subscription data. This method includes sending, from a user device to an advertisement system, usage data of a user. The usage data includes device usage data associated with the user device and subscription usage data associated with one or more applications installed on the user device. The subscription usage data defines one or more subscription content feeds. Each subscription content feed is associated with an application installed on the user device. The method further includes sending an advertisement request from the user device to the advertisement system and receiving one or more advertisements transmitted from the advertisement system. Each advertisement includes advertisement data and an advertisement access mechanism that has a reference to a corresponding application installed on the user device. The advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement. The advertisement has one or more advertisement parameters that are satisfied by the usage data of the user. The method further includes displaying, on a display in communication with the user device, a graphical user interface including the one or more advertisements. Each advertisement includes a user selectable link associated with the corresponding advertisement access mechanism.
- In some examples, the advertisement request sent from the user device is based on a trigger from a software application executing on the user device. The device usage data includes at least one of a device location, a device operating system, or a list of the one or more applications installed on the corresponding user device. The subscription usage data includes one or more subscription tags to content access mechanisms. Each subscription tag is associated with one of the one or more applications installed on the user device. Each subscription tag is associated with one or more entities and/or categories. The advertising parameters of an advertisement are associated with one or more entities and/or categories. An entity may include a person, a location, a business, a product, a service, a media content, or a destination. A category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category.
- Yet another aspect of the disclosure provides a device for personalizing advertisements using subscription data. The user device includes a display, a data processing hardware in communication with the display and memory hardware in communication with the data processing hardware. The memory hardware stores instructions that when executed on the data processing hardware causes the data processing hardware to perform operations. The operations include sending to an advertisement data, usage data of a user, the usage data including device usage data associated with the user device and subscription usage data associated with one or more applications installed on the user device. The subscription usage data defines one or more subscription content feeds, each subscription content feed is associated with an application installed on the user device. The operations further include sending an advertisement request to the advertisement system and receiving one or more advertisements transmitted from the advertisement system. Each advertisement includes advertisement data and an advertisement access mechanism having a reference to a corresponding application installed on the user device. The advertisement access mechanism indicates a performable operation for the corresponding application relating to the advertisement, the advertisement having one or more advertisement parameters that are satisfied by the usage data of the user. The operations further include displaying, on the display in communication with the user device, a graphical user interface including the one or more advertisements, each advertisement including a user selectable link associated with the corresponding advertisement access mechanism.
- In some implementations, the advertisement request sent from the user device is based on a trigger from a software application executing on the user device. The device usage data includes at least one of a device location, a device operating system, or a list of the one or more applications installed on the corresponding user device. The subscription usage data may include one or more subscription tags to content access mechanisms, each subscription tag associated with one of the one or more applications installed on the user device, each subscription tag associated with one or more entities and/or categories. The advertisement parameters of an advertisement are associated with one or more entities and/or categories. An entity may include a person, a location, a business, a product, a service, a media content, or a destination. A category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category.
- Yet another method provides a third application for personalizing deep search results using subscription data. The method includes receiving, at data processing hardware, one or more user permissions to access one or more applications installed on a user device and generating, at the data processing hardware, a user profile associated with the user device. The user profile includes user profile data including a device location, device data defining at least one of a device operating system, and a list of applications installed on the user device. The user profile further includes subscription tags defining one or more user subscriptions to application access mechanisms. The method further includes receiving, at the data processing hardware from the user device, usage data of one or more applications installed on the user device, receiving, at the data processing hardware from the user device, an advertising request including an application state and identifying, at the data processing hardware, one or more advertisements based on the subscription tags.
- Implementations of the disclosure may include one or more of the following optional features. In some implementations, the method includes transmitting to the user device an identified advertisement in response to a user selection of a subscription tag. Each advertisement may define advertisement parameters including one or more of access mechanisms, advertisement subscription, and/or keyword parameters. The method may further include transmitting to the user device an identified advertisement when a user subscription tags and the advertisement subscriptions have a threshold similarity value.
- The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will be apparent from the description and drawings, and from the claims.
-
FIG. 1 is a schematic view of an example environment including a user device in communication with a profile system, an advertisement system, and content providers. -
FIG. 2 is a functional block diagram of an example environment including a profile system interacting with an advertisement system, user devices, and data sources. -
FIGS. 3A and 3B are schematic views of example user devices in communication with a profile system, and an advertisement system. -
FIG. 4 is a functional block diagram of a profile system. -
FIGS. 5A and 5B are schematic views of example profile records. -
FIGS. 5C and 5D are schematic views of example application state records. -
FIGS. 5E and 5F are schematic views of example feed records. -
FIGS. 5G and 5H are schematic views of example entity records. -
FIG. 6 is a functional block diagram of an example advertisement system. -
FIGS. 7A and 7B are schematic views of example advertisement records. -
FIG. 8 is a schematic view illustrating an example method for generating a user profile. -
FIG. 9 is a schematic view illustrating an example method for receiving an advertisement request and generating advertisementsFIG. 9 is a functional block diagram of a user device. -
FIG. 10 is a functional block diagram of an example user device. -
FIGS. 11A and 11B are schematic views of example user devices displaying advertisements. -
FIG. 12 is a schematic view of an example method for personalizing advertisements using subscription data. -
FIG. 13 is a schematic view of an example method for personalizing advertisements using subscription data. -
FIG. 14 is a schematic view of an example method for receiving and displaying personalized advertisement results. -
FIG. 15 is a schematic view of an example computing device executing any systems or methods described herein. - Like reference symbols in the various drawings indicate like elements.
- A system of the present disclosure personalizes advertisements for a user using subscription data. The subscription data may refer to any information related to one or more content feeds, such as Rich Site Summary (RSS) feeds, subscribed to by users. In some implementations, the system receives usage data of users. For each user, the usage data may include device usage data related to a user device of the user and/or subscription usage data associated with one or more applications installed on the user device. The system may also receive advertisement data of one or more advertisements. The system determines one or more advertisements to send to the user device based on the usage data.
- In response to a trigger or an advertisement request received from the user device, the system may select one or more advertisement results from an advertisement data store. Each advertisement result is associated with an advertisement that is provided by an advertiser and advertises a product, a service, or goods of the advertiser. Once the system selects the one or more advertisement results associated with the advertisements, the system transmits the advertisement results to the user device. In some implementations, the system determines which advertisement result to send to the user by determining if the usage data of the user satisfies one or more parameters or attributes of the advertisement. Each advertisement result may include an advertisement access mechanism that has a reference to an application installed on the user device and indicates a performable operation for the application. In response to selection of an advertisement access mechanism, the user device may launch the application referenced by the advertisement access mechanism and perform the one or more operations indicated in the advertisement access mechanism.
- The user may opt to share usage data of applications installed on his/her user device, for example, to enhance the overall experience of using one or more applications installed on the user device. The system, with consent from the user, may generate a user profile associated with the user of the application(s). The user profile may include subscription data (e.g., subscription tags) that the system may use to provide customized advertisements.
-
FIG. 1 illustrates anexample system 100 that includes auser device 200 associated with auser 10 in communication with aremote system 110 via anetwork 120. Theremote system 110 may be a distributed system (e.g., cloud environment) having scalable/elastic computing resources 112 and/orstorage resources 114. Theuser device 200 and/or theremote system 110 may execute anadvertisement system 400 and optionally receive data from one ormore data sources 130. Theuser device 200 and/or theremote system 110 may additionally execute aprofile system 300. In some examples, theprofile system 300 is part of theadvertisement system 400. In other examples, theprofile system 300 and theadvertisement system 400 communicate with each other and with one ormore user devices 200 and the data source(s) 130 via thenetwork 120, as shown in the figures. Thenetwork 120 may include various types of networks, such as a local area network (LAN), wide area network (WAN), and/or the Internet. Theuser device 200 may execute anadvertisement application 216 configured to send anadvertisement request 212 to theadvertisement system 400. Theadvertisement request 212 may be triggered by one or more actions or behaviors of theuser device 200. Theadvertisement application 216 may generally be part of another application 204 that provides a different and distinct functionality. Once theadvertisement system 400 executes an advertisement search and/or analysis (e.g., determines which advertisement(s) to provide to the user device 200), theuser device 200 displays advertisement results 330 received from theadvertisement system 400 on a graphical user interface (GUI) 240 shown on ascreen 201 of theuser device 200 by way of displayedresults 230 having 234, 236. The executed advertisement search/analysis may be based on a user profile record 370 (links FIGS. 5A and 5B ) generated by theprofile system 300 and an advertisement record 530 (FIGS. 7A and 7B ). In some examples, theprofile system 300 that generates theuser profile record 370 is a standalone system (as shown inFIG. 4 ) and in communication with theadvertisement system 400 via thenetwork 120, while in other examples, theprofile system 300 is part of theadvertisement system 400. -
FIG. 2 provides a functional block diagram of thesystem 100. In the example shown, auser device 200 is in communication with theprofile system 300 and theadvertisement system 400.User devices 200 can be any computing devices that are capable of providingadvertisement requests 212 to theadvertisement system 400.User devices 200 include, but are not limited to, mobile computing devices, such aslaptops 200 a,tablets 200 b,smart phones 200 c, andwearable computing devices 200 d (e.g., headsets and/or watches).User devices 200 may also include other computing devices having other form factors, such as computing devices included indesktop computers 200 e, vehicles, gaming devices, televisions, or other appliances (e.g., networked home automation devices and home appliances). - The
user devices 200 may use a variety ofdifferent operating systems 224. In examples where auser device 200 is a mobile device, theuser device 200 may run an operating system including, but not limited to, ANDROID® developed by Google Inc., IOS® developed by Apple Inc., or WINDOWS PHONE® developed by Microsoft Corporation. Accordingly, theoperating system 224 running on theuser device 200 may include, but is not limited to, one of ANDROID®, IOS®, or WINDOWS PHONE®. In an example where auser device 200 is alaptop 200 a ordesktop computing device 200 e, theuser device 200 may run anoperating system 224 including, but not limited to, MICROSOFT WINDOWS® by Microsoft Corporation, MAC OS® by Apple, Inc., or Linux.User devices 200 may also access or communicate with theadvertisement system 400 and/or theprofile system 300 while runningoperating systems 224 other than those operatingsystems 224 described above, whether presently available or developed in the future. - Referring also to
FIGS. 3A and 3B , theadvertisement system 400 receives anadvertisement request 212 from auser device 200 and theadvertisement system 400 performs a search and/or analysis within each its respective databases 420 (i.e., advertising data store 420) to identify one ormore advertisements 431 for sending corresponding advertisement results 220 to theuser device 200. In some examples, it is desirable to include personalized or targeted advertisement 431 (i.e., advertisement results 220) based on anadvertisement request 212 and a user profile record 370 (FIGS. 5A and 5B ) associated with auser 10. - To provide personalized and targeted displayed
advertisements 230 to theuser 10, thesystem 100 spiders, crawls, and indexes applications 204. Examples of data include, but are not limited to, news articles, blog posts, and sports scores. There aremany content providers 140 that provide content feeds 142 where thecontent feed 142 provides near real-time data. RSS feeds utilize a standard family of Web feed formats to publish frequently updated content, such as blog entries, news articles, audio, and video. Content obtained from acontent feed 142 may be referred to as acontent document 144. In some examples, acontent document 144 includes a web link to the source of the content. For example, a web link to a news article. Generally, the broader class of web feeds 142 and equivalents thereof may be referred to as “content feeds,” which may also include channel subscriptions. Traditionally, auser 10 subscribes to acontent feed 142 and a client application (e.g., a content reader, such as an RSS reader) monitors a website that provides thecontent feed 142 fornew content document 144, allowing theuser 10 to receive anew content document 144 when it becomes available. Therefore, acontent feed 142 may refer to a collection of grouped application states within an application 204. Put another way, acontent feed 142 may representcontent documents 144 of an application that is grouped for any suitable reason. The grouping can be made byother users 10 of the application or the application provider 140 (“content provider”). For example, auser 10 may subscribe to a YOUTUBE® channel, a FACEBOOK® feed (follow on FACEBOOK®), a team feed on ESPN® (e.g., follow DETROIT TIGERS®), a topic feed on THE NEW YORK TIMES® (e.g., Science and Tech news). In some of these examples, theuser 10 of the application groups the content (e.g., YOUTUBE® and FACEBOOK®), while in other examples the content provider groups the content (e.g., ESPN® and THE NEW YORK TIMES®). The foregoing is all referred to as subscription data. Subscription data can refer to any information that indicates a set of content feeds 142 that auser 10 has expressly requested to receive from an application or acontent provider 140. Thus, thecurrent system 100 leverages the user's subscription data 229 to content feeds 142 to enhance and personalizeadvertisement results 220 that include one ormore advertisements 431 that may be rendered on aGUI 240 of auser display 240 as displayed advertisement results 230. - The
user 10 may be subscribed (via the user device 200) to one or more content feeds 142 (e.g., RSS feeds) provided by acontent provider 140. The content feeds 142 may also be referred to as subscription data 229. Theadvertisement system 400 may recommend advertisedcontent feed data 144 based on a user's subscription to one or more other content feeds 142 from one ormore content providers 140. Theadvertisement system 400 may personalizeadvertisements 431 based on theuser profile 370, which includes subscription data of a user's subscription to one or more content feeds 142. Types of content feeds 142 may include, but are not limited to, RSS feeds and Atom feeds. - Referring again to
FIG. 1 , theadvertisement application 216 may be part of another application 204 that allows auser 10 to enter text into atext field 214 or that can send anadvertisement request 212 to theadvertisement system 400 based on one or more triggering events. For example, a triggering event may be when theuser 10 opens an application 204 associated with theadvertisement application 216 to view content provided by the application 204. In the example shown, the triggering event that sends theadvertisement request 212 to theadvertising system 400 is theuser 10 entering text in atext field 214. However, in some examples, the action of launching an application 204 associated with theadvertisement application 216 is the triggering event. As shown, theuser 10 enters the letters ‘ear’ in the text field 214 (e.g., a search box) of the graphical user interface (GUI) 240 of the application 204 that includes the advertisement application 216 (which may be part of a native application, such as, but not limited to, a search application, a news application, or a restaurant review application) running on theuser device 200. The GUI displays alist 231 of displayedresults 230. The displayedresults 230 include advertisement results 230 and non-advertisement results (not shown). The advertisement results 230 are visually distinguishable from the non-advertisement results. For example, the advertisement results 230 may include anadvertisement icon 238 associated with the advertisement results 230. Theadvertisement icon 238 is indicative of an advertisement from an advertiser. The advertisement results 220 are sent to theuser 10 of theuser device 200 that initiated theadvertisement request 212. Therefore, the advertisement results 220 are based on a search/analysis of theadvertisement data store 420 using theadvertisement request 212, a user data store 360 storing the user profiles 370, and target parameters 580 (stored in the advertisement data store 420). As a result, the advertisement results 220 are personalized based on theuser profile record 370 of theuser 10. In some examples, the displayedadvertisements 230 are a combination of information from thedata sources 130, a user data store 360, andadvertising data store 420. In some examples, thesystem 100 provides the user with content feeds 142 (e.g., RSS feeds) from one ormore content providers 140 as anadvertisement 230. As an example, when theuser 10 enters ‘earthquakes’ in atext field 214, theadvertisement system 400 considers theuser profile 370, including the user subscriptions tags 376, and anytarget parameters 580 provided in theadvertisement data store 420. Thetarget parameters 580 included in theadvertisement data store 420 may indicate one or more elements (e.g., user location) that once satisfied, provides theuser 10 with a specific advertisement. For example, if theuser profile 370 indicates that the user is located in San Jose and/or that theuser 10 is subscribed to one or more content feeds relating to sports in the San Jose area, theadvertisement system 400 may provide advertisements 431 (i.e., displayed advertisements 230) relating to the ‘San Jose Earthquakes,’ which are a professional soccer team based in San Jose, Calif. Theadvertisements 230 may include, for example, purchasing tickets to an upcoming game, or a restaurant hosting a soccer event. Therefore, the displayedadvertisement results 230 may be a combination of information from thedata sources 130, the user data store 360, theadvertisement data store 420, and content feeds 142 (e.g., RSS feeds) from one ormore content providers 140, satisfying one or more targeting parameters 538 (FIGS. 6A and 6B ). - In some implementations, the
user device 200 executes one or more software applications 204. A software application 204 may refer to computer software that, when executed by a computing device, causes the computing device to perform a task. In some examples, a software application 204 is referred to as an “application”, an “app”, or a “program”. Example software applications 204 include, but are not limited to, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and games. - Applications 204 may be executed on a variety of
different user devices 200. In some examples, a native application 204 a is installed on auser device 200 prior to auser 10 purchasing theuser device 200. In other examples, the user may 10 download and install native applications 204 a on theuser device 200. - The functionality of an application 204 may be accessed on the
computing device 200 on which the application 204 is installed. Additionally or alternatively, the functionality of an application 204 may be accessed via aremote computing device 112. In some examples, all of an application's functionality is included on the 112, 200 on which the application 204 is installed. These applications 204 may function without communication withcomputing device other computing devices 112, 200 (e.g., via the network 120). In other examples, an application 204 installed on acomputing device 200 may access information from otherremote computing devices 112 during operation. For example, a weather application installed on acomputing device 200 may access the latest weather information via the Internet and display the accessed weather information to theuser 10 through the installed weather application. In still other examples, a web-based application 204 b (also referred to herein as a web application) may be partially executed by the user'scomputing device 200 and partially executed by aremote computing device 112. For example, a web application 204 b may be an application 204 that is executed, at least in part, by a web server and accessed by a web browser (e.g., a native application 204 a) of the user'scomputing device 200. Example web applications 204 b may include, but are not limited to, web-based email, online auctions, and online retail sites. - In general, the
user device 200 may communicate with theprofile system 300 and/or theadvertisement system 400 using any software application 204 (e.g., advertisement application 216) that can transmitadvertisement requests 212 to theadvertisement system 400 and usage data to theprofile system 300. In some examples, theuser device 200 runs a native application 204 a that is dedicated to interfacing with theprofile system 300 and/or theadvertisement system 400, such as a native application 204 a dedicated to advertisement (e.g., an advertisement application 216). In some examples, theuser device 200 communicates with theprofile system 300 and/or theadvertisement system 400 using a more general application 204, such as a web-browser application 204 b accessed using a web browser native application 204 a. Although theuser device 200 may communicate with theprofile system 300 and/or theadvertisement system 400 using thenative advertisement application 216 and/or a web-browser application 204 b, theuser device 200 may be described hereinafter as using thenative advertisement application 216 to communicate with theprofile system 300 and/or theadvertisement system 400. In some implementations, the functionality attributed to theadvertisement application 216 is included as a component of a larger application 204 that has additional functionality. For example, the functionality attributed to theadvertisement application 216 may be included as part of a native application 204 a or a web application 204 b as a feature that provides advertisement capabilities. - Native applications 204 a can perform a variety of different functions for a
user 10. For example, a restaurant reservation application can make reservations for restaurants. As another example, an internet media player application can stream media (e.g., a song or movie) from the Internet. In some examples, a single native application 204 a can perform more than one function. For example, a restaurant reservation application may also allow auser 10 to retrieve information about a restaurant and read user reviews for the restaurant in addition to making reservations. As another example, an internet media player application may also allow auser 10 to perform searches for digital media, purchase digital media, and generate media playlists. In such examples, theadvertisement system 400 may include advertisements in the results associated with each of the native applications 204 a. - Referring to
FIGS. 1-3B , in some examples theadvertisement system 400 includes anadvertisement module 410 in communication with anadvertisement data store 420. Theprofile system 300 may include aprofile generation module 350 and adata collection module 380, both in communication with a user data store 360. Additionally, in some examples, theprofile system 300 includes anentity data store 362 in communication with the user data store 360, theprofile generation module 350, and thedata collection module 380. The user data store 360 and/or theentity data store 362 and/oradvertisement data store 420 may include one or more databases, indices (e.g., inverted indices), tables, files, or other data structures, which may be used to implement the techniques of the present disclosure. As shown, theprofile system 300 is a standalone system, but in some examples, theprofile system 300 is part of theadvertisement system 400. - The
data sources 130 may include a variety of different data providers. Thedata sources 130 may include data fromapplication developers 130 a, such as application developers' websites and data feeds provided by developers. Thedata sources 130 may include operators ofdigital distribution platforms 130 b configured to distribute native applications 204 a touser devices 200. Exampledigital distribution platforms 130 b include, but are not limited to, the GOOGLE PLAY® digital distribution platform by Google, Inc., the APP STORE) digital distribution platform by Apple, Inc., and WINDOWS PHONE® Store developed by Microsoft Corporation. - The
data sources 130 may also include other websites, such as websites that includeweb logs 130 c (i.e., blogs),application review websites 130 d, or other websites including data related to applications. Additionally, thedata sources 130 may includesocial networking sites 130 e, such as “FACEBOOK®” by Facebook, Inc. (e.g., Facebook posts) and “TWITTER®” by Twitter Inc. (e.g., text from tweets).Data sources 130 may also includeonline databases 130 f that include, but are not limited to, data related to movies, television programs, music, and restaurants.Data sources 130 may also include additional types of data sources in addition to the data sources described above.Different data sources 130 may have their own content and update rate. - The
profile system 300 or theadvertisement system 400 retrieves data from one or more of the data sources 130. The data retrieved from thedata sources 130 can include any type of data related to application functionality and/or application states. Theprofile system 300 or theadvertisement system 400 generates application state records 330 based on the data retrieved from the data sources 130. In some examples, a human operator manually generates some data included in the application state records 330. Theprofile system 300 or theadvertisement system 400 may update data included in the application state records 330 over time so that theprofile system 300 or theadvertisement system 400 provides up-to-date results 220. - Referring to
FIGS. 4, 5A, and 5B , in some examples, theprofile system 300 includes aprocessing system 302 that includes aprofile generation module 350 and adata collection module 380. Theprofile system 300 also includes a storage system (i.e., non-transitory storage device) that includes a user data store 360 for storing one or more user profiles 370. In some examples, thestorage system 304 of theprofile system 300 includes anentity data store 362 for storing a plurality of entity records 500. Eachentity record 500 includes data related to anentity 501. Anentity 501 may be any business or place with a geolocation, a person, or an event (e.g., restaurants, bars, gas stations, supermarkets, movie theaters, doctor offices, parks, and libraries, etc.). Eachentity record 500 may be associated with one ormore subscription tags 376 of theuser profile 370, and allows the system to provide theuser 10 withpersonalized advertisements 431. For example, if auser profile record 370 includes asubscription tag 376 to The Detroit News, then anentity 501 associated with thesubscription tag 376 may be Detroit or News. Therefore, thesystem 100 utilizes theentity 501 information associated with the subscription tags 376 provide advertisements that also have similar or thesame entities 501. In this case, theadvertisement system 400 may provide anadvertisement result 220 to, for example, subscribe to the “Detroit Press,” which also provides news relating to Detroit. - The
profile generation module 350 generatesuser profile records 370 and stores the generateduser profile records 370 in the user data store 360. In some examples, auser 10 wants to share usage data of his/her usage of one or more applications installed on theuser device 200. When theuser 10 gives/allows theadvertisement system 400 permission to access his/her data usage, the profile generation module 350 (executing on theuser device 200 or the in communication with the user device 200) generates auser profile record 370 of a user. In some examples, theadvertisement system 400 executes an application programming interface (API) for accessing the subscription data; while in others, theuser 10 may manually enter the subscription data. Theprofile generation module 350 generates a profile record with eachuser 10. In some example, theprofile record 370 is associated with onedevice 200 of auser 10, while in other examples; theprofile record 370 is associated with more than oneuser device 200 of thesame user 10. For example, auser 10 may have at least two of alaptop 200 a, atablet 200 b, asmart phone 200 c, awearable computing device 200 d (seeFIG. 1 ), anddesktop computers 200 e; therefore, theprofile record 370 of auser 10 is associated with all thedevices 200 of thatuser 10. Theprofile record 370 includes a profile identifier (ID) 372, user profile data 374, and user subscription tags 376 (in some examples, theuser subscription tags 376 are part of the user profile data 374). Theprofile ID 372 uniquely identifies auser 10 associated with theprofile record 370. The user profile data 374 may indicate any suitable information relating to theuser 10 or the one or more user device(s) 200. User profile data can include a user ID 374 a that uniquely identifies eachuser 10, a city/state/country of the user 10 (e.g., location data 374 b), one ormore devices 200 of the user 10 (e.g., device data 374 c), and applications 204 downloaded by theuser 10 on theuser device 200 and/or applications 204 installed on theuser device 200 installed by the manufacturer of thedevice 200 and not the user 10 (e.g., application(s) data 374 d). - The subscription tags 376 indicate one or more subscription(s) of the
user 10 to one or more content feed(s) 142. For example, asubscription tag 376 may be an ordered pair that indicates the application 204 and thecontent feed 142. For example, asubscription tag 376 may take the form (application, feed) (e.g., (ESPNO, DETROIT LIONS®) or (YOUTUBE®, Funny_stuff). In other implementations, the subscription tags 376 may be alphanumeric strings that represent the ordered pair. The ordered pairs may be stored in a lookup table that is indexed by the alphanumeric strings in the user data store 360. The subscription tags 376 may be known subscription tags 376 a or unknown subscription tags 376 b. Known subscription tags 376 a aresubscription tags 376 that have been crawled before, while unknown subscription tags 376 b aresubscription tags 376 to content feeds 142 that may have only a few followers and the correspondingdata 144 has not been crawled before. Theprofile generation module 350 may obtain the user's subscription data by accessing the application data of the user's installed applications 204 (e.g., native applications 204 a). - In some examples, each
subscription tag 376 is associated with one or more entity tag data 377. The entity tag data 377 relates to one ormore entities 501 that theprofile system 300 determines based on keywords of thesubscription tag 376. For example, if a known subscription tag 376 a is to the DETROIT LIONS NEWS, then one ormore entities 501 that theprofile system 300 may associate with the known subscription tag 376 a are, but not limited to, “Detroit Sports,” “Detroit News,” “Sports Scores,” . . . etc. Eachentity 501 has an associated entity record 500 (FIGS. 5G and 5H ). Therefore, the entities data tag 377 associated with the subscription tags 376, allows theadvertisement system 400 to provide theuser 10 with more specificpersonalized advertisement 431. - The
data collection module 380 identifies content feeds 142 for data or document 144 retrieval. In some implementations, thedata collection module 380 searches adigital distribution platform 130 b to identify popular applications 204. For these applications 204, thedata collection module 380 may filter applications 204 that provide content (e.g., news, lifestyle, video streaming, etc.) and may forego other types of applications (e.g., games, productivity, etc.). For each of the content providing applications 204, thedata collection module 380 may visit the website of thecontent provider 140 that offers the website to find the address of the website (e.g., https://play.google.com/store/apps/details?id=com.cnn.mobile.android.phone) and identify the website associated with the web developer (http://www.cnn.com/). In this example, the data collection module finds the “find website” link in the Play Store CNN Breaking News app page and can access the website of the application 204. After locating the website (i.e., CNN Breaking News application page), thedata collection module 380 parses the website of the content provider 140 (e.g., CNN) to find a link to subscribe to acontent feed 142 provided by thecontent provider 140. Once subscribed to thecontent feed 142, thedata collection module 380 creates a feed record 390 (FIG. 5E-5F ) corresponding to the content feed 142 (or RSS feed 142). Additionally, thecollection module 380 creates one or more entity records 500 (FIGS. 5G and 5H ) associated with the content feed records 390. - Referring to
FIGS. 5C and 5D , the user data store 360 includes a plurality of different application state records 330. Eachapplication state record 330 may include data related to a function of an application 204 and/or the state of the application 204 resulting from performance of the function. Anapplication state record 330 may include an application state identifier (ID) 332,application state information 334, an application identifier (ID) 334 a, and one or more access mechanisms 202, 202 a, 202 b, 202 c used to access functionality provided by an application 204. - The
application state ID 332 may be used to identify theapplication state record 330 among the other application state records 330 included in the user data store 360. Eachapplication state record 330 may be associated with afeed record 390 having associateddocuments 144. Theapplication state record 330 may provide access to adocument 144 of thecontent feed 142 associated with thefeed record 390. In some implementations, anapplication state ID 332 is a string of alphabetic, numeric, and/or symbolic characters (e.g., punctuation marks) that uniquely identify a state of an application 204. Put another way, anapplication state ID 332 is a unique reference to a state of an application. In some implementations, anapplication state ID 332 can be in the format of a resource identifier. For example, theapplication state ID 332 may be a uniform recourse locator (URL) or an application resource identifier. In these implementations, theapplication state ID 332 may be used by auser device 200 to access a web application or one or more editions of a native application 204 a, respectively. In some implementations, anapplication state ID 332 can map to one or more access mechanisms. In these implementations, theapplication state ID 332 may map to a web resource identifier (e.g., a URL) and/or one or more application resource identifiers. For instance, a state of an example software application, exampleapp, may be accessed via a web application edition and two native application editions (e.g., an edition configured for the ANDROID operating system and an edition configured for the WINDOWS PHONE operating system). In this example, the web resource identifier may be www.exampleapp.com/param1=abc¶m2=xyx, the first application resource identifier may be android.exampleapp::param1=abc¶m2=xyx, and the second application resource identifier may be windows.exampleapp::param=abc¶m2=xyx. In this example, anapplication state ID 332 maps to the web resource identifier and the two application resource identifiers. Anapplication state ID 332 may have a URL-like structure that utilizes a namespace other than http://, such as “func://”, which indicates that the string is anapplication state ID 332. In the example of “exampleapp” above, theapplication state ID 332 corresponding to the example state may be func://exampleapp::param1=abc¶m2=xyx, which maps to the access mechanisms 202 described above. In another example, anapplication state ID 332 may take the form of a parameterizable function. For instance, anapplication state ID 332 may be in the form of “app_id[action(parameter_1, . . . , parameter_n)], where app_id is an identifier (e.g., name) of a software application, action is an action that is performed by the application (e.g., “view menu”), and parameter_1 . . . parameter_n are n parameters that the software application receives in order to access the state corresponding to the action and the parameters. Drawing from the example above, anapplication state ID 332 may be “exampleapp[example_action(abc, xyz)]. Given thisapplication state ID 332 and the referencing schema of the example application, the foregoingapplication state ID 332 may be used to generate the access mechanisms defined above. Additionally or alternatively, the above exampleapplication state ID 332 may map to the access mechanisms defined above. Furthermore, whileapplication state IDs 332 have been described with respect to resource identifiers, anapplication state ID 332 may map to one or more scripts that access a state of a software application or may be utilized to generate one or more scripts that access a state of the software application. It is noted that some software applications may have a common scheme for accessing all of their respective native application editions. In such scenarios, a single application resource identifier may access multiple application editions. - In a more specific example, if the
application state record 330 describes a function of the YELP® native application, theapplication state ID 332 may include the name “Yelp” along with a description of the application state described in theapplication state information 334. For example, theapplication state ID 332 for anapplication state record 330 that describes the restaurant named “The French Laundry” may be “Yelp—The French Laundry.” In an example where theapplication state ID 332 includes a string in the format of a URL, theapplication state ID 332 may include the following string “http://www.yelp.com/biz/the-french-laundry-yountville-2?ob=1” to uniquely identify theapplication state record 330. In additional examples, theapplication state ID 332 may include a URL using a namespace other than “http://,” such as “func://,” which may indicate that the URL is being used as an application state ID in anapplication state record 330. For example, theapplication state ID 332 may include the following string “func://www.yelp.com/biz/the-french-laundry-yountville-2?ob=1.” - The
application state information 334 may include data that describes an application state into which an application 204 is set according to the access mechanism(s) 202 in theapplication state record 330. Additionally or alternatively, theapplication state information 334 may include data that describes the function performed according to the access mechanism(s) 202 included in theapplication state record 330. Theapplication state information 334 can include text, numbers, and symbols that describe the application state. The types of data included in theapplication state information 334 may depend on the type of information associated with the application state and the functionality specified by the application access mechanism 202 a. Theapplication state information 334 may include a variety of different types of data, such as structured, semi-structured, and/or unstructured data. Theapplication state information 334 may be automatically and/or manually generated based on documents retrieved from the data sources 130. Moreover, theapplication state information 334 may be updated so that up-to-date advertisement results 220 can be provided in response to anadvertisement request 212. - In some examples, the
application state information 334 includes data that is presented to theuser 10 by an application 204 when the application 204 is set in the application state defined by the access mechanism(s) 202. For example, if one of the access mechanism(s) 202 is an application access mechanism 202 a, theapplication state information 334 may include data that describes a state of the native application 204 a after theuser device 200 has performed the one or more operations indicated in the application access mechanism 202 a. For example, if theapplication state record 330 is associated with a shopping application, theapplication state information 334 may include data that describes products (e.g., names and prices) that are shown when the shopping application is set to the application state defined by the access mechanism(s) 202. As another example, if theapplication state record 330 is associated with a music player application, theapplication state information 334 may include data that describes a song (e.g., name and artist) that is played when the music player application is set to the application state defined by the access mechanism(s) 202. - The types of data included in the
application state information 334 may depend on the type of information associated with the application state and the functionality defined by the access mechanism(s) 202. For example, if theapplication state record 330 is for an application 204 that provides reviews of restaurants, theapplication state information 334 may include information (e.g., text and numbers) related to a restaurant, such as a category of the restaurant, reviews of the restaurant, and a menu for the restaurant. In this example, the access mechanism(s) 202 may cause the application 204 (e.g., a native application 204 a or a web-browser application 204 b) to launch and retrieve information for the restaurant. As another example, if theapplication state record 330 is for an application 204 that plays music, theapplication state information 334 may include information related to a song, such as the name of the song, the artist, lyrics, and listener reviews. In this example, the access mechanism(s) 202 may cause the application 204 to launch and play the song described in theapplication state information 334. - The
profile system 300 and/or theadvertisement system 400 may generateapplication state information 334 included in anapplication state record 330 in a variety of different ways. In some examples, theprofile system 300 and/or theadvertisement system 400 retrieves data to be included in theapplication state information 334 via partnerships with database owners and developers of native applications 204 a. For example, theprofile system 300 and/or theadvertisement system 400 may automatically retrieve the data fromonline databases 130 f that include, but are not limited to, data related to movies, television programs, music, and restaurants. In some examples, a human operator manually generates some data included in theapplication state information 334. Theprofile system 300 and/or theadvertisement system 400 may update data included in theapplication state information 334 over time so that theprofile system 300 and/or theadvertisement system 400 300 provides up-to-date results 220. - The application ID 334 a may be used to identify a native application 204 a associated with the
application state record 330. The application ID 334 a may be a string of alphabetic, numeric, and/or symbolic characters (e.g., punctuation marks) that uniquely identifies the associated native application 204 a. In some examples, the application ID 334 a is native application 204 a in human readable form. For example, the application ID 334 a may include the name of the application 204 referenced in the access mechanism(s) 202. In a specific example, the application ID 334 a for a restaurant finder application 204 may include the name of the restaurant finder application. - An
application state record 330 including an application access mechanism 202 that causes an application 204 to launch into a default state may includeapplication state information 334 describing the native application 204 a, instead of any particular application state. For example, theapplication state information 334 may include the name of the developer of the application 204, the publisher of the application 204, an application identifier (ID) 332 a identifying the application associated with theapplication state record 330, keyword 334 b relating to the access mechanism 202 content (e.g., documents 144), a category 334 c (e.g., genre) of the application 204, location data 334 d associated with theapplication state record 330 or the application providing the application ID 334 a, a description of the application 204 (e.g., a developer's description), and the price of the application 204, or any other relevant data. Theapplication state information 334 may also include security or privacy data about the application 204, battery usage of the application 204, and bandwidth usage of the application 204. Theapplication state information 334 may also include application statistics. Application statistics may refer to numerical data related to a native application 204 a. For example, application statistics may include, but are not limited to, a number of downloads, a download rate (e.g., downloads per month), a number of ratings, and a number of reviews. In some examples, the access mechanisms 202 of anapplication state record 330 are based on or are generated from the feed access mechanism data 334 c, which provides auser 10 access to thefeed document 144. - In some implementations, an
application state record 330 includes multiple different application access mechanisms 202, 202 a, 202 b, 202 c that include a variety of information. The application access mechanism 202 may include edition information that indicates the application edition with which the application access mechanism 202 is compatible. For example, the edition information may indicate theoperating system 224 with which the application access mechanism 202 is compatible. Moreover, different application access mechanisms 202 may be associated with different editions of a native application 204 a. A native application edition (hereinafter “application edition”) refers to a particular implementation or variation of a native application 204 a. For example, an application edition may refer to a version of a native application 204 a, such as a version 1.0 of a native application 204 a or a version 2.0 of a native application 204 a. In another example, an application edition may refer to an implementation of a native application 204 a for a specific platform, such as aspecific operating system 224. - The different application access mechanisms 202 included in an
application state record 330 may cause the corresponding application editions to launch and perform similar functions. Accordingly, the different application access mechanisms 202 included in anapplication state record 330 may cause the corresponding application editions to be set into similar application states. For example, if the different application access mechanisms 202 reference different editions of an information retrieval application, the different application access mechanisms 202 may cause the corresponding application editions to retrieve similar information. In another example, if the different application access mechanisms 202 reference different editions of an internet music player application, the different application access mechanisms 202 may cause the corresponding application editions to play the same song. - In some examples, an
application state record 330 for a native application that retrieves restaurant information may include multiple different application access mechanisms 202 for multiple different application editions. Assuming theapplication state record 330 is associated with a specific Mexican restaurant, the application access mechanisms 202 for the different application editions may cause each application edition to retrieve information for the same specific Mexican restaurant. For example, a first application access mechanism 202 may cause a first application edition (e.g., on a first OS) to retrieve information for the specific Mexican restaurant. A second application access mechanism 202 may cause a second application edition (e.g., on a second OS) to retrieve information for the specific Mexican restaurant. In some examples, theprofile system 300 can determine whether to transmit the application access mechanism 202 in the advertisement results 220 based on whether theuser device 200 can handle the application access mechanism 202. -
FIGS. 5E and 5F illustrate exemplary feed records 390. Afeed record 390 may indicate a feed identifier (ID) 392, identifying thecontent feed 142. Thefeed record 390 may also include, an application ID 394 a of an application that provides thecontent feed 142, a feed access mechanism 394 b, 202 from which the content of thecontent feed 142 is received (e.g., a URL of the content or RSS feed), access mechanism data 394 c that defines templates, rules, and/or instructions for generating access mechanisms 394 b to access content obtained from thecontent feed 142, feed location data 394 d that indicates geographic regions to which thecontent feed 142 is pertinent, and feed category data 394 e that indicates the different categories of content that are obtained from the content feed 142 (e.g., US News, All News, Sports, Science, Tech, Entertainment, etc.). In some examples, while thedata collection module 380 is generatingfeed records 390, thedata collection module 380 also tags thefeed record 390 with the location data 394 d. The location data 394 d is inherited by the application state records 330 that are generated from the content obtained from thecontent feed 142. Thus, the generated feed geolocation data 394 d allows thesystem 100 to personalize and localize the feed documents 144 (i.e., the feed contents) to aspecific user 10. - The
data collection module 380 utilizes the subscription tags 376 to identify potential content of thecontent providers 140 to spider and crawl. In particular, many content feeds 142 within applications 204 are not readily known. For example, there are thousands or millions of YOUTUBE® channels, many of which only have few followers who follow the channel. Thus, it may be a difficult task for a crawler to find the remote content associated with the YOUTUBE® channel that has the few followers. Thedata collection module 380 may utilizesubscription tags 376 of the newly discovered content feeds 142 to identify content feeds 142 that may be crawlable. In some implementations, theprofile generation module 350 verifies whether asubscription tag 376 is known or unknown, and each time theprofile generation module 350 identifies anunknown subscription tag 376, theprofile generation module 350 may add the unknown subscription tag to a set of unknown subscription tags 376. Thedata collection module 380 can utilize the set ofunknown subscription tags 376 to determine how to spider and crawl an application. As thedata collection module 380 crawls a new application state, thedata collection module 380 creates an application state record 330 (FIGS. 5B and 5C ) or a feed records 390 (FIGS. 5D and 5E ) corresponding to the newly crawled state. If the application state belongs to acontent feed 142, theapplication record 330 is tagged with asubscription tag 376. In this way, theapplication state record 330 indicates that thecontent document 144 obtained at the particular application state is accessible through thecontent feed 142. - Referring back to
FIG. 4 , once thedata collection module 380 generates thefeed record 390 and the entity records 500, thedata collection module 380 periodically checks thecontent feed 142 for any new data or contents or documents 144 (e.g., every few minutes, hours, or days). Thedata collection module 380 periodically checks thefeeds 142 for updated information for each content feed 142 it is subscribed to. When thedata collection module 380 detects new content or feeddocuments 144, thedata collection module 380 crawls the new content (e.g., a new article) to identify data, such as the title, keywords, any access mechanisms 202 that are used (at the very least thedata collection module 380 can identify the URL from which the content was obtained). If the content ordocuments 144 being crawled do not include application resource identifiers embedded therein, thedata collection module 380 can generate application resource identifiers based on the web resource identifiers and the access mechanism data defined in the feed record. For example, if the article is referenced by a number in the web URL (e.g., “ . . . /article==1234”) and the template for generating application access mechanisms includes an article number field, thedata collection module 380 can generate the application access mechanism by substituting the article number found in the web URL into the template. Thedata collection module 380 generates an application state record based on the newly crawled content and the identified or generated access mechanisms 202 (FIG. 11 ). Thedata collection module 380 then updates the user data store 360 with the new and/or updated 330, 390, 500.records - In some implementations, the
data collection module 380 also generates application state records 330 for applications that do not have content feeds 142. In these implementations, thedata collection module 380 generates anapplication state ID 332 configured to generate one or more access mechanisms 202 for accessing the “other application.” First, thesystem 100 determines which applications 204 for which thesystem 100 should generate the application state records 330. For example, thesystem 100 can associate TWITTER® or FLIPBOARD® to CNN®, THE NEW YORK TIMES®, FOX NEWS®, etc., thereby indicating that when thesystem 100 finds new content ordocuments 144 on CNN® or THE NEW YORK TIMES® then thesystem 100 may also generate application state records 330 for TWITTER® or FLIPBOARD®. In some examples, thesystem 100 uses a lookup table (not shown) to identify other applications (not initially identified) or thesystem 100 may include the other applications hard coded into thefeed record 390. The system 100 (i.e., the data collection module 380) can then obtain access mechanism data 394 c for the other application and generate anapplication state ID 332 and/or access mechanisms 202 (application resource identifier or script) based on the content ordocuments 144 of the crawled application. For example, we can insert the title of the application into a template for generating access mechanisms 202 for the other application (see Twitter example above). Thedata collection module 380 can then generate anapplication state record 330 using the generatedapplication state ID 332 and/or access mechanism 202. Thedata collection module 380 can utilize some of the keywords extracted from the crawled content ordocuments 144 to populate the keywords of the newapplication state record 330. - Referring to
FIGS. 5G and 5H , theentity data store 362 includes a plurality of different entity records 500. Eachentity record 500 may include data related to anentity 501. Theentity 501 can be any business or place with a geolocation or person or event (e.g., restaurants, bars, gas stations, supermarkets, movie theaters, doctor offices, sports team, movie star, celebrity, politician, parks, and libraries, etc.). Anentity record 500 may include an entity identifier or name (ID) 502, entity location data 506 (e.g., geolocation data), an entity category 508 (and optionally one ormore sub-categories 508 a-508 n),entity information 504, and associated entity subscription tags 510. - The
entity ID 502 may be used to identify theentity record 500 among theother entity records 500 included in theentity data store 362. Theentity ID 502 may be a string of alphabetic, numeric, and/or symbolic characters (e.g., punctuation marks) that uniquely identifies the associatedentity record 500. In some examples, theentity ID 502 describes theentity 501 in human readable form. For example, theentity ID 502 may include the name string of theentity 501 or a human readable identifying theentity 501. In some examples, theentity ID 502 includes a string in the format of a uniform resource locator (URL). - In a more specific example, if the
entity record 500 describes a restaurant named QDOBA® (QDOBA is a registered trademark of Qdoba Restaurant Corporation), theentity ID 502 for theentity record 500 can be “Qdoba.” In an example where theentity ID 502 includes a string in human readable form and/or a URL, theentity ID 502 may include the following string “Qdoba, 42967 Woodward Avenue. Bloomfield Township, MI 48304” to uniquely identify theentity record 500. Other unique identifiers are possible as well, such a store number. - The
entity information 504 may include any information about theentity 501, such as text (e.g., description, reviews) and numbers (e.g., number of reviews). This information may even be redundant to other information contained in theentity record 500, but optionally structured for display, for example. Theentity information 504 may include a variety of different types of data, such as structured, semi-structured, and/or unstructured data. Moreover, theentity information 504 may be automatically and/or manually generated based on documents retrieved from the data sources 130. - In some examples, the
entity information 504 includes data that is presented to theuser 10 by an application 204 when the application 204 is set in the application state defined by the access mechanism(s) 202. For example, if one of the access mechanism(s) 202 is an application access mechanism 202 a, theentity information 504 may be used in conjunction with theapplication state information 334 of anapplication state record 330 to describe a state of the native application 204 a after theuser device 200 has performed the one or more operations indicated in the application access mechanism 202 a. - The
entity location data 506 may include data that describes a location of theentity 501. This data may include a geolocation (e.g., latitude and longitude coordinates), a street address, or any information that can be used to identify the location of theentity 501 within a geographical area. In some implementations, theentity location data 506 defines a geo-location associated with theapplication state record 330. - The
entity category 508 provides a classification or grouping of theentity 501. Moreover, the entity category can have one or more sub-categories to further classify theentity 501. For example, theentity record 500 could have anentity category 508 of “restaurant” and a sub-category 508 a a type of cuisine, such as “French cuisine” or “contemporary.” Any number ofsub-categories 508 a-508 n may be assigned to classify theentity 501 for use during a search. - The associated entity subscription tags 376, 510 include
subscription tags 376 relating to theentity 502. For example, if theentity 501 is DETROIT LIONS®, then associated subscription tags 510 include anyfeed content 144 that mentions or includes the DETROIT LIONS®, which may include, but not limited to, subscription tags 376, 510 to sports news, scores, and events relating to the DETROIT LIONS®. In some examples, the subscription tags 376, 510 are organized based on theentity categories 508 orsub-categories 508 a-508 n. Therefore, theadvertisement module 430 may determine the subscription tags 376, 510 associated with theentity 501 based on thecategories 508 and/orsub-categories 508. - Referring to
FIGS. 6, 7A and 7B , in some implementations, and as previously described, theadvertisement system 400 is a standalone system in communication with theprofile system 300; while in other examples, theadvertisement system 400 and theprofile system 300 are one system. As shown, theadvertisement system 400 includes anadvertisement processing system 402 in communication with anadvertisement storage system 404. Theprocessing system 402 includes anadvertisement module 410, while thestorage system 404 includes an advertisementrecord data store 420 for storingadvertisement records 430, and optionally the user data store 360. Theadvertisement data store 420stores advertisement records 530 that includeparameters 538, which may be used to determine when and to whichuser 10 to send theadvertisement 431 associated with theadvertisement record 530. - The
advertisement system 400 delivers targeted/personalized advertisements 431 to auser 10 based on the user profile record 370 (e.g., subscription data 376) associated with theuser 10 and theadvertisement record 530, which enhances targeted advertisement. Theadvertisement system 400 may receive anadvertisement request 212 from theuser device 200. For instance, theuser 10 may be logged into a third party application via theuser GUI 240 of theuser device 200 and the third party application may be configured to transmit anadvertisement request 212 upon switching states within the third party application. Alternatively, when theuser 10 of anadvertisement application 216 provides anadvertisement request 212 that is transmitted to theadvertisement system 400, theadvertisement request 212 may trigger an internal advertisement request to theadvertisement system 400. For example, if the application 204 is a restaurant review application that lists restaurants within a certain distance of theuser device 200, a selection by theuser 10 of one of the restaurants in a list of restaurants might trigger anadvertisement request 212 to theadvertisement system 400. - In response to the
advertisement request 212, theadvertisement system 400 determines one or more advertisements 431 (e.g., an advertisement record 430) to transmit to theuser device 200. In some implementations, third party advertisers agree to pay a certain amount per a specific action (e.g., impression, click, or purchase) of the user's interaction with the displayedadvertisement 230. In these implementations, the third party advertisers select one or more elements of theprofile record 370,application state record 330,feed record 390, orentity record 500 that trigger anadvertisement result 220 to be delivered to theuser device 200. For example, a third party advertiser may select the (YOUTUBE®, ROLLING STONES®)subscription tag 376 to trigger an advertisement for an advertisement to a third party music application 204. In another example, an advertiser may select a (ESPN®, Detroit Tigers)subscription tag 376 to trigger an advertisement for a third party aftermarket ticket service. In yet another example, a third party advertiser may select (Detroit NEWS, LIONS) a user device location being within a threshold distance of Detroit to trigger anadvertisement 431 for LIONS game ticket sales. Thus, the targetingparameters 538 associated with eachadvertisement record 530 of anadvertisement 431 may include one or more elements (e.g., user device location) that when satisfied triggers aspecific advertisement 431 to be sent to theuser device 200. Thus, the advertisers may select other constraints to limit when theadvertisements 230 are shown (e.g., geo-location, device type, etc.). Therefore,more targeting parameters 538 provide for a moretargeted advertisement 431 to theuser 10, where theadvertisements 431 may have higher relevance. Referring back to the (ESPN, Detroit Tigers) example, the third party advertiser may want anadvertisement 431 to be shown tousers 10 who live in the Detroit metropolitan area or in cities where the Detroit Tigers may be playing in the coming month. In this way, theadvertisements 431 are more likely to result in a sale, as opposed to showing the advertisement to a random Tigers fan in Anchorage Ak. - After the
advertisement module 410 determines which advertisement(s) 431 to send to the requestinguser device 200, theadvertisement module 410 generatesadvertisement data 232 associated with theadvertisement 431 that contains data and/or instructions that theuser device 200 can use to render the advertisement 431 (FIG. 3B ) on theuser device GUI 240. As shown, theadvertisement data 232 is included in the advertisement results 220 sent to theuser device 200. In some examples, theadvertisement data 232 includes pictures or special characters relating to theadvertisement 431. - An advertiser may generally refer to any party that advertises a product, event, or may provide a message to a
user 10. The advertiser may advertise its own goods and services or the goods and services of a related party. An advertiser can advertise, for example, a business, products, services, media content, or any other suitable item of commerce referenced in an application 204. An application 204 including anadvertisement application 216 provides a medium for the advertisers to advertise websites or other services. Typically, an advertiser registers one or more keywords and restrictions and advertisement data with thesystem 100. Theadvertisement module 410 generates one ormore targeting parameters 538 based on the keywords and restrictions that the advertiser wants to trigger theadvertisement 431 to be sent to theuser 10. Therefore, when auser device 200 satisfies the targetingparameters 538 associated with anadvertisement record 530 of anadvertisement 431, theadvertisement system 400 sends thecorresponding advertisement 431 to theuser device 200. In some examples, the advertiser provides multiple advertisement data versions associated with oneadvertisement 431, where each advertisement data version satisfies a variation of a set of rules. For example, twousers 10 havinguser profile records 370 that satisfy the targetingparameters 538 associated with anadvertisement 431 except for the age of eachuser 10 associated with theprofile record 370. In this instance, the advertiser may want to send an advertisement having a different color based on the age of theusers 10. - In some examples, the
advertisement system 400 sells keywords to advertisers. The keywords are used to generate the targetingparameters 538. The keyword may be sold to the advertisers according to different advertising schemes, including cost per number of impressions (e.g., number of views), cost per click-through, and cost per action. According to the cost per number of views model, the advertiser agrees to pay a specified amount when theadvertisement 230 is displayed a specified number of times on a page of theGUI 240 in response to arelevant advertisement request 212. According to the cost per click-through model, the advertiser agrees to a pay a specified amount each time auser 10 clicks on theadvertisement 431 displayed in response to arelevant advertisement request 212. Additionally or alternatively, the advertiser agrees to pay a specified amount each time auser 10 performs a specific action in response to theadvertisement 230 being displayed. For example, the advertiser can agree to pay the specified amount when auser 10 clicks on a hyperlink in the displayedadvertisement 230 and makes a purchase from the website associated with the displayedadvertisement 230. - In some implementations, the
advertisement system 400 generates one or more advertisement results 220 for theuser 10. Theadvertisement system 400 transmits (e.g., serves) the selectedadvertisement results 220 to theuser device 200 of theuser 10. Theuser device 200 associated with theuser 10 may display on thedisplay 201 of theuser device 200 theadvertisement 431 as a displayedadvertisement 230. In some examples, when theadvertisement application 216 is part of another application 204, the advertisement results 220 may be part of results of the other application 204. For example, when the application 204 is a search application 204 incorporating theadvertisement application 216, the search application 204 may provide its search results to incorporateadvertisements 431 within the search results. Theuser 10 may visually differentiate between the results provided by the application 204 and the advertisement results 220. Theadvertisement 431 may include information indicating that theadvertisement 431 is a sponsored result. For example, the displayedadvertisement 230 may include text indicating that the sponsored application is a “Sponsored Result” an “Advertisement” or an “AD,” as shown inicon 238. - The
advertisement system 400 may include theadvertisement data store 420 used for storingadvertisement records 430, which theadvertisement system 400 uses to generateadvertisement results 220 to send to auser device 200. Theadvertisement data store 420 includes data associated with a plurality of different storedadvertisement 430. The data associated with a storedadvertisement 430 may be referred to as “an advertisement record” (e.g.,advertisement record 430 ofFIGS. 7A and 7B ). Theadvertisement data store 420 may include a plurality ofadvertisement records 430 each including data for adifferent advertisement 431. The advertisement records 430 may be generated by advertisers (using advertiser devices), by advertisement agencies, or by providers of any of the search and advertisement generation functionalities described above (i.e., by providers of one or more of the application 204 that incorporates the advertising application 216). Anadvertisement 431 may include an application advertisement (e.g., advertisement to download a restaurant review application), an entity advertisement (e.g., advertisement that includes a coupon for a restaurant, where the restaurant is the entity), or goods advertisement (e.g., an advertisement to buy a purse that is discounted). - Referring to
FIGS. 7A and 7B , anadvertisement record 430 may include a variety of different types of data related to anadvertisement 431. Anadvertisement record 430 may include data that identifies theadvertisement 431. For example, theadvertisement record 430 may include an advertisement name and/or advertisement identifier (i.e., an “advertisement ID”) 532 that identifies theadvertisement record 430 among thedifferent advertisement records 430 in theadvertisement data store 420. Theadvertisement record 430 may also includesubscription data 534. - An
advertisement record 430 may also include a sponsored application name and/or sponsored application ID that identifies a sponsored application and/or a business associated with theadvertisement record 430. A sponsored application 204 may be an application 204 for which an advertiser has paid to have the application 204 displayed to auser 10 on theuser device display 201. For example, an advertiser may pay for a sponsored application 204 to be advertised along with other applications that are being displayed for theuser 10. Theadvertisement record 430 includes advertisement content or 232, 536 used to generate a displayeddata advertisement 230 for the sponsored application 204 of theadvertisement record 430. For example, 232, 536 may include text, images (e.g., icons), animations, and videos associated with the sponsored application 204. The advertisement 431 (e.g., text and images) for a sponsored application 204 may be displayed along with other results or information that is being displayed to theadvertisement content user 10. - The
advertisement record 430 may also includeadvertisement parameters 538.Advertisement parameters 538 may definebudget parameters 592 associated with advertising the sponsored application 204.Advertisement parameters 538 may also define timingparameters 594 associated with advertising the sponsored application 204, such as start and stop dates for advertising the sponsored application 204 and/or time(s) of day during which the sponsored application 204 is to be advertised. Additionally,advertisement parameters 538 may specify user parameters associated with advertising the sponsored application 204, such as, e.g., one or more search query languages for which the sponsored application 204 is to be advertised and/or the number of times a particular advertisement is to be displayed to eachuser 10. Other parameters are possible as well. -
Advertisement parameters 538 may also include a variety of different types of targetingparameters 580. A targetingparameter 580 may refer to a condition that should be satisfied before theadvertisement system 400 generates anadvertisement 431. Theadvertisement system 400 may use targetingparameters 580 in anadvertisement record 430 to determine whether to generate anadvertisement 431 for the sponsored application 204, the goods, or services associated with theadvertisement record 430. For example, theadvertisement system 400 may generate anadvertisement 431 for the sponsored application 204, the goods, or services listed in anadvertisement record 430 when one ormore targeting parameters 580 of theadvertisement record 430 are satisfied. Example types of targetingparameters 580 may include, but are not limited to,keyword targeting parameters 582 andplatform targeting parameters 584. - Additional advertisement (e.g., target)
parameters 538 may include, e.g., time-slotting, day-parting, category, geographical, contextual, demographic, behavioral, platform, device, and partner parameters. In other words, in some examples, theadvertisement system 400 generates anadvertisement 431 for a sponsored application 204 in one or more of the following instances: 1) during one or more designated time slots; 2) on one or more given days or during one or more specified portions thereof; 3) for one or more particular categories of applications 204 on theuser device 200; 4) forusers 10 located in one or more geographic locations or regions; 5) based on context (e.g., for one or more states of the user'scomputing device 200, the application 204 that includes theadvertisement application 216; 6) for one or more specified user types or groups; 7) when one or more user behaviors are detected (e.g., when theuser 10 interacts with the user'scomputing device 200 in a particular manner); 8) for one or more platform (e.g., operating system) and device types associated with the user'scomputing device 200 or the applications 204 on theuser device 200; or 9) when one or more specified partner computing systems are used (e.g., when the user'scomputing device 200 communicates with theprofile system 300 and/or theadvertisement system 400 via a designated partner computing system). - An
advertisement record 430 may include a targetingparameter function 581. A targetingparameter function 581 may define which of the targetingparameters 580 of theadvertisement record 430 should be satisfied in order to generate anadvertisement 431. In some examples, the targetingparameter function 581 includes asingle targeting parameter 580. In these examples, theadvertisement system 400 may generate anadvertisement 431 for a sponsored application 204 based on satisfaction of asingle targeting parameter 580, such as asimilarity targeting parameter 581 or akeyword targeting parameter 584. In other examples, the targetingparameter function 581 includes multiple different targeting parameters 580 (e.g., advertising parameters). In these examples, theadvertisement system 400 may generate anadvertisement 431 for a sponsored application 204 based on satisfaction ofmultiple advertising parameters 538, such as one or moresimilarity targeting parameters 581, one or morekeyword targeting parameters 582, and aplatform targeting parameter 584. In scenarios where a targetingparameter function 581 includes multiple targetingparameters 580, the targetingparameter function 581 may include a Boolean function that includes the multiple targetingparameters 580. - In some examples, the
user 10 executes an application 204 that includes theadvertisement application 216 causing theuser device 200 to send anadvertisement request 212 to theadvertisement system 400. In some examples, the application 204 is a search application, which allows theuser 10 to select asearch button 215, after entering a search query in thetext box 214, which triggers theadvertisement system 400 to initiate a search/analysis of which advertisement results 220 to select for sending to theuser device 200. While in other examples, the system executes an incremental search, e.g., anincremental advertisement request 212. Incremental advertisement requests 212 refer toadvertisement requests 212 that are updated each time theuser 10 enters a new character in thetext box 214. For example, if theuser 10 intends to enter the query term “earthquake,” theuser 10 will enter the progression e-a-r-t-h-q-u-a-k-e. In this example, the incremental search queries 212 include (“e,” “ea,” “ear,” “eart” “earth,” “earthq,” “earthqu,” “earthqua,” “earthquak,” and “earthquake,”). The advertisement application 216 (on the user device 200) monitors each character entry and determines a set of possible query strings, as well as a probability that the possible query string is the intended string. Drawing from the example above, when theuser 10 enters “ear” the query strings “ear” “earth” and “earthquake” are probably going to have higher probability strings than “earwig” or “earwax.” Theadvertisement application 216 can utilize a TRIE to generate the possible query strings. TRIE, also known as a digital tree, radix tree, or prefix tree, is an ordered tree data structure used to store a dynamic set or associative array. The keys in a TRIE are usually a string. Other methods for generating query strings are possible as well. In other implementations, theincremental advertisement request 212 is only the partial query string entered by theuser 10. - Referring back to
FIGS. 3A and 3B , theadvertisement wrapper 210 may include additional data along with theadvertisement request 212. For example, theadvertisement wrapper 210 may include device location data 218 (e.g., geo-location) that indicates the location of theuser device 200, such as latitude and longitude coordinates. Theuser device 200 may include a global positioning system (GPS) receiver that generates the geo-location data 218 transmitted in theadvertisement wrapper 210. Theadvertisement wrapper 210 may also include an IP address 228, which the search module 310 may use to determine the location of theuser device 200. In some examples, theadvertisement wrapper 210 also includes additional data, including, but not limited to, platform data 222 (e.g., version of theoperating system 224, device type, and web-browser version), an identity of auser 10 of the user device 200 (e.g., a username), partner specific data, and other data. In some examples, theadvertisement wrapper 210 includes installed application data that includes applications 204 installed on theuser device 200. In some examples, theadvertisement wrapper 210 includes information that theprofile generation module 350 used to update theuser profile record 370. - In some examples, the
advertisement system 400 receives anadvertisement request 212 and outputs application state identifiers (IDs) 332 (or application state records 330) that point to application states or documents 144 (i.e.,RSS documents 144 included in the RSS feeds 142 having near-real time information) that includes the selectedadvertisement 431. Eachapplication state ID 332 uniquely identifies a state of an application 204, and provides a template or the parameters to uniquely identify one or more access mechanisms accessing a state of an application (e.g., different OS may use different access mechanisms to assess a state of an application). In some implementations, theapplication state IDs 332 include a Uniform Resource Locator (URL) referencing a functional state of an application 204. In other implementations, the application state IDs may include another locator having a different form, e.g., func://exampleapp/param1¶m2, which includes the parameters (param1 and param2) that are used to generate the access mechanisms 202. - Referring back to
FIGS. 3A, 3B, 6, 7A and 7B , theadvertisement system 400 receives anadvertisement wrapper 210 and generates personalized/targeted advertisement results 220 based on data included in astorage system 404 of theadvertisement system 400. In some implementations, theadvertisement system 400 receives anadvertisement wrapper 210 from theuser device 200 and performs a search foradvertisement records 530 in thestorage system 404 based on data included in theadvertisement wrapper 210, such as theadvertisement request 212. - The
user device 200 may generate user selectable 234, 236 based on the received advertisement results 220 (e.g.,links 234, 236 oflinks FIG. 1 ). Each user selectable link 234, 236 displayed to theuser 10 may include an access mechanism 202. Anapplication link 236 allows theuser 10 to access the application 204, while anadvertisement link 234 allows theuser 10 to access theadvertisement 431 associated with the displayed text (i.e., link 234), using the application 204 associated with theapplication link 236. Theuser 10 may select a user 234, 236 on theselectable link user device 200 by interacting with thelink 234, 236 (e.g., touching or clicking the link). In response to selection of the 234, 236, thelink user device 200 may launch a corresponding software application 204 (e.g., a native application 204 a or a web-browser application 204 b) referenced by the access mechanism 202 and perform one or more operations indicated in the access mechanism 202. - Access mechanisms 202 may include at least one of a native application access mechanism 202 a (hereinafter “application access mechanism”), a web access mechanism 202 b, and an application download mechanism 202 c. The
user device 200 may use the access mechanisms 202 to access functionality of applications 204. For example, theuser 10 may select a user 234, 236 including an access mechanism 202 in order to access functionality of an application 204 indicated in the user selectable link 234, 236. The search module 310 may transmit one or more application access mechanisms 202 a, one or more web access mechanisms 202 b, and one or more application download mechanisms 202 c to theselectable link user device 200 in the advertisement results 220. - An application access mechanism 202 a may be a string that includes a reference to a native application 204 a and indicates one or more operations for the
user device 200 to perform. If auser 10 selects a user 234, 236 including an application access mechanism 202 a, theselectable link user device 200 may launch the native application 204 a referenced in the application access mechanism 202 a and perform the one or more operations indicated in the application access mechanism 202 a. - An application access mechanism 202 a includes data that the
user device 200 can use to access functionality provided by a native application 204 a. For example, an application access mechanism 202 a can include data that causes theuser device 200 to launch a native application 204 a and perform a function associated with the native application 204 a. Performance of a function according to the access mechanism 202 may set the native application 204 a into a specified state. Accordingly, the process of launching a native application 204 a and performing a function according to an application access mechanism 202 a may be referred to herein as launching the native application 204 a and setting the native application 204 a into a state that is specified by the application access mechanism 202 a. In some examples, an application access mechanism 202 a for a restaurant reservation application can include data that causes theuser device 200 to launch the restaurant reservation application and assist in making a reservation at a restaurant. In such examples, the restaurant reservation application may be set in a state that displays reservation information to theuser 10, such as a reservation time, a description of the restaurant, and user reviews. In additional examples, an application access mechanism 202 a for an internet media player application can include data that causes theuser device 200 to launch the internet media player application and stream media from the Internet. In such examples, the internet media player application may be set in a state that displays information regarding the media (e.g., music) being streamed, such as a song name, an artist, or an album name. - Application access mechanisms 202 a may have various different formats and content. The format and content of an application access mechanism 202 a may depend on the native application 204 a with which the application access mechanism 202 is associated and the operations that are to be performed by the native application 204 a in response to selection of the application access mechanism 202 a. For example, an application access mechanism 202 a for an internet music player application may differ from an application access mechanism 202 a for a shopping application. An application access mechanism 202 a for an internet music player application may include references to musical artists, songs, and albums, for example. The application access mechanism 202 a for an internet music player application may also reference operations, such as randomizing a list of songs and playing a song or album. An application access mechanism 202 a for a shopping application may include references to different products that are for sale. The application access mechanism 202 a for the shopping application may also include references to one or more operations, such as adding products to a shopping cart and proceeding to a checkout.
-
FIG. 8 illustrates anexample method 800 for receiving subscription data from auser device 200 and determining if the subscription tags 376 of a generateduser profile record 370 are known tags 376 a or unknown tags 376 b. Atblock 802, the profile system 300 (FIG. 3 ) receives subscription data 229 of auser 10 from auser device 200. Atblock 804, the profile system 300 (i.e., data collection module 380) generates one ormore subscription tags 376 based on the received subscription data 229 from theuser device 200. Atblock 806, thecollection module 380 updates a user profile, i.e.,profile record 370, with the one or more received subscription tags 376. Atblock 808, thecollection module 380 determines if any of the subscription tags 376 are unknown subscription tags 376 b. If there are unknown subscription tags 376 b, then atblock 810 thecollection module 380 adds the unknown tags 376 b to a set of ‘spidering tags’ for which thecollection module 380 will crawl and spider the web to collect. -
FIG. 9 is a schematic view illustrating anexample method 900 for receiving an advertisement request and generating advertisements. Atblock 902, theprocessing system 402 of theadvertisement system 400 receives an advertisement request from auser device 200, and atblock 904, retrieves auser profile record 370 of theuser 10 of theuser device 200. Theprocessing system 402 may retrieve theuser profile record 370 from the data store 360 using theprofile ID 372 of theuser 10. Theprocessing system 402, atblock 906, identifies subscription tags 376 contained in theuser profile record 370, and atblock 908, identifies one ormore advertisement records 430 based on the subscription tags 376. For example, theadvertisement module 410 of theprocessing system 402 may identify the one ormore advertisement records 430 within the advertisementrecord data store 420 using the subscription tags 376. Then, atblock 910, theprocessing system 402 generates one ormore advertisements 238 based on the one ormore advertisement records 430 and provides theadvertisements 238 to theuser device 200. - Referring to
FIGS. 10-11B , in some examples, theuser device 200 includes a processing device 203 (also referred to as a processor) andnon-transitory memory 206 in communication with theprocessor 203. Theuser device 200 may include a graphical user interface (GUI) 240 of an application 204 that includes theadvertisement application 216 running on the user device 200 (e.g., executing on the processor 203). TheGUI 240 displays alist 231 of displayed advertisement results 230 (user-selectable links) based on the advertisement requests 212 from theuser device 200. Theprocessing device 203 executes one or more applications, including but not limited to anadvertisement application 216, native applications 204, 204 a and web browser applications 204, 204 b. In addition, theuser device 200 may run anoperating system 224 while executing one ormore applications 204, 216. - The
advertisement system 400 may transmit data (e.g.,advertisement data 232, such as text and/or images), which may be used by theuser device 200 to generate user selectable 234, 236 from the advertisement results 220. Alinks 234, 236 may include text and/or images that thelink user 10 may select (e.g., touch) via auser interface 240 displayed on the screen 201 (e.g., a display or touch screen) of theuser device 200. Each user selectable link 234, 236 may be associated with an application access mechanism 202 a such that when theuser 10 selects a 234, 236, thelink user device 200 launches the native application 204 a referenced in the application access mechanism 202 a and performs the one or more operations indicated in the application access mechanism 202 a. The text and/or images of a 234, 236 displayed to thelink user 10 may indicate the operations that will be performed in response to selection of the 234, 236. For example, if thelink 234, 236 is to a song in a music playing application, the text and/or images may identify the music application that will be launched by thelink user device 200 and the song that will be played by the music playing application when theuser 10 selects the 234, 236. Another example, if thelink link 234 is to anadvertisement 431, thelink 234 will display text associated with the advertisement, and thelink 234 will launch an application 204 that allows theuser 10 to view the advertisement. - The
user 10 may select a 234, 236 to cause thelink user device 200 to launch the native application 204 a identified in the 234, 236 and perform one or more operations according to the application access mechanism 202 a associated with thelink 234, 236. Put another way, when thelink user 10 selects a 234, 236, thelink user device 200 launches a native application 204 a and sets the native application 204 a into a state defined by the application access mechanism 202 a associated with the link. In general, a state of a native application 204 a may refer to the operations and/or the resulting outcome of the native application 204 a in response to selection of a 234, 236. A state to which the native application is set may also be referred to herein as an “application state.”link - An application state specified by an application access mechanism 202 a may depend on the functionality provided by the native application 204 a. For example, if a native application 204 a is configured to retrieve and display information from the Internet, the native application 204 a can be set into a state in which the native application 204 a retrieves information from the Internet and displays information to the
user 10. In another example, if a native application 204 a is configured to play media (e.g., music and/or video) from the Internet, the native application 204 a can be set into a state in which the native application 204 a is playing a song or a movie from the Internet. In yet another example, if a native application 204 a is configured to make restaurant reservations, the native application 204 a can be set into a state in which the native application 204 a displays available restaurant reservations to theuser 10. - A web access mechanism 202 b may include a resource identifier that includes a reference to a web resource (e.g., a page of a web application/website). For example, a web access mechanism 202 b may include a uniform resource locator (URL) (i.e., a web address) used with hypertext transfer protocol (HTTP). If a
user 10 selects a user 234, 236 including a web access mechanism 202 b, theselectable link user device 200 may launch the web browser application 204 b and retrieve the web resource indicated in the resource identifier. Put another way, if auser 10 selects a user 234, 236 including a web access mechanism 202 b, theselectable link user device 200 may launch a corresponding web-browser application 204 b and access a state (e.g., a page) of a web application/website. In some examples, web access mechanisms 202 b include URLs for mobile-optimized sites and/or full sites. - The web access mechanism 202 b included in an
application state record 330 may be used by a web browser to access a web resource that includes similar information and/or performs similar functions as would be performed by a native application 204 a that receives an application access mechanism 202 a of theapplication state record 330. For example, the web access mechanism 202 b of anapplication state record 330 may direct the web-browser application 204 b of theuser device 200 to a web version of the native application 204 a referenced in the application access mechanisms 202 a of theapplication state record 330. Moreover, if the application access mechanisms 202 included in anapplication state record 330 for a specific Mexican restaurant cause each application edition to retrieve information for the specific Mexican restaurant, the web access mechanism 202 b may direct the web-browser application 204 b of theuser device 200 to a web page entry for the specific Mexican restaurant. -
FIGS. 11A-11C illustrate the different types of advertisement results 220 that may be presented todifferent users 10 based on the native applications 204 a that eachuser 10 has installed on his/heruser device 200 and theuser profile record 370 associated with eachuser device 200. For example, referring toFIG. 11A , theuser 10 may have two sports news applications 204 (e.g., Sports News A and Sports News B) and a News application (e.g., “Bay News”) installed on theuser device 200. When anadvertisement request 212 is triggered, the displayedlist 231 of advertisement results 230 includes displayed 230, 230 a-c, where each displayedresults advertisement result 230 includes first and second user selectable 234, 236. Thelinks advertisement system 400 considers theuser profile 370 of theuser 10, including the user subscriptions tags 376 corresponding to an entity tag data 377. Assuming that theuser profile 370 indicates that theuser 10 is located in the San Jose area and that theuser 10 is a big fan of the soccer team ‘Earthquakes’, theadvertisement system 400 may determine whichadvertisement 431 is associated with anadvertisement record 530 that includesadvertising parameters 538 satisfied by theuser profile 370. Theadvertisement system 400 may select the advertisement results 220 (i.e., displayed results 230) relating to the purchase of tickets for a game due to satisfying theadvertising parameters 538 of aticketing advertisement 431 that sells game tickets. Theadvertising parameters 538 may include the user location, the applications downloaded on theuser device 200, entity tag data 377 of the user subscription tags 376, or any other parameters of theuser profile record 370 that the advertiser selects. Thus, the displayedadvertisement results 230 include a first user-selectable link 236 that allows theuser 10 to open the application 204 associated with theadvertisement result 220; while a second user-selectable link 234 provides theuser 10 with a link to theadvertisement 431 related to the application 204 associated with theadvertisement result 220. - As shown in the example, the first displayed
advertisement 230 a provides a first application link 236 a to the ‘Sports News A’ application and asecond content link 234 a that provides theuser 10 with an advertisement link to purchase tickets for an upcoming game. The second displayedadvertisement 230 b includes a first application link 236 b to the ‘Sports News B’ application, and asecond content link 234 b that provides theuser 10 with a different ticketing service for the Earthquakes Game. The third displayedadvertisement 230 c includes a first application link 236 c to the ‘Bay News’ application, and asecond content link 234 c that provides theuser 10 with an article in the Bay News about the Earthquakes team (in this case that the Earthquakes team is trading a starting player), which may be anadvertisement article 431. The second user-selectable links 234 are associated with applications previously installed on theuser device 200. In other words, theadvertisement module 410 may be restricted to providing advertisements associated with applications 204 previously installed on theuser device 200. - In the example shown in
FIG. 11B , theuser 10 has BookReader application(s) 204 and a news application 204 installed on theuser device 200. Thesystem 100 may have previously collected content feeds (e.g., feed documents 144) from the BookReader application that are for a book called “Earthquakes Soccer History” and “Soccer History” and thesystem 100 may have collected from the Bay News application an article (e.g., a document 144) about the Earthquakes soccer team in San Jose. In this example, the displayedadvertisement results 230 include three displayed advertisement results 230. A first displayed advertisement result 230 a includes a first application link 236 a to the BookReader application, while asecond content link 234 a provides theuser 10 with a link to purchase a copy of the book Earthquake Soccer History. The second displayedadvertisement result 230 b includes a first application link 236 a to the BookReader application 204, and asecond content link 234 b provides theuser 10 with a link to download a copy of Soccer History on BookReader. The third displayedresult 230 c includes a first application link 236 c to the ‘Bay News’ application, and asecond content link 234 c that provides theuser 10 with an article in the Bay News about the Earthquakes team (in this case that the Earthquakes team is trading a starting player). In this example, the advertisement results 230 relate to soccer, because theuser profile 370, including itssubscription tags 376 and respective entity tag data 377, indicate that theuser 10 is a soccer fan, and therefore theadvertisement 431 selection relate to soccer (in addition to satisfying the advertisement parameters 538). -
FIG. 12 illustrates amethod 1200 for personalizing deep search results usingsubscription data 534. At block 1202, themethod 1200 includes receiving, at the computing device, one or more user permissions to access one or more applications 204 installed on auser device 200. At block 1204, themethod 1200 includes generating, at the computing device, auser profile record 370 associated with theuser device 200. Theuser profile record 370 includes user profile data including adevice location 218, device data defining at least one of adevice operating system 224, and a list of applications 204 installed on theuser device 200. Theuser profile record 370 further includessubscription tags 376 defining one or more user subscriptions to application access mechanisms 202. Atblock 1206, themethod 1200 further includes receiving, at the computing device from theuser device 200, usage data of one or more applications 204 installed on theuser device 200. Atblock 1208, themethod 1200 includes receiving, at the computing device from theuser device 200, an advertising request including an application state. Atblock 1210, themethod 1200 includes identifying, at the computing device, one ormore advertisements 238 based on the subscription tags 376. - In some implementations, the
method 1200 includes transmitting to theuser device 200 an identifiedadvertisement 431 in response to a user selection of asubscription tag 376. Eachadvertisement 431 may defineadvertisement parameters 538 including one or more of access mechanisms 202,advertisement subscription 534, and/orkeyword parameters 582. Themethod 1200 may further include transmitting to theuser device 200 an identifiedadvertisement 431 when auser subscription tags 376 and theadvertisement subscriptions 534 have a threshold similarity value. -
FIG. 13 illustrates asecond method 1300 for personalizing advertisements using subscription data. Atblock 1302, themethod 1300 includes receiving, at a computing device (e.g., advertisement system 500), usage data (e.g., subscription data 229 and device data that is used to generate the user profile record 370) of auser 10. Atblock 1304, themethod 1300 includes and receivingadvertisement parameters 538 for one ormore advertisements 431. The usage data includes device usage data (e.g., user profile data 374) associated with auser device 200 of the correspondinguser 10 and subscription usage data (e.g., subscription tags 376) associated with one or more applications 204 installed on theuser device 200. Atblock 1306, themethod 1300 includes determining whether any of theadvertisement parameters 538 are satisfied by the usage data (or the profile record 370) of theuser 10. When anadvertisement parameter 580 is satisfied by the usage data of theuser 10, atblock 1308, themethod 1300 includes outputting, to theuser device 200 of theuser 10, the advertisement 431 (e.g., an advertisement result 220) corresponding to the satisfied advertisement parameter. - In some implementations, the
method 1300 includes receiving anadvertisement request 212 from theuser device 200 for an advertisement. Theadvertisement request 212 is sent from theuser device 200 based on a trigger from a software application executing on theuser device 200. -
FIG. 14 illustrates amethod 1400 for receiving personalized advertisement search results. Atblock 1402, the method includes sending, from auser device 200 to anadvertisement system 500, usage data of auser 10. The usage data includes device usage data (e.g., user profile data 374) associated with theuser device 200 and subscription usage data (e.g., subscription tags 376) associated with one or more applications installed on theuser device 200. Thesubscription usage data 376 defines one or more subscription content feeds 376. Eachsubscription content feed 376 is associated with an application installed on the user device. Atblock 1404, themethod 1404 further includes sending anadvertisement request 212 from theuser device 200 to theadvertisement system 400. Atblock 1406, themethod 1400 includes receiving one ormore advertisements results 220 each associated with anadvertisement 431, transmitted from theadvertisement system 400. Eachadvertisement 431 includesadvertisement data 232 and an advertisement access mechanism 202 that has a reference to a corresponding application installed on theuser device 200. The advertisement access mechanism indicates a performable operation for the corresponding application relating to theadvertisement 431. Theadvertisement 431 has one ormore advertisement parameters 538 that are satisfied by the usage data of theuser 10. Atblock 1408, themethod 1400 further includes displaying, on adisplay 201 in communication with theuser device 200, agraphical user interface 240 including the one ormore advertisements 431 as displayed advertisement results 230. Each advertisement includes a user selectable link 234 associated with the corresponding advertisement access mechanism 202. In some examples, theadvertisement request 212 sent from theuser device 200 is based on a trigger from a software application executing on theuser device 200. - Referring back to
FIGS. 13 and 14 , in some examples, the device usage data may include at least one of a device location 374 b, a device operating system 374 c, or a list of the one or more applications 374 d installed on thecorresponding user device 200. Thesubscription data 376 may include one ormore subscription tags 376, 376 a, 376 b to content access mechanisms. Eachsubscription tag 376 is associated with one of the one or more applications installed on theuser device 200. Each subscription tag associated with one or more entities and/or categories 377. - In some examples, the
advertising parameters 538 of an advertisement are associated with one or more entities and/orcategories 501. Anentity 501 may include a person, a location, a business, a product, a service, a media content, or a destination. A category may include at least one of a book category, a business category, an education category, an entertainment category, a food and dining category, a games category, a health and fitness category, a lifestyle category, a music and videos category, a news category, a weather category, a photo category, a productivity category, a social media category, or a sports category. Each advertisement 431 (e.g., advertisement result 220 sent to the user device 200) may includeadvertisement data 232 and an advertisement access mechanism 202 having a reference to a corresponding application installed on theuser device 200 The advertisement access mechanism indicates 202 a performable operation for the corresponding application relating to theadvertisement 431. -
FIG. 15 is a schematic view of anexample computing device 1500 that may be used to implement the systems and methods described in this document. Thecomputing device 1500 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. 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 disclosure described and/or claimed in this document. - The computing device 1500 (e.g., the
advertisement application 216, theuser device 200, theprofile system 300, or the advertisement system 400) includes a 112, 203, 302, 1510,processor memory 1520, a 114, 206, 304, 1530, a high-speed interface/storage device controller 1540 connecting to thememory 1520 and high-speed expansion ports 1550, and a low speed interface/controller 1560 connecting tolow speed bus 1570 and storage device 1530. Each of the 1510, 1520, 1530, 1540, 1550, and 1560, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 1510 can process instructions for execution within thecomponents computing device 1500, including instructions stored in thememory 1520 or on the storage device 1530 to display graphical information for a graphical user interface (GUI) on an external input/output device, such as display 1580 coupled tohigh speed interface 1540. 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 1500 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 1520 stores information non-transitorily within thecomputing device 1500. Thememory 1520 may be a computer-readable medium, a volatile memory unit(s), or non-volatile memory unit(s). Thememory hardware 1520 may be physical devices used to store programs (e.g., sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use by thecomputing device 1500. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM)/programmable read-only memory (PROM)/erasable programmable read-only memory (EPROM)/electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware, such as boot programs) as well as disks or tapes. Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM). - The storage device 1530 is capable of providing mass storage for the
computing device 1500. In some implementations, the storage device 1530 is a computer-readable medium. In various different implementations, the storage device 1530 may be 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. In additional implementations, 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 thememory 1520, the storage device 1530, or memory on processor 1510. - The
high speed controller 1540 manages bandwidth-intensive operations for thecomputing device 1500, while thelow speed controller 1560 manages lower bandwidth-intensive operations. Such allocation of duties is exemplary only. In some implementations, the high-speed controller 1540 is coupled to thememory 1520, the display 1580 (e.g., through a graphics processor or accelerator), and to the high-speed expansion ports 1550, which may accept various expansion cards (not shown). In some implementations, the low-speed controller 1560 is coupled to the storage device 1530 and low-speed expansion port 1570. The low-speed expansion port 1570, 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 1500 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as astandard server 1500 a or multiple times in a group ofsuch servers 1500 a, as alaptop computer 1500 b, or as part of arack server system 1500 c. - Various implementations of the systems and techniques described here can be realized in digital electronic and/or optical 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” and “computer-readable medium” refer to any computer program product, non-transitory computer readable medium, 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.
- Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Moreover, subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The terms “data processing apparatus”, “computing device” and “computing processor” encompass all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.
- A computer program (also known as an application, program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- To provide for interaction with a user, one or more aspects of the disclosure can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen for displaying information to the user and optionally 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 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. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
- One or more aspects of the disclosure can be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a frontend 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 subject matter described in this specification, or any combination of one or more such backend, middleware, or frontend 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”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
- 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. In some implementations, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
- While this specification contains many specifics, these should not be construed as limitations on the scope of the disclosure or of what may be claimed, but rather as descriptions of features specific to particular implementations of the disclosure. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
- Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multi-tasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
- A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.
Claims (26)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/743,589 US20160189214A1 (en) | 2014-12-31 | 2015-06-18 | Personalizing Advertisements Using Subscription Data |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462099088P | 2014-12-31 | 2014-12-31 | |
| US14/743,589 US20160189214A1 (en) | 2014-12-31 | 2015-06-18 | Personalizing Advertisements Using Subscription Data |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20160189214A1 true US20160189214A1 (en) | 2016-06-30 |
Family
ID=56164716
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/743,589 Abandoned US20160189214A1 (en) | 2014-12-31 | 2015-06-18 | Personalizing Advertisements Using Subscription Data |
| US14/744,378 Expired - Fee Related US10311478B2 (en) | 2014-12-31 | 2015-06-19 | Recommending content based on user profiles clustered by subscription data |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/744,378 Expired - Fee Related US10311478B2 (en) | 2014-12-31 | 2015-06-19 | Recommending content based on user profiles clustered by subscription data |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US20160189214A1 (en) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180049106A1 (en) * | 2016-08-11 | 2018-02-15 | Silicon Laboratories Finland Oy | Multiple Link Layers and Advertisement Policies For Wireless Communication |
| CN108230050A (en) * | 2018-02-12 | 2018-06-29 | 北京搜狐新媒体信息技术有限公司 | Advertisement placement method and system |
| US10296276B2 (en) * | 2015-08-30 | 2019-05-21 | EVA Automation, Inc. | User interface based on device-state information |
| US10356575B1 (en) * | 2018-08-08 | 2019-07-16 | CSG Media, LLC | System and method for network provisioning |
| US10592924B1 (en) * | 2014-06-05 | 2020-03-17 | ProSports Technologies, LLC | Managing third party interactions with venue communications |
| US10628851B2 (en) * | 2016-12-29 | 2020-04-21 | Facebook, Inc. | Analyzing and converting unstructured networking system communications |
| CN112950273A (en) * | 2021-03-09 | 2021-06-11 | 加和(北京)信息科技有限公司 | Method and device for processing advertisement putting strategy |
| US12361020B2 (en) * | 2016-05-09 | 2025-07-15 | Comcast Cable Communications, Llc | Distributed data access control |
Families Citing this family (59)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9591339B1 (en) | 2012-11-27 | 2017-03-07 | Apple Inc. | Agnostic media delivery system |
| US9774917B1 (en) | 2012-12-10 | 2017-09-26 | Apple Inc. | Channel bar user interface |
| US10200761B1 (en) | 2012-12-13 | 2019-02-05 | Apple Inc. | TV side bar user interface |
| US9532111B1 (en) | 2012-12-18 | 2016-12-27 | Apple Inc. | Devices and method for providing remote control hints on a display |
| US10521188B1 (en) | 2012-12-31 | 2019-12-31 | Apple Inc. | Multi-user TV user interface |
| US12149779B2 (en) | 2013-03-15 | 2024-11-19 | Apple Inc. | Advertisement user interface |
| US9792018B2 (en) | 2014-06-24 | 2017-10-17 | Apple Inc. | Input device and user interface interactions |
| AU2015280256A1 (en) | 2014-06-24 | 2016-10-13 | Apple Inc. | Column interface for navigating in a user interface |
| US10210263B1 (en) * | 2014-06-24 | 2019-02-19 | Google Llc | Native application search results |
| US9936031B2 (en) | 2015-03-31 | 2018-04-03 | International Business Machines Corporation | Generation of content recommendations |
| US20160379323A1 (en) * | 2015-06-26 | 2016-12-29 | International Business Machines Corporation | Behavioral and exogenous factor analytics based user clustering and migration |
| US9910685B2 (en) | 2015-08-13 | 2018-03-06 | Samsung Electronics Co., Ltd. | System and method for identifying, indexing, and navigating to deep states of mobile applications |
| US10380146B2 (en) * | 2015-08-17 | 2019-08-13 | Oath Inc. | Locale of interest identification |
| US10140327B2 (en) * | 2015-08-24 | 2018-11-27 | Palantir Technologies Inc. | Feature clustering of users, user correlation database access, and user interface generation system |
| US10503796B2 (en) * | 2015-10-26 | 2019-12-10 | Facebook, Inc. | Searching for application content with social plug-ins |
| US10467213B2 (en) * | 2015-10-26 | 2019-11-05 | Facebook, Inc. | Search indices for social plug-ins |
| JP5973051B1 (en) * | 2015-12-14 | 2016-08-23 | 株式会社リクルートホールディングス | Sales support system, control method thereof, and computer program for sales support |
| US9984146B2 (en) * | 2015-12-15 | 2018-05-29 | Oath Inc. | Method and system for mapping notable entities to their social profiles |
| US20190042226A1 (en) * | 2016-02-07 | 2019-02-07 | Particle Media, Inc. | Method and system for multi-level content platform |
| US9928230B1 (en) | 2016-09-29 | 2018-03-27 | Vignet Incorporated | Variable and dynamic adjustments to electronic forms |
| US9858063B2 (en) | 2016-02-10 | 2018-01-02 | Vignet Incorporated | Publishing customized application modules |
| US12217036B2 (en) | 2016-02-10 | 2025-02-04 | Vignet Incorporated | Automating interactions for health data collection and patient engagement |
| DK201670582A1 (en) | 2016-06-12 | 2018-01-02 | Apple Inc | Identifying applications on which content is available |
| DK201670581A1 (en) | 2016-06-12 | 2018-01-08 | Apple Inc | Device-level authorization for viewing content |
| US10187344B2 (en) * | 2016-10-03 | 2019-01-22 | HYP3R Inc | Social media influence of geographic locations |
| US10356027B2 (en) | 2016-10-03 | 2019-07-16 | HYP3R Inc | Location resolution of social media posts |
| US11966560B2 (en) | 2016-10-26 | 2024-04-23 | Apple Inc. | User interfaces for browsing content from multiple content applications on an electronic device |
| US20180121461A1 (en) * | 2016-10-31 | 2018-05-03 | Facebook, Inc. | Methods and Systems for Deduplicating Redundant Usage Data for an Application |
| CA2953311A1 (en) | 2016-12-29 | 2018-06-29 | Dressbot Inc. | System and method for multi-user digital interactive experience |
| US10841660B2 (en) | 2016-12-29 | 2020-11-17 | Dressbot Inc. | System and method for multi-user digital interactive experience |
| US10789536B2 (en) * | 2017-08-08 | 2020-09-29 | International Business Machines Corporation | Using Trie structures to efficiently identify similarities among topical subjects |
| US12307082B2 (en) | 2018-02-21 | 2025-05-20 | Apple Inc. | Scrollable set of content items with locking feature |
| AU2019100574B4 (en) | 2018-06-03 | 2020-02-20 | Apple Inc. | Setup procedures for an electronic device |
| DK201870354A1 (en) * | 2018-06-03 | 2019-12-20 | Apple Inc. | Setup procedures for an electronic device |
| US10775974B2 (en) | 2018-08-10 | 2020-09-15 | Vignet Incorporated | User responsive dynamic architecture |
| US10872126B2 (en) * | 2018-09-28 | 2020-12-22 | Block Communications, Inc. | Electronic newspaper delivery platform |
| CN113940088A (en) | 2019-03-24 | 2022-01-14 | 苹果公司 | User interface for viewing and accessing content on an electronic device |
| US11683565B2 (en) | 2019-03-24 | 2023-06-20 | Apple Inc. | User interfaces for interacting with channels that provide content that plays in a media browsing application |
| EP4443850A3 (en) | 2019-03-24 | 2024-12-04 | Apple Inc. | User interfaces for a media browsing application |
| CN114115676A (en) | 2019-03-24 | 2022-03-01 | 苹果公司 | User interface including selectable representations of content items |
| US11863837B2 (en) | 2019-05-31 | 2024-01-02 | Apple Inc. | Notification of augmented reality content on an electronic device |
| EP3977245A1 (en) | 2019-05-31 | 2022-04-06 | Apple Inc. | User interfaces for a podcast browsing and playback application |
| US11763349B2 (en) | 2019-06-27 | 2023-09-19 | Walmart Apollo, Llc | Methods and apparatus for automatically providing digital advertisements |
| US11562401B2 (en) * | 2019-06-27 | 2023-01-24 | Walmart Apollo, Llc | Methods and apparatus for automatically providing digital advertisements |
| US11301923B2 (en) * | 2019-08-05 | 2022-04-12 | Yahoo Assets Llc | Automatic web browsing in electronic messaging interface method and apparatus |
| WO2021159276A1 (en) * | 2020-02-11 | 2021-08-19 | Citrix Systems, Inc. | Systems and methods for expedited access to applications |
| US11843838B2 (en) | 2020-03-24 | 2023-12-12 | Apple Inc. | User interfaces for accessing episodes of a content series |
| US11899895B2 (en) | 2020-06-21 | 2024-02-13 | Apple Inc. | User interfaces for setting up an electronic device |
| US11763919B1 (en) | 2020-10-13 | 2023-09-19 | Vignet Incorporated | Platform to increase patient engagement in clinical trials through surveys presented on mobile devices |
| US11720229B2 (en) | 2020-12-07 | 2023-08-08 | Apple Inc. | User interfaces for browsing and presenting content |
| US11417418B1 (en) | 2021-01-11 | 2022-08-16 | Vignet Incorporated | Recruiting for clinical trial cohorts to achieve high participant compliance and retention |
| US11240329B1 (en) | 2021-01-29 | 2022-02-01 | Vignet Incorporated | Personalizing selection of digital programs for patients in decentralized clinical trials and other health research |
| US11934640B2 (en) | 2021-01-29 | 2024-03-19 | Apple Inc. | User interfaces for record labels |
| US11636500B1 (en) | 2021-04-07 | 2023-04-25 | Vignet Incorporated | Adaptive server architecture for controlling allocation of programs among networked devices |
| US11901083B1 (en) | 2021-11-30 | 2024-02-13 | Vignet Incorporated | Using genetic and phenotypic data sets for drug discovery clinical trials |
| US11705230B1 (en) | 2021-11-30 | 2023-07-18 | Vignet Incorporated | Assessing health risks using genetic, epigenetic, and phenotypic data sources |
| US11899693B2 (en) * | 2022-02-22 | 2024-02-13 | Adobe Inc. | Trait expansion techniques in binary matrix datasets |
| US12267793B2 (en) * | 2022-05-19 | 2025-04-01 | Oracle International Corporation | Methods, systems, and computer readable media for synchronization of policy data between network functions in telecommunications networks |
| US20240346566A1 (en) * | 2023-04-12 | 2024-10-17 | Microsoft Technology Licensing, Llc | Content recommendation using retrieval augmented artificial intelligence |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100036737A1 (en) * | 2008-08-11 | 2010-02-11 | Research In Motion | System and method for using subscriptions for targeted mobile advertisement |
| US20130159103A1 (en) * | 2011-12-16 | 2013-06-20 | AppLovin Corporation | Advertisement Selection Based on Mobile Applications |
| US20140081915A1 (en) * | 2011-05-11 | 2014-03-20 | Nokia Corporation | Method and apparatus for matching publications and subcriptions based in part on contextual characteristics associated with the subscriptions or publications |
| US20140157199A1 (en) * | 2012-12-05 | 2014-06-05 | Qriously, Inc. | Systems and Methods for Collecting Information with a Mobile Device and Delivering Advertisements Based on the Collected Information |
| US20140297407A1 (en) * | 2013-04-01 | 2014-10-02 | Apple Inc. | Context-switching taxonomy for mobile advertisement |
| US9185446B1 (en) * | 2013-02-26 | 2015-11-10 | Roku, Inc. | Method and apparatus for automatic second screen engagement |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7621442B2 (en) | 2005-09-19 | 2009-11-24 | Silverbrook Research Pty Ltd | Printing a subscription using a mobile device |
| US7590691B2 (en) * | 2005-10-07 | 2009-09-15 | Google Inc. | Indirect subscriptions to top N lists of content feeds |
| US8903843B2 (en) * | 2006-06-21 | 2014-12-02 | Napo Enterprises, Llc | Historical media recommendation service |
| US8694607B2 (en) * | 2006-10-06 | 2014-04-08 | Google Inc. | Recursive subscriptions to content feeds |
| US20090049540A1 (en) * | 2007-08-18 | 2009-02-19 | Khalil Ayman S | Method and system for providing targeted web feed subscription recomendations calculated through knowledge of ip addresses |
| US8700636B2 (en) * | 2010-09-16 | 2014-04-15 | Facebook, Inc. | Action clustering for news feeds |
| US7984056B1 (en) * | 2007-12-28 | 2011-07-19 | Amazon Technologies, Inc. | System for facilitating discovery and management of feeds |
| US20120233009A1 (en) | 2011-03-09 | 2012-09-13 | Jon Bernhard Fougner | Endorsement Subscriptions for Sponsored Stories |
| US9015156B2 (en) * | 2012-03-30 | 2015-04-21 | Percolate Industries, Inc. | Interactive computing recommendation facility with learning based on user feedback and interaction |
| US9524198B2 (en) | 2012-07-27 | 2016-12-20 | Google Inc. | Messaging between web applications |
| US9686577B2 (en) | 2013-02-22 | 2017-06-20 | Time-sensitive content update | |
| US20140250177A1 (en) * | 2013-03-01 | 2014-09-04 | Google Inc. | Recommending content based on proxy-based preference indications |
| US9734521B2 (en) | 2014-03-12 | 2017-08-15 | Google Inc. | Subscription model for trusted recommendation sources |
| US10050912B2 (en) | 2014-10-27 | 2018-08-14 | At&T Intellectual Property I, L.P. | Subscription-based media push service |
-
2015
- 2015-06-18 US US14/743,589 patent/US20160189214A1/en not_active Abandoned
- 2015-06-19 US US14/744,378 patent/US10311478B2/en not_active Expired - Fee Related
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100036737A1 (en) * | 2008-08-11 | 2010-02-11 | Research In Motion | System and method for using subscriptions for targeted mobile advertisement |
| US20140081915A1 (en) * | 2011-05-11 | 2014-03-20 | Nokia Corporation | Method and apparatus for matching publications and subcriptions based in part on contextual characteristics associated with the subscriptions or publications |
| US20130159103A1 (en) * | 2011-12-16 | 2013-06-20 | AppLovin Corporation | Advertisement Selection Based on Mobile Applications |
| US20140157199A1 (en) * | 2012-12-05 | 2014-06-05 | Qriously, Inc. | Systems and Methods for Collecting Information with a Mobile Device and Delivering Advertisements Based on the Collected Information |
| US9185446B1 (en) * | 2013-02-26 | 2015-11-10 | Roku, Inc. | Method and apparatus for automatic second screen engagement |
| US20140297407A1 (en) * | 2013-04-01 | 2014-10-02 | Apple Inc. | Context-switching taxonomy for mobile advertisement |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10592924B1 (en) * | 2014-06-05 | 2020-03-17 | ProSports Technologies, LLC | Managing third party interactions with venue communications |
| US10296276B2 (en) * | 2015-08-30 | 2019-05-21 | EVA Automation, Inc. | User interface based on device-state information |
| US12361020B2 (en) * | 2016-05-09 | 2025-07-15 | Comcast Cable Communications, Llc | Distributed data access control |
| US20180049106A1 (en) * | 2016-08-11 | 2018-02-15 | Silicon Laboratories Finland Oy | Multiple Link Layers and Advertisement Policies For Wireless Communication |
| US10492050B2 (en) * | 2016-08-11 | 2019-11-26 | Silicon Laboratories Finland Oy | Multiple link layers and advertisement policies for wireless communication |
| US10628851B2 (en) * | 2016-12-29 | 2020-04-21 | Facebook, Inc. | Analyzing and converting unstructured networking system communications |
| CN108230050A (en) * | 2018-02-12 | 2018-06-29 | 北京搜狐新媒体信息技术有限公司 | Advertisement placement method and system |
| US10356575B1 (en) * | 2018-08-08 | 2019-07-16 | CSG Media, LLC | System and method for network provisioning |
| CN112950273A (en) * | 2021-03-09 | 2021-06-11 | 加和(北京)信息科技有限公司 | Method and device for processing advertisement putting strategy |
Also Published As
| Publication number | Publication date |
|---|---|
| US20160191639A1 (en) | 2016-06-30 |
| US10311478B2 (en) | 2019-06-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20160189214A1 (en) | Personalizing Advertisements Using Subscription Data | |
| US9626443B2 (en) | Searching and accessing application functionality | |
| US10157232B2 (en) | Personalizing deep search results using subscription data | |
| US10338898B2 (en) | State-specific external functionality for software developers | |
| US10310834B2 (en) | Searching and accessing application functionality | |
| US10318599B2 (en) | Providing additional functionality as advertisements with search results | |
| US10387505B2 (en) | Generating advertisements using functional clusters | |
| US20200327624A1 (en) | Determining intent of a recommendation on a mobile application | |
| US9374396B2 (en) | Recommended content for an endorsement user interface | |
| US10031725B2 (en) | Entity-based external functionality for software developers | |
| US10444957B1 (en) | Determining intent of a recommendation on a URL of a web page or advertisement | |
| US10089652B2 (en) | Generating advertisements for search results that reference software applications | |
| US20160055256A1 (en) | Systems and methods for directing access to products and services | |
| US10120951B2 (en) | Bifurcated search | |
| US10255618B2 (en) | Deep link advertisements | |
| JP2018200702A (en) | Application install conversion and identification | |
| US20160307237A1 (en) | Accessing Advertised Application States From A Current Application State | |
| CN112868003A (en) | Entity-based search system using user interactivity | |
| US20170103073A1 (en) | Identifying Expert Reviewers | |
| US11250079B2 (en) | Linked network presence documents associated with a unique member of a membership-based organization | |
| WO2016100777A1 (en) | Providing additional functionality as advertisements with search results | |
| WO2016028339A1 (en) | Systems and methods for directing access to products and services | |
| US20160379258A1 (en) | Bid Based Search System | |
| HK1153831A (en) | Open framework for integrating, associating and interacting with content objects |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: QUIXEY, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DAI, XUEYING;GLOVER, ERIC J.;REEL/FRAME:035867/0107 Effective date: 20150601 |
|
| AS | Assignment |
Owner name: ALIBABA.COM U.S. INVESTMENT HOLDING CORPORATION, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:QUIXEY, INC.;REEL/FRAME:039521/0041 Effective date: 20160720 Owner name: ALIBABA.COM U.S. INVESTMENT HOLDING CORPORATION, C Free format text: SECURITY INTEREST;ASSIGNOR:QUIXEY, INC.;REEL/FRAME:039521/0041 Effective date: 20160720 |
|
| AS | Assignment |
Owner name: QUIXEY, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ALIBABA.COM U.S. INVESTMENT HOLDING CORPORATION;REEL/FRAME:044575/0410 Effective date: 20171023 |
|
| AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QUIXEY, INC.;REEL/FRAME:043956/0310 Effective date: 20171019 |
|
| 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 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
| 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 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |