This document generally describes technology related to providing improved graphical user interfaces (GUIs) on computing devices, such as mobile computing devices and other user computing devices.
GUIs are interfaces through which users are able to interact with computing devices and applications that are being executed thereon. For example, GUIs provide graphical presentations of information and graphical elements (e.g., icons, virtual buttons, visual indicators, textboxes, sliders, radio buttons, menus) that a user is able to interact with (e.g., select, activate) through one or more input devices (e.g., mouse, keys/buttons, scroll wheel, trackball, touch/presence-sensitive surface, camera). GUIs have been implemented across a variety of different computing devices, such as desktop computers, laptop computers, and mobile computing devices (e.g., smartphone, tablets, wearable computing devices).
GUIs have also been implemented to dynamically obtain and present information from remote computer systems (e.g., cloud computing systems). For example, social networking applications have been programmed to present GUIs that include a social feed of information relevant to a user who is logged into the application. Such social feeds can be “infinite”—meaning that when a user reaches the end of the content currently loaded into the client device, the social networking application can request additional content from the remote computer system and append the additional content to the social feed.
This document generally describes technology for presenting multiple different types of content in a GUI on a client computing device. For example, a first type of content can be presented in a first content stream or feed, and a second type of content can be presented in a second content stream or feed that occurs within the first content stream. A variety of different types of content can be presented in such GUIs, like social media content, news content, messaging content, product content, productivity content, and/or other types of content.
In one implementation, a method for providing a graphical user interface (GUI) with a content stream includes receiving, at a computing device, social media posts to present in a vertical content stream that is vertically scrollable in the GUI; identifying, by the computing device, that a particular social media post includes tags one or more products that correspond to one or more product elements; outputting, by the computing device, the social media posts in the vertical content stream, wherein the particular social media post is designated in the GUI as being part of a horizontal content stream that is horizontally scrollable in the GUI; receiving, through an input subsystem of the computing device, horizontal scrolling input related to the particular social media post; and outputting, in response to receiving the horizontal scrolling input, a first of the one or more product elements in place of the particular social media post in the vertical content stream.
Such a method can optionally include one or more of the following features. The method can further include receiving, through the input subsystem, user input selecting a graphical element to purchase a product associated with the first product element; and adding, by the computing device, the product to a virtual shopping cart in response to receiving the user input. The vertical content stream can be an infinite social feed. The product can be added to the virtual shopping cart without leaving the infinite social feed or launching another application. The method can further include receiving, through the input subsystem of the computing device, vertical scrolling input while displaying the first product element; and outputting, in response to receiving the vertical scrolling input, a next social media post in the vertical content stream. The GUI can be output on the computing device by a social-retail application that being executed or interpreted on the computing device. The computing device can include a mobile computing device and the social-retail application comprises a mobile application. The social-retail application can be a web application that is being output by a web browser installed and running on the computing device.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting multiple types of content within a content stream includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including selecting first content elements to present in the GUI from the information received through the network interface, the first content elements being of a first type and each including a single content element; selecting second content elements to present in the GUI from the information received through the network interface, the second content elements being of a second type and each including a primary element and one or more secondary elements; and outputting, in a scrollable content stream in the GUI on the display, first graphical elements for the first content elements and second graphical elements for the second content elements, the scrollable content stream being scrollable along a first dimension of the display, the second graphical elements being scrollable along a second dimension of the display and within the scrollable content stream to transition between displaying the primary element and the one or more secondary elements, the second dimension being different from the first dimension.
Such a computing device can optionally include one or more of the following features. The second graphical elements can be presented initially in the scrollable content stream with their primary elements being displayed and the one or more secondary elements being hidden. The operations can further include receiving, through the one or more input devices, scrolling input along the second dimension related to a particular second graphical element that corresponds to a particular second content element; and outputting, in the scrollable content stream in the GUI on the display, a secondary element for the particular second content element in the particular second graphical element in response to receiving the scrolling input. Outputting the secondary element cab include replacing a primary element in the particular second graphical element with the secondary element. The replacing can include an animated transition from the primary element to the secondary element. The animated transition can include a scrolling animation that corresponds to the scrolling input along the second dimension. The operations can further include receiving, through the one or more input devices and while displaying the secondary element for the particular second content element in the particular second graphical element, additional scrolling input along the first dimension; and scrolling, while displaying the secondary element for the particular second content element in the particular second graphical element, the scrollable content stream in the GUI according to the additional scrolling input.
The first dimension can be a vertical dimension, and the second dimension can be a horizontal dimension. The first content elements can be first user-generated social media posts, the primary elements of the second content elements can be second user-generated social media posts that each tag one or more additional content elements described or depicted in the second user-generated social media posts, and the secondary elements of the second content elements can be the additional content elements. The second user-generated social media posts can include (i) user-generated images and (ii) tags that identify products depicted in the user-generated images, and the secondary elements can include product posts for the products identified by the tags, the product posts including retailer-provided images for the products and retailer-provided textual descriptions of the products. The primary elements can further include user-generated comments for the second user-generated social media posts, and the secondary elements can further include (i) user-generated reviews of the products in the product posts and (ii) selectable graphical elements to add corresponding ones of the products to a virtual shopping cart. The user-generated comments for the second user-generated social media posts can be from first groups of users, and the user-generated reviews for the products posts can be from second groups of users that are different from the first groups of users. The first groups of users can include users who have direct or indirect social media connections with an original poster of the second user-generated social media posts, and the second groups of users can include users who own or have otherwise used the products identified in the product posts.
The operations further can further include receiving, through the one or more input devices, scrolling input along the second dimension related to a particular second graphical element that corresponds to a particular second user-generated social media post; outputting, in the scrollable content stream in the GUI on the display, a particular product post for a particular product tagged in the particular second user-generated social media post in the particular second graphical element in response to receiving the scrolling input, the particular product post including (i) one or more user-generated reviews for the particular product and (ii) a particular selectable graphical element to add the particular product to the virtual shopping cart; receiving, through the one or more input device, user input selecting the particular selectable graphical element; adding, in response to receiving the selecting user input, the particular product to virtual shopping cart; outputting, in response to the particular product being successfully added to the virtual shopping cart, one or more visual elements confirming that the particular product has been added to the virtual shopping cart; receiving, through the one or more input devices and while displaying the particular product post in the particular second graphical element, additional scrolling input along the first dimension; and scrolling, while displaying the particular product post in the particular second graphical element, the scrollable content stream in the GUI according to the additional scrolling input. The operations can further include receiving, through the one or more input devices and after the scrolling of the scrollable content stream, further scrolling input along the second dimension related to another second graphical element that corresponds to another second user-generated social media post that is different from the particular second user-generate social media post; outputting, in the scrollable content stream in the GUI on the display, another product post for another product tagged in the other second user-generated social media post in the other second graphical element in response to receiving the further scrolling input, the other product post including (i) one or more user-generated reviews for the other product and (ii) another selectable graphical element to add the other product to the virtual shopping cart; receiving, through the one or more input device, additional user input selecting the other selectable graphical element; adding, in response to receiving the other selecting user input, the other product to virtual shopping cart; and outputting, in response to the other product being successfully added to the virtual shopping cart, one or more additional visual elements confirming that the other product has been added to the virtual shopping cart. The operations can further include receiving, through the one or more input devices, selection of a shopping cart element in the GUI; outputting, in the GUI, (i) a textual summary of the virtual shopping cart, including information identifying the particular product and the other product, and (ii) one or more graphical shopping cart elements to manage and electronically purchase items in the virtual shopping cart. The particular product and the other product can be from different retailers. Outputting the one or more visual elements can include replacing the particular selectable graphical element with the one or more visual elements. The information from the remote server system can be particular to a user who is logged-in on the computing device, and the first content elements and the second content elements can include user-generated content that has been generated by other users with whom the user has direct or indirect social media connections. The computing device can be a mobile computing device and the instructions can be a mobile application.
Certain implementations may provide one or more advantages. In a first example, a single GUI can be used to present different types of content that would otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by presenting multiple different types of content within a single GUI, users can more efficiently access information and features on their devices. In a second example, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a third example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a fourth example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface.
In a fifth example, a single GUI can be provided through which a user can readily navigate between different types of content and content streams without having to lose their context (e.g., where the user is within a content stream and what she is doing in the content stream). For instance, a single GUI can present a content stream of social media content that have perpendicular content streams of other types of content (e.g., product content, messaging content, productivity content) that are tagged in (or otherwise associated with) the social media content. Such a GUI can permit a user to navigate through the social media content stream (e.g., scroll through the social media content stream) and, when appropriate, to navigate in a perpendicular direction along one or more of the other content streams (e.g., product content stream) while maintaining her context within the social media content stream. For instance, within a single GUI a user can scroll to a first social media post (located adjacent to a second social media post), scroll along a product content stream that is relevant to the first social media post, and then from within the product content stream continue to scroll to the second social media post. The user's context within a primary content stream can be maintained while accessing a secondary content stream, and likewise, the context within secondary content streams can be maintained while accessing the primary content stream. Such context can additionally be maintained regardless of the actions performed within either content stream.
This document generally describes technology for presenting content in a GUI on a client computing device, such as content obtained from a computer system that can incorporate multiple different types of content. For example, a GUI can be configured to obtain and present first types of content in association with related second types of content. A variety of techniques can be used to identify related content, such as unidirectional tags between different types of content. For example, forward tags from first content types to second content types can be used to identify relevant second content types. In another example, reverse tags from second content types to first content types can be used to identify relevant second content types. A variety of different types of content can be presented in such GUIs, like social media content, news content, messaging content, product content, productivity content, and/or other types of content.
In one implementation, a method for presenting a graphical user interface (GUI) for product content that is associated with social media content includes receiving, at a computing device, (i) product content for a particular product and (ii) social media content that is associated with the particular product, wherein the social media content each include a product tag that identifies the particular product as being present in the social media content; outputting, by the computing device, the product content in a GUI; outputting, by the computing device, control features in the GUI for ordering the particular product from an online merchant; and outputting, by the computing device, the social media content as selectable elements in the GUI, wherein the selectable elements are configured to cause social media posts corresponding to the social media content to be displayed.
Such a method can optionally include one or more of the following features. The method can further include receiving, through an input subsystem of the computing device, first input selecting a particular selectable element that corresponds to particular social media content; and outputting, by the computing device, a particular social media post that corresponds to particular media content, wherein the particular social media post includes the product tag for the particular product and another product tag for another product. The particular social media content can include a user-generated image that depicts the particular product and the other product. The product tag and the other product tag can identify the particular product and the other product in the user-generated image. The method can further include receiving, through the input subsystem, second input selecting the other product; and outputting, by the computing device, other product content for the other product in the GUI, wherein the first input and the second input cause the GUI to navigate from the particular product to the other product via the particular social media content. The method can further include outputting, before outputting the product content, a social feed in the GUI, wherein the social feed includes social media posts, at least one of which includes the product tag for the particular product; receiving input selecting the particular product from the at least one social medial post in the GUI; and requesting, by the computing device, the product content for the particular product in response to receiving the input. The product content can be output in the GUI in response to receiving the input. The method can further include detecting, through a touchscreen of the input subsystem, a particular gesture after outputting the product content in the GUI; and outputting, in response to detecting the particular gesture, the social feed in the GUI, the social feed replacing the product content in the GUI.
The method can further include outputting, before outputting the product content, a search interface in the GUI with search results that include social media posts and products; receiving input selecting the particular product from the search results; and requesting, by the computing device, the product content for the particular product in response to receiving the input. The product content can be output in the GUI in response to receiving the input. The method can further include detecting, through a touchscreen of the input subsystem, a particular gesture after outputting the product content in the GUI; and outputting, in response to detecting the particular gesture, the search interface in the GUI, the search interface replacing the product content in the GUI. The method can further include outputting, before outputting the product content, an activity feed in the GUI with a chronological list of social actions performed by other users with regard to social media posts and products; receiving input selecting the particular product from the activity feed; and requesting, by the computing device, the product content for the particular product in response to receiving the input. The product content can be output in the GUI in response to receiving the input. The method can further include detecting, through a touchscreen of the input subsystem, a particular gesture after outputting the product content in the GUI; and outputting, in response to detecting the particular gesture, the activity feed in the GUI, the activity feed replacing the product content in the GUI. The method can further include outputting, before outputting the product content, a user profile interface in the GUI with saved social media posts and saved products, the saved social media posts and the saved products having been saved by a user of the computing device across one or more social interfaces provided by the GUI; receiving input selecting the particular product from the saved products in the user profile interface; and requesting, by the computing device, the product content for the particular product in response to receiving the input. The product content can be output in the GUI in response to receiving the input. The method can further include detecting, through a touchscreen of the input subsystem, a particular gesture after outputting the product content in the GUI; and outputting, in response to detecting the particular gesture, the user profile interface in the GUI, the user profile interface replacing the product content in the GUI.
The GUI can be output on the computing device by a social-retail application that being executed or interpreted on the computing device. The computing device can be a mobile computing device and the social-retail application can be a mobile application. The social-retail application can be a web application that is being output by a web browser installed and running on the computing device.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting content includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including selecting a first content element to present in the GUI from the information received through the network interface, the first content element comprising product content regarding a particular product; selecting second content elements to present in the GUI from the information received through the network interface, the second content elements comprising social media content that includes a product tag identifying the particular product; and outputting, in the GUI on the display, the first graphical element for the first content element and second graphical elements for the second content elements, the second graphical elements being selectable that, when selected, cause the GUI to present corresponding social media posts that include the social media content.
Such a computing device can optionally include one or more of the following features. The social media content can include user-generated images that depict, at least, the particular product. The operations can further include outputting, in the GUI on the display, control graphical elements that are configured to receive user input related to the first graphical element. The control graphical elements can include a selectable graphical element to add the particular product to a data record that correlates user-selected product information with a user account. The control graphical elements can include a selectable graphical element to transmit a request to a remote server system related to the particular product. The operations further include receiving, through the one or more input devices, first input selecting a particular second graphical element that corresponds to particular social media content; and outputting, in the GUI on the display, a third graphical element for a particular social media post that corresponds to particular media content, wherein the particular social media post includes the product tag for the particular product and another product tag for another product, wherein the third graphical element replaces the first graphical element and the second graphical elements in the GUI. The particular product can be different from the other product. The operations can further include receiving, through the one or more input devices, second input selecting the other product in the third graphical element; and outputting, in the GUI on the display, a fourth graphical element for the other product content corresponding to the other product, wherein the fourth graphical element replaces the third graphical element in the GUI, wherein the first input and the second input cause the GUI to navigate from the particular product to the other product via the particular social media content. The computing can be a mobile computing device and the instructions can be a mobile application.
Certain implementations may provide one or more advantages. In a first example, a single GUI can be used to present and combine different types of content that would otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by presenting multiple different types of content within a single GUI, users can more efficiently access information and features on their devices. In a second example, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a third example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a fourth example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface.
This document generally describes technology for presenting content summaries in a GUI on a client computing device, such as summaries of content obtained from a computer system. For example, a client computing device can be configured to obtain content, determine summaries for the content, and present the summaries in a GUI in connection with at least a portion of the content. Content summaries can be stored and used to provide improved and enhanced content searching and retrieval features, such as searching across content summaries that are associated with various types of content. For example, content summaries can be generated and stored in association with content. When search requests are received, the content summaries can be searched to determine results, which can allow for fewer computing resources (e.g., CPU cycles, RAM) to be used to generate results.
In one implementation, a method for presenting a graphical user interface (GUI) for social media content with content summaries, includes receiving, at a computing device, social media content to present in a social feed in a GUI on the computing device; identifying, by the computing device, a plurality of social media posts from the social media content, each of the plurality of social media posts including (i) content generated by a creator of the post and (ii) comments for the post that were generated by other users; detecting, by the computing device, that a portion of the plurality of social media posts further include content summaries that summarizes the comments for corresponding posts; and outputting, by the computing device, the plurality of social media posts in the social feed in the GUI, wherein the portion of the plurality of social media posts are output with graphical elements for the corresponding content summaries and with graphical elements for the corresponding comments being hidden or collapsed in the GUI.
Such a method can optionally include one or more of the following features. The content summaries can include particular emojis that appear in the comments generated by the other users. The particular emojis can be selected as content summaries from among a larger set of emojis used in the comments based on the particular emojis satisfying one or more criteria. The one or more selection criteria can include, at least, the particular emojis occurring in the comments with a greatest frequency among the larger set of emojis. Frequencies with which the larger set of emojis occur can be weighted based on how recently each instance occurs in the comments. The one or more selection criteria can include, at least, the particular emojis occurring at least a threshold number of times in the comments. The one or more selection criteria can include, at least, the particular emojis occurring in a greatest number of comments among the larger set of emojis.
The method can further include receiving, at a computing device, product content describing a product that is tagged in the social media posts; identifying, by the computing device, a particular social media post that tags the product; outputting, by the computing device, one or more graphical elements for the particular social media post that indicates that the particular social media post includes a product tag and that horizontal scrolling is permitted within the GUI to access a product element for the tagged product. The method can further include receiving, through the GUI, horizontal scrolling input received in relation to the particular social media post; identifying, by the computing device, the product element from the product content, the product element including (i) content describing the product and (ii) reviews of the product that were generated by a group of users; detecting, by the computing device, that the product element further includes a content summary that summarizes the reviews for corresponding product; and outputting, by the computing device, the product element in place of the particular social media post in the social feed in the GUI in response to receiving the horizontal scrolling input, wherein the product element is output with graphical elements for the corresponding content summary and with graphical elements for the corresponding reviews being hidden or collapsed in the GUI. The content summaries can include particular hashtags that appear in the comments generated by the other users. The content summaries can include particular keywords that appear in the comments generated by the other users.
In another implementation, a method for presenting a graphical user interface (GUI) for searching social media content includes outputting, in a GUI on a computing device, a search field; receiving, at the computing device, a search query entered through the search field; transmitting, by the computing device, the search query to a computer system hosting social media content that includes, at least, social media posts and user comments related to the social media posts, wherein the computer system maintains content summaries of the user comments; receiving, at the computing device, search results for the search query from the computer system, wherein the search results are determined by the computer system based on a comparison of the search query with one or more of: the social media posts and the content summaries; and outputting, in the GUI on the computing device, the search query and the search results.
Such a method can optionally include one or more of the following features. The search query can include one or more emojis. The content summaries can include particular emojis that appear in the comments generated by the other users. The search results can include one or more of: one or more social media posts with corresponding content summaries that include the one or more emojis, one or more identifiers for users who created social media posts with corresponding content summaries that include the one or more emojis, and one or more hashtags that are included in social media posts with corresponding content summaries that include the one or more emojis. The computer system can further host product content that is tagged in social media content, the product content including, at least, product elements and user reviews related to the product elements. The computer system can maintain content review summaries of the user reviews. The search results can be determined by the computer system based on a comparison of the search query additionally with one or more of: the product elements and the content review summaries for the user reviews. The search results can include one or more of: one or more social media posts with corresponding content summaries that match the search query, one or more identifiers for users who created social media posts with corresponding content summaries that match the search query, one or more hashtags that are included in social media posts with corresponding content summaries that match the search query, and one or more product elements with corresponding content review summaries that match the search query.
In another implementation, a method for presenting a graphical user interface (GUI) for emoji-based analysis of social media content includes receiving, at a computing device, user input in a GUI to present emoji-based analytics related to social media posts created through a particular social media account, transmitting, by a computing device, a request to a computer system for the emoji-based analytics to a computer system hosting social media content that includes, at least, social media posts and user comments related to the social media posts, wherein the computer system maintains emoji summaries of the user comments; receiving, at the computing device, the emoji-based analytics for the particular social media account from the computer system; and outputting, in the GUI on the computing device, the emoji-based analytics, wherein the emoji-based analytics include information indicating user reactions to the social media posts through emojis the search query and the search results.
Such a method can optionally include one or more of the following features. The emoji-based analytics can include, at least, a frequency with which each of a plurality of emojis occur in the user comments for each of the social media posts. The plurality of emojis can be arranged along a emotive spectrum according to one or more emotions that are represented by the plurality of emojis.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting content includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including selecting a first content element to present in the GUI from the information received through the network interface, the first content element comprising a social media post created by a first user; selecting second content elements to present in the GUI from the information received through the network interface, the second content elements comprising user comments related to the social media post created by one or more other users; detecting a third content element from the information received through the network interface, the third content element comprising a content summary of the user comments; and outputting, in the GUI on the display, a first graphical element for the first content element and a third graphical element for the third content element, wherein second graphical elements for the second content elements are hidden or collapsed in the GUI based on the third graphical element being displayed in the GUI.
Such a computing device can optionally include one or more of the following features. The social media post can include (i) a user-generated image that depicts, at least, a particular product, and (ii) a product tag that identifies the particular product as being depicted in the user-generated image. The operations can further include selecting a fourth content element from the information received through the network interface, the fourth content element comprising a product element that corresponds to the particular product identified by the product tag in the social media post; receiving, through the one or more input device, user input related to transition from presenting the first graphical element to presenting a fourth graphical element for the fourth content element; and outputting, in the GUI on the display, the fourth graphical element in place of the first graphical element in response to the user input. The user input can include horizontal scrolling input related to the first graphical element received through the one or more input devices. The operations can further include selecting fifth content elements to present in the GUI from the information received through the network interface, the fifth content elements comprising user reviews related to the particular product; detecting a sixth content element from the information received through the network interface, the sixth content element comprising a review summary of the user reviews; and outputting, in the GUI and in combination with outputting the fourth graphical element, a sixth graphical element for the sixth content element that replaces the third graphical element in the GUI, wherein fifth graphical elements for the fifth content elements are hidden or collapsed in the GUI based on the sixth graphical element being displayed in the GUI. The review summary can include one or more emojis that are included in the user reviews. The content summary can include one or more emojis that are included in the user comments. The computing device can be a mobile computing device and the instructions can be a mobile application.
Certain implementations may provide one or more advantages. In a first example, presenting content summaries can allow a GUI to present substantially the same amount of information through graphical elements that occupy a smaller proportion of the area on a display. For example, the GUI can present content summaries in graphical elements that use less area on a computing device's display than graphical elements that would be used to present all of the content that is being summarized. While display area is a consideration with all computing devices providing GUIs, conservation of and efficient usage of display area can be of particular concern on devices with smaller form factor displays, like mobile computing devices (e.g., smartphones, tablets, smartwatches, other wearable computing devices). Such content summaries can provide for a more efficient and improved GUI that is able to more concisely and effectively convey information to computing device users.
In a second example, content summaries can be dynamically generated from a wide range of user inputs that are not constrained, for example, to a small set of possible reactions. For instance, instead of providing a limited set of options for reacting to a social media post, such as selectable buttons to “like” or “love” a post, content summaries can be generated from a wider range of characters and character encodings (e.g., emoji encodings) to provide for a wider range of reactions to be surfaced with social media posts. For instance, a content summary for a social media post can be determined based on the emojis that are used in comments for the social media post, which can allow the content summary to vary dynamically over time and from post to post based on the specific reactions that users provide in the comments.
In a third example, content summaries can allow content to be more efficiently retrieved, served, and searched. For example, a computer server system can regularly update and store content summaries. When content is requested by a client computing device, such a server system can retrieve and serve the predetermined and stored content summary instead of having to retrieve and process the individual content elements that it summarizes. Such pre-determination of content summaries can allow for fewer computing resources to be used by the server system (e.g., fewer processor cycles, fewer disc read operations, less RAM used), which can additionally allow for a response to be more quickly served to client computing devices. Similarly, in a fourth example, content summaries can allow for relevant content to be identified more efficiently through searching/analyzing content summaries instead of the actual content. For instance, content summaries can be searched with greater efficiency by a computer server system than the underlying content they summarize, which can allow for results to be generated and served more quickly using fewer computational resources. In a fifth example, content summaries can provide an additional search dimension for identifying relevant content. For instance, content summaries can include one or more emojis that summarize the emojis used in comments for a social media post. Searching emoji summaries for social media posts can allow for posts to be identified that have particular user reactions (represented through emojis), which can be different from searching based on the content (e.g., keywords, tags, hashtags, links, images) included in social media posts.
In a fifth example, content summaries can be generated for and presented within a single GUI for different types of content that would otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by presenting content summaries for multiple different types of content within a single GUI, users can more efficiently access information and features on their devices, and can have normalized/common features across different types of content. In a sixth example, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a seventh example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a eight example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface, such as through providing reactions that are reflected in a dynamically determined and updated content summary.
This document generally describes technology for associating multiple different types of content with each other so that they can presented together within a single GUI on a client computing device. For example, a GUI can be provided on a first computing device for associating a first type of content with a second type of content, and uploading the content and their associations to a computer server system. A GUI can also be provided on a second computing device for presenting the first and second types of content in a common interface, such as one in which the first type of content is presented in a first content stream or feed, and the second type of content is presented in a second content stream or feed that occurs within the first content stream. A variety of different types of content can be presented in such GUIs, like social media content, news content, messaging content, product content, productivity content, and/or other types of content.
In one implementation, a method for providing a graphical user interface (GUI) to create a social media post with tagged products includes receiving, at a computing device, user input to create a social media post; outputting, in a GUI on the computing device, one or more selectable features through which a user is able to provide information for the social media post; receiving, via the one or more selectable features, a user-generated photo for the social media post, wherein the user-generated photo depicts one or more products; receiving, via the one or more selectable features, user designation of a product tag that identifies at least one of the products depicted in the photo; receiving, via the one or more selectable features, a request to upload the post with, at least, the photo and the product tag; and transmitting, by the computing device, the post with the photo and the product tag to a server system, wherein the server system stores the post and serves the post with a product element corresponding to the tagged product to other computing devices.
Such a method can optionally include one or more of the following features. Receiving the user designation of the product tag can include receiving, via the one or more selectable features, a search query for the product; transmitting, by the computing device, the search query to the server system; receiving, at the computing device, search results for the search query from the server system, wherein the search results include information for candidate products; outputting, in the GUI, the information for the candidate products; receiving, in the GUI, selection of a particular candidate product; and designating, by the computing device, an identifier for the particular candidate product as the product tag. The search results can include (a) in-network search results and (b) out of network search results. The in-network search results can include products that are provided by the server system or an affiliate server system. The out of network search results can include products that are provided by other server systems that are different from the server system and the affiliate server system. The search results can be grouped in the GUI according to whether they are in-network search results or out of network search results. The in-network search results can be presented by default and the out of network search results are initially hidden from view in the GUI.
As part of storing the post, the server system can be programmed (i) to determine whether the product element corresponding to the tagged product is already stored in a database accessible to the server system, and (ii) in response to determining that the product element is not present in the database, to generate the product element for the tagged product. As part of generating the product element, the server system can be programmed (i) to retrieve information describing the tagged product from one or more other server systems and (ii) to store the information in the database in association with the post. The post and the product element can be different types of content that are configured to be presented on the other computing devices in a common GUI. Presentation of the post and the product element in the common GUI can include (i) the post being presented in a vertical content stream that is vertically scrollable in the common GUI and (ii) the product element being presented within the vertical content stream in response to horizontal scrolling input related to the post.
The method can further include receiving, via the one or more selectable features, user designation of the post for publication by the server system at a user-designated future time. The post can be transmitted to the server system with the user-designated future time. The server system can be programmed to delay publication of the post until the user-designated future time. The method can further include receiving, from the server system, one or more proposed future publication times, wherein the future publication times are determined by the server system based on past post performance by the user; and outputting, in the GUI, the one or more proposed future publication times as selectable features. Receiving the user designation can include receiving selection of one of the proposed future publication times.
The method can further include receiving, from the server system, one or more proposed hashtags for the post, wherein the proposed hashtags are determined by the server system based on currently trending hashtags; outputting, in the GUI, the one or more proposed hashtags as selectable features; receiving, via the GUI, selection of a particular hashtag from the one or more proposed hashtags. The post can further be transmitted to the server system with the particular hashtag. The method can further include receiving, from the server system, one or more proposed location tags for the post, wherein the proposed locations are determined by the server system based on current or previous locations of the client computing device; outputting, in the GUI, the one or more proposed location tags as selectable features; receiving, via the GUI, selection of a particular location tag from the one or more proposed location tags. The post can further be transmitted to the server system with the particular location tag.
In another implementation, a method for providing a graphical user interface (GUI) to create a social media post with tagged products can include receiving, at a computing device, user input to create a social media post; outputting, in a GUI on the computing device, one or more selectable features through which a user is able to provide information for the social media post; receiving, via the one or more selectable features, a user-generated photo for the social media post, wherein the user-generated photo depicts one or more products; receiving, via the one or more selectable features, a user request to crowd source tagging the one or more products depicted in the photo; receiving, via the one or more selectable features, a request to upload the post with, at least, the photo and the user request; and transmitting, by the computing device, the post with the photo and the user request to a server system, wherein the server system stores the post and serves the post with a product tag request element that is programmed to permit other users to propose product tags for the post.
Such a method can optionally include one or more of the following features. The method can further include receiving, at the computing device, a proposed product tag for the post, the proposed product tag having been designated by another user via the product tag request element; outputting, in the GUI, the proposed product tag for the post along with selectable options to accept and decline the proposed product tag; receiving, via the GUI, selection of the option to accept the proposed product tag; transmitting, by the computing device, information identifying an accepted product tag to the server system. The server system can store the post in association with the accepted product tag and serves the post with a product element corresponding to the product identified in the accepted product tag to other computing devices.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting multiple types of content within a content stream includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including outputting first graphical control elements to present in the GUI that are configured to permit a user to provide information for a social media post; receiving user input through the first graphical control elements and the input devices designating the information for the social media post, outputting second graphical control elements to present in the GUI that are configured to permit the user to tag a product that is identified in the social media post; receiving user input through the second graphical control elements and the input devices tagging a product in the social media post, transmitting over the network interface and to the remote server system the information for the social media post and the designated tags, wherein the remote server system is programmed to store and serve the social media post with a product element corresponding to the tagged product to other computing devices.
Such a computing device can optionally include one or more of the following features. The post and the product element can be different types of content that are configured to be presented on the other computing devices in a common GUI. Presentation of the post and the product element in the common GUI can include (i) the post being presented in a vertical content stream that is vertically scrollable in the common GUI and (ii) the product element being presented within the vertical content stream in response to horizontal scrolling input related to the post. The operations can further include outputting third graphical control elements to present in the GUI that are configured to permit the user to select a future time to publish the social media post; receiving user input through the third graphical control elements and the input devices designating a particular future time for publication of the social media post. The social media post can be transmitted to the remote server system with the particular future time. The remote server system can be programmed to delay publication of the post until the particular future time. The operations can further include receiving, from the remote server system over the network interface, one or more proposed future publication times, wherein the future publication times are determined by the remote server system based on past post performance by the user. At least a portion of the third graphical control elements can correspond to the one or more proposed future publication times. The computing device can be a mobile computing device and the instructions can be a mobile application.
Certain implementations may provide one or more advantages. In a first example, a single GUI can be used associate and present different types of content that would otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by associating and presenting multiple different types of content within a single GUI, users can more efficiently access information and features on their devices. In a second example, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a third example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a fourth example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/associate/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to associate and interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access, associate, and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface.
In a fifth example, user interfaces and systems can allow social content to be annotated with tags identifying other types of content, such as product content, included in the social content, which can provide a variety of advantages. For instance, product tags can permit a single GUI to present both social content and product content so that a user can readily navigate between and to perform actions (e.g., social actions, product action) with regard to different types of content from within a common interface
In a sixth example, tags for social content can be automatically determined and suggested, and presented with graphical elements that a user can simply select instead of having to search for and locate. For example, entering text and searching through interfaces on some computing devices, such as touchscreen devices, can be cumbersome and more time consuming than on other computing devices, such as desktop and laptop computers with full keyboards. By automatically identifying relevant tags and suggesting them to users through one or more readily selectable buttons, the GUI can be improved by allowing a procedure (e.g., designating a tag) to be completed in less time and through fewer interactions with the GUI. Tags can be automatically identified in any of a variety of ways, such as based on tags that are currently trending, optical analysis of user-generated photos/videos (e.g., optical object recognition, optical face recognition), textual analysis of user-generated text (e.g., automatic sentiment analysis), analysis of information from device sensors/components (e.g., location analysis, environment analysis), and/or other analysis techniques. Such automatic analysis techniques can improve the likelihood of the automatic tag suggestion/determination accurately capturing information contained in social content, which can increase the likelihood that the user will select the automatically suggested tags and will not have to manually search or enter tags.
This document generally describes technology for interacting with graphical elements presented in a GUI on a client computing device. For example, graphical elements can be presented in a GUI to permit various content elements to be saved, stored, or otherwise associated with a user account, including different types of content elements. For instance, a first type of content element can be associated with a user account and a different, second type of content element can be associated with the user account. Content elements can be saved/stored/otherwise associated with a user account with various attributes, such as being publicly or privately associated with a user account. For instance, public association of a content element with a user account can permit that association to be viewed by other users, whereas private association of a content element can restrict that association from being viewed by anyone other than the owner of the user account to which the content element was associated.
In one implementation, a method for providing a graphical user interface (GUI) includes receiving, at a computing device associated with a first user, a social media post to present in a content stream in the GUI, the received social media post including (i) one or more content elements generated by a second user, (ii) user information identifying the second user, and (iii) save count information that indicates a number of times the social media post has been persistently saved by other users, the social media post being received from a computer system; outputting, by the computing device, the social media posts in the content stream, the social media posts being output with (i) the one or more content elements, (ii) the user information for the second user, (iii) a selectable save feature that is selectable by the first user to persistently save the social media post, and (iv) the save count information in association with the selectable save feature; receiving, through an input subsystem of the computing device, input selecting the selectable save feature; transmitting, by the computing device and in response to receiving the input, a request to the computer system to persistently save the social media post in association with an account for the first user; receiving, at the computing device, confirmation that the social media post has been saved in association the account for the first user; and outputting, in response to receiving the confirmation, a graphical update for the social media post, the graphical update including incrementing the save count information and replacing the selectable save feature with, at least, a graphical icon indicating that the social media post has already been saved by the first user.
Such a method can optionally include one or more of the following features. The method can further include receiving, through the input subsystem, input to present a profile for the first user; and outputting, by the computing device, profile information for the first user in the GUI, including outputting an area that persistently presents saved content in association with the first user, the area including information identifying the social media post as having been saved by the first user. The one or more content elements can include (i) a digital photo taken by the first user and (ii) a textual description of the digital photo authored by the first user. The digital photo can depict one or more products. The social media post can include one or more product tags that identify the one or more products. The computing device can further receive one or more product elements that correspond to the one or more products that are identified by the one or more product tags. The social media post can be presented in a vertical content stream that is vertically scrollable in the GUI. The social media post can be designated in the GUI as being part of a horizontal content stream that is horizontally scrollable in the GUI. The method can further include receiving, through an input subsystem of the computing device, horizontal scrolling input related to the social media post; and outputting, in response to receiving the horizontal scrolling input, a first of the one or more product elements in place of the particular social media post in the vertical content stream. The first product element can be output with (i) product information, (ii) a selectable order feature that is selectable by the first user to order a corresponding first product from within the content stream, (iii) another selectable save feature that is selectable by the first user to persistently save the first product element, and (iv) other save count information that indicates a number of times that the first product element has been saved by the other users. The method can further include receiving, through an input subsystem of the computing device, input selecting the other selectable save feature for the first product element; transmitting, by the computing device, a second request to the computer system to persistently save the first product element in association with the account for the first user; receiving, at the computing device, confirmation that the first product element has been saved in association the account for the first user; and outputting, in response to receiving the confirmation, a graphical update for the first product element, the graphical update for the first product element including incrementing the other save count information and replacing the other selectable save feature with, at least, the graphical icon indicating that the first product element has already been saved by the first user. The method can further include receiving, through the input subsystem, input to present a profile for the first user; and outputting, by the computing device, profile information for the first user in the GUI, including outputting an area that persistently presents saved content in association with the first user, the area including information identifying (i) the social media post as having been saved by the first user and (ii) the first product element as having been saved by the first user. The method can further include receiving, through the input subsystem, user input selecting the selectable order feature to order the product associated with the first product element; and adding, by the computing device, the product to a virtual shopping cart in response to receiving the user input. The vertical content stream can be an infinite social feed. The product can be added to the virtual shopping cart without leaving the infinite social feed or launching another application.
Persistently saving the social media post in association with the account for the first user can cause the computer system to: distribute, to a group of computing devices associated with a group of users who are socially-connected to the first user, the social media post for presentation in content streams on the group of computing devices, the social media post being distributed with (i) information identifying that the first user saved the social media post and (ii) information identifying the second user who generated the social media post, and distribute, to a second computing device associated with the second user, information summarizing user interactions with the social media post for presentation in an activity feed on the second computing device. The social connections between the first user and the group of users can include one or more of following relationships and/or friendship relationships. The information summarizing the user interactions can include (i) information summarizing users saving the social media post, (ii) information summarizing users sharing the social media post, (iii) information summarizing comments on the social media post, and (iv) information summarizing users purchasing products tagged in the social media post.
The GUI can be output on the computing device by a social-retail application that being executed or interpreted on the computing device. The computing device can be a mobile computing device and the social-retail application can be a mobile application. The social-retail application can be a web application that is being output by a web browser installed and running on the computing device.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting multiple types of content within a content stream includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including selecting first content elements to present in the GUI from the information received through the network interface, the first content elements being of a first type and each including first information indicating a number of times that they have been saved across a population of users; selecting second content elements to present in the GUI from the information received through the network interface, the second content elements being of a second type and each including second information indicating a number of times that they have been saved across the population of users; and outputting, in a scrollable content stream in the GUI on the display, (i) first graphical elements for the first content elements and (ii) second graphical elements for the second content elements. The first graphical elements can include the first information and first selectable elements that cause corresponding ones of the first content elements to be persistently saved in association with an account for a user of the computing device. The second graphical elements can include the second information and second selectable elements that cause corresponding ones of the second content elements to be persistently saved in association with the account for the user of the computing device.
Such a computing device can optionally include one or more of the following features. The operations can further include receiving, through the one or more input devices, first selection input of a particular one of the first selectable elements that corresponds to a particular first content element; receiving, through the one or more input devices, second selection input of a particular one of the second selectable elements that corresponds to a particular second content element; and outputting, in a profile page for the user in the GUI on the display, a graphical area that presents content elements persistently saved by the user via the content stream, the graphical area including graphical elements identifying, at least, the particular first content element and the particular second content element. The operations can further include transmitting, to the remote server system via the network interface, a first request for the particular first content element to be saved in association with the account for the user; receiving, from the remote server system via the network interface, first confirmation that the particular first content element has been persistently saved to the account for the user; updating, in response to receiving the first confirmation, a particular first graphical element representing the particular first content element, the updating including (i) replacing the particular one of the first selectable elements with a graphical icon indicating that the particular first content element has been persistently saved to the account for the user and (ii) incrementing particular first information for the particular first content element; transmitting, to the remote server system via the network interface, a second request for the particular second content element to be saved in association with the account for the user; receiving, from the remote server system via the network interface, second confirmation that the particular second content element has been persistently saved to the account for the user; and updating, in response to receiving the first confirmation, a particular second graphical element representing the particular second content element, the updating including (i) replacing the particular one of the second selectable elements with a graphical icon indicating that the particular second content element has been persistently saved to the account for the user and (ii) incrementing particular second information for the particular second content element. The computing device can be a mobile computing device and the instructions can be a mobile application.
Certain implementations may provide one or more advantages. In a first example, a single GUI can be used to present different types of content and to present graphical elements for interacting with the different types of content, which may otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by presenting multiple different types of content and graphical elements to interact with the different types of content within a single GUI, users can more efficiently access information and features on their devices. Furthermore, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a second example, multiple different types of content and services can additionally be saved, stored, or otherwise associated with a common user account through a GUI. This can allow for a single user account to store and combine different types of content elements and services, including associations between different types of content and services (e.g., a first type of content tagging another type of content), which may otherwise be associated with different and separate user accounts across multiple different services. For example, instead of having a first account with a first service to view and interact with a first type of content (e.g., social media content) and a second account with a second service to view and interact with a second type of content (e.g., product content), such services and accounts can be combined into a single service and a single account. Additionally, such combined services can provide additional features around cross-content associations (e.g., social media content tagging products in the social media content) that would not be possible across different services. This can allow for a more robust and improved GUI to be provided to users, which can alleviate need to switch between GUIs and to present multiple different GUIs to accomplish similar tasks, as described in the preceding paragraph.
In a third example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a fourth example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface.
In a fifth example, social media content and other types of content that are tagged in (or otherwise associated with) the social media content can be saved in association with a user's account, which can persistently associate the saved content elements with the user's account. For example, saved content elements can be presented on a user's profile page so that the user can readily find and view previously saved content elements. Saved content elements can be automatically organized on the user's profile page to further assist a user in locating saved content elements that they are interested in. For example, product elements that are saved to a user's profile can be automatically organized according to a product taxonomy, which can slot products into different product categories and subcategories. Other techniques for automatically organizing content elements are also possible, such as through optical analysis of images (e.g., object identification, facial recognition), semantic analysis of text (e.g., automatically determining content through textual descriptions and/or user comments), sentiment analysis based on user reactions (e.g., automatically analyzing user reactions, such as emojis), location-based organization (e.g., organization based on tagged location), and/or other factors. GUIs can be programmed to present the automatic organization of saved content elements using one or more interface features to permit users to readily navigate through the organizational structure to located content elements of interest. Such features can improve the GUI by promoting and enhancing the identification of relevant content elements.
In a sixth example, tagged content that can be saved with information that identifies the user-generated content (e.g., social media content) tagging the content, which can be presented to users to permit them to navigate back to the user-generated content that caused the tagged content to be originally presented to the user. For example, a user saving a social media post (example user-generated content) that tags a product (example other type of content) can cause the tagged product to automatically be saved to a user's profile as well as the social media post. The tagged product can be presented in the user's profile with a link to navigate to the social media post, which the user can select to view the social media post that introduced the product to the user. Similarly, when a user saves a tagged content element directly (as opposed to doing so indirectly by saving the user-generated content that tags the content element), the content element can be saved with information identifying the user-generated content that caused the content element to be presented to the user via a tag. For example, if the user saves a product that is tagged in a social media post (as opposed to saving the social media post), the product can be saved with information identifying the social media post. By saving such identifying information, the context of particular saving actions can be preserved, which can help users remember and place particular content elements (e.g., product elements) within their social landscape.
In a seventh example, saving content elements can cause information identifying the save action and saved content elements to be distributed to a saving user's followers (or other users who are socially connected to the saving user), along with graphical elements attributing the saved content element to its original creator. For example, if a first user creates a social media post that is saved by a second user, the social media post can be distributed to the second user's followers with information indicating that the second user saved the post and with a reserved area (e.g., “via” element) identifying the first user as the creator of the post. This reserved area identifying the first user as the creator can persist regardless of the number of degrees removed from the first user the saving user is. For example, if a third user (who is socially connected to the second user but not the first user) were to save the post after seeing that the second user had saved the post, then the post can similarly be distributed to the third user's followers with the reserved area identifying the first user as the creator of the post. Such reserved areas can be, for example, selectable links to the original creator's profile and/or user-generated content. By providing such a reserved area, users can readily identify and determine appropriate attribution for user-generated content, and can readily navigate to additional information on the original creator of the content element.
This document generally describes technology for presenting GUIs on client computing devices with graphical elements for exploring and discovering content, such as content hosted by and obtained from a computer system. For example, a client computing device can be configured to present a GUI with a variety of different graphical features through which a user can explore and discover a different types of content (e.g., user-generated content, social media content, product elements, users, content categories), including navigating through suggested content and searching for content related to one or more search parameters. A variety of different types of parameters can be provided by users through graphical elements to locate content, such as keywords, location identifiers, hashtags, graphical icons (e.g., emojis), and combinations thereof.
In one implementation, a method for presenting a graphical user interface (GUI) for searching across multiple different content types includes receiving, at a computing device, a search query provided through a search interface on the computing device; transmitting, by the computing device, the search query to a remote computer system that hosts a social-retail platform; receiving, at the computing device, search results that identify a plurality of content elements across a plurality of different content types on the social-retail platform, wherein the search results include unique identifiers for the plurality of content elements; outputting, by the computing device, the search results in the GUI, wherein the search results are output as selectable graphical elements representing the plurality of content elements, wherein selection of the selectable graphical elements causes the computing device to request the plurality of content elements using the unique identifiers; and outputting, by the computing device, one or more selectable buttons in association with at least a portion of the selectable graphical elements, the selectable buttons permitting one or more actions to be performed with regard to at least a portion of the plurality of content elements from within the search results.
Such a method can optionally include one or more of the following features. The plurality of different content types can include two or more of the following: social media posts, product content elements, user profiles on the social-retail platform, and hashtags. The selectable buttons can be (i) presented with the social media posts and (ii) programmed to transmit, to the remote computer system, requests to save the social media posts to a profile for a user who is currently logged-in to the computing device in response to being selected. The selectable buttons can be (i) presented with the product content elements and (ii) programmed to transmit, to the remote computer system, requests to add the product content elements to a virtual shopping cart that is persistent across pages of the social-retail platform for a user who is currently logged-in to the computing device in response to being selected. The selectable buttons can be (i) presented with the product content elements and (ii) programmed to transmit, to the remote computer system, requests to save the product content elements to a profile for a user who is currently logged-in to the computing device in response to being selected. The selectable buttons can be (i) presented with the user profiles and (ii) programmed to transmit, to the remote computer system, requests for a logged-in user on the computing device to follow the user profiles in response to being selected. The selectable buttons can be (i) presented with the hashtags and (ii) programmed to transmit, to the remote computer system, requests for a logged-in user on the computing device to follow the hashtags in response to being selected.
The method can further include receiving, via the GUI, selection of a particular graphical element that represents a particular social media post included in the search results; transmitting, by the computing device, a request for the particular social media post to the remote computer system, the request including a particular unique identifier for the particular social media post; receiving, at the computing device, that particular social media post; identifying, by the computing device, that the particular social media post tags one or more products; outputting, in the GUI, the particular social media post with one or more graphical elements that indicate that the particular social media post includes a product tag and that horizontal scrolling is permitted within the GUI to access a product element for the tagged product. The method can further include receiving, through the GUI, horizontal scrolling input received in relation to the particular social media post; and outputting, by the computing device, the product element in place of the particular social media post in the GUI in response to receiving the horizontal scrolling input.
The method can further include receiving, via the GUI, selection of a particular graphical element that represents a particular hashtag included in the search results; accessing, by the computing device, particular social media posts and particular product elements that include or are otherwise associated with the particular hashtag; outputting, in an expanded area of the GUI that that is inline with the search results, the particular social media posts and the particular product elements. The particular social media posts and the particular product elements can be received by the computing device with the search results and cached by the computing device. The accessing can include retrieving the particular social media posts and the particular product elements from the cache on the computing device.
The method can further include receiving, via the GUI, selection of a particular graphical element that represents a particular product element for a particular product included in the search results; transmitting, by the computing device, a request for the particular product element to the remote computer system, the request including a particular unique identifier for the particular product element; receiving, at the computing device, that particular product element; identifying, by the computing device, that the particular product element includes user-generated images from one or more social media posts that tag the particular product; outputting, in the GUI, the particular product element with the user-generated images, the user-generated images being selectable and including unique identifiers for the one or more social media posts. The method can further include receiving, via the GUI, selection of a particular graphical element that represents a particular user profile included in the search results; transmitting, by the computing device, a request for the particular user profile to the remote computer system, the request including a particular unique identifier for the particular user profile; receiving, at the computing device, that particular user profile; identifying, by the computing device, that the particular user profile includes saved social media posts and saved product elements that have been publicly associated with the particular user profile by an owner of the particular user profile; outputting, in the GUI, the particular user profile with the saved social media posts and the saved product elements, the saved social media posts being selectable and including unique identifiers for the saved social media posts, the saved product elements being selectable and including unique identifiers for the saved product elements.
The search query can include one or more keywords. The search query can include one or more hashtags. The search query can include one or more location identifiers. The search query can include one or more emojis. The search query can include at least two or more of the following: a keyword, a hashtag, a location identifier, and an emoji.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting content includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including selecting search results that identify a plurality of content elements across a plurality of different content types, wherein the search results include unique identifiers for the plurality of content elements; outputting, in the GUI, the search results as selectable graphical elements representing the plurality of content elements, wherein selection of a selectable graphical element causes a request for the selected content element to be transmitted using a unique identifier for the selected content element; and outputting, in the GUI, one or more selectable buttons in association with at least a portion of the selectable graphical elements, the selectable buttons permitting one or more actions to be performed with regard to at least a portion of the plurality of content elements from within the search results.
Such a computing device can optionally include one or more of the following features. The plurality of different content types can include two or more of the following: social media posts, secondary content elements tagged in the social media posts, user profiles, and hashtags. The selectable buttons can be (i) presented with the social media posts and (ii) programmed to transmit, to the remote computer system, requests to save the social media post to a profile for a user who is currently logged-in to the computing device in response to being selected. The selectable buttons can be (i) presented with the secondary content elements and (ii) programmed to transmit, to the remote computer system, requests to save the secondary content elements to a profile for a user who is currently logged-in to the computing device in response to being selected. The selectable buttons can be (i) presented with the user profiles and (ii) programmed to transmit, to the remote computer system, requests for a logged-in user on the computing device to follow the user profiles in response to being selected. The selectable buttons can be (i) presented with the hashtags and (ii) programmed to transmit, to the remote computer system, requests for a logged-in user on the computing device to follow the hashtags in response to being selected.
The operations can further include receiving, via the GUI, selection of a particular graphical element that represents a particular social media post included in the search results; transmitting, using the network interface, a request for the particular social media post to the remote server system, the request including a particular unique identifier for the particular social media post; receiving, through the network interface, that particular social media post; identifying that the particular social media post tags a secondary content element; outputting, in the GUI, the particular social media post with one or more graphical elements that indicate that the particular social media post includes a secondary content tags and that horizontal scrolling is permitted within the GUI to access the tagged secondary content element. The operations can further include receiving, through the GUI, horizontal scrolling input received in relation to the particular social media post; and outputting, by the computing device, the secondary content element in place of the particular social media post in the GUI in response to receiving the horizontal scrolling input. The operations can further include receiving, via the GUI, selection of a particular graphical element that represents a particular hashtag included in the search results; accessing particular social media posts and particular secondary content elements that include or are otherwise associated with the particular hashtag; outputting, in an expanded area of the GUI that that is inline with the search results, the particular social media posts and the particular product elements. The particular social media posts and the particular product elements can be received over the network interface with the search results and cached in the memory. The accessing can include retrieving the particular social media posts and the particular product elements from the memory.
The operations can further include receiving, via the GUI, selection of a particular graphical element that represents a particular secondary content element included in the search results; transmitting, using the network interface, a request for the particular secondary content element to the remote server system, the request including a particular unique identifier for the particular secondary content element; receiving, over the network interface, that particular secondary content element; identifying that the particular secondary content element includes user-generated images from one or more social media posts that tag the particular secondary content element; outputting, in the GUI, the particular secondary content element with the user-generated images, the user-generated images being selectable and including unique identifiers for the one or more social media posts.
The operations can further include receiving, via the GUI, selection of a particular graphical element that represents a particular user profile included in the search results; transmitting, over the network interface, a request for the particular user profile to the remote server system, the request including a particular unique identifier for the particular user profile; receiving, over the network interface, that particular user profile; identifying that the particular user profile includes saved social media posts and saved secondary content elements that have been publicly associated with the particular user profile by an owner of the particular user profile; outputting, in the GUI, the particular user profile with the saved social media posts and the saved secondary content elements, the saved social media posts being selectable and including unique identifiers for the saved social media posts, the saved secondary content elements being selectable and including unique identifiers for the saved secondary content elements. The operations can further include receiving, through the one or more input device, user input designating a search query; and transmitting, over the network interface, the search query to the remote server system. The search results can be received in response to the search query.
The search query can include one or more keywords. The search query can include one or more hashtags. The search query can include one or more location identifiers. The search query can include one or more emojis. The search query can include at least two or more of the following: a keyword, a hashtag, a location identifier, and an emoji.
Certain implementations may provide one or more advantages. In a first example, GUIs with particular graphical elements can be presented to permit content to be discovered and explored across multiple different types within a single GUI instead of across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by presenting graphical elements to discover and explore multiple different types of content within a single GUI, users can more efficiently access information and features on their devices, and can have normalized/common features across different types of content. As a result, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a second example, GUIs can be improved by reducing the space on a display that is used to present and explore content, including different types of content. For example, graphical elements can be presented to organize and interleave content in a manner that permits users to readily navigate to and identify content that is of interest. While display area is a consideration with all computing devices providing GUIs, conservation of and efficient usage of display area can be of particular concern on devices with smaller form factor displays, like mobile computing devices (e.g., smartphones, tablets, smartwatches, other wearable computing devices). Such graphical elements can provide for a more efficient and improved GUI that is able to more concisely and effectively convey content, including different types of content, to computing device users.
In a third example, GUIs can be presented on client computing devices that allow users to search for and discover content using multiple different types of input. For instance, instead of limiting the identification and presentation of content to only keywords, graphical elements can be presented to permit a variety of different inputs and combinations of inputs to be used to search content, such as graphical icons (e.g., emojis), location identifiers, hashtags, keywords, and combinations thereof. Accordingly, data search and retrieval techniques can be improved by permitting content to be identified across multiple different dimensions, instead of being limited to just textual keywords. This can allow content to be discovered and explored based on a wide range of user inputs that are not constrained, for example, to a single type of search parameter.
In the fourth example, content suggestions can be preloaded onto a client computing device before a user visits an explore/search interface of a GUI and then presented in the GUI when the explore/search interface is presented without delay (without having to retrieve content suggestions from a remote computer system in response to the explore/search interface being presented). For example, a client computing device can receive content suggestions from a remote computer system in the background and in advance of a user navigating to an explore/search interface. When the user visits the explore/search interface, the content suggestions can be presented with the explore/search interface being loaded. By preloading such content suggestions, the latency with which content is presented to a user of a computing device for exploration and discovery can be significantly reduced.
In a fifth example, GUIs can be provided that allow content to be more efficiently retrieved, served, and searched. For example, a computer server system can maintain and search across content summaries. When content is requested by a client computing device, such a server system can retrieve and serve the predetermined and stored content summary instead of having to retrieve and process the individual content elements that it summarizes. Such pre-determination of content summaries can allow for fewer computing resources to be used by the server system (e.g., fewer processor cycles, fewer disc read operations, less RAM used), which can additionally allow for a response to be more quickly served to client computing devices.
In a sixth example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a seventh example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface, such as through providing reactions that are reflected in a dynamically determined and updated content summary.
This document generally describes technology for presenting GUIs for managing and monitoring activity related to multiple different types of content. For example, a computing device can provide a GUI through which a user can generate and distribute content to other computing devices, and through which the user can monitor and manage activity related to the user-generated content being distributed to and presented on the other computing devices. In another example, a computing device can additionally present a GUI through which content generated on other computing devices can be distributed to and presented on the computing device, as well as activity related to the content generated on the other computing devices by other users. Such activity information can be presented in a GUI through the use of one or more streams or feeds, such as a first stream or feed of activity information related to content generated on other computing devices and a second stream or feed of activity information related to content generated on the computing device presenting the GUI. A variety of different types of content can be presented in such GUIs, like social media content, news content, messaging content, product content, productivity content, and/or other types of content.
In one implementation, a method for providing a graphical user interface (GUI) with an activity feed for a social network includes receiving, at a computing device, activity information for a user of a social network, wherein the activity information identifies social network activity related to (i) social media posts and (ii) products tagged in social media posts; identifying, by the computing device, news activity information from the activity information, the news activity information identifying social network activity of other users on the social network who are socially connected to the user of the computing device; identifying, by the computing device, user activity information from the activity information, the user activity information identifying social network activity related to (i) social media posts created by the user of the computing device and (ii) products saved to the user's profile on the social network; and outputting, by the computing device, the news activity information in a first tab in the GUI and the user activity information in a second tab in the GUI, wherein the news activity information and the user activity information are presented with selectable graphical elements that, selection of which, cause the computing device to retrieve and present additional information in the GUI.
Such a method can optionally include one or more of the following features. The news activity information can identify particular social media posts and particular product elements saved by the other users to their profiles on the social network. The news activity information can identify particular social media posts and particular product elements shared by the other users on the social network or on other social networks. The news activity information can identify particular social media posts and particular product elements commented on by the other users. The news activity information can identify particular social media posts and particular product elements to which the other users have submitted reactions on the social network. Reactions on the social network can include emojis included in comments entered by the other users with regard to the particular social media posts and particular product elements.
The user activity information can prompt the user of the computing device for input regarding actions performed by one or more other users. The actions performed by the one or more other users can include tagging the user of the computing device in a particular social media post. The prompt for input can include input to approve or decline the particular social media post being associated with the user of the computing device in activity feeds of other users who are socially connected with the user of the computing device. The actions performed by the one or more other users can include tagging the user of the computing device in a particular social media post. The prompt for input can include input to apply or remove the user of the computing device being tagged in the particular social media post. The actions performed by the one or more other users can include proposing a tag for a particular social media post created by the user of the computing device. The prompt for input can include input to approve or decline the tag for the particular social media post. The tag can include a product tag that identifies one or more products in a user-generated image included in the particular social media post. The method can further include receiving, through the GUI, first user input designating the particular social media post and electing to permit other users to propose product tags for the particular social media post; transmitting the first user input to a server system that is programmed to distribute the particular social media post to other users who are socially connected to the user of the computing device; receiving, through the GUI, second user input approving the product tag for the particular social media post; and transmitting the second user input to the server system, causing the server system to distribute the particular social media post to the other users with the product tag and a corresponding product element that is viewable within a social media feed via horizontal scrolling related to the particular social media post.
The user activity information can identify a user engagement milestone that have been reached for a particular social media post created by the user of the computing device. The user engagement milestone can include one or more of: a threshold number of views having been attained for the particular social media post, a threshold number of comments having been attained for the particular social media post, a threshold number of reactions having been attained for the particular social media post, a threshold number of saves having been attained for the particular social media post, a threshold number of shares having been attained for the particular social media post, and a threshold number of purchases of one or more products tagged in the particular social media post having been made.
The user activity information can identify that one or more other users have commented on (i) a particular social media post created by the user of the computing device or (ii) a particular product element tagged in the particular social media post. The user activity information can identify that one or more other users have saved (i) a particular social media post created by the user of the computing device or (ii) a particular product element tagged in the particular social media post. The user activity information can identify that one or more other users have reacted to (i) a particular social media post created by the user of the computing device or (ii) a particular product element tagged in the particular social media post. The reactions can include emojis included in comments entered by the other users with regard to the particular social media post or the particular product element. The user activity information can identify updated information related to a product previously saved by the user of the computing device to the user's profile on the social network. The updated information can include a price reduction for the previously saved product. The user activity information can identify shipping and delivery updates for a product tagged in a particular social media post and purchased by the user of the computing device via an interface for the particular social media post.
In another implementation, a computing device to provide a graphical user interface (GUI) for presenting multiple types of content within a content stream includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI, the operations including selecting first content elements to present in the GUI from the information received through the network interface, the first content elements being of a first type and each identifying activity related to (i) content elements created by a user of the computing device or (ii) content elements saved to the user's profile; selecting second content element to present in the GUI from the information received through the network interface, the second content elements being of a second type and each identifying activity of other users who are socially connected to the user of the computing device; and outputting, in a scrollable content stream in the GUI on the display, first graphical elements for the first content elements in a first selectable grouping and second graphical elements for the second content elements in a second selectable grouping.
Such a computing device can optionally include one or more of the following features. The first selectable grouping can include a first selectable tab under which the first graphical elements are displayed in the GUI. The second selectable grouping can include a second selectable tab under which the first graphical elements are displayed in the GUI. The network interface can be programmed to obtain and cache the information from the remote server system in advance of the first selectable tab and the second selectable tab being output on the display. The computing device can be a mobile computing device and the instructions can be a mobile application.
Certain implementations may provide one or more advantages. In a first example, a single GUI can be used to present different types of content that would otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by associating and presenting multiple different types of content within a single GUI, users can more efficiently access information and features on their devices. Such features can allow computing devices to operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a second example, a single GUI can additionally be used to organize and present different types of activity information. For example, multiple tabs can be used to organize activity information into different groups that are selectively presented in a single GUI based on user selection of graphical elements for the tabs. Such tabs presented on a computing device can include, for instance, a first tab that presents information related to user activity regarding content generated by other users and a second tab that presents information related to user activity regarding content generated by a user of the computing device. Like the advantages described in the preceding paragraph, such features can also improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by presenting and organizing different types of activity information within a single GUI, users can more efficiently access and location particular types of information and features on their devices. Such features can be particularly beneficial on devices with smaller form factor displays that are not able to concurrently display as much information within a single screen as devices with larger displays.
In a third example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a fourth example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/associate/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to associate and interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution), and to monitor interactions with content items without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access, associate, interact with, and monitor user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface.
In a fifth example, an activity feed on an improved platform can provide a single place where a user can view all social and other activity stemming from social activity, such as activity related to other content (e.g., product content) tagged in social content. For example, an improved social platform can permit social content, such as social posts, to include tags for other types of content (different from social content), such as product content for products offered for sale on merchant sites, productivity content for productivity projects hosted on productivity sites/services, and/or other types of tagged content. Activity information related to both social content and other content that is tagged in the social content can be provided in a common activity feed, which can provide a simplified, more robust, and improved user interface. For example, if a user creates social posts tagging products and saves other social posts that also tag products, the user can be presented with an activity feed that provides information on social activity (e.g., saves, shares, comments, reactions) related to both the created and the save posts, as well as product activity (e.g., purchases, sales, limited supply) related to the products that have been tagged on those posts. By serving combined activity information in a common feed, client computing device resources (e.g., processor cycles, memory, battery) can additionally be conserved by permitting the device to access and display information from a single source (e.g., improved platform server system) and in a single application (e.g., mobile app, web application), as opposed to polling and retrieving information from multiple different sources and displaying that information across multiple different applications.
This document generally describes technology for tracking, monitoring, and determining user engagement with content elements presented in GUIs. For example, a variety of different types of content elements can be presented in GUIs, such as social media content, messaging content, product content, productivity content, and/or other types of content. Users can engage with content elements in various ways, such as through explicit actions related to content elements (e.g., entering a comment in a comment field, saving the content element to the user's profile, entering a reaction to the content element, sharing the content element) and/or through implicit actions (e.g., viewing the content element for a duration of time, hovering a pointer over the content element for a duration of time). GUIs can be programmed to monitor, record, and report user activity related to content elements, which a computer system can use to track, monitor, and determine user engagement with content elements.
In one implementation, a method tracking and allocating engagement-related benefits for social media posts tagging products includes receiving, at a computer system and from a first computing device associated with a first user, user-generated content created by the first user for distribution on a social platform, wherein the user-generated content includes tag for a product, wherein the first user is designated on the social platform to receive engagement-related benefits for social media content the first user creates; distributing, by the computer system, the user-generated content for distribution to other users who are socially connected to the first user, wherein the user-generated content and a product element for the tagged product are presented together in social feeds on computing devices for the other users; receiving, by the computer system, first purchase information indicating that a first purchasing user purchased the product from the product element presented in the first purchasing user's social feed in association with the user-generated content; allocating, by the computer system, that the first purchase information to the first user for engagement-related benefits based on the first purchase information stemming directly from the user-generated content; and transmitting, to the first computing device, information identifying the first purchase information being allocated to the first user for engagement-related benefits.
Such a method can optionally include one or more of the following features. The method can further include receiving, by the computer system, second purchase information indicating that a second purchasing user purchased the product element presented in the second purchasing user's social feed in association with another user having performed an action with regard to the user-generated content; and determining, by the computer system, that the second purchase information is not allocated to the first user for engagement-related benefits based on the first purchase information stemming indirectly from the user-generated content. The action performed with regard to the user-generated content can include the other user having saved the user-generated content, causing the user-generated content to appear in the second purchasing user's social feed in association with the other user's save action. The action performed with regard to the user-generated content can include the other user having shared the user-generated content, causing the user-generated content to appear in the second purchasing user's social feed in association with the other user's share action. The action performed with regard to the user-generated content can include the other user having commented on or reacted to the user-generated content, causing the user-generated content to appear in the second purchasing user's social feed in association with the other user's comment or reaction action.
The method can further include receiving, at the computer system, an indication that the first user is generating content for distribution on the social platform; obtaining, by the computer system, historical data identifying historical user engagement with content generated by the first user and distributed on the social platform; selecting, by the computer system, from a plurality of candidate times, one or more future times of publication that have a likelihood of generating at least a threshold level of user engagement for the user-generated content based on the historical data; transmitting, by the computer system, the one or more future times to the first computing device; receiving, with the user-generated content, designation of a particular future time of publication for the user-generated content; setting, by the computer system, a timer for the particular future time; and publishing, by the computer system, the user-generated content upon expiration of the timer. The historical data can be specific to the other users who are currently socially connected to the first user. The historical data can include one or more of: previous content views, previous content saves, previous content comments, previous content shares, and previous purchases of tagged products.
The user-generated content can include a social post. The first purchasing user can have purchased the product from within the first purchasing user's social feed. The information identifying the first purchase information being allocated to the first user for engagement-related benefits can be designated for presentation in a social activity feed on the first computing device. The engagement-related benefits can include a portion of revenue from the product being purchased by the first purchasing user.
In another implementation, a computing device to provide a graphical user interface (GUI) for scheduling content for distribution on a social platform at a future time includes one or more processors; a network interface that is programmed to establish a network connection with a remote server system and to receive information from the remote server system over the network connection; a display that is programmed to output a plurality of graphical elements as part of the GUI; one or more input devices that are configured to receive user input related to the plurality of graphical elements; and memory storing instructions that, when executed, cause the one or more processors to perform operations to provide the GUI including receiving user input through the one or more input devices to present an interface in the GUI to create a social post; outputting, in response to the user input, the interface to create the social post in the GUI, the interface including a plurality of graphical control elements for designating fields of the social post; transmitting, also in response to the user input, a request for suggested future post times for the social post to the remote server system; receiving information from the remote server system identifying one or more suggested future post time based on analysis of historical engagement data; outputting post scheduling graphical control elements that provide (i) options to select the one or more suggested future post times, (ii) an option to designate a future post time, and (iii) an option to post the social post at a current time; receiving user input via the one or more input devices designating the social post through the plurality of graphical control elements and scheduling information for the social post through the post scheduling graphical control elements; and transmitting the user input to the remote server system for distribution of the social post to other users on the social platform who are socially connected to user of the computing device, publication of the social post being scheduled according to the user input through the post scheduling graphical control elements.
Such a computing device can optionally include one or more of the following features. The plurality of graphical control elements can include one or more graphical control elements for tagging a product in the social post. The user input can tag a particular product in the social post. The operations can further include receiving user engagement information from the remote server system for the social post; and outputting in an activity feed for the social platform the user engagement information. The user engagement information can include, at least, information that identifies actions taken by users with regard to the product tagged in the social post. The actions taken by users can include purchases of the product in association with the social post from within a social feed. The user engagement information can include, at least, analytics related to engagement with (i) the social post and (ii) the product tagged in the social post across a plurality of dimensions. The plurality of dimensions can include, at least, a social dimension related to social engagement on the social platform and a merchant dimension related to product sales on the social platform.
Certain implementations may provide one or more advantages. In a first example, a single GUI can be used associate and present different types of content that would otherwise be presented across separate GUIs or applications. Such features can improve the GUI on client computing devices, such as client computing devices with smaller form factor displays, like screens on mobile and wearable computing devices. For instance, by associating and presenting multiple different types of content within a single GUI, users can more efficiently access information and features on their devices. In a second example, computing devices can operate more efficiently by not needing to run multiple applications concurrently, which can reduce memory usage and processing requirements.
In a third example, arrangements and sequences by which graphical elements are presented in the GUIs can provide more intuitive and efficient graphical presentations on client computing devices.
In a fourth example, some implementations of the system can be configured to provide an improved platform and user interface for users to access/associate/contribute social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). Such an improved platform and user interface can allow users to associate and interact with each of the content items, to perform social media and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the graphical user interface and its content stream. In some implementations described below, the users can readily and seamlessly access, associate, and interact with user-generated content (e.g., social media content) and other content (e.g., product content) within a common user interface.
In a fifth example, user interfaces and systems can allow social content to be annotated with tags identifying other types of content, such as product content, included in the social content, which can provide a variety of advantages. For instance, product tags can permit a single GUI to present both social content and product content so that a user can readily navigate between and to perform actions (e.g., social actions, product action) with regard to different types of content from within a common interface.
In a sixth example, particular users who have large social followings can be designated to receive a portion of revenue associated with product sales that are directly attributable to social content that they generate that tags various products. This framework can be provided through a platform permitting product tagging in social content, and can provide incentives to content creators to generate content that is impactful and that authentically connects with other users so that the other users are motivated, based on the user-generated content, to purchase tagged products. Users who are successful in connecting with their followers can receive more compensation than other users who generate less impactful and authentic content that does not gain as much traction with their followers, thus incentivizing high quality social content to be generated on the platform. This can provide a variety of benefits. For instance, high quality content can help a social platform to maintain a steady and active user base (frequent, high quality content can cause users to engage with a social platform more consistently and more frequently), which can often dictate the viability of a social platform. In another example, high quality content featuring various products can help merchants more authentically connect with users outside of the confines of traditional advertising and marketing channels, which can help merchants and their products gain traction with users, especially users who are more difficult to reach via traditional marketing channels.
In a seventh example, analytics around the performance of social content and products tagged in social content can be provided to user, such as users designated to receive compensation for sales of tagged products. Such analytics can provide users with insights into what works well and gains traction with their user base, and what does not, which can help users improve user engagement with future social content that they generate. Additionally, suggestions on how to improve engagement with social content can be automatically determined via various data analytics techniques and can be provided to users, such as suggestions based on the day and time at which a post should go live on a social platform to best engage the user's audience (e.g., followers, other socially connected users). Content scheduling can be provided via a social platform, which can allow a user to designate social content for distribution at a particular future time, which can increase the ease and use to time-specific distribution to improve user engagement.
In an eighth example, analytics and/or other information generated on a social platform can be used to provide additional features to enhance user-generated content and/or user engagement with content on such a social platform. For example, training modules can be provided as part of and/or outside of a social platform to provide guidance to content creators on how to better create content that will engage other users on the platform. Such training modules can include automatic analysis of a variety of social platform information, such as automatic analysis of user-generated content (e.g., posts, images, textual descriptions, tags, hashtags), user engagement to the user-generated content (e.g., comments, reactions, shares, purchases of tagged products), social connections between users (e.g., followers, friends, fans), timing information for posts and engagement (e.g., day of the week, time of day, delay from initial post to engagement), and/or combinations thereof. Training modules can use the automatic analysis to determine what users are doing well and what users could do to improve their engagement with other users on the social platform, and to guide the user on specific, actionable steps the user could take. For example, the user could be informed that he/she could better engage other users in his/her social circle by generating posts that include trending topics/hashtags, that include high-resolution photographs, and that are posted between 3 pm-7 pm on Thursdays and Fridays. Other posts by other users that have achieved improved engagement may be provided as examples to a user as part of the training, for example. Such other posts can be automatically identified by the training modules, as well.
In a ninth example, analytics around the performance of products that are tagged in social content can be provided to merchants whose products are tagged in social content. Such analytics can assist merchants in better assessing what sort of messaging resonates well with users, what sort of sentiments user express with regard to products, and which demographic groups are most pertinent to particular products. Such analytics can aid merchants in better connecting with users, such as through influencers on a social platform.
The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
Referring to
The computing device 102 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing device 102 can communicate with a server system 104 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain multiple different types of content that are presented in the GUI 114. The server system 104 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features for multiple different types of content, such as social media, messaging, e-commerce, and/or other types of content. For example, the server system 104 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 104 may directly provide both social networking features and product-related features. Other configurations of the server system 104 among one or more other computer systems are also possible.
As indicated by step A (108), the server system 104 can receive content, such as user-generated content and other types of content (e.g., merchant-provided product content, news content, messaging content). For example, the server system 104 can receive social media content (e.g., posts, comments, shared content) from other client computing devices and can receive product-related content (e.g., product information, product images, product reviews) from merchant computer systems. The server system 104 can store the received user-generated content in a data repository 106 (e.g., cloud storage system), from which it can be served by the server system 104A to the client computing device 102. The server system 104 can store other types of content as well.
As indicated by step B (110), the server system 104 can provide information to the client computing device 102, which can be presented in the GUI 114, as indicated by step C (112). The information can include multiple different types of content to be presented in the GUI 114. In the depicted example, the GUI 114 is programmed to present bi-directional content streams 120 and 122 that are oriented along a first dimension 116 of the device 102 and a substantially perpendicular second dimension 118 of the device 102, respectively. For example, a first type of content can be presented in the content stream 120 and a second type of content can be presented in the second, perpendicular content stream 122, which can improve the GUI 114 so that users are able to navigate effectively between content types without having to navigate to or launch other applications/GUIs.
The depicted content stream 120 is a vertical content stream that can be “infinite”—meaning that client computing device 102 is programmed to obtain additional content from the server system 104 when scrolling along the stream 120 approaches a current end of the content that has been downloaded onto the client computing device 102. The content stream 120, in this example, presents user-generated content items, such as social media content items, and the perpendicular content stream 122 presents secondary content items that are associated with the user-generated content items. For example, the content stream 120 includes user-generated content elements 124, 132, and 148, which each include an example user-generated image (126, 134, and 150), example user-generated text (128, 136, and 152), and example comments (130, 138, and 154). For instance, the content stream 120 can be a social media content stream for a user who is logged into the computing device 102, and the user-generated content elements 124, 132, and 148 (e.g., social media posts, shares, saves, comments) can be user-generated social media content items for other users in the user's social network (e.g., friends, following).
In the depicted example, the first user-generated content element 124 is depicted as being displayed by the computing device 102. If the user were to scroll down in the GUI 114, then the second user-generated content element 132 would be displayed by the computing device 102. This second user-generated content element 132 is distinct from the other user-generated content elements 124 and 148 in that it is associated with the perpendicular stream 122 of secondary content elements 140a-n. For example, the user-generated content element 132 can be a social media post that tags products depicted in the image 134, and the secondary content elements 140a-n can be product elements for each of the products tagged in the image 134. The secondary content elements 140a-n can be, for example, different from the user-generated content elements 124, 132, and 148 in terms of what the elements include and/or in terms of the features associated with the elements. For instance, in instances where the elements 124, 132, and 148 are social media content elements, a user may be presented with features in the GUI 114 to interact with the elements, like commenting, liking, sharing, saving, or otherwise reacting to the elements 124, 132, and 148. In contrast, in instances where the secondary content elements 140a-n are product elements, a user may be presented with different information (e.g., product information as opposed to user-generated content, product ratings/reviews instead of user comments) and may be presented with different features (e.g., product purchase features instead of social interaction features).
The example secondary content elements 140a-n each include an image 142a-n (e.g., image depicting a product), text 144a-n (e.g., text describing a product), and selectable features 146a-n (e.g., selectable button to purchase or add the product to a virtual shopping cart, selectable button to save the product to the user's profile, compose and transmit message). The secondary content elements 140a-n can include additional and/or alternate elements, such as multiple images, associated other products, associated other user-generated content (other user-generated content items), and/or other features.
The secondary content elements 140a-n in the second content stream 122 can be displayed in the GUI 114 in response to scrolling input along the second dimension 118 while the user-generated content element 132 is being displayed. For example, if the user scrolls down the content stream 120 so that at least a portion of the user-generated content element 132 is displayed in the GUI 114, then subsequent horizontal scrolling input (related to the user-generated content element 132) in the GUI 114 can cause the secondary content element 140a to be displayed in the GUI 114. The horizontal scrolling along the second dimension 118 can cause the secondary content element 140a to replace, at least partially, the user-generated content element 132 (e.g., replace through horizontal scrolling animation of the content elements 132 and 140a that coincides with the scrolling input). The other secondary content elements 140b-n can also be displayed in the GUI 114 based on further horizontal scrolling along the second dimension 118. Horizontal scrolling can be either way (left or right) along the second dimension 118, to allow the user to navigate forward and backward along the content stream 122, which may be limited in length (contain a finite number of element) or which may be infinite (as described above with regard to the stream 120.
The user of the device 102 can interact with the secondary content elements 140a-n when they are displayed in the GUI 114, such as selecting the selectable features 146a-n. Such interactions can take place without transitioning outside of the GUI 114 or causing the GUI 114 (or the content stream 120) to lose focus. For instance, instead of providing links that would cause another application to be launched, the selectable features 146a-n for the secondary content elements 140a-n are provided within the content stream 120 by horizontally scrolling through the perpendicular content stream 122. For example, the user-generated content elements 124, 132, and 148 can be social media content and the secondary content elements 140a-n can be product content, which can be added to a virtual shopping and/or purchased from within the GUI 114 by selecting the selectable features 146a-n. As indicated by step D (156), selecting the selectable features 146a-n (and other user inputs) can cause the computing device 102 to transmit information about user selection to the server system 104, which can either directly or through communication with other computer systems process the input.
A user of the device 102 can continue to scroll vertically through the content stream 120 while secondary content elements 140a-n are displayed (no need to scroll horizontally back to the user-generated content element 132 before vertically scrolling through the content stream 120). For example, a user can vertically scroll down in the stream 120 until the user-generated element 132, horizontally scroll along the stream 122 so that the secondary content element 140b is displayed, and then vertically scroll down to the user-generated content element 148 (without first scrolling back along the stream 122 to the user-generated content element 132). Furthermore, the computing device 102 can be programmed to maintain the context of the content stream 120 and the perpendicular content stream 122 when scrolling is occurring along the other of the two content streams. For instance, continuing from the previous example, if the user were to then scroll from the user-generated content element 148 up the content stream 120, the next element displayed would be the secondary content element 140b based on the context (position) of the content stream 122 being maintained.
Although not depicted, the user-generated content element 132 with associated secondary content elements 140a-n can include one or more graphical elements to indicate to a user that secondary content elements 140a-n are present. Additionally, the user generated content element 132 can include graphical status elements for the content stream 122 to provide a user with an indication of the current context (position) within the content stream 122 of the element displayed in the GUI 114.
Referring now to
The computing device 202 is programmed to present one or more GUIs on the computing device 202 based, at least in part, on information received over the network 232 from the computer server system 240 using a one or more network interfaces 204 of the device 202. The one or more network interfaces 204 can include wireless and/or wired network interfaces, such as network interface cards (NIC), wireless radio chipsets (e.g., 4G LTE chipset, BLUETOOTH chipset, near field communication (NFC) chipset, Wi-Fi chipsets), optical network interfaces (e.g., fiber optic network interface), and other network interfaces.
The computing device 202 includes one or more processors 226 that are programmed to control operation of an output subsystem 208 and an input subsystem 216 to present one or more GUIs 206 according to one or more instruction sets 230 that are stored in memory 228. The one or more processors 226 can be any of a variety of processors, such as single or multi-core central processing units (CPU), graphics processing units (GPU), microcontrollers, application-specific integrated circuits (ASIC), or combinations thereof. The memory 228 can be any of a variety of volatile and/or non-volatile memory from which the processors 226 can, directly or indirectly, load and execute the instructions 230, such as random access memory (RAM), registers, caches, flash memory, storage devices, or combinations thereof. The instructions 230 can be any of a variety of instruction sets, such as being part of an application (e.g., mobile application), executable file, binary, script, code, operating system (OS) library, or combinations thereof. The instructions 230, at least in part, can be downloaded and run/interpreted/installed on the computing device 202. For example, the instructions 230 can be downloaded and installed as a mobile application from an online mobile application store accessible over the network 232. In another example, the instructions 230 can be downloaded from a web server as part of a web page that is interpreted/executed by a web browser application on the computing device 202.
The output subsystem 208 can include a number of components to output the one or more GUIs 206 on the user computing device 202, such as one or more displays 210, one or more speakers 212, and one or more haptic feedback devices 214. For example, the one or more displays 210 can be any of a variety of displays, such as organic light emitting diode (OLED) displays, RETINA displays, liquid crystal displays (LCD), and/or other displays. The one or more displays 210 can output graphical elements (e.g., text, graphics, buttons, images, videos, links, menus) as part of the GUI 206 as directed by the instructions 230 being executed by the one or more processors 226. The other components 212 and/or 214 of the output subsystem 208 can supplement/augment the graphical elements output on the display 210 for the GUI 206, such as providing audio and/or haptic feedback in association with graphical elements and/or in response to user input provided through the input subsystem 216.
The input subsystem 216 includes components through which a user can provide input to the computing device 202 and the GUIs 206. For example, the input subsystem 216 can include one or more touchscreens (e.g., capacitive touchscreens), physical buttons and/or keys 220, one or more microphones 222, one or more sensors 224 (e.g., motion sensors, orientation sensors), one or more cameras 225 (e.g., front-facing digital camera, rear facing digital camera), and/or other input components. The input subsystem 216 is accessed and used as part of the one or more GUIs 206. For example, graphical elements of the GUI 206 can be output through the display 210 and input related to these elements can be received through the touchscreen 218 (e.g., touch-based input), buttons/keys 220, the microphone 222 (e.g., speech-based input), sensors 224 (e.g., motion/gesture-based input), the cameras 225 (e.g., visual input), and/or other components.
Input received (e.g., user inputs, commands, comments, shares, saves, posts, purchases, requests) and other information related to the GUI 206 (e.g., user actions/inactions regarding particular graphical elements, status information) can be transmitted to the computer system 240 over the network 232. The network can include, for example, the internet, LANs, WANs, VPNs, wireless networks (e.g., Wi-Fi networks, BLUETOOTH networks), wired networks, mobile data networks, and/or combinations thereof.
The computer server system 240 (e.g., computer server, cloud-based computer system, social networking server system) includes one or more network interfaces 242 to communicate over the network 232, a frontend 244 to serve requests from the computing device 202 (e.g., requests for content, requests to perform particular operations), and a backend 246 to process requests and perform other operations. The computer server system 240 includes one or more data sources that the frontend 244 and/or the backend 246 can access, such as a user-generated content repository 248 (e.g., social media content), a repository of other content 250 (e.g., product content, messaging content), and a repository of user activity 252 (e.g., user actions related to the GUI 206 and content presented thereby).
The computer server system 240 can process some requests directly, such as requests to add a post (example user-generated content) to a social network hosted by the computer server system 240, and can communicate with one or more affiliated computer systems 260 to process requests, such as requests to purchase a product. For example, the computer server system 240 can receive a request from the computing device 202 to add a social media post to a social network hosted by the computer system 260, which the backend 246 can perform by storing the post to the user-generated content repository 248. In another example, the computer server system 240 can receive a request from the computing device 202 to purchase a product, which the backend 246 can retransmit through the network interface 240 to the affiliated computer system 260, which may provide an online merchant store.
The affiliated computer system 260 can be similar to the computer server system 240 in that it can communicate over the network 232 via a network interface 262, serve requests using a frontend 264, and process requests and perform other operations using a backend 266. The affiliated computer system 260 can store content in a repository 268, such as product information, which can be served to the computing device 202, to the computer server system 240, and/or to other systems/devices. For example, the affiliated computer system 260 can serve product catalog information (e.g., product taxonomy) to the computer server system 240 and the content 268 can store product catalogs. The affiliated computer system 260 can one of many affiliated computer systems that are part of the system 200 and that perform one or more tasks to provide a service hosted by the computer server system 240, such as online merchant stores and ordering, messaging services, productivity services, news distribution services, and/or other services.
Referring now to
Additionally, such an example social-retail platform can allow users to curate product offerings across multiple different online merchants through their posts and other actions on the platform, such as saving products and/or posts. For example, users can generate posts that tag products offered by multiple different online merchants and/or brands, which can allow users freedom and independence from particular merchants and/or brands when creating personalized product experiences (i.e., posts not limited to products offered by particular merchants and/or brands). Through user-based product curation across different merchants/brands, the universe of online merchant product can be culled to a more manageable and personalized subset that can better engage and interest users. For example, a user can identify and follow other users who have shared interests on the social-retail platform, and can receive updates/posts, such as social posts tagging products, from those other users in a customized feed on the social-retail platform. This example user can then discover new products through personalized social content that curates product offerings in a more genuine and authentic manner, which can better engage and maintain user interest.
While the example social-retail platform that is described with regard to
Additionally, the social-retail platform implementation of the computer system 240 described with regard to
Referring to
Referring to
The graphical element for the post 308 includes a set of controls 332-338 for a user to interact with the post 308. The controls include a selectable element 332 (“+” button) through which a user can “save” the post to her profile (see
The graphical element for the post 308 also includes a comment section through which users can comment on and react to the post 308. The comment section includes a comment field 340 through which the user of the computing device 300 can enter a comment (which can be transmitted to, stored by, and served in association with the post 308 by the computer system 240). The comment section can initially be collapsed to show only a portion of the total number of comments (e.g., initially show three comments 348a-c) also includes a selectable feature 346 to expand/view all comments within the GUI 304. The comments 348a-c can include a variety of annotations and features other than just text, such as tagging other users 352, hashtags 354, and emojis 350a-b. The comment section can include a summary 342 that identifies one or more top responses, which in this example is a top emoji response 344 to the post 308. The top emoji response 344 can be determined (by the computer system 240 and/or by the computing device 300) in any of a number of ways, such as based on number of instances each emoji appearing in the comments 348a-c, a number of users using each emoji in the comments 348a-c (counting users using a particular emoji instead of a number of times the particular emoji is used by each user), time decay features through which emojis in more recent comments are weighted more heavily than those in older comments, user-specific weighting through which emojis in comments from other users who are socially-connected to the user of the computing device 300 are weighted more heavily than emojis in comments from other, non-connected user, and/or other techniques.
The GUI 304 also includes a header with a selectable icon 303 to navigate the GUI 304 to an online retail store (which can be customized based on social-retail posts and other actions), a title 306 for the GUI 304 to identify which interface (home feed) is currently being presented on the display 302, and a virtual shopping cart icon 305 that can identify a number of items added to the shopping cart from within the social-retail platform and that is selectable to navigate the GUI 304 to a shopping cart interface to purchase/order the items. The header (icon 303, title 306, and shopping cart 305) can be persistently presented at the top of the GUI 304.
The GUI 304 also includes a footer 356 that includes selectable icons 358a-e to navigate to different interfaces that are provided on the computing device 300 (as part of a mobile application being executed on the device 300) to interface with the social-retail platform provided by the computer system 240. The home icon 358a can correspond to the GUI 304 for the home feed presented in
Referring to
Like the post 308, the post 360 also includes controls 378-384 (similar to the controls 332-338), a textual description section 386 that identifies the author 388 and includes hashtags 390 (similar to the description section 324), and a comment section with a comment field 392 and top response 394-396 (similar to the comment section 342-354).
Referring to
Referring to
The suggested user section 406 includes a collection of users 418a-d on the social-retail platform who the computer system 240 has determined that the logged-in user on the computing device 300 may want to follow. For example, the computer system 240 may determine that the users 418a-d should be suggested based on the users 418a-d and the logged-in user sharing similar interests (e.g., saving the same or similar posts and products, purchasing the same or similar products). Referring to
The GUI 401 also includes a discovery section 408 that includes a collection of products 422a-d and posts 426a-f that the computer system 204 has determined that may be of interest to the logged-in user. The products 422a-d are depicted with product tags 424a-d. The products 422a-d and the posts 426a-f can be selected by the computer system 204 (regardless of whether they are currently trending) based on the products 422a-d and the posts 426a-f being new to the logged-in user (e.g., the products 422a-d and the posts 426a-f have not been presented in the home feed) and likely to be of interest to the logged-in user (e.g., include hashtags that the user follows/uses, saved by other users with similar interests).
The identified products 412a-b, 422a-d and the posts 415a-c, 426a-f in the GUI 401 can be selectable, selection of which can cause the GUI 401 to display the selected content. For example, selecting a product or a post can cause the selected product or post to be presented in the home feed, similar to the posts 308 and 360.
Referring to
Referring to
Referring to
Referring to
Referring to
The users 608a-f may need to provide consent to some or all of these activities 606a-f appearing in other users' activity feeds (i.e., feed 602a). For example, the user 608c may need to consent to information his purchase of the product 616 appearing in other users' activity feeds before it can appear in the feed 602a. Consent requirements may be limited to more actions that have potential privacy implications, like product purchases, users being tagged in posts by other users, users being geotagged at particular locations, and/or other potential sensitive information.
Referring to
The stream 632 includes, for example, a list 650a-c of activities 654a-c (e.g., comments, saves, shares, purchases) performed by other users 652a-c that are relevant to posts (and other content) created/shared by the logged-in user. The graphical elements 650a-c in the list include thumbnail icons 656a-c that represent the posts to which the activities 654a-c relate, as well as times 658a-c at which the activities occurred.
Referring to
Referring to
Referring to
Referring to
Referring to
Like the social post 308, the product element 806 includes controls 810-816 through which users can interact with the product 803. For example, the controls include a selectable element 810 (“+” button) through which a user can “save” the product element 806 to her profile (see
The product element 806 further includes product information, such as a merchant 820 providing the product and a current price 822 for the product. The merchant information 820 can be selectable and can cause information about the merchant, such as user ratings for the merchant and other products offered by the merchant, to be presented (e.g., presented in an online store for the merchant either inside or outside of the social-retailer platform). The product element 806 additionally includes a selectable shopping cart icon 824 that a user can select to add the product 803 that is depicted in the social post 308 to the virtual shopping cart indicated by the icon 305. For example, by selecting the product element 806, the product 803 can be added to the shopping cart from within the social feed presented in the GUI 304 (without using another application or otherwise exiting the GUI 304). As described below with regard to
The product element 806 further includes a review section with user reviews for the product 803. The review section includes a “top review” portion 826, which in this example is a review by user 828 who is a member of the social-retail platform (as indicated by the icon 830). The review section further includes a selectable icon 832 to indicate whether this review is helpful/useful, a rating 834 that the user 828 gave the product, and a textual review 836 of the product. The review section also includes a selectable element 838 to expand/view all reviews (not just the top review 826). The product reviews can be from one or more user groups, such as users who are part of the social-retail platform and/or users of one or more online retail stores where the product 803 is offered.
In the depicted example, further scrolling input 839 to move the product stream further to the right is provided through the GUI 304. Referring to
In the depicted example, vertical scrolling input 875 is received through the GUI 304 while the product element 840 is being displayed and while the GUI 304 has progressed partway down the horizontal product stream (as indicated by icon 842 corresponding to the product element 840 being bold/highlighted). Referring to
Also like the social post 308, the social post 876 identifies a user 882 who performed an action 884 that caused the post 876 to be presented in the social feed. In this example, the action 884 is the user 882 saving to her profile the post 876, which was originally created by the user 886 indicated in the “via” element. The post 876 also includes a user-generated image 888 for the post 876, which is different from the merchant-provided images in the product elements, such as the merchant-provided image 844.
In contrast to the social post 308, which appears in the social feed based on the user 364 (to whom the logged-in user has a social connection) having created the post 308 (see
As discussed above with regard to the system 100 and
Referring to
Referring to
In another example, the data identifying the products included in the shopping cart can be maintained on the computer system 204, and information identifying a current number of items in the shopping cart can be provided to the computing device 300 (for presentation of the shopping cart count graphic 902). In such an example, adding the product 808 to the virtual shopping cart can include the computing device 300 transmitting a request to the computer system 240 to add the product 808. Such a request can include information identifying the product 808 (unique product identifier) and information identifying the logged-in user and/or the computing device 300 (e.g., username, MAC address for the computing device 300, other unique identifier). Once the request has been received and successfully processed by the computer system 240 (meaning the product 808 has been added to the shopping cart), a confirmation can be transmitted by the computer system 240 back to the computing device 300.
Once confirmation has been received that the product 808 was added to the virtual shopping cart, the GUI 304 can output a visual element 904 confirming that it has been added to the cart and the icon can include a visual indicator 902 (checkmark graphic) that indicates that the product 808 has already been added to the cart.
Referring to
Referring to
Saving can cause the product element 806 to appear in product tab 724 in the profile GUI 701. The product element 806 may be saved by default as “private” (740) or “public” (742) depending on the user's settings (e.g., user may designate that saved products default as either public or private). Additionally or alternatively, the user may be presented with an option to save either publicly or privately when selecting the save icon 810. If the product element 806 is saved publicly, then the product element 806 can additionally appear in the home feeds (e.g., social post 876) and activity feeds (e.g., activity feed element 606d) of other users who are socially connected (e.g., following, friends) with the logged-in user.
Similar to the description above with regard to adding the product 808 to a virtual shopping cart, the product 808 can be saved locally on the computing device 300 and/or remotely by the computer system 240. For example, in response to receiving the selection 1000 of the save icon 810, the computing device 300 can transmit a request to the computer system 240 to save the product element 806 in association with the logged-in user and/or the computing device 300.
Referring to
Saving can cause the social post 360 to appear in posts tab 722 in the profile GUI 701. The social post 360 can additionally appear in the home feeds (e.g., social post 876) and activity feeds (e.g., activity feed element 606d) of other users who are socially connected (e.g., following, friends) with the logged-in user.
Similar to the description above with regard to saving the product 808, the social post 360 can be saved locally on the computing device 300 and/or remotely by the computer system 240. For example, in response to receiving the selection 1100 of the save icon 378, the computing device 300 can transmit a request to the computer system 240 to save the social post 360 in association with the logged-in user and/or the computing device 300.
Referring to
The computing device 1202 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing device 1202 can communicate with a server system 1204 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain multiple different types of content that are presented in the GUI 1214. The server system 1204 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features for multiple different types of content, such as social media, messaging, e-commerce, and/or other types of content. For example, the server system 1204 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 1204 may directly provide both social networking features and product-related features. Other configurations of the server system 1204 among one or more other computer systems are also possible.
As indicated by step A, the server system 1204 can receive user-generated content 1208, which can include user-generated images 1210 and user-identified secondary content 1212 that is associated with the user-generated images 1210. For example, the server system 1204 can receive social media content (e.g., posts, comments, shared content) from other client computing devices. Such social media content can include, for example, photos (example user-generated images 1210) and tags (e.g., hashtags, user tags, product tags, location tags) that identify other content (example identified secondary content 1212) related to or included in the social media content. For example, a social media post (example user-generated content 1208) can include a photo of a user wearing a new jacket (example user-generated image 1210) and a product tag that identifies the new jacket (example identified secondary content 1212). The server system 1204 can receive the user-generated content 1208-1212 and can store it in a data repository 1206 (e.g., cloud storage system), from which it can be served by the server system 1204 to the client computing device 1202.
The server system 1204 can receive, store, and serve other types of content as well. For example, the server system 1204 can additionally obtain the secondary content (e.g., merchant-provided product content, news content, messaging content) that is identified (1212) by the user-generated content 1208. For example, if the identified secondary content 1212 is a product that is tagged in user-generated content 1208, the server system 1204 can obtain product information for the tagged product, such as an image for the product, a description of the product, a merchant selling the product, and other product details. In another example, if the identified secondary content 1212 is a news item is tagged in user-generated content 1208, the server system 1204 can obtain information about the tagged news item, such as the title/headline, a brief summary of the news item, an author, a time/date for the news item, and other news details.
As indicated by step B (1214), the computing device 1202 can transmit a request for secondary content to the server system 1204. Such a request can originate from the computing device 1202 in a variety of ways, such as through the computing device 1202 presenting the user-generated content 1208 and the user selecting a graphical element representing the identified secondary content 1212. For example, a social media post (example user-generated content 1208) can be presented on the computing device 1202 with a selectable tag or thumbnail for the secondary content (e.g., product, news item, productivity project, another user or entity), selection of which can cause the computing device 1202 to request the secondary content from the server system 1204. Some illustrative examples of such a request for secondary content originating from a client computing device are described below with regard to
As indicated by step C (1216), the server system 1204 can receive the request (which can uniquely identify the secondary content) and can proceed to access the requested content. For example, the server system 1204 can retrieve the requested secondary content from one or more storage devices/systems, and/or can request the secondary content from one or more other computer systems (e.g., affiliated computer systems).
As indicated by step D (1218), the server system 1204 can identify other content that is related to the requested secondary content. For example, the server system 1204 can identify user-generated content and/or other secondary content that is related to the requested secondary content. The related content can be identified and retrieved so that it can be presented in the GUI 1224 with the requested secondary content. The server system 1204 can use a variety of techniques to identify related content. For example, the server system 1204 can identify related content based on links between content (e.g., tag included with a content element that identifies another content element), overlapping user behavior patterns between content (e.g., similar sets of users have saved, shared, commented on, liked, or performed other actions with regard to two content items), similar or same annotations being applied to content (e.g., content annotated in the same product verticals), and/or other factors. For instance, the server system 1204 can identify user-generated content that includes an identifier (e.g., tag) identifying the requested secondary content. In another example, a common set of users having performed similar actions with regard to the requested secondary content and other content (e.g., user-generated content, other secondary content) can be used by the server system 1204 to identify the other content as being related to the requested secondary content. In a further example, the server system 1204 can identify other content (e.g., user-generated content, other secondary content) as being related to the requested secondary content based on the other content and the requested secondary content have similar annotations (e.g., hashtags, classifications, emojis).
As indicated by step E (1220), the server system 1204 can provide the requested secondary content and the related content to the computing device 1202. As indicated by step F (1222), the computing device 1202 can receive the secondary content and related content, and can present the content in the GUI 1224 using one or more graphical elements. For example, the computing device 1202 can present the requested secondary content 1226 in the GUI 1224 with various user control features 1228 related to the secondary content 1226, such as social interaction features (e.g., selectable buttons to like, save, share, comment on the secondary content 1226), product-specific features (e.g., purchase, add to virtual shopping cart, review, rate), and/or other features.
The secondary content 1226 can also be presented in the GUI 1224 with related user-generated images 1230a-n and related secondary content 1232a-n that the server system 1204 identified as being related. For example, the secondary content 1226 can be merchant-provided product information and the user-generated images 1230a-n can be user-generated photos depicting real-world use/application of the product described in the product information. In another example, the secondary content 1226 can be a news story and the user-generated images 1230a-n can be user-generated photos depicting aspects of the news story from different vantage points.
The user-generated images 1230a-n and the related secondary content 1232a-n can be selectable in the GUI 1224 and can cause the computing device 1202 to present the selected items (images 1230a-n and/or secondary content 1232a-n). The presentation of such other items can aid the user of the computing device 1202 in discovery new content that may be of interest to the user. For example, if the secondary content 1226 is product information and the user-generated images 1230a-n are photos depicting users using the product in combination with other products, the user can discover these other, related products that can be paired with the product identified in the secondary content 1226.
Referring to
Referring to
Referring to
Like the social post 308, the product element 1306 includes controls 1310-816 through which users can interact with the product 1303. For example, the controls include a selectable element 1310 (“+” button) through which a user can “save” the product element 1306 to her profile (see
The product element 1306 further includes product information, such as a merchant 1320 providing the product and a current price 1322 for the product. The merchant information 1320 can be selectable and can cause information about the merchant, such as user ratings for the merchant and other products offered by the merchant, to be presented (e.g., presented in an online store for the merchant either inside or outside of the social-retailer platform). The product element 1306 additionally includes a selectable shopping cart icon 1324 that a user can select to add the product 1303 that is depicted in the social post 308 to the virtual shopping cart indicated by the icon 305. For example, by selecting the product element 1306, the product 1303 can be added to the shopping cart from within the social feed presented in the GUI 304 (without using another application or otherwise exiting the GUI 304). A user can add the product element 1306 to the shopping cart and then continue scrolling vertically along the social feed or horizontally along the product feed (without having to reopen or refocus the computing device 300 on the GUI 304).
The product element 1306 further includes a review section with user reviews for the product 1303. The review section includes a “top review” portion 1326, which in this example is a review by user 1328 who is a member of the social-retail platform (as indicated by the icon 1330). The review section further includes a selectable icon 1332 to indicate whether this review is helpful/useful, a rating 1334 that the user 1328 gave the product, and a textual review 1336 of the product. The review section also includes a selectable element 1338 to expand/view all reviews (not just the top review 1326). The product reviews can be from one or more user groups, such as users who are part of the social-retail platform and/or users of one or more online retail stores where the product 1303 is offered.
In the depicted example, further scrolling input 1339 to move the product stream further to the right is provided through the GUI 304. Referring to
The image 1344 for and/or other portions of the product element 1340 can be selectable and, in the depicted example, selection input 1346 selecting the image 1344 is received through the GUI 304. Referring to
The product interface 1348 includes a title 1350 of the product 1303, the virtual shopping cart icon 305, and a back button 1352 to navigate back to the location from which the product interface 1348 was launched, which in this example is the GUI 304 depicted in
The product interface 1348 further includes controls 1368a-b to purchase/order the product 1303. For example, the control 1368a is a selectable button through which the user of the computing device 300 can order the product 1303 through a single action (e.g., selecting the control 1368a). The control 1368b is a selectable button through which the user of the computing device 300 can place the product 1303 in the virtual shopping cart 305 associated with the logged-in user. The virtual shopping cart 305 can be persistent across the interfaces 304, 401, 601, 701, and 1348, and can allow a user to add products to the cart 305 from any or all of these interfaces. The controls 1368a-b can be part of a footer that is persistently displayed at the bottom of the interface 1348.
In the depicted example, horizontal scrolling input 1370 is provided in the interface 1348 to scroll an image stream for the product 1303 to the right. Referring to
In the depicted example, vertical scrolling input 1374 is provided in the interface 1348 to scroll down to view additional information and features related to the product 1303. Referring to
The product interface 1348 further includes merchant information 1380a-c indicating that the product 1303 is sold by a particular merchant (880a-b) and the product purchase terms 1380c (e.g., shipping, exchanges, returns, support) with the merchant 1380b. The interface 1348 additionally includes tabs 1382a-c to view information related to the product, including details for the product 1303 (tab 1382a), reviews of the product 1303 (tab 1382b), and questions/answers for the product (tab 1382c). The details can include a product description 1382d and product features 1382e. Additional scrolling input 1384 is provided through the product interface 1348, which causes the interface 1348 to further scroll down.
Referring to
In the depicted example, further scrolling input 1391 is received through the interface 1348 to cause the interface 1348 to scroll down further. Referring to
The recently viewed products 1392a-b can be selected and served by the computer system 240 based on previous actions by the logged-in user. For example, the computer system 240 can track product elements that the user views in the GUI 304 and/or the product interface 1348, and can identify the recently viewed products 1392a-b based on such product views.
In the depicted example, selecting input 1394 for the control feature 1368b in the product interface 1348 for the virtual shopping cart is received. Referring to
In another example, the data identifying the products included in the shopping cart can be maintained on the computer system 204, and information identifying a current number of items in the shopping cart can be provided to the computing device 300 (for presentation of the shopping cart count graphic 1395b). In such an example, adding the product 1303 to the virtual shopping cart can include the computing device 300 transmitting a request to the computer system 240 to add the product 1303. Such a request can include information identifying the product 1303 (unique product identifier) and information identifying the logged-in user and/or the computing device 300 (e.g., username, MAC address for the computing device 300, other unique identifier). Once the request has been received and successfully processed by the computer system 240 (meaning the product 1303 has been added to the shopping cart), a confirmation can be transmitted by the computer system 240 back to the computing device 300.
Once confirmation has been received that the product 1303 was added to the virtual shopping cart, the product interface 1348 can output a visual element 1395c confirming that it has been added to the cart and the control element 1368b can include a visual indicator 1395a (checkmark graphic) that indicates that the product 1303 has already been added to the cart.
In the depicted example, the swipe/flick input 1396 is received in the product interface 1348 after the product 1303 has been added to the virtual shopping cart. The product interface 1348 can be programmed to monitor for such input (regardless of whether the product has been added to the cart or purchased) and, in response to receiving and recognizing the swipe/flick input 1396, can return to the GUI 304 from which the user entered the product interface 1348. The swipe/flick input 1396 can be similar to the user selecting the back button 1352, but can be input that is more convenient for a user to provide on the device 300 (e.g., the swipe/flick input 1396 can be provided anywhere on the display—no need to contact a specific location on the screen). Additionally and/or alternatively, other types of input can be detected through the product interface 1348 to return back to the GUI 304, like reaching the bottom of the product interface 1348 (as depicted in
Referring to
Referring to
Referring to
The computer system 240 can receive the request, along with information identifying the logged-in user and/or the device 300 with the computer system 240, and can process the request (alone or in combination with one or more of the affiliated computer systems 260). Processing the request can include, for example, the computer system 240 verifying that the product 1303 is available (e.g., in stock), authenticating the logged-in user and/or the computing device 300, and verifying a valid payment method (e.g., stored financial account information) associated with the logged-in user. Once the order has been successfully processed, the computer system 240 can transmit confirmation back to the computing device 300. Referring to
The product interface 1348 can be accessed in a variety of different ways from within the social-retail platform. For example, the user can access the product interface 1348 by selecting a product depicted in a product element in a home/social feed, as depicted and described with regard to
Referring to
Referring to
A user can access the product interface 1348 for the product 1602 by selecting the entry 1600, as indicated by the selecting input 1606. In response to receiving the selecting input 1606, the product interface 1348 depicted in
Referring to
A user can access the product interface 1348 by selecting the product element 1706, as indicated by the selecting input 1718. In response to receiving the selecting input 1718, the product interface 1348 depicted in
Referring to
The computing devices 1802, 1808, and 1810 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing devices 1802, 1808, and 1810 can communicate with a server system 1804 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain content, content summaries, and/or other information to present in the GUIs 1836, 1846, and 1864. The server system 1804 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features related to content summaries, such as content summaries across multiple different types of content, like social media content, messaging content, product content, e-commerce content, and/or other types of content. For example, the server system 1804 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 1804 may directly provide both social networking features and product-related features. Other configurations of the server system 1804 among one or more other computer systems are also possible.
As indicated by step A, the server system 1804 can receive user-generated content 1816, which can include, for instance, user-generated images and corresponding descriptions 1818. For example, the server system 1804 can receive social media content (e.g., social media posts) from other client computing devices. Such social media content can include, for example, media elements (e.g., photos, videos, links to external content) and descriptions 1818 (e.g., text, hashtags, user tags, product tags, location tags, emojis) that describe or otherwise annotate the media elements. For example, a social media post (example user-generated content 1816) can include a photo of a user wearing a new outfit (example user-generated image) and a textual description of the new outfit, including product tags that identifies the individual clothing items in the outfit.
The server system 1804 can also receive other user-generated content that is related to the user-generated content 1816, such as comments 1820 that include user reactions and/or responses to the user-generated content 1816. For example, in instances where the user-generated content 1816 is a social media post that is provided to the server system 1804 by a first user, the server system 1804 can receive the comments 1820 from other users (and in some instances, the first user as well) that comment on, react, and/or otherwise respond to the social media post and/or comments to the social media post. The comments 1820 can be similar to the user-generated content 1816 in that they can include media elements (e.g., photos, videos, links to external content) and/or descriptions (e.g., text, hashtags, user tags, product tags, location tags, emojis). However, the comments 1820 can be associated with and/or can depend, directly or indirectly, from a user-generated content element, such as the user-generated content 1816.
The server system 1804 can receive the user-generated content 1816-1820 and can store it in a data repository 1806 (e.g., cloud storage system), from which it can be served by the server system 1804 to the client computing devices 1802, 1808, and 1810.
The server system 1804 can, additionally, determine and store content summaries in the data repository 1806. The content summaries can be determined based on the user-generated content 1816-1820. For example, a content summary can be determined from the comments 1820 that correspond to a particular content element, such as a social media post (example user-generated content 1816-1818). For instance, a content summary can be one or more emojis (icons or other graphical symbols that are encoded by one or more characters), keywords, hashtags, other tags (e.g., user tags, product tags, location tags), images, links, and/or other content elements that occur across the comments 1820 associated with a social media post. Such content elements can be identified as content summaries by the server system 1804 in any of a variety of ways. For example, one or more emojis can be identified as content summaries for a social media post based on the one or more emojis occurring across the comments 1820 for the social media post with a greatest frequency (e.g., most commonly occurring emoji(s)), at least a threshold frequency (e.g., emoji(s) occurring at least a minimum number of times), a greatest comment frequency (e.g., emoji(s) occurring in the greatest number of comments), at least a threshold comment frequency (e.g., emoji(s) occurring in at least a minimum number of comments), with a greatest weighted frequency (e.g., weighting emoji occurrences in newer comments more heavily, weighting emoji occurrences in older comments more heavily), and/or other factors (e.g., weighting emoji occurrences based on direct and/or indirect user responses to comments within which the emojis occur). Content summaries for other types of content elements, such as keywords, images, links, hashtags, and/or other elements, can be determined in a similar manner.
Content summaries can be stored in the repository 1806 and continually updated by the server system 1804 in response to user-generated content 1816 and/or comments 1820 being received. For example, every time a new comment associated with a social media post is received, the server system 1804 can determine whether the comment changes the content summary for the social media post and, if so, can update the content summary for the post in the data repository 1806. Such continual updating can allow for the content summaries to be quickly and efficiently served, searched, and/or processed in association with requests from client devices, such as requests for content, search requests, and requests for analytics information. For instance, instead of analyzing all of the comments to determine a content summary in response to a request for a content element, the server system 1804 can have the content summary pre-determined and stored in the repository 1806, and can simply serve the stored content summary to the requesting client device. This can allow for the content summary to be served more quickly and efficiently by the server system 1804, thus reducing the amount of computational resources on the server system 1804 that are used to process requests and also reducing response latency.
The server system 1804 can receive, store, and serve other types of content as well. For example, the server system 1804 can additionally obtain the secondary content (e.g., merchant-provided product content, news content, messaging content) that is identified, for example, by the user-generated content 1816-1820. For example, if a product is tagged in the user-generated content 1816, the server system 1804 can obtain product information for the tagged product, such as an image for the product, a description of the product, a merchant selling the product, and other product details. In another example, if a news item is tagged in the user-generated content 1816, the server system 1804 can obtain information about the tagged news item, such as the title/headline, a brief summary of the news item, an author, a time/date for the news item, and other news details.
Still referring to
The client computing device 1802 can receive the response and can present it in the GUI 1836, as indicated by step E (1834). For example, the GUI 1836 in this example presents graphical elements for a user-generated image 1836 (e.g., photo, video), a description 1840 (e.g., text, hashtags, emojis) that corresponds to the image 1836, one or more top responses 1842 (e.g., keywords, hashtags, emojis, phrases, links, images) to the user-generated content 1838-1840, and one or more comments 1844 that are associated with the user-generated content 1838-1840. The one or more top responses 1842 can be, for example, summaries of the comments 1844 that are determined the server system 1804 by on any of a variety of factors, as described above. The graphical element in the GUI 1836 for the comments 1844 may include only a portion of the total number of comments for the user-generated content 1838-1840, and the GUI 1836 may present the graphical element for the top responses 1842 instead of the complete set of comments 1844. In aggregate, the graphical element for the top responses 1842 and the presented portion of the comments 1844 can occupy less area in the GUI 1836 than an area that would otherwise be occupied by the complete set of comments 1844. This can allow area in the GUI 1836 to be conserved while still presenting a user of the computing device 1802 with substantially the same amount of information as if the user had viewed the complete set of comments 1844. Additionally, network traffic can be reduced by transmitting only a portion of the comments 1844 to the client computing device 1802 with the top response 1842, instead of transmitting the complete set of comments 1844. The complete set of comments 1844 may be requested by the user of the client computing device 1802 (e.g., the user may select a link to view all comments). In some implementations, the top response 1842 may be transmitted alone and without the comments 1844, which may be requested by a user of the client computing device 1802.
In some implementations, the client computing device 1802 can receive the complete set of comments 1844 for the user-generated content 1838-1840 and can determine the top response 1842 locally on the computing device 1802 (instead of by the server system 1804). In such implementations, the server system 1804 may offload the content summary determination to client computing devices, which may optionally (e.g., based on user configuration settings) be determined by the client computing device 1802 and in particular-designated ways (e.g., user may designate particular type/way that the content summary should be determined/presented on the device 1802). Such implementations can alternatively provide advantages to the server-side determinations described above, such as providing for variation in content summaries across various client devices, which may include no content summary determination, and/or conserving server system 1804 processing cycles by offloading the determinations to the client-side. Even with the client-side determined content summaries (e.g., the top responses 1842), the client computing device 1802 can, by default, present only a portion of the comments 1844 (even though the complete set of comments 1844 may have been received) in combination with the top responses 1842 in order to conserve display area in the GUI 1836 (e.g., conserve for the presentation of additional user-generated content elements, such as social media posts, in the content stream).
Additionally and/or alternatively to determining and providing content summaries for user-generated content, the server system 1804 can determine content summaries for other content to which users may also react, such as the secondary content (e.g., merchant-provided product content, news content, messaging content) described above. For example, product pages can include comment and review sections in which users can provide comments/reviews for particular products, and view comments/reviews provided for products by other users. The server system 1804 can determine and store content summaries for user-generated content portions (e.g., comments, review, ratings) that are associated with other types of content (e.g., secondary content), and can serve those to the client device 1802, similar to the discussion regarding GUI 1836.
Referring now to the GUI 1846 (
The client computing device 1808 can receive the search results and present them in the GUI 1846, as indicated by step H (1852). In this example, the search results include a first type of content 1854 and a second type of content 1856a-n. For example, the first type of content 1854 can be user-generated content, such as social media posts, and the second type of content 1856a-n can be secondary content, such as product content, productivity content, messaging content, and/or other types of content. Both the first and second types of content 1854 and 1856a-n can be determined by the server system 1804 based on content summaries determined by the server system 1804 for the content elements, such as based on user comments associated with the content elements.
For example, the GUI 1846 (as well as the GUI 1836) can allow for different types to be presented within a common interface, such search results that include social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content). These content types can be related to each other (e.g., through tags in user-generated content to other types of content elements) and presented in a common interface, such as the GUIs 1836 and 1846. For example, the GUIs 1836 and 1846 can allow users to interact with the related content in a variety of ways, such as through social interactions (e.g., share, save, comment) and other interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the GUIs 1836 and 1846. For example, instead of providing a GUI that presents a single type content (e.g., social media content, product content) and that links to other applications/GUIs that are launched to present other types of content, the GUIs 1836 and 1846 are programmed present related content of multiple different types without launching or otherwise relying on another application/GUI, such as in the search results depicted in the GUI 1846.
Referring now to the GUI 1864, the server system 1804 can also use the content summaries to provide analytics related to content elements on the client computing device 1800 (which can be the same as or different from the computing devices 1802 and/or 1808). For example, a user may be interested in tracking responses to content that the user has posted on one or more social media sites, such as whether users appear to have enthusiastic, excited, happy, or other reactions to each post. The server system 1804 can leverage the content summaries as a way to quickly and efficiently gauge broader user reactions to the social media posts. Similarly, other content providers, such as merchants and/or manufacturers, can use reaction analytics from content summaries through the server system 1804 as a way to gauge user engagement and/or interest in particular products. Other extensions of content summary-based analytics are also possible.
The client computing device 1810 can transmit a request for user response analytics to the server system 1804, as indicated by step I (1858). The request can include a unique identifier for an account (e.g., user account) associated with content distributed by the server system 1804 (e.g., user-generated content, secondary content). The server system 1804 can use the account identifier to identify content that is associated with the account (e.g., content that was created or otherwise distributed through the account) and summaries of user reactions to that content. The server system 1804 can generate analytics along one or more metrics, such as frequency, percentage, count, and/or other metrics. The response analytics can be provided to the client computing device 1810, as indicated by step J (1860), and presented in the GUI 1864, as indicated by step K (1862).
In the depicted example, the GUI 1864 includes an example graph 1866 that depicts user responses A-N (1868a-n) across a metric 1870 for content elements A-C (1872-1876). The content elements A-C (1872-1876) in this example are content elements associated with the account logged-in on the client computing device 1810, such as social media posts that the logged-in user has generated. The responses A-N (1868a-n) can include, for example, various types of elements that would be present in content summaries generated by the server system 1804, such as keywords, hashtags, other tags, emojis, images, links, and/or other content elements. The metric 1870 can be, for example, a frequency with which each of the responses A-N (1868a-n) occur for each of the content elements A-C (1872-1876). Other metrics are also possible, such as weighted frequencies, number of comments with an occurrence of each response, and/or other metrics. The responses A-N (1868a-n) may be ordered along the x-axis of the graph 1866, for example, from positive to negative so as to provide a visible spectrum of responses in the graph 1866.
Referring to
Referring to
The user can submit the comment 1900 through the GUI 304, which can cause the computing device 300 to transmit the comment 1900 to the computer system 240. The computer system 240 can receive, save, and process the comment 1900, which can include updating the top emoji response for the post 308. Referring to
In the depicted example, the comments 348a-i and 1900 are all presented, as indicated by the comment count 1904 and the selectable option 1906 to hide the comments. Such an expansion of all of the comments 348a-i and 1900 may be performed, for example, in response to the user selecting an option in the GUI 304 to view all comments and/or in response to the user adding a new comment (or otherwise interacting with the comments and/or the post 308). The comments 348a-i and 1900 may otherwise be collapsed initially in the presentation of the post 308, and instead the GUI 304 may present the summary section 342 and the current top emoji response 1902/808, which can reduce display space on the display 302 and in the GUI 304.
Although the summary section 342 in this example is described as being for emojis, other and additional types of content summaries can be surfaced in the summary section 342. For example, other content from user comments can be identified and provided in the summary section 342, such as keywords, hashtags, other tags (e.g., product tags, user tags, location tags), images, links, and/or other content derived from the user comments.
Referring to
Referring to
Like the social post 360, the product element 2006 includes controls 2010-2016 through which users can interact with the product 2003. For example, the controls include a selectable element 2010 (“+” button) through which a user can “save” the product element 2006 to her profile (see
The product element 2006 further includes product information, such as a merchant 2020 providing the product and a current price 2022 for the product. The merchant information 2020 can be selectable and can cause information about the merchant, such as user ratings for the merchant and other products offered by the merchant, to be presented (e.g., presented in an online store for the merchant either inside or outside of the social-retailer platform). The product element 2006 additionally includes a selectable shopping cart icon 2024 that a user can select to add the product 2003 that is depicted in the social post 360 to the virtual shopping cart indicated by the icon 305. For example, by selecting the product element 2006, the product 2003 can be added to the shopping cart from within the social feed presented in the GUI 304 (without using another application or otherwise exiting the GUI 304). A user can add the product element 2006 to the shopping cart and then continue scrolling vertically along the social feed or horizontally along the product feed (without having to reopen or refocus the computing device 300 on the GUI 304).
The product element 2006 further includes a review section with user reviews for the product 2003. The review section includes content summary section 2026 (similar to the content summary section 342), a first or top review 2028, and a selectable link to view all or more of the reviews 2030. Similar to the example described above in
The depicted example product review 2028 includes a user identifier 2034 (e.g., user name, image), a rating 2036 provided for the product 2003 by the user, and text 2036 for the review, which in this example includes emojis 2040. The product reviews can be from one or more user groups, such as users who are part of the social-retail platform and/or users of one or more online retail stores where the product 2003 is offered. However, the content summary section 2026 can allow for continuity across the different types of content—social media content and product content—which can help improve the GUI 304.
In the depicted example, further scrolling input 2039 to move the product stream further to the right is provided through the GUI 304. Referring to
In the depicted example, vertical scrolling input 2075 is received through the GUI 304 while the product element 2041 is being displayed and while the GUI 304 has progressed partway down the horizontal product stream (as indicated by icon 2042 corresponding to the product element 2041 being bold/highlighted). Referring to
Also like the social post 360, the social post 2076 identifies a user 2082 who performed an action 2084 that caused the post 2076 to be presented in the social feed. In this example, the action 2084 is the user 2082 saving to her profile the post 2076, which was originally created by the user 2086 indicated in the “via” element. The post 2076 also includes a user-generated image 2088 for the post 2076, which is different from the merchant-provided images in the product elements, such as the merchant-provided image 2044.
In contrast to the social post 360, which appears in the social feed based on the user 364 (to whom the logged-in user has a social connection) having created the post 360 (see
The current positions along both the social feed (vertical in this example) and the product feeds (horizontal in this example) can be maintained as scrolling along the other occurs. For example, as the user scrolls down the social feed, as depicted in
Referring to
Referring to
In response to submitting the emoji-based search query 2102, the client computing device 300 can transmit the search query 2102 to the computer system 240, which can receive and process the search query 2102. For example, the computer system 240 can access content summaries for social media posts, product elements, and other content, and can use the content summaries to identify search results for the query. The search results can include a variety of different content types, such as social media posts, product elements, hashtags, users on one or more social networks, and/or other content types. For example, the computer system 240 can identify social media posts that have the combination of emojis in the search query 2102 in the content summary (content summaries can include more than one content element). In another example, the computer system 240 can identify product elements that have content summary review with the combination of emojis in the search query 2102. In a further example, the computer system 240 can identify users in the results based on the user having created social media posts and/or tagged product elements with content summaries that include the emojis in the search query 2102. In another example, the computer system 240 can identify hashtags in the results based on hashtags being used in the descriptions of social media posts and/or products that have content summaries including the emojis in the search query 2102. Additionally and/or alternatively, the computer system 240 can identify results using all content and not just the content summaries.
Referring to
Referring to
For example, the GUI 2232 can present and seamlessly integrate social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content) using interfaces and controls that allow users to interact with each of the content items within the GUI 2232 and its common content stream. The GUI 2232 can allow users to interact with content in a variety of ways, such as through social interactions (e.g., share, save, comment) and other types of interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the GUI 2232 and its content stream to use other, specifically designed applications or interfaces. For example, instead of providing a GUI that presents a single type content (e.g., social media content, product content) and that links to other applications/GUIs that are launched to present other types of content, the GUI 2232 is programmed present multiple types of content without launching or otherwise relying on another application/GUI.
The computing devices 2202 and 2220 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing devices 2202 and 2220 can communicate with the server system 2204 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain, associate, and present multiple different types of content that in the GUIs 2210 and 2232. The server system 2204 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features for multiple different types of content, such as social media, messaging, e-commerce, and/or other types of content. For example, the server system 2204 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 2204 may directly provide both social networking features and product-related features. Other configurations of the server system 2204 among one or more other computer systems are also possible.
As indicated by step A (2208), the client computing device 2202 presents the GUI 2210, which can include a variety of features through which a user of the client computing device 2202 can select a first type of content and associate to it second types of content. For example, the GUI 2210 can include features to select one or more files that are local and/or remotely accessible to the computing device 2202, such as selecting photos that are stored locally and/or remotely in association with a account for a user who is logged into the device 2202. In another example, the GUI 2210 can include features through which a user can enter text and/or otherwise annotate files that have been selected, such as text boxes, text input fields, speech-to-text interfaces, and/or other features to permit the user to provide content. Such features can allow for a user to enter/designate user-generated content that can be uploaded to the server system 2204 for distribution to other computing devices. For example, the GUI 2210 can include control and interface features through which a user can create a social media post with media content (e.g., images, videos, graphics), text (e.g., descriptions of the media content, hashtags, emojis, tags), and/or other content elements, which can be uploaded to the server system 2204 by the client computing device 2202. Examples of such GUI features to designate user-generated content are described below with regard to
The GUI 2210 can also include features through which the user of the device 2202 can associate secondary content with the user-generated content, such as associating merchant-provided product content, news content, messaging content, and/or other content. For example, the GUI 2210 can include one or more features through which the user can tag other types of content in the user-generated content, such as tagging products that are depicted, described, identified, or otherwise affiliated with the user-generated content. For instance, the GUI 2210 can include selectable features through which the user can identify and associate products elements (example other type of content) that are depicted in user-generated media items, such as selecting merchant-provided product information and purchasing interfaces through which additional information about the products can be viewed and through which the products can be purchased. Examples of such GUI features to tag secondary content in user-generated content are described below with regard to
As indicated by step B (2212), user input is received to designate both user-generated content and associated secondary content. Example results of the user input are depicted in the GUI 2210, which includes a user-generated media element 2214 (e.g., image, video, graphic, audio file, text) as well as multiple secondary content tags A-N (2216a-n). For example, the user-generated media element 2214 can be a photo depicting a new outfit and the secondary content tags A-N (2216a-n) can be product tags applied to the individual clothing items that are depicted in the photo as being part of the outfit. Product tags can be, for example, an identifier for a product that is offered for sale on one or more merchant sites. Product tags may include some details about the identified product, such as a product image (from among a group of product images) selected by the user as best representing the product in the user-generated media element 2214, but may not be a full product element that would be presented in the GUI 2234, which may include manufacturer-provided product information, user-provided product reviews, pricing and purchase information, and features to order the product.
Other embodiments of the user-generated media 2214 and the secondary content tags A-N (2216a-n) are also possible. For example, the user-generated media element 2214 can be a collection of photos and videos depicting a trip and the secondary content tags A-N (2216a-n) can be tags for stores, restaurants, hotels, and other destinations that are depicted in the photos. In another example, the user-generated media element 2214 can a textual narrative, such as a call to action in view of a natural disaster, and the secondary content tags A-N (2216a-n) can tags for donation pages, news stories, and/or other items/elements through which users can answer/learn about the call to action. Other examples are also possible.
The GUI 2210 also includes a post button 2218 that a user can select to cause the computing device 2202 to upload the user-generated content 2214 and the tagged secondary content 2216a-n to the server system 2204 for distribution to other computing devices. For example, the server system 2204 can distribute content that is uploaded by the client computing device 2202 to other computing devices that are associated with other users who are socially connected (e.g., following, friends) to the user who is logged into the computing device 2202. In response to selecting the post button 2218, the computing device 2202 can provide the content (2214, 2216a-n) to the server system 2204, as indicated by step C (2220). The server system 2204 can receive and store the content in a data repository 2206 (e.g., cloud storage system) for subsequent distribution to other computing devices, as indicated by step D (2218).
As indicated by step E (2222), the client computing device 2220 (which can be the same as or different from the computing device 2202) can request content from the server system 2204. For example, the client computing device 2220 can poll the server system 2204 for new content to present in the content stream (e.g., social feed) in the GUI 2232 on a periodic basis (e.g., every second, every 220 seconds, every minute) and/or in response to various events occurring on the client computing device 2220 (e.g., the application presenting the GUI 2232 loading, the GUI 2232 receiving focus on the display of the device 2220). The server system 2204 can retrieve, from the content repository 2206, and transmit content for the client computing device 2220, as indicated by step F (2224). In this example, the response includes primary content 2226 (e.g., user-generated content, such as a social media post) and secondary content 2230a-n (e.g., product elements tagged in the social media post, new elements tagged in the social media post, productivity elements tagged in the social media post, and/or combinations thereof). The primary content 2226 can be the same as or similar to the user-generated media 2214 that was designated in the GUI 2210.
The secondary content 2230a-n can be different from the secondary content tags 2216a-n, though. For instance, the secondary content tags 2216a-n can, at their most basic level, simply identify the secondary content elements 2230a-n, whereas the secondary content elements 2230a-n can include additional content (e.g., product descriptions, product pricing, product images, user reviews, merchant information) and additional features (e.g., interactive interface features to purchase the identified product) that are not present in the secondary content tags 2216a-n. For example, in the secondary content tags 2216a-n can be unique identifiers for the secondary content elements 2230a-n (as hosted by the server system 2204 and/or one or more affiliated computer systems), which the server system 2204 can receive and use to retrieve the secondary content elements 2230a-n.
The client computing device 2220 can present the primary content element 2226 with the secondary content elements 2230a-n in the same GUI 2232— meaning that the GUI 2232 can allow for a user of the device 2220 to seamlessly interact with both the primary and secondary content types without needing to navigate away from or launch a separate application on the device 2220. A variety of features can be used to present the primary and secondary content elements 2226, 2230a-n together in the GUI 2232. For example, the GUI 2232 can be programmed to present bi-directional content streams that are oriented along a first dimension 2244 of the device 2220 and a substantially perpendicular second dimension 2246 of the device 2220, respectively. For example, a first type of content can be presented in the first dimension (2244) content stream and a second type of content can be presented in the second, perpendicular content stream 2242 (along the second dimension 2246), which can improve the GUI 2232 so that users are able to navigate effectively between content types without having to navigate to or launch other applications/GUIs.
In the depicted example, the vertical content stream along the first dimension 2244 can be “infinite”—meaning that client computing device 2220 is programmed to obtain additional content from the server system 2204 when scrolling along the vertical stream approaches a current end of the content that has been downloaded onto the client computing device 2220. The vertical content stream, in this example, presents user-generated content items, such as social media content items, and the perpendicular content stream 2242 presents secondary content items that are associated with the user-generated content items. For example, the vertical content stream includes a single user-generated content elements that includes user-generated media 2234, a user-generated description 2236, user-designated tags 2238, and user comments 2240. For instance, the vertical content stream can be a social media content stream for a user who is logged into the computing device 2220, and the user-generated content element 2234 (e.g., social media posts, shares, saves, comments) can be user-generated social media content items for other users in the user's social network (e.g., friends, following).
In the depicted example, the user-generated content element 2234 is depicted as being displayed by the computing device 2220. If the user were to scroll down or up in the GUI 2232, then other user-generated content elements in the content stream would be displayed in the GUI 2232. Each of the user-generated content elements in the content stream can include associated secondary content that is accessible along a perpendicular stream that is specific to each user-generated content element, such as the perpendicular content stream 2242 that is specific to the user generated content element 2234. For example, the user-generated content element 2234 can be a social media post with product tags 2238 for products depicted in an example image 2234, and the secondary content elements 2244a-n can be product elements for each of the products tagged in the image 2234. The secondary content elements 2244a-n can be, for example, different from the user-generated content elements 2234 in terms of what the elements include and/or in terms of the features associated with the elements. For instance, in instances where the element 2234 is a social media content element, a user may be presented with features in the GUI 2232 to interact with the elements, like commenting, liking, sharing, saving, or otherwise reacting to the elements 2234. In contrast, in instances where the secondary content elements 2244a-n are product elements, a user may be presented with different information (e.g., product information as opposed to user-generated content, product ratings/reviews instead of user comments) and may be presented with different features (e.g., product purchase features instead of social interaction features).
The example secondary content elements 2244a-n can each, for instance, include an image (e.g., image depicting a product), text (e.g., text describing a product), and selectable features (e.g., selectable button to purchase or add the product to a virtual shopping cart, selectable button to save the product to the user's profile, compose and transmit message). The secondary content elements 2244a-n can include additional and/or alternate elements, such as multiple images, associated other products, associated other user-generated content (other user-generated content items), and/or other features.
The secondary content elements 2244a-n in the second content stream 2242 can be displayed in the GUI 2232 in response to scrolling input along the second dimension 2246 while the user-generated content element 2234 is being displayed. For example, if the user scrolls horizontally (related to the user-generated content element 2234) in the GUI 2232 can cause the secondary content element 2244a to be displayed in the GUI 2232. The horizontal scrolling along the second dimension 2246 can cause the secondary content element 2244a to replace, at least partially, the user-generated content element 2234 (e.g., replace through horizontal scrolling animation of the content elements 2234 and 2244a that coincides with the scrolling input). The other secondary content elements 2244b-n can also be displayed in the GUI 2232 based on further horizontal scrolling along the second dimension 2246. Horizontal scrolling can be either way (left or right) along the second dimension 2246, to allow the user to navigate forward and backward along the content stream 2242, which may be limited in length (contain a finite number of element) or which may be infinite (as described above with regard to the vertical stream.
The user of the device 2202 can interact with the secondary content elements 2244a-n when they are displayed in the GUI 2232, such as selecting the selectable features included in the secondary elements 2244a-n. Such interactions can take place without transitioning outside of the GUI 2232 or causing the GUI 2232 (or the vertical content stream) to lose focus. For instance, instead of providing links that would cause another application to be launched, the selectable features in the secondary content 2244a-n are provided within the vertical content stream by horizontally scrolling through the perpendicular content stream 2242. For example, the user-generated content element 2234 can be social media content and the secondary content elements 2244a-n can be product content, which can be added to a virtual shopping and/or purchased from within the GUI 2232 by selecting the selectable features included in the secondary content elements 2244a-n.
Referring to
The GUI 501 further includes a header that includes a title 2300 (“Camera Roll”) indicating the current state of the GUI 501, as well as navigation features 2302 and 2304 to return to a previous screen and to move to a next screen, respectively. For example, the GUI 501 can be launched by selecting the create button 358c at the footer 356 of the various GUIs described above. Selecting the back arrow 2302 can cause the GUI 501 to navigate back to the screen that was presented when the button 358c was selected. Selecting the next feature 2304 can proceed with creating the post using the currently selected photo, which in this example is the photo 2308a that is depicted in the selection area 2306.
In the depicted example, the user provides selection input 2310 through the GUI 501 by selecting the photo 2308d. Referring to
Referring now to
The input feature 2318a-c are selectable buttons for suggested hashtags to include with the post. The hashtags can be suggested by the client device 300 and/or by the server system 240, such as based on hashtags that are currently popular or trending across one or more user populations (e.g., global user population, regional user population within which the user is located, social network for the user). Other mechanisms for selecting the hashtags 2318a-c to suggest to the user are also possible, such as analyzing hashtags that the user previously used in social media posts across one or more social networks, optically analyzing the photo 2306 to identify one or more relevant topics that are depicted in the photo 2306, and/or other factors. The suggested hashtags 2318a-c can improve the GUI 501 for the user by allowing the user to select a relevant hashtag in a single action (e.g., select one of the hashtag buttons 2318a-c) instead of having to type out the hashtag, which can be cumbersome and can involve more actions on, for example, the touchscreen of a mobile computing device. Only a portion of the suggested hashtag buttons 2318a-c are depicted—additional hashtag suggestions can be accessed through horizontally scrolling across an area in the GUI 501 where the hashtag buttons 2318a-c are depicted. By having additional hashtags that are accessible via horizontal scrolling, the GUI 501 can further be improved for a user by allowing the user to access a large cache of pre-canned hashtags with a minimal amount of space on the display 302 being occupied (e.g., only a single row of hashtags 2318a-c are presented).
The input features 2322a-d are similar to the hashtag features 2318a-c, but that the features 2322a-d are for tagging one or more locations that are relevant to the post. In the depicted example, a first location 2322a corresponds to the current location of the device 300 and/or its user, which can trigger a geolocation procedure on the device 300 to be performed (e.g., GPS-based location determination, Wi-Fi or other terrestrial beacon-base location determination). The other example locations 2322b-d that are depicted can be suggested locations that are determined by the client computing device 300 and/or the remote computer system 240. For example, the locations 2322b-d can be determined and suggested based on locations where the user and/or the device 300 were previously located (e.g., based on geolocation tracking on the computing device 300, based on location check-ins through one or more social media platforms, based on calendar/schedule information), where the user is scheduled to be located in the future (e.g., based on calendar/schedule information), and/or other relevant location factors. Such location information can be accessed with user permission provided on the computing device 300. Like the hashtag buttons 2318a-c, the location buttons 2322a-d can improve the GUI 501 for a user by allowing a user to designate a relevant location in a single action (button selection) as opposed to having to type or otherwise identify a geographic location on the device 300. Additionally, the location buttons 2322a-d can also be horizontally scrollable, which can further improve the GUI 501 by permitting a larger selection of locations to be suggested while minimizing the area on the display 302 that is occupied by the location buttons 2322a-d (only a single row occupied).
In the depicted example, a user provides input 2316 through the textbox 2314, selecting input 2320 with regard to the suggested hashtag 2318a, and selecting input 2324 with regard to the suggested location tag 2322c. Referring to
With the contents of the post created, selecting input 2332 is received with regard to the next button 2304. Referring to
In the depicted example, selecting input 2342 is received with regard to the button 2336a to tag a product in the post. Referring to
In the depicted example, the in-network tab 2350 is selected. Example in-network products 2352a-d matching the search query 2346 are presented in the GUI 501 with product images and corresponding product descriptions 2354a-d. If the user were to find the correct product within these product options 2352a-d, the user could simply select the correct product and a product tag for that product would be applied to the post. To return to previous interface depicted in
In the depicted example, the user provides selecting input 2356 for the from web tab 2351. Referring to
In the depicted example, selecting user input 2372 is received for the select button 2366, indicating that the product 2358b that is presented in the GUI 501 is the correct product from the user-generated image 2306 and should be tagged in association with the user post. Referring to
As depicted in the example, selecting user input 2376 related to the post button 2331 is received through the GUI 2350. In response to the user selecting the post button 2331, the computing device 300 uploads the post to the server system 240, which can store the post in association with an account for the user who is logged-in to the computing device 300 (user who is creating the post). Storage of the post can include, for example, storing three parts—(22) the user-generated content in the post (photo 2306, description 2326, hashtags 2327a and 2328, user tag 2327b, and location tag 2330), (2) a product element for the tagged product (if the server system 240 has not already stored the product element), and (3) the product tag linking the post to the product element. The first data element (user-generated content) that is stored by the computing device 240 can be added to the user-generated content repository 248 using the post information that is received from the computing device 300.
The second data element (product element) can be first cross-referenced against previously stored product elements (such as product elements in the other content repository 250) to determine whether it already exists on the system and/or needs updating. If the product element is not present on the system or is out of date (needs updating), then the server system 240 can proceed to retrieve current information for the tagged product that can be stored as a product element to be served with the user-generated content. Such retrieval can involve, for example, the computer system 240 requesting information (e.g., product images, product descriptions, merchant information, price) for the tagged product from one or more other computer systems, such as the affiliate computer system 260 and/or other non-affiliated computer systems. The product information can be obtained by the computer system 240 so that it can readily and efficiently be served to client computing devices without needing to contact other computer systems before serving the requested content to the client computing devices.
The third data element (product tag) can be an internal tag within the server system 240 (e.g., a locally addressed identifier within one or more data repositories used by the server system 240) and/or a universal tag (e.g., URL for the product that is maintained by the server system 240). For example, the product tag that is stored by the server system 240 to associate the user-generated post with the tagged product can include an identifier for the post and another identifier that links the post to the product. This other identifier can, for example, be an identifier for the product element stored in the other content repository 250, which may be an internal/local identifier and/or a universal identifier. In another example, this other identifier can be a unique identifier for the product (not specifically the product element) that the server system 240 may cross-reference in one or more tables to the product element stored in the other content repository 250.
Referring to
Referring to
In this example, the server system 240 can store the transmitted post from the computing device 300 in a similar manner to the storage described above, but in this instance the post can be stored with a flag to request other user assistance in tagging the product instead of storing a product tag and corresponding product element in association with the post. Referring to
Referring to
Referring to
In the depicted example, the user selects (2520) the proposed option 2510 and then selects (2522) the schedule post feature 2500. This user input 2520-2522 causes the client computing device 300 to transmit the post with the delayed/future post information to the server system 240, which can schedule the post to go live (change from being private to public) at the user-designated time. For instance, as indicated by the arrow 2524, in the depicted example the server system 240 will delay the post from going live until Thursday at 7:00 pm (option 2510), at which point the post 2378 will be presented in the GUI 304 (as depicted in
Referring to
The computing devices 2602 and 2650 can allow users to interact with content in a variety of ways, such as through social interactions (e.g., share, save, comment) and other types of interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the GUIs to use other, specifically designed applications or interfaces. For example, instead of providing a GUI that presents a single type content (e.g., social media content and/or product-shopping content) and that links to/launches other applications/GUIs that for independently presenting other types of content, the respective GUI presented on each of the computing devices 2602 and 2650 can be programmed to contemporaneously present multiple types of content without necessarily linking to/launching another application/GUI for independently presenting one of the multiple types of content.
The computing devices 2602 and 2650 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing devices 2602 and 2650 can communicate with a server system 2604 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain multiple different types of content that are presented in the GUIs. The server system 2604 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features for multiple different types of content, such as social media, messaging, e-commerce, and/or other types of content. For example, the server system 2604 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 2604 may directly provide both social networking features and product-related features. Other configurations of the server system 2604 among one or more other computer systems are also possible.
As indicated by step A (2608), the server system 2604 can receive content, such as user-generated content and other types of content (e.g., merchant-provided product content, news content, messaging content). For example, the server system 2604 can receive social media content (e.g., posts, comments, shared content) from other client computing devices and can receive product-related content (e.g., product information, product images, product reviews) from merchant computer systems. The server system 2604 can store the received user-generated content in a data repository 2606 (e.g., cloud storage system), from which it can be served by the server system 2604A to the client computing device 2602. The server system 2604 can store other types of content as well.
As indicated by step B (2610), the server system 2604 can also receive save requests from other client computing devices. The save requests can relate to user-generated content received in step A (2608) and/or other types of content (e.g., retail content, productivity content, product content, news content), and can indicate a request from users to “save” particular content elements to user profiles and/or accounts (e.g., social networking profiles, user accounts on the server system 2604). Such save requests can cause the server system 2604 to add entries 2612 to the repository 2606 associating user accounts/profiles with particular content items as saved content. Such data entries 2612 can affect the way that the server system 2604 selects content for distribution to and presentation in GUIs on user devices. For example, a save request can cause content to be persistently saved in association with a user's account or profile on the server system 2604—meaning that it can be viewable in a persistent location over time (as opposed to being viewable within a continually changing interface, such as a content stream), such as being presented in an account/profile page for a user that is viewable by both the user and other users. Such persistent locations can additionally group different types of content elements that have been saved by a user, such as grouping social media content, product content, productivity content, news content, and/or other types of content that have been saved by a user. In another example, a save request by a user for a particular content item can cause the server system 2604 to distribute that item to other users (e.g., friends of the user, followers of the user), such as in content streams that are presented for the other users. Such saved content can be distributed in content streams with, for example, additional information annotating the saved content, such as with information (e.g., text, images, graphics, animations, icons) identifying that the identity of the user (e.g., profile photo, username, first and/or last name), the action taken by the user (e.g., saved the content element), information identifying the original creator/distributor of the content item (e.g., identifying the user/entity who originally created/distributed the content item that was saved), and/or other information.
The server system 2604 can provide content to the client computing device 2602, as indicated by step C (2614), which can be presented by the computing device 2602 in the example the content stream 2618, as indicated by step D (2616). The content can be selected by the server system 2604 for the user who is associated with the client computing device 2602 (e.g., user who is logged-in), which in this example is user A. For example, the server system 2604 can select content that has been generated (e.g., social media post) or otherwise interacted with (e.g., shared, saved, commented on, liked, viewed) by other users who are within a user's social network (e.g., friends, other users who are being followed, followers). The content can be of multiple different types and can be presented in a common GUI (content stream 2618). For instance, in the depicted example the content stream includes a user-generated content element 2620a (e.g., social media post, user-generated image/video, user-generated text) and a secondary content element 2620b (e.g., product information, news article, productivity project). The user-generated content element 2620a can include content (e.g., images, videos, text) that is generated by a user, whereas the secondary content element 2620b can include non-user generated content (e.g., merchant-generated content, news organization generated) that is associated with one or more user-generated content elements (e.g., tagged-in user-generated content, linked-to by user-generated content, shared as part of user-generated content element). For example, the secondary content element 2620b can be a product element that identifies a product that is tagged in a social media post (example user-generated content element) that includes a photo of a user wearing/using the product. In another example, the secondary content element 2620b can be a productivity element that identifies a coding project that is tagged in a social media post (example user-generated content) describing the project and opportunities to collaborate on the project. Other examples are also possible.
In the depicted example, the user-generated content element 2620a includes information 2622a identifying an action performed by another user that caused the element 2620a to be presented in the content stream 2618 (e.g., post, share, save, like, comment) and the user-generated content 2624a (e.g., image, video, text, hashtag). In this example, the content element 2620a is a post by user B with user-generated content 2624a. The user-generated content element 2620a is also presented with a selectable save feature 2626a through which the user of the device 2602 can save the content element 2624a in association with her profile/user account on the server system 2604. The user-generated content element 2620a also includes a count 2628a that indicates how many other users, globally (e.g., all users of the server system 2604) and/or locally (e.g., users within user A's social network, users within user B's social network, users within a combination of user A and B's social network), have saved the content element 2620a. The count 2628a can provide an indication of how many other users have been interested in persistently associating the content element 2620a with her account/user profile. Saving (persistently associating) may be considered to be a more significant GUI interaction with a content element and to more accurately represent a significant interest in a content element than, for example, merely “liking” or providing another reaction to a content element.
The example secondary content element 2620b includes similar features as the user-generated content element 2620a, including information 2622b identifying an action performed by another user that caused the element 2620b to be presented in the content stream 2618 (e.g., post, share, save, like, comment) and the secondary content 2624b (e.g., product information, productivity information, messaging information, news information). In this example, another user C “shared” the secondary content element 2620b, such as through a GUI presented on a client device through the server system 2604 (e.g., GUI similar to the content stream 2618) and/or through GUIs presented on third-party sites (e.g., selectable feature to share secondary content element via the server system 2604). The secondary content element 2620b is also presented with a selectable save feature 2626b through which the user of the device 2602 can save the secondary content element 2624b in association with her profile/user account on the server system 2604 (similar to saving the user-generated content element 2620a). The secondary content element 2620b also includes a count 2628b that indicates how many other users, globally (e.g., all users of the server system 2604, all users on another server system hosting the secondary content element 2620b) and/or locally (e.g., users within user A's social network, users within user B's social network, users within a combination of user A and B's social network), have saved the content element 2620b.
As discussed above, the content stream 2618 can include different types of content elements. These different types of content elements (relevant to user A of the computing device 2602) can be presented in and organized in any of a variety of ways in the content stream 2618. For instance, in the depicted example the user-generated content element 2620a and the secondary content element 2620b are depicted as being presented in sequence along a dimension of the content stream 2618, which in this example is a vertical dimension. Other presentations are also possible, such as presenting bi-directional content streams are oriented along a first dimension of the device 2602 and a substantially perpendicular second dimension of the device 2602. For example, content elements that are selected for presentation to the user A (e.g., content elements 2620a-b) can be presented along the vertical dimension of the content stream 2618 and other content elements that are related to the selected content elements (e.g., other content elements that are tagged in the content elements 2620a-b) can be presented in second, perpendicular content streams that are accessible along a horizontal dimension. For instance, if the user-generated content element 2620a tags secondary content elements, those secondary content elements can be accessible in the content stream 2618 by providing horizontally scrolling input (e.g., swipe left/right) provided with regard to the user generated content 2620a.
As indicated by step E (2630), in the depicted example the user of the computing device 2602 provides user input (e.g., touchscreen input, voice command, pointer selection, gesture-based input) selecting the save feature 2626a for the user-generated content element 2620a. In response to receiving the user input, the computing device 2602 transmits a save request regarding the content element 2620a to the server system 2604, as indicated by step F (2632). The server system 2604 can add a data entry 2612 to the repository 2606 in response to receiving the save request that associates the user A with the user-generated content element 2620a. Such save requests and data entries 2612 can include additional attributes, such as whether the save is public or private. A public save, for example, can create an association between the user A and the content element 2620a that is “publicly” viewable—meaning that it is viewable by other users who are socially-connected to the user A (e.g., friends of user A, followers of user A, being followed by user A) and/or to the user B who generated the content (e.g., friends of user B, followers of user B, being followed by user B), all users of the server system 2604, and/or other subsets of the user base on the server system 2604. A private save, for example, can create an association between the user A and the content element 2620a that is “privately” viewable—meaning that it is only viewable to the user A. Content can be saved by default as public or private, and can be changed through user designations on the server system 2604. Other attributes for the data entries 2612 can additionally and/or alternatively be used.
As discussed above, such a data entry 2612 can cause the server system 2604 to persistently associate the content element 2620a with an account/profile for the user A, which may or may not be viewable to users other than user A depending on attributes for the data entry 2612 (e.g., private or public save attributes). As indicated by step G (2634), the server system 2604 can provide profile information for user A to the computing device 2602 that is associated with user A (e.g., user A can view her profile on with the system 2604). Such profile information can include saved content 2636, which can be received by the computing device 2602 and presented in the profile page 2640 (example GUI), as indicated by step H (2638). For example, the profile page 2640 for the user A in this example includes a “saved” portion of the profile that includes the user-generated content element 2620a that was saved in the content stream 2618 (via user input received through step E (2630)). In this example, the content element 2620a includes information 2644 attributing the content element 2620a to the user B (who created the content element in this example) and the user-generated content 2624a. The content element 2620a can be presented to the user A in her profile page 2640 regardless of whether the content element 2620a was saved publicly or privately. However, other users may or may not be able to view the content element 2620a in the profile page 2640 for the user A depending on whether the content element 2620a was saved publicly or privately (or some other attribute designation) by the user A.
As also discussed above, the data entry 2612 for the saved content element 2620a can additionally cause the server system 2604 to distribute the saved content element 2620a to other users, such as the user N who is associated with the computing device 2650. For example, the computing device 2650 can present a content stream 2656 for user N that is similar to the content stream 2616 for user A. In presenting the content stream 2656, the computing device 2650 can request content from the server system 2604 that is relevant to user N. In response to such a request, the server system 2604 can select and distribute content to the computing device 2650, as indicated by step I (2652). In response to receiving the content, the computing device 2650 can present the content in a GUI (the content stream 2656), as indicated by step J (2654). In the depicted example, one of the content items that has been selected and distributed to the computing device 2650 by the server system 2604 is the content element 2620a that was saved by the user A. For example, the server system 2604 can determine that the user N can be socially-connected to the user A (e.g., friend of user A, follower of user A, being followed by user A) and can select content elements that the user A has created or otherwise interacted with (e.g., saved, liked, commented on, shared, viewed, reacted to) for distribution in the content stream 2656 for the user N. The content element 2620a is presented in the content stream 2656 with information 2660 attributing the content element 2620a to the user B (example original creator of the content element 2620a), information 2662 identifying the socially-connected user and the action that user performed with regard to the content element 2620a (e.g., user B saved the content element 2620a) to cause it to appear in the content stream 2656, and the user generated content 2624a.
The content element 2620a is additionally presented in the content stream 2656 with a selectable save feature 2664 (similar to the save features 2626a-b) and an updated count 2666 (similar to the counts 2628a-b) indicating a current number of times that for the content element 2620a has been saved. For example, the user N can select the save feature 2664 to also save the content element 2620a, which can cause the content element 2620a to be persistently associated with the account/user profile for user N and/or to be distributed to other users who are socially-connected to the user N (similar to the association in user A's profile 2640 and distribution to the computing device 2650 from user A saving the content element 2620a described above). If user N were to save the content element 2620a through the save feature 2664, the user B (original creator) can similarly be attributed to the content element 2620a in association with the user N saving the content element 2620a (e.g., information 2644, information 2660) even though the content element 2620a directly appeared in the content stream 2656 based on user A's actions. Such attribution through graphical elements presented in the GUIs on the computing devices 2602 and 2650 can allow original content creators to continue to be identified as having created particular content items as their content is distributed to users inside and outside of their social network.
Referring to
The social post 360 can be saved locally on the computing device 300 and/or remotely by the computer system 240. For example, in response to receiving the selection 2700 of the save icon 378, the computing device 300 can transmit a request to the computer system 240 to save the social post 360 in association with the logged-in user and/or the computing device 300. In another example, the computing device 300 can maintain local data social posts that are saved in association with the user account. In such an example, saving the social post 360 can include the computing device 300 appending information for the post 360 (e.g., unique identifier for the post) to the local save post/product data. Confirmation that the post 360 has been successfully added to logged-in user's profile can be determined by the absence of an error in the adding/appending process and/or through polling the local data to verify the presence of the post 360.
Referring to
Referring to
Like the social post 360, the product element 2718 includes controls 2722-2728 through which users can interact with the product 2714. For example, the controls include a selectable element 2722 (“+” button, example of the selectable save features 2626a-b and 2664) through which a user can “save” the product element 2718 to her profile (see
The product element 2718 further includes product information, such as a merchant 2730 providing the product and a current price 2732 for the product. The merchant information 2730 can be selectable and can cause information about the merchant, such as user ratings for the merchant and other products offered by the merchant, to be presented (e.g., presented in an online store for the merchant either inside or outside of the social-retailer platform). The product element 2718 additionally includes a selectable shopping cart icon 2734 that a user can select to add the product 2714 that is depicted in the social post 360 to the virtual shopping cart indicated by the icon 305. For example, by selecting the shopping cart icon 2734, the product 2714 can be added to the shopping cart from within the social feed presented in the GUI 304 (without using another application or otherwise exiting the GUI 304). A user can, for instance, add the product element 2718 to the shopping cart and then continue scrolling vertically along the social feed or horizontally along the product feed (without having to reopen or refocus the computing device 300 on the GUI 304).
The product element 2718 further includes a review section with user reviews for the product 2714. The review section includes a “top review” portion 2736, which in this example is a review by user 2738 who is a member of the social-retail platform (as indicated by the icon 2740). The review section further includes a selectable icon 2742 to indicate whether this review is helpful/useful, a rating 2744 that the user 2738 gave the product, and a textual review 2746 of the product. The review section also includes a selectable element 2748 to expand/view all reviews (not just the top review 2736). The product reviews can be from one or more user groups, such as users who are part of the social-retail platform and/or users of one or more online retail stores where the product 2714 is offered.
In the depicted example, the user provides selecting input 2750 to the save icon 2722 that is presented with the product element 2718 and within the social feed of the GUI 304. Referring to
Similar to saving the social post 360 (described above with regard to
Similar to the social post 360, the product element 2718 may be saved by default as “private” (740) or “public” (742) depending on the user's settings (e.g., user may designate that saved products default as either public or private) and/or settings on the computer system 240 (e.g., default saved products as private or public). Additionally or alternatively, the user may be presented with an option to save either publicly or privately when selecting the save icon 2722. If the product element 2718 is saved publicly, then the product element 2718 can additionally appear in the home feeds (e.g., content element 2620a in the content stream 2656) and activity feeds (e.g., activity feed element 606d) of other users who are socially connected (e.g., following, friends) with the logged-in user (see
Similar to the description above with regard to saving the social post 360, the product 2714 can be saved locally on the computing device 300 and/or remotely by the computer system 240. For example, in response to receiving the selection 2750 of the save icon 2722, the computing device 300 can transmit a request to the computer system 240 to save the product element 2718 in association with the logged-in user and/or the computing device 300.
Referring now to
Example user input 2760 selecting the mine button 730 is received through the GUI 701, which causes the GUI 701 to present only posts that were created by the user 708. Referring to
Example user input 2764 selecting the saved button 732 is received through the GUI 701, which causes the GUI 701 to present only posts that were saved by the user 708. Referring to
Example user input 2768 selecting the products tab 724 is received through the GUI 701, which causes the GUI 701 to present the product elements that the logged-in user 708 has saved. Referring to
Example user input 2776 selecting the private button 742 is received through the GUI 701, which causes only privately saved product elements to be presented in the product area 736. Referring to
Although not depicted, the saved product elements in the product area 736 can include additional information in association with saved product elements. For example, other graphical features can additionally and/or alternatively be presented in the product area 736, such as current save counts for each of the products, information identifying users and/or social posts that have tagged product elements, information identifying actions that the logged-in user has taken with regard to the product elements (e.g., date when the logged-in user saved the product element, comments, reviews, ratings, shares, reactions, product purchases), one or more top reactions to the product elements (e.g., one or more top emoji responses in the comments for the product elements), information identifying changes in status for product elements (e.g., information identifying current discounts and/or other promotions for the products, information identifying limited remaining quantities of the products), and/or other relevant information. One or more of these information items can be selected and presented with the product elements in the product area 736, and can allow users to receive updates on saved product elements without having to select each product individually. Each of the product elements identified in the product area 736 are also selectable and can present the product in an interface similar to the GUI 304 and/or in other interfaces, such as the example interface depicted in
The graphical elements and features (e.g., tabs 722-724, buttons 728-732, buttons 738-742, display areas 726 and 736) presented in the profile GUI 701 allow for users to view different types of saved content elements—saved social posts and product elements in the depicted examples—in combination with each other within a single interface. Additionally, these features allow for users to readily navigate and locate relevant saved items, such as through narrowing the set of saved items that are depicted in the GUI to a smaller group based on selection of the tabs 722-724 and the buttons 728-732 and 738-742. Other features for organizing and locating saved content elements in the GUI 701 are also possible, such as search fields, automatic categorization (see
Information about saved posts and product elements (and other content elements) can additionally be output in the activity feed GUI 601 described above with regard to
Similarly, information about saved posts and product elements (and other content elements) can additionally be output in the activity feeds of other users. For example, the activity feed for a post creator can present information identifying other users who have saved that post and/or saved product elements that are tagged in the post. In another example, the activity feed for a first user who is socially-connected to a second user (e.g., friends, followers) can present information identifying when the second user has saved posts and/or product elements.
Referring to
The product interface 2801 includes a title 2800 of the product 2820, the virtual shopping cart icon 305, and a back button 2802 to navigate back to the location from which the product interface 2801 was launched. The product interface 2801 includes an image 2803 and a visual indication 2804 of three other images of the product 2820 are accessible via horizontal scrolling in the interface 2801. The product interface 2801 also includes selectable images 2806 of different colors/styles for the product 2820 that can be ordered/purchased. Selecting one of the selectable images 2806 can, in some implementations, cause the interface 2801 to replace the image 2803 with another image of the product 2820 with the selected colors/styles. The product interface 2801 also includes product information, such as a name 2808 for the product 2820, an aggregate user rating 2810, a merchant 2812, a number of remaining products 2814 available for order with the merchant 2812, and pricing information 2816a-c.
The product interface 2801 further includes controls 2818a-b to purchase/order the product 2820. For example, the control 2818a is a selectable button through which the user of the computing device 300 can order the product 2820 through a single action (e.g., selecting the control 2818a). The control 2818b is a selectable button through which the user of the computing device 300 can place the product 2820 in the virtual shopping cart 305 associated with the logged-in user. The virtual shopping cart 305 can be persistent across the interfaces 304, 401, 601, 701, and 2748, and can allow a user to add products to the cart 305 from any or all of these interfaces. The controls 2818a-b can be part of a footer that is persistently displayed at the bottom of the interface 2801.
In the depicted example, vertical scrolling input 2822 is provided in the interface 2801 to scroll down to view additional information and features related to the product 2820. Referring to
The product interface 2801 further includes merchant information 2834, product purchase terms 2836, and tabs 2838-2842 to view information related to the product, including details for the product 2820 (tab 2838), reviews of the product 2820 (tab 2840), and questions/answers for the product 2820 (tab 2842). The details can include a product description 2844. Additional scrolling input can be provided through the product interface 2801 to view additional information for the product 2820, include user-generated images and posts that tag the product, and other related products. In the depicted example, user input 2846 is received selecting the save button 2826. Selecting the save button 2826 can cause the computing device 300 to save the product element 2820 similar to the description above with regard to
Referring to
Referring to
Referring to
Additionally and/or alternatively, the social information 2912a-b can identify and provide links to the social posts from which the product elements 2906a-b were saved. For example, if the logged-in user originally saved a particular post that tagged the product element 2906a (which caused the product element 2906a also to be saved to the logged-in user's profile), the social information 2912a can provide a link to the particular post. In another example, if the logged-in user directly saved the product element 2906a when it was presented in the social feed based on the product element 2906a having been tagged in a particular social post, the social information 2912a can provide a link to the particular post. Other types of contextual around the saved product element 2906a-b can also be provided and/or linked to in the GUI 701, such as information identifying a date and time when the product element 2906a-b was saved, a location of the logged-in user when she saved the product element 2906a-b, and/or other relevant information.
The GUI 701 additionally includes a header with a back button 2904 to navigate back to the product taxonomy view in
Referring to
The computer system 240 can maintain a single instance of the post 360 in the data repository 248—meaning that separate instances of the post 360 may not be created when a user saves or shares the post. For example, when the user 708 saves the post, the computer system 240 can simply add a record of the save with an identifier for the post and an identifier for the user 708. Doing this can provide a variety of benefits, such as allowing the original creator 362 to maintain control of and attribution to the post 360 (e.g., creator 362 can manage product tags and comments, other users can readily identify the creator 362 and view other content created and/or saved by the creator 362, creator 362 can delete/hide/remove the post 360), providing a common comment and response area for the post 360 across all shares and saves (e.g., provide an area for previously unconnected users to interact), and/or minimizing an amount of data that the computer system 240 maintains for the post 360 as it is shared and saved.
For example, if the user who is logged-in to the computing device 3000 were to save the post 360 (similar to the user 708 saving the post 360, as described above with regard to
Referring to
Similar to the single instance of the post 360, the computer system 240 can maintain a single instance of the product element 2718 in the data repository 250—meaning that separate instances of the product element 2718 may not be created when a user saves or shares the product. For example, when the user 708 saves the product element 2718, the computer system 240 can simply add a record of the save with an identifier for the product element 2718 and an identifier for the user 708. Doing this can provide a variety of benefits as described above with regard to saving the post 360 with a single instance.
In some instances, instead of identifying the user 362 in the graphical element 3100, other people/entities and/or posts may be identified in the graphical element 3100. For example, the original post 360 from which the product element 2718 was saved by the user 708 may be identified additionally and/or alternatively in the graphical element 3100. In another example, the merchant and/or manufacturer of the product identified in the product element 2718 may be identified in the graphical element 3100.
Referring to
The computing device 3202 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing device 3202 can communicate with a server system 3204 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain content, content summaries, and/or other information to present in the GUI 3222. The server system 3204 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features related to content summaries, such as content summaries across multiple different types of content, like social media content, messaging content, product content, e-commerce content, and/or other types of content. For example, the server system 3204 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 3204 may directly provide both social networking features and product-related features. Other configurations of the server system 3204 among one or more other computer systems are also possible.
As indicated by step A, the server system 3204 can receive user-generated content 3208, which can include, for instance, user-generated images and corresponding descriptions, user comments, identifiers for users who generated content, location identifiers, and various other tags annotating the content (e.g., hashtags). For example, the server system 3204 can receive social media content (e.g., social media posts) from other client computing devices. Such social media content can include, for example, media elements (e.g., photos, videos, links to external content) and descriptions (e.g., text, hashtags, user tags, product tags, location tags, emojis) that describe or otherwise annotate the media elements. For example, a social media post can include a photo of a user wearing a new outfit (example user-generated image) and a textual description of the new outfit, including hashtags identifying features in the outfit (e.g., outfit style, products, theme), product tags that identifies the individual clothing items in the outfit, and location tags identifying a location where the photo was taken.
The server system 3204 can receive the user-generated content 3208 and can store it in a data repository 3206 (e.g., cloud storage system), from which it can be served by the server system 3204 to the client computing device 3202 (and other client computing devices). The server system 3204 can organize data for the user-generated content 3208 in the data repository 3206 using any of a variety of data storage structures (e.g., database tables, indices, hash tables) and techniques (e.g., relational database storage techniques, cloud-based storage techniques, hashing techniques, indexing techniques) to permit for efficient searching and data retrieval. The data for the user-generated content 3208 can be organized along one or more data elements, such as hashtags 3212 that are included in the content, user identifiers 3212 for users who created the content, and/or location identifiers 3214 for locations that are tagged in the content. Additional and/or alternative data elements can be used to organize the data in the data repository 3206, such as other types of tags (e.g., product tags), specific content elements that are included in the data elements (e.g., emojis, keywords), media element details (e.g., types of media elements, resolution, color composition), and/or other data elements. For example, the data repository 3206 can assign the user generated content 3208 unique identifiers that are used for content identification and retrieval, can extract data elements (e.g., hashtags 3210, user identifiers 3212, location identifiers 3214) from the content 3208, and can store the extracted data elements in association with the unique identifiers for the content 3208 in one or more readily searchable data structures (e.g., hash tables, indices, relational database tables). By organizing and storing the user-generated content 3208 in such a way in the data repository 3206, the server system 3204 can search, identify, and serve content to client computing devices more efficiently and quickly (e.g., using fewer computing resources, such as processor cycles, RAM, disc reads/write operations).
The server system 3204 can, additionally, determine and store content summaries in the data repository 3206. The content summaries can be determined based on the user-generated content 3208. For example, a content summary can be determined from the comments that correspond to a particular content element, such as a social media post (example user-generated content 3208). For instance, a content summary can be one or more emojis (icons or other graphical symbols that are encoded by one or more characters), keywords, hashtags, other tags (e.g., user tags, product tags, location tags), images, links, and/or other content elements that occur across the comments associated with a social media post. Such content elements can be identified as content summaries by the server system 3204 in any of a variety of ways. For example, one or more emojis can be identified as content summaries for a social media post based on the one or more emojis occurring across the comments for the social media post with a greatest frequency (e.g., most commonly occurring emoji(s)), at least a threshold frequency (e.g., emoji(s) occurring at least a minimum number of times), a greatest comment frequency (e.g., emoji(s) occurring in the greatest number of comments), at least a threshold comment frequency (e.g., emoji(s) occurring in at least a minimum number of comments), with a greatest weighted frequency (e.g., weighting emoji occurrences in newer comments more heavily, weighting emoji occurrences in older comments more heavily), and/or other factors (e.g., weighting emoji occurrences based on direct and/or indirect user responses to comments within which the emojis occur). Content summaries for other types of content elements, such as keywords, images, links, hashtags, and/or other elements, can be determined in a similar manner.
The server system 3204 can additionally store the content and data elements in the data repository 3206 with timestamps that can be used, for example, to identify “trending” information—meaning currently popular and/or of interest to users. Trending information can be identified in any of a variety of ways by the server system 3204, such as being identified based on frequency of occurrence within a rolling time window (e.g., frequency over the past hour, past six hours, past 322 hours, past day, past week), weighted frequency of occurrence based on how recently instances occurred (e.g., frequency of occurrence where more recently occurring instances are weighted more than instances that occurred further in the past, weighting based on time decay function), weighted frequency of occurrence based on user engagement with content element (e.g., social media post with a large number of shares/saves/comments weighted more than post with fewer number of shares/saves/comments), and/or other factors. Trending information can be determined with regard to particular user-generated content (e.g., social media posts, user-generated images/videos) and/or across multiple different user-generated content elements. For example, a particular social media post can be identified as trending based on a large number of other users being engaged/interacting with the post (e.g., through comments, likes, shares, saves, views, and/or other) over a recent time period (e.g., past 6 hours). In another example, a particular hashtag can be identified as trending based on the hashtag occurring with a high frequency across user-generated content (e.g., social media posts, user comments, and/or other user generated content) over a recent time period (e.g., past 6 hours).
Trending information can be stored (cached) in the repository 3206 and continually updated by the server system 3204, such as in response to user-generated content 3208 being received and/or on a recurring basis (e.g., every minute, every 5 minutes, every 320 minutes, every 30 minutes, every hour, every day). For example, every time a new social media post or action related to a social media post (e.g., save, share, comment, like, view) is received, the server system 3204 can determine whether it alters the currently trending information on the server system 3204. In another example, the server system 3204 can evaluate user-generated content and actions related thereto every 320 minutes to determine whether the trending information has been altered by content and action received since the preceding determination 320 minutes earlier. Such continual updating can allow the trending information to be quickly and efficiently served, searched, and/or processed in association with requests from client devices, such as requests for content, search requests, and requests for analytics information. For instance, instead of analyzing all user-generated content in the data repository 3206 to determine trending information in response to each request from a client computing device (which could result in redundant and wasted use of computational resources by the server system 3204), the server system 3204 can maintain pre-determined and cached trending information in the repository 3206, and can simply serve the stored trending information to the requesting client device. For example, when a client computing device 3202 launches a search interface and before receiving a specific search query, the client computing device 3202 can request trending information from the server system 3204, which the server system 3204 can retrieve as pre-determined trending information and can serve to the client computing device 3202 for presentation in a GUI. By having the trending information pre-determined (as opposed to determining it in response to client computing device request), the server system 3204 can provide the trending information to the client computing device 3202 more quickly and efficiently, thus reducing the amount of computational resources on the server system 3204 that are used to process requests and also reducing response latency.
Additionally, to further reduce the latency in the presentation of trending information in a GUI on the client computing device 3202, the client computing device 3202 can periodically request trending information from the server system 3204 in the background and without specific direction to present a search interface. For example, the client computing device 3202 can request updates on trending information from the server system 3204 and can update a local cache of trending information on the client computing device 3202 based on the updates from the server system 3204. For example, the client computing device 3202 can request updates every hour, two hours, six hours, 322 hours, every day, and/or other time intervals. The client computing device 3202 may be restricted to background requests for trending information to instances when such requests will not adversely affect the device's performance and/or data usage. For example, the client computing device 3202 may only request trending information when current usage of one or more computational resources (e.g., CPU usage, network bandwidth, RAM, available data storage) are below threshold levels (e.g., CPU usage below certain percentage, little or no current network traffic, at least a threshold amount of RAM available, at least a threshold amount of capacity in one or more local storage devices are available). In another example, the client computing device ay only request trending information when the client computing device 3202 has a network connection that does not have a data cap (e.g., connected to unlimited Wi-Fi network) and/or has at least a threshold amount of remaining data for a billing cycle (e.g., mobile data plan has at least a threshold amount of data available for transmission). By obtaining trending information from the server system 3204 in advance of the client computing device 3202 presenting a search interface, the trending information can be presented in the GUI instantaneously (without delay associated with network transmissions between the device 3202 and the server system 3204), which can improve the GUI performance on the client computing device 3202.
The server system 3204 can receive, store, and serve other types of content as well. For example, the server system 3204 can additionally obtain the secondary content (e.g., merchant-provided product content, news content, messaging content) that is identified, for example, by the user-generated content 3208. For example, if a product is tagged in the user-generated content 3208, the server system 3204 can obtain product information for the tagged product, such as an image for the product, a description of the product, a merchant selling the product, and other product details. In another example, if a news item is tagged in the user-generated content 3208, the server system 3204 can obtain information about the tagged news item, such as the title/headline, a brief summary of the news item, an author, a time/date for the news item, and other news details.
Still referring to
The client computing device 3202 can receive the trending information and can present it in the GUI 3222, as indicated by step C (3218). For example, the GUI 3222 in this example presents graphical elements for trending information that includes trending hashtags 3228a-b, trending content elements 3230a-b (e.g., trending social media posts, trending product elements, trending productivity projects, trending news articles), trending users 3232a-b, and trending location identifiers 3234a-b (e.g., neighborhoods, cities, states, countries, events). Other types of trending information can additionally and/or alternatively be output in the GUI 3222. The server system 3204 may additionally personalize the trending information that is identified for the user of the computing device 3202, such as based on explicitly and/or implicitly identified user interests (e.g., user explicitly identified interest in types of content, user interest implied through viewing particular types of content).
The graphical elements 3228-3234 can be selectable. Selection of the graphical elements 3228-3234 by a user of the computing device 3202 can cause the computing device 3202 to present additional information regarding the selected trending element in the GUI 3222 through communication with the server system 3204. For example, user selection of the example hashtag A (3228a) through the GUI 3222 (e.g., touch-based selection of the graphical element 3228a, pointer-based selection of the graphical element 3228a, voice-based selection of the graphical element 3228a) can cause the computing device 3202 to request additional information from the server system 3204 regarding the hashtag A (3228a), such as recent content elements (e.g., social media post, user comments, product elements) that have included the hashtag A, other tags (e.g., product tags, other hashtags, location tags) that have also been commonly associated with the hashtag A (e.g., used together in the recent content elements with the hashtag A), and/or other attributes associated with the hashtag A (e.g., information on users who are associated with the recent content elements with the hashtag A). The server system 3204 can identify such other content related to the hashtag A (3228) (e.g. using the organization in the data repository 3206 around the hashtags 3210, users 3212, and locations 3214) and can serve it to the computing device 3202, which can present the other related content in the GUI 3222.
The computing device 3202 can present additional information regarding the other graphical elements 3228-3234 in a similar manner. For example, selection of the example content element A (3230a) can cause the computing device 3202 to request and the server system 3204 to serve the content element A and other related content (e.g., comments, images, hashtags, other tags), which can be presented in the GUI 3222. In another example, selection of the example user A (3232a) can cause the computing device 3202 to request and the server system 3204 to serve information related to the user A (e.g., content elements generated by the user A, content elements in which the user A is tagged, content elements that the user A has interacted with (shared, saved, commented on, viewed)), which can be presented in the GUI 3222. In a further example, selection of the example location A (3234a) can cause the computing device to request and the server system 3204 to serve information related to the location A (e.g., content elements that have included a tag for the location A, other tags that have been commonly used with the tag for the location A, users who are located at or near the location A), which can be presented in the GUI 3222.
By presenting the trending information using the selectable graphical elements 3228-3234, the GUI 3222 can be improved. For example, presenting the trending information on the device 3202 can allow a user to view and navigate to information that may be of interest without first needing to provide input to request the trending information with minimal input (e.g., single input selecting one of the graphical elements 3228-3234), instead of having to type or otherwise indicate parameters for a search query. Such features can allow a user to more readily and easily request information that may be of interest in the GUI 3222. For instance, on some devices, like devices with touchscreens (e.g., smartphones, tablet computing devices), it can be difficult to provide textual input and other types of inputs. By presenting the trending information in the GUI 3222, a user can simply be presented with options that can be selected instead of needing to type or otherwise define parameters for a search query.
The GUI 3222 also includes example features 3224-3226 through which a user can designate one or more parameters for a search query to locate any of a variety of different types of content (e.g., user-generated content, social media content, product elements, users, content categories). The feature 3224 is a search field through which a user of the device 3202 can enter one or more search parameters, such as keywords, tags, symbols (e.g., emojis, images), location identifiers, other types of search parameters, and/or combinations thereof. For example, selection of the feature 3224 can cause a virtual keyboard to be presented on the GUI 3222 through which the user can designate the one or more search parameters. The feature 3226 is a location field through which a user of the device 3202 can designate one or more location-based parameters for the search query. For example, selection of the example feature 3226 can cause the GUI 3222 to present one or more features through which a user of the device 3202 can designate location-based search parameters, such as an interactive map through which a user can designate geographic locations and/or areas to be searched, a selectable icon/feature through which a user can select a current location/area, and/or other features through which a user can designate location parameters. Multiple different types of search parameters can be combined through the GUI 3222 and used to search for content. Additional and/or alternative search feature can be output in the GUI 3222.
As indicated by step D (3236), the client computing device 3202 receives user input through the GUI 3222. The user input can include, for example, selection of one or more of the graphical elements 3228-3234 for the suggested trending information and/or parameters designated through one or more of the features 3224-3226. For example, a user can select a single one of graphical elements 3228-3234, can select multiple graphical elements 3228-3234, can designate one or more parameters through the elements 3224-3226, and/or can combine selection of one or more of the graphical elements 3228-3234 with parameters designated through the elements 3224-3226.
In response to receiving the input, the client computing device 3202 can transmit one or more parameters for a search query to the server system 3204, as indicated by step E (3238). In response to receiving the parameters, the server system 3204 can identify results to serve to the client computing device 3202 across multiple different types of content (e.g., user-generated content, social media content, product elements, users, content categories), such as the content that is stored in the content repository 3206. For example, the server system 3204 can use the organizational structures (e.g., hash tables, indices, database tables) in the repository 3206 to readily and efficiently identify content elements and other associated elements (e.g., hashtags, users, location tags, associated secondary content elements) that satisfy one or more of the parameters. The server system 3204 can use various search techniques to identify results from the content repository 3206, such as using scoring techniques to rank and select content elements, fuzzy logic search techniques, Boolean logic search techniques, artificial intelligence-based search techniques, classification-based search techniques, and/or other search techniques.
As indicated by step F (3240), the server system 3204 can transmit the results to the client computing device 3202, which can receive and present the results in the GUI 3222, as indicated by step G (3242). For instance, in the depicted example the computing device 3202 receives and present a search result area 3244 in the GUI 3222 that includes multiple different types of content and associated elements, such as example content elements 3246a-b (e.g., social media content, product elements), example user identifiers 3248a-b (e.g., social media users), example hashtags 3250a-b (e.g., categories of content), and example location identifiers 3252a-b. As indicated in the depicted example, the search results 3246-3252 are different from the trending information based on the search parameters transmitted to and processed by the server system 3204.
Each of the search results 3246-3252 can be presented as selectable graphical elements that a user of the computing device 3202 can select to present additional information and/or to present results for another search query in the GUI 3222. For example, the content element X is represented by the graphical element 3246a (e.g., thumbnail image of one or more images includes in content element X, textual summary of one or more portions of content element X, animation/video snippet for content element X, and/or combinations thereof), selection of which can cause the computing device 3202 to request (from the server system 3204) and display the content element X (e.g., overlay the content element X on top of the search results 3244, present a new page in the GUI 3222 depicting the content element X, expand an area below/above/adjacent to the graphical element 3246a in which to present the content element X). For instance, the content element X can be a social media post and the graphical element 3246a can be thumbnail of an image included in the social media post.
In another example, the user X is represented by the graphical element 3248a (e.g., thumbnail of a profile picture for the user X, username for the user X), selection of which can cause the computing device 3202 to request (from the server system 3204) and display information (e.g., user profile, user information, list of content elements created, list of content elements interacted with) for the user X (e.g., overlay the information for user X on top of the search results 3244, present a new page in the GUI 3222, expand an area below/above/adjacent to the graphical element 3248a). For instance, the user X can be a user on a social platform and selecting the graphical element 3248a can cause a profile for the user X on the social platform with information about the user X, content that the user X has created/published on the platform, content that the user X has saved/shared/commented on/reacted to on the platform, and controls to connect with (e.g., friend, follow) or interact with (e.g., message) the user X.
In a further example, the hashtag X is represented by the graphical element 3250a (e.g., text, image), selection of which can cause the computing device 3202 to request (from the server system 3204) and display search results related to the hashtag X (e.g., overlay the search results for hashtag X on the search results 3244, present a new page in the GUI 3222, expand an area below/above/adjacent to the graphical element 3250a). For instance, the parameters (step E, 3238) can be keywords (e.g., “handbag”) and the hashtag X (3250a) can be a hashtag (e.g., “#prada”) relevant to the keywords that, when selected, causes result for the hashtag (“#prada”) to be generated and presented in the GUI 3222.
In another example, the location X is represented by the graphical element 3252a (e.g., textual description of the location X, image of the location X, and/or combination thereof), selection of which can cause the computing device 3202 to request (from the server system 3204) and display search results related to the location X (e.g., overlay the search results for location X on the search results 3244, present a new page in the GUI 3222, expand an area below/above/adjacent to the graphical element 3252a). For instance, the parameters (step E, 3238) can be keywords (e.g., “scarfs”) and the location X (3252a) can be a location (e.g., “Minnesota”) relevant to the keywords that, when selected, causes result for the location (e.g., content elements tagging Minnesota, content elements created by users who are located in Minnesota) to be generated and presented in the GUI 3222.
Other types of elements and information can additionally and/or alternatively be presented as part of the results in the GUI 3222. For example, other types of elements, such as secondary content elements (e.g., merchant-provided product content, news content, messaging content) that may be tagged in the user-generated content elements (e.g., social media posts), can be presented as search results.
Referring to
Referring to
After the search query 3300 is entered through the GUI 401, it can be transmitted by the computing device 300 to the computer system 240, which can determine search results for the query 3300 across multiple different types of content (e.g., user-generated content, social media content, product elements, users, content categories), as discussed above with regard to
In the depicted example, the search results presented in the GUI 401 include multiple different types of content elements, including hashtags 3310a-b, product elements 3312a-b, and users 3314a-b. These content elements 3310-3314 are selectable and can cause additional information for the selected element to be presented in the GUI 401, such as through expanding an area in the GUI 401 for the selected element, overlaying the additional information, and/or presenting an additional/different page with the additional information. Examples of presenting additional information in response to selecting the search results 3310-3314 are described below with regard to
The GUI 401 presents several selectable tabs 3308a-d that the can allow a user to view subsets of the results in the GUI 401 with a single selection input and without having to navigate to submenu or other screen of the GUI 401, or to provide more complex inputs, such as designating a filter for the results. For example, the tabs 3308a-d include a top tab 3308a that presents the top results across all of the different types of search results, a hashtag tab 3308b that presents the hashtag results, a products tab 3308c that presents the product results, and a people tab 3308d that presents the people/users results. Other tabs for other types of results (and/or combinations of types of results) are also possible, such as a social post tab that presents social post results.
In the depicted example, the top tab 3308a is selected by default and the top results 3310-3314 from among multiple different types of content elements (e.g., user-generated content, social media content, product elements, users, content categories) are presented. These heterogeneous results are depicted as being grouped together by content types, with the hashtag results 3310a-b being presented adjacent to each other, the product results 3312a-b being presented adjacent to each other, and the people/user results 3314a-b being presented adjacent to each other. The GUI 401 can order the grouped result types based on any of a variety of factors, such as a predetermined ordering, a top relevance score for each of the result groups, an aggregate relevance score for each of the result groups, an average relevance score for each of the result groups, and/or other factors. The relevance scores as determined by the computer system 240 can provide a normalized metric across which the different types of results can be compared on a standardized scale. For example, the relevance score for the hashtag results 3310a-b can be determined along the same scale (e.g., numerical scale) as the product results 3312a-b and the people results 3314a-b. The results within each of the groups can be ordered using any of a variety of factors, such as relevance scores, alphabetical ordering based on text in the results, numerical ordering based on one or more numbers included in the results, and/or other factors. For instance, the hashtag result 3310a, which has a larger number of posts (and more associated content under the hashtag 3310a), is ordered above the hashtag result 3310b. The other result groups 3312a-b and 3314a-b can be ordered using the same or different ordering techniques. These ordering techniques for ordering the result groups and then the results within each of the groups can improve upon the GUI 401 on a smaller form factor display 302 by presenting and highlighting results across multiple different content types in an intuitive and efficient way that allows a user to readily view and interact with results with minimal additional inputs to locate relevant content.
Although the different types of results are grouped together in this example (e.g., the hashtag results 3310a-b are presented adjacent to each other), they can be interleaved and ordered in the GUI 401 so that the different types of results are not grouped together. For example, the GUI 401 can order the individual results 3310-3314 regardless of the type of result type and instead based on one or more factors, such as relevance scores (determined by the computer system 240), which can provide a way the results 3310-3314 to be compared across a common metric even though they are different types of content elements.
Still referring to
The results 3310-3314 can also include graphical elements for a user to directly interact with the results 3310-3314 from within the GUI 401 (without having to navigate to a specific page to view additional information for the results). For example, the people/user results 3314a-b each include buttons 3316a-b through which a user of the computing device 300 can engage (e.g., follow, friend, add) or dis-engage (e.g., unfollow, unfriend, remove) with the users who are identified in the results 3314a-b. For instance, the user of the computing device 300 is already following the user 3314a (as indicated by the checkmark in the button 3316a) and can press the button 3316a to unfollow the user 3314a. The user of the computing device 300 can press the button 3316b to begin following the user identified in the people result 3314b. Although not depicted in this example, the product elements 3312a-b can have buttons (similar to the buttons 3316a-b) through which the user of the device 300 can add the product elements 3312a-b to the virtual shopping cart 305 and/or can save the product elements 3312a-b to the user's profile (e.g., save products to the profile, as depicted in
Example user input 3318 is provided through the GUI 401 selecting the hashtag tab 3308b. Referring to
Example user input 3320 is provided through the GUI 401 selecting the hashtag result 3310a. Referring to
The content elements 3324a-e that are presented in the area 3322 are a portion of all of the content elements that are associated with the hashtag 3310a, which can be presented in the GUI 401 by selecting the “see all” button 3326. The content elements 3324a-e can be selected for presentation in the area 3322 from among all of the content elements that use/are associated with the hashtag 3310a based on any of a number of factors, such as how recently the content elements were created/added to the computer system 240 (e.g., newer content elements can be selected for presentation in the area 3322), popularity of the content elements (e.g., content elements with a greater number of saves, shares, views, and/or comments can be selected for presentation in the area 3322), a number of instances and/or significance of the hashtag 3310a occurring/being used in the content elements (e.g., content elements using the hashtag 3310a more prominently (e.g., title, description) and/or a greater number of occurrences of the hashtag 3310a (e.g., hashtag 3310a used in the description and comments) can be selected for presentation in the area 3322).
The content elements 3324a-e can be selected and served by the computer system 240 before or after the user input 3320 is received selecting the hashtag 3310a. For example, the content elements 3324a-e can be served by the computer system 240 to the computing device 300 with the search results and cached on the computing device 300 until the user input 3320 is received. Such a configuration can reduce the latency with which the content elements 3324a-e are presented in the area 3322 of the GUI 401 (since the content elements 3324a-e are already cached locally on the computing device 300), which can improve the performance of the GUI 401. In another example, the content elements 3324a-e can cached on the computer system 240 and served to the computing device 300 in response to a request from the computing device 300. For instance, the computing device 300 can be programmed to request the content elements 3324a-e in response to user activity related to the hashtag result 3310a (e.g., the user input 3318, a user hovering over the hashtag result 3310a for at least threshold amount of time, a user viewing the hashtag result 3310a for at least a threshold amount of time), which can occur before the user input 3320 is received. Such a configuration can reduce the latency with which the content elements 3324a-e are presented in the GUI 401 while at the same time attempting to avoid unnecessary data transmissions (reduce network data usage) in the event that the user does not demonstrate a potential interest in the hashtag result 3310a. In other instances, the computing device 300 can simply request the content elements 3324a-e in response to the user input 3320, which can increase the latency with which the content elements 3324a-e are presented in the GUI 401 but can minimize network transmissions to only those that are specifically requested by the user.
Example user input 3328 selecting the products tab 3308c is received through the GUI 401. Referring to
Example user input 3330 selecting the product element 3312c is received via the GUI 401. Referring to
The product interface 3336 includes a title 3334 of the product 3312c, the virtual shopping cart icon 305, and a back button 3332 to navigate back to the location from which the product interface 3336 was launched. The product interface 3336 includes an image 3338 and selectable images 3340 of different colors/styles for the product 3312c that can be ordered/purchased. Selecting one of the selectable images 3340 can, in some implementations, cause the interface 3336 to replace the image 3338 with another image of the product 3312c with the selected colors/styles. The product interface 3336 also includes product information 3342a-d, such as a name and merchant 3342a for the product 3312c, an aggregate user rating 3342c, a number of remaining products 3342b available for order with the merchant, and pricing information 3342b.
The product interface 3336 further includes controls 3344a-b to purchase/order the product 3312c. For example, the control 3344a is a selectable button through which the user of the computing device 300 can order the product 3312c through a single action (e.g., selecting the control 3344a). The control 3344b is a selectable button through which the user of the computing device 300 can place the product 3312c in the virtual shopping cart 305 associated with the logged-in user. The virtual shopping cart 305 can be persistent across the interfaces 304, 401, 601, 701, and 3336, and can allow a user to add products to the cart 305 from any or all of these interfaces. The controls 3344a-b can be part of a footer that is persistently displayed at the bottom of the interface 3336.
In the depicted example, vertical scrolling input 3345 is provided in the interface 3336 to scroll down to view additional information and features related to the product 3312c. Referring to
The product interface 3336 further includes merchant information 3352a, product purchase terms 3352b, and tabs 3352c-e to view information related to the product, including details for the product 3312c (tab 3352c), reviews of the product 3312c (tab 3352d), and questions/answers for the product 3312c (tab 3352e). The details can include a product description 3352f.
Additional scrolling input 3354 is received through the interface 3336 to view additional information for the product 3312c. Referring to
The interface 3336 also presents a section 3362 of recommended other products 3364a-b, which can be selected and served by the computer system 240 based on any of a variety of factors, such as comparisons of product information (e.g., product verticals, product descriptions, product details) for the product 3312c and other products (e.g., identify similar products as the product 3312c), comparisons of the logged-in user's actions (e.g., product purchases, saves, shares, comments, reviews) with other products (e.g., identify products that the logged-in user has a history of being interested in), and/or the actions of other users (e.g., shares, saves, purchases, comments, ratings, reviews). For example, the computer system 240 can identify the recommended products 3364a-b based a group of users having performed similar actions (e.g., shares, saves, purchases, comments, ratings, reviews) for the recommended products 3364a-b and the product 3312c. For instance, if a group of users who have expressed interest in the product 3312c, such as by saving the product 3312c, have also expressed interest in the recommended products 3364a-b, such as by also saving the products 3364a-b, then the computer system 240 can determine that the logged-in user has a high probability of also being interested in the products 3364a-b. The recommended products 3364a-b can provide an additional avenue for the logged-in user to discover new products and other content across the example social-retail platform.
Example user input 3366 selecting the back button 3332 is received through the interface 3336. Referring to
Additional user input 3372 selecting the people tab 3308d is received through the GUI 401. Referring to
Example user input 3374 selecting the user result 3314g is received through the GUI 401. Referring to
Additional user input 3386 selecting the products tab 724 is received through the GUI 701. Referring to
Referring to
Referring to
In response to submitting the location-based search query 3402, the client computing device 300 can transmit the search query 3402 to the computer system 240, which can receive and process the search query 3402. For example, the computer system 240 can access social posts, product elements, and other content to identify search results for the query. The search results can include a variety of different content types, such as social media posts, product elements, hashtags, users on one or more social networks, and/or other content types. For example, the computer system 240 can identify social media posts that have tagged the location 3402 (or another location within a threshold distance of the location 3402) and/or social posts that have been authored by users at the location 3402 or another nearby location. In another example, the computer system 240 can identify product elements that have been associated with the location, such as products commonly tagged with the location 3402 in one or more social posts, product elements that have been tagged with the location 3402 (e.g., tagged in user reviews), and/or product elements that have been viewed/shared/saved/commented on/reviewed by users who are located at or near the location 3402. In a further example, the computer system 240 can identify users in the results based on the user being located at the location 3402 and/or having created social media posts that tag the location 3402.
Referring to
Referring to
Referring to
In response to submitting the emoji-based search query 3502, the client computing device 300 can transmit the search query 3502 to the computer system 240, which can receive and process the search query 3502. For example, the computer system 240 can access content summaries for social media posts, product elements, and other content, and can use the content summaries to identify search results for the query. Content summaries can be, for example, emoji-based summaries of multiple content elements, like comments, for a social post and/or product element. The computer system 240 can determine a content summary, such as the top emoji response in the comments to a social post, based on any of a variety of techniques, such as frequency, weighted frequency, and/or other factors.
The search results determined for the emoji-based search query 3502 can include a variety of different content types, such as social media posts, product elements, hashtags, users on one or more social networks, and/or other content types. For example, the computer system 240 can identify social media posts that have the combination of emojis in the search query 3502 in the content summary (content summaries can include more than one content element). In another example, the computer system 240 can identify product elements that have content summary review with the combination of emojis in the search query 3502. In a further example, the computer system 240 can identify users in the results based on the user having created social media posts and/or tagged product elements with content summaries that include the emojis in the search query 3502. In another example, the computer system 240 can identify hashtags in the results based on hashtags being used in the descriptions of social media posts and/or products that have content summaries including the emojis in the search query 3502. Additionally and/or alternatively, the computer system 240 can identify results using all content and not just the content summaries.
Referring to
Although particular combinations and sequences of graphical elements and inputs are described above, other combinations and sequences are also possible. For example, search queries can include combinations of keywords (as described above with regard to
Referring to
A variety of features and information can be provided in the GUI 3614 for monitoring activity and/or managing content, such as selectable links and/or other graphical elements that identify, for instance, activities performed, users who performed the activities, content to which the activities relate, times when the activities were performed, actions that can be taken by the user of the device 3602, and/or other features. Such features and information can be organized in the GUI 3614 so that a user of the device 3602 can readily locate and perform actions with regard to relevant content elements. For example, the GUI 3614 can include a tab 3616 that, when selected, presents a chronological list of graphical elements detailing activity related to content generated by (or otherwise associated with) other users. The GUI 3614 can also include another tab 3618 that, when selected, presents graphical elements detailing activity related to content generated by (or otherwise associated with) the user of the device 3602 and graphical elements to prompt user action with regard to content generated by (or otherwise associated with) the user of the device 3602.
Content that is managed and/or monitored through the features provided by the GUI 3614 can include any of a variety of content types, such as social medial content (e.g., user posts, comments, shared content), product content, messaging content, productivity application content, news content, and/or other types of content. For example, the GUI 3614 can present and seamlessly integrate activity information related to social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content) that are tagged in the social media content. The GUI 3614 can allow users to interact with content in a variety of ways, such as through social interactions (e.g., share, save, comment) and other types of interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the GUI 3614 and its activity streams to use other, specifically designed applications or interfaces. For example, instead of providing a GUI that presents a single type content (e.g., social media content, product content) and that links to other applications/GUIs that are launched to present other types of content, the GUI 3614 is programmed present multiple types of content without launching or otherwise relying on another application/GUI.
The computing device 3602 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing device 3602 can communicate with the server system 3604 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain, associate, and present multiple different types of content in the GUI 3614. The server system 3604 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is able to serve and provide features for multiple different types of content, such as social media, messaging, e-commerce, and/or other types of content. For example, the server system 3604 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 3604 may directly provide both social networking features and product-related features. Other configurations of the server system 3604 among one or more other computer systems are also possible.
As indicated by step A (3608), the server system 3604 can receive content, such as user-generated content and other types of content (e.g., merchant-provided product content, news content, messaging content). For example, the server system 3604 can receive social media content (e.g., posts, comments, shared content) from other client computing devices and can receive product-related content (e.g., product information, product images, product reviews) from merchant computer systems. The server system 3604 can store the received user-generated content in a data repository 3606 (e.g., cloud storage system), from which it can be served by the server system 3604 to the client computing device 3602. The server system 3604 can store other types of content as well.
The server system 3604 can also receive information identifying user activity, as indicated by step B (3609). For example, user computing devices can provide information identifying actions performed (e.g., encoded identifiers for actions performed by users, such as shares, saves, comment, reaction, view, post, purchase), content with regard to which the action was performed (e.g., unique identifier for content elements stored in the repository 3606), users who performed the actions (e.g., unique user identifiers), timestamps for the actions, and/or other relevant information. User computing devices that are presenting content to users can be programmed to transmit information (in real time, in batched transmissions) to the server system 3604 identifying user activity with regard to multiple different types of content presented on the user computing devices. The server system 3604 can store the activity information in a user activity repository 3607, which, alone or in combination with the content repository 3606, can be accessed by the server system 3604 to provide activity feeds on the computing device 3602.
As indicated by steps C and E (3610, 3622), activity information for a user who is logged-in to the computing device 3602 is served by the server system 3604 to the computing device 3602. In this example, the activity information is separated into two different types—news activity and user activity. News activity represents activity related content generated by (or otherwise associated with) other users and user activity represents activity related to content generated by (or otherwise associated with) the user who is logged-in to the computing device 3602. The news activity can include, for example, activity performed by other users who are socially connected to logged-in user (e.g., friends with the logged-in user, followers of the logged-in user, being followed by the logged-in user) and/or activity performed with regard to content generated by other users who are socially connected to the logged-in user. For instance, if the logged-in user is socially connected with example user A but not with user X, the news activity can include activity related to the user A performing an action (e.g., share, save, comment, like, reaction, review) with regard to content generated user X and activity related to the user X performing an action with regard to content generated by user A. The same would hold true if the user X were also socially connected to the logged-in user on the device 3602, but the user X need not be socially connected with the logged-in user for this example activity to be identified and served to the device 3602 based on the activity being related to the user A, who is socially connected to the logged-in user.
The news activity can also include activity that is associated with other users who are socially connected to the logged-in user. For example, the news activity can include information regarding new social connections that are established for the users with whom the logged-in user is socially connected, such as the example user A becoming friends with, following, or being followed by user X. In another example, the news activity can include information regarding socially-connected users being tagged in or otherwise associated with content elements, such as being tagged in a social media post or at a particular location/event.
The news activity information is received and presented in the GUI 3614 on the client computing device 3602, as indicated by step D (3612). For instance, example activity information is presented under tab 3616 in the GUI 3614 as graphical elements 3620a-f, which represent activity related to a user sharing content (3620a), a user saving content (3620b), a user commenting on content (3620c), a user reviewing a product (3620d), a user posting/generating content (3620e), and a user purchasing a product (3620f). Each of the example users A-F who have performed the actions identified in the activity feed elements 3620a-f can be socially connected to the user who is logged-in to the computing device 3602 and/or can be performing actions with regard to content generated (or otherwise associated) with users who are socially connected with the logged-in user. The graphical elements 3620a-f can each include one or more selectable features (e.g., links, button, graphics, icons, thumbnail image) through which the user of the device 3602 can navigate in the GUI 3614 to additional information related to the activity item. For example, the graphical element 3620a can include selectable elements for the user A (selection of which can navigate the GUI 3614 to a profile page for the user A), the content that was shared (selection of which can navigate the GUI 3614 to the full content that has been shared), and the user who generated the content (selection of which can navigate the GUI 3614 to a profile page for the content generating user). In another example, the graphical element 3620b can include selectable elements for the user B (selection of which can navigate the GUI 3614 to a profile page for the user B), the content that was saved (selection of which can navigate the GUI 3614 to the full content that was persistently saved in association with the user B's account), and the user who generated the content (selection of which can navigate the GUI 3614 to a profile page for the content generating user). The other graphical elements 3620c-f can include similar selectable features. Additional information for the content elements can be presented within the GUI 3614 in any of a variety of ways, such as overlaying the activity feed in the GUI 3614, expanding an area of the GUI 3614 to present the additional information (e.g., expanding an area of the GUI 3614 below the selected element to present the additional information), presenting a new page for the additional information, and/or other ways of presenting the additional information.
The graphical elements 3620a-f can additionally include selectable features through which the user of the device 3602 can interact with the content and/or users identified in the graphical elements 3620a-f from within the activity feed. For example, the graphical element 3620a can additionally include selectable features through which the user logged-in to the computing device 3602 can perform one or more of the following actions from within the activity feed (without transitioning to a different interface or application): add/friend/follow the user A, add/friend/follow the user who generated (or is otherwise associated with) the content element that the user A shared, and/or share, save, react to, like, comment on, and/or perform other actions with regard to the content that the user A shared. In another example, the graphical element 3620d can additionally include selectable features through which the logged-in user can perform one or more of the following actions from within the activity feed: add/friend/follow the user D, can add the reviewed product to a virtual shopping cart, can purchase the reviewed product, and/or share, save, react to, like, review, and/or perform other actions with regard to the product reviewed by user D. By presenting the graphical elements 3620a-f with such features, the GUI 3614 can be improved by allowing the user of the device 3602 to perform multiple different types of actions across multiple different types of content from within a single interface instead of having to switch between different applications and/or interfaces (which can decrease efficiency and increase computational resource usage on the computing device 3602).
The user activity that is received by the computing device 3602 (step E) represents activity related to content generated by (or otherwise associated with) the user who is logged-in to the computing device 3602. The user activity can include, for example, activity performed with regard to social media posts generated by the logged-in user, such as other users viewing, commenting on, reacting to, purchasing products tagged in, and/or otherwise engaging with content generated by the logged-in user. Such activity can be performed by users who are and are not socially-connected to the logged-in user. For example, the user activity can include information identifying that the user A (from the example above who is socially-connected to the logged-in user) and that the user X (not socially-connected to the logged-in user) have performed actions with regard to a social media post generated by the logged-in user.
The user activity can also include activity performed by other users that requires approval, consent, and/or other input from the logged-in user. For example, the user activity can include another user tagging the logged-in user in a social media post. The logged-in user can be prompted for approval before the tag can be applied to the social media post. In another example, the user activity can include another user applying a tag to content generated by (or otherwise associated with) the logged-in user, such as tagging a product, location, user, productivity project, news item, and/or other element in a social media post generated by the logged-in user. The logged-in user can be prompted to approve the tag before it can be applied to the social media post.
The user activity information can be received and presented in the GUI 3614, as indicated by step F (3624). The user activity information can be output in the GUI 3614 using selectable graphical elements, similar to the graphical elements 3620a-f. Example graphical elements 3626a-d are depicted in tab 3618 of the GUI 3614 for a variety of different types of user activity, including another user having added a tag to a post created by the logged-in user (3626a), content that the logged-in user saved having a current offer (3626b), status information for content generated by the logged-in user (3626c), and another user performing an action (e.g., commenting) with regard to content generated by the logged-in user (3626d). Status information can include, for example, information on a number of actions (e.g., shares, saves, comments, reactions, likes, product purchases) and/or views (e.g., number of times that the content has been served by the server system 3604 to and presented on other computing devices, number of times that the content has been displayed on other computing devices) that have been generated for a content element, such as a social media post and/or other content elements tagged in social media posts.
Status information may be generated and served by the server system 3604 to the computing device 3602 on a periodic basis (as opposed to on a rolling/continual basis), such as when various engagement or other activity milestones are achieved. Milestones can be determined by the server system 3604 using any of a variety of different techniques, equations, and/or sequences. For example, milestones can be determined by the server system 3604 based on linear equations (e.g., milestone=360*X), exponential equations (e.g., milestone=360*X2), logarithmic equations (e.g., milestone=360X), and/or other equations. In another example, milestones can be determined by the server system 3604 based on various milestone sequences, such as a Fibonacci sequence (sum of previous two milestones is the next milestone value), a doubling sequence (multiply previous milestone by two to generate next milestone value), predetermined sequences, and/or other sequences. The server system 3604 can determine status milestones and milestone progressions differently for different types of actions. For instance, milestones for views and reactions may initially be set higher and may progress at greater intervals than milestones for comments, shares, saves, and/or product purchases. By using milestones and milestone progressions to report status information (as opposed to serving status information on a continual or rolling basis), the server system 3604 can increase the efficiency with which activity information is served to the computing device 3602 (e.g., reduce the frequency of status information reporting, which can conserve computational resources (processor cycles, network transmissions, memory usage) on the server system 3604). Additionally, milestones can improve the GUI 3614 for the activity feed, for example, by striking a balance between informing the logged-in user of relevant milestones while at the same time minimizing the number of graphical elements that are presented in the GUI 3614 for status information, which can conserve available space screen space on the computing device 3602.
The graphical elements 3626a-d can include selectable elements, like those described above with regard to graphical elements 3620a-f. For example, the graphical element 3626a prompts the user for input to approve or decline the tag added to a post by user A through selectable buttons 3628 and 3630. The graphical element 3626a can further include selectable features for the logged-in user to view additional information in the GUI 3614 regarding user A, the tag that has been applied to the post, and the post to which the tag has been applied. The another example, the graphical element 3626b can include selectable features to view additional information regarding the saved content element (e.g., social media post, product element, news content, productivity content) and the current offer that pertains to the content element (e.g., sale on saved product element or product tagged in social media post, limited time window for participation/enrollment in productivity project). In a further example, the graphical element 3626c can include selectable features to view the content to which the status information pertains, information identifying the other users who have taken the actions summarized in the status information, and/or analytics related to the status information (e.g., graph depicting frequency of actions over time, analytics describing performance relative to other content for the logged-in user and/or content generated by other users).
The news activity information (step C) and the user activity information (step E) can be identified and served together or separately by the server system 3604. For example, the server system 3604 can identify both news activity and user activity information for a logged-in user and can serve the collective activity information to the computing device 3602. For instance, the server system 3604 can periodically determine and serve activity information updates to the computing device 3602, which the computing device 3602 can receive and cache until the activity feed GUI 3614 is presented on the device 3602 (e.g., presented in response to user selection of an activity feed feature). Such an arrangement can improve the performance of the GUI 3614 by reducing delays in presenting activity information through the use of pre-cached activity feed information (no need to wait for a response from the server system 3604 to present activity information). The server system 3604 can additionally and/or alternatively determine and serve activity information to the computing device 3602 in response to requests from the computing device 3602. For instance, the computing device 3602 can present the GUI 3614 as an infinite feed of activity information and, when the user has scrolled to the end of the cached activity information, the computing device 3602 can request additional and/or updated activity information from the server system 3604. Such requests may pertain to one or more of the news activity information and the user activity information. For example, when the news tab 3616 is presented in the GUI 3614 and the user scrolls to the end of the cached news activity information on the device 3602, the device 3602 can transmit a request for additional news activity information, which can prompt the server system 3604 to determine and serve additional new activity for the logged-in user. In another example, when the news tab 3616 is initially presented on the GUI 3614 (e.g., in response to the user selecting the news tab 3616), the computing device 3602 can poll the server system 3604 for updated news activity information while presenting any caches news activity information in the GUI 3614.
The computing device 3602 can organize the activity information in the GUI 3614 using one or more features, such as the tabs 3616 and 3618. Such organizational features, like the tabs 3616 and 3618 which can allow for activity information presented in the GUI 3614 to be automatically filtered, can improve upon the GUI 3614 by allowing a user to readily toggle between different organized/filtered activity information with minimal input required. For example, a user can toggle between the news activity information and the user activity information through a single input selecting either of the tabs 3616 and 3618 (as opposed to having to type a search string for filtering the activity information). This can be particularly beneficial on devices with interfaces for typing that are more cumbersome to use, like devices with touchscreens. Other features and techniques for organizing the activity information in the GUI 3614 are also possible, such as through the addition of more preselected tabs.
Referring to
The activity feed that is presented in the GUI 601 can be an infinite feed, allowing the user of the device 300 to scroll down to display additional activities. For instance, example scrolling input 3708 is received through the GUI 601, causing the activity feed to scroll down and display additional graphical elements 3700g-1, as depicted in
The user can continue to scroll down (and up) the activity feed in the GUI 601. In the event that the user reaches or nears the end of the activities (e.g., has less than a threshold number of undisplayed activities remaining in local storage, has no remaining undisplayed activities in local storage) that have been provided to the computing device 300 by the server system 240, the computing device 300 can request additional activities from the server system 240. For example, if the user repeatedly to scroll down the activity feed, the computing device 300 can repeatedly request additional activities from the server system 240 to display in the GUI 601, thus providing an “infinite” feed of activities to the user.
At least a portion of the activity content that is initially displayed in the GUI 601 (e.g., activities identified in graphical elements 3700a-f, activities identified in graphical elements 3700a-l) can be preloaded and stored locally by the computing device 300 before the user requests to display the activity feed (e.g., before the user selects the activity feed button 358d). For example, the computing device 300 can be programmed to request activity feed information from the server system 240 in the background when such downloading of content will not disrupt or otherwise degrade the performance of the computing device 300 (e.g., such as downloading the activity feed information when the computing device 300 is connected to a Wi-Fi network and has unused capacity over its network interface). By preloading a portion of activities onto the computing device 300 that are initially displayed in the GUI 601 (before scrolling input is received) and requesting additional activities as needed based on scrolling input that is received, the computing device 300 can optimize performance of the GUI 601 by presenting preloaded content in the activity feed with little to no latency, while at the same time balancing the performance of the GUI 601 against performance of the network interface and the local storage system for the computing device 300 (minimizing the use of both to preload content for presentation in the GUI 601).
As indicated by the time information (e.g., second, minutes, hours, days since the action was performed) included with the graphical elements 3700a-1, the GUI 601 can organize the graphical elements 3700a-1 in the news tab 602a based, at least in part, on chronology. For instance, the most recently occurring activities can be presented at the top of the activity feed and later occurring activities being presented further down the activity feed. Other factors can additionally and/or alternatively be used by the GUI 601 to order the graphical elements 3700a-1, such as whether the logged-in user already viewed information pertaining to the activity (e.g., user already viewed the activity in the home feed) and/or a projected level of interest in the activity by the logged-in user (e.g., whether the user has expressed interest in similar activity content).
The graphical element 3700a-1 can each include multiple different selectable elements to allow a user to readily and easily navigate to additional information from within the GUI 601, similar to the discussion above with regard to the selectable elements depicted in
Example input 3710 selecting the user tab 602b is received, causing the activity feed with user activity information (similar to the user activity information described above with regard to
Referring to
For example, the graphical element 3714a identifies that the user 3716a tagged the logged-in user in post 3718a, the graphical element 3714b identifies that the user 3716b mentioned (e.g., tagged) the logged-in user in post 3718b, and the graphical element 3714c identifies that the user 3716c tagged a product in a post 3718c that the logged-in user created. The graphical elements 3714a-b request permission to allow the tags in the posts 3718a-b to cause the posts 3718a-b to be presented in feeds of other users (e.g., home feeds, activity feeds)—meaning that the logged-in user's association with the posts 3718a-b (tagged in the posts 3718a-b) will appear in the feeds of other users who are socially connected with the logged-in user (e.g., followers of the logged-in user, friends of the logged-in user). The graphical elements 3714a-b include options to approve (3720a, 3722a) or decline (3720b, 3722b) the posts 3718a-b from appearing in the feeds of other users who are socially connected to the logged-in user (based on the logged-in user being tagged in the posts 3718a-b). The graphical elements 3714a-b also provide the logged-in user with the option to remove the tags (with the logged-in user) from the posts 3718a-b—meaning that selection of the control elements 3720c and 3722c will cause the tags with the logged-in user will be removed from the posts 3718a-b.
The graphical element 3714c requests permission for a product tag to be applied to the post 3718c that the logged-in user created. The logged-in user is given the options to either approve 3724a or decline 3724b the product tag from being applied to the post 3718c, and is also provided with the option 3724c to view additional information regarding the tagged product. Selecting the control element 3724a will cause the tag to either be applied to the post 3718c—meaning the tagged product will be viewable to other users in association with the post 3718c (see discussion above regarding products being tagged in posts, for example, with regard to
In some implementations, the logged-in user may need to affirmatively approve the associations (e.g., selection elements 3720a, 3722a, or 3742a) before the associations are made viewable to other user (e.g., before the posts 3718a-b appear in feeds of users who are socially connected to the logged-in user, before the product appears as a tag with the post 3718c). In other implementations, such associations identified through the tags may be presented prior to the logged-in user providing affirmative approval and/or after the logged-in user has declined to provide input (e.g., the graphical elements 3714a-c have previously been presented at least a threshold number of times in the GUI 601 (e.g., 1 time, 2 times, 5 times) without user input), but the associations may be altered after the user has provided input through the control elements 3720-3724. Other implementations are also possible.
The first group 3712 can be presented above the second group 3728 in the user activity feed in the GUI 601, so that the items needing user approval are more likely to be viewed and acted upon by the logged-in user. The groupings 3712 and 3728 can improve upon the GUI 601 by persistently maintaining activity items needing user review/approval at the top of the user activity feed without needing an additional tab, page, or menu to navigate to the items needing user review/approval. This can allow the GUI 601 to present a robust set of controls and features while minimizing (decluttering) the navigational features within the GUI 601, which can allow for the GUI 601 to be more intuitive and easier to use. Additionally, by using the groupings 3712 and 3728 (as opposed to presenting the graphical elements without these groupings), users can more readily and quickly locate information in the GUI 601 that is of interest.
Example scrolling input 3726 is received, causing the GUI 601 to scroll down the activity feed to present the second group 3728 of graphical elements 3730a-1, as depicted in
Additional scrolling input 3740 is received, causing the GUI 601 to scroll further down the activity feed to present more activity information for the second group 3728 of graphical elements 3730a-l. Referring to
The computer system 240 providing the social-retail platform can track and determine the product/order related information identified in the graphical elements 3730h-1 either directly or indirectly through communication with one or more of the affiliated computer systems 260. For example, the logged-in user can save the product 3734h and order the products 3734i-k on the social-retail platform provided by the computer system 240 via the GUI 304 for the home feed, which can cause the computer system 240 to generate product/order activity information to be presented in the GUI 601 together with social-related activity information (e.g., user 3732g following the logged-in user, user 3730f commenting on the logged-in user's post 3734f). Such combined product and social activity information in the GUI 601 can improve upon the GUI 601 by providing a single interface through which a user can stay informed of and interact with social and product activity information.
Similar to the description above with regard to
Similar to the description above with regard to
Referring to
Referring to
In this example, the server system 240 can store the transmitted post from the computing device 300 in a similar manner to the storage described above, but in this instance the post can be stored with a flag to request other user assistance in tagging the product instead of storing a product tag and corresponding product element in association with the post. Referring to
Referring to
Referring to
Example horizontal scrolling input 4040 is received over the image 4024, which causes the interface 4017 to present an alternate image 4042 for the tagged product, as depicted in
Example vertical scrolling input 4044 is received in the interface 4017, which causes the interface to scroll down and to present additional information for the tagged product, as depicted in
Additional vertical scrolling input 4062 is received through the interface 4017, which causes the interface to scroll further down and to present further information regarding the tagged product, as depicted in
As depicted by the example user input 4080 selecting the approve control 4020, the user in this example approves the tag for the product being tagged in the post 3718c. Approval of the tag for the post 3718c can cause the post 3718c to be subsequently presented in the GUI 304 on the computing device 300 (and other computing devices) with icons 4082 indicating the presence of a tagged product, as depicted in
Although the product tag was approved within the interface 4017, it could have alternatively and/or additionally been approved from within the user activity feed, such as through selection of the control element 3724a depicted in
Referring to
As described above with regard to
Referring to
Like the social post 360, the product element 4116 includes controls 4122-4128 through which users can interact with the product 4106. For example, the controls include a selectable element 4122 (“+” button, example of a selectable feature to save posts and product elements) through which a user can “save” the product element 4116 to her profile (see
The product element 4116 further includes product information, such as a merchant 4130 providing the product and a current price 4132 for the product. The merchant information 4130 can be selectable and can cause information about the merchant, such as user ratings for the merchant and other products offered by the merchant, to be presented (e.g., presented in an online store for the merchant either inside or outside of the social-retailer platform). The product element 4116 additionally includes a selectable shopping cart icon 4134 that a user can select to add the product 4106 that is depicted in the social post 360 to the virtual shopping cart indicated by the icon 305. For example, by selecting the shopping cart icon 4134, the product 4106 can be added to the shopping cart from within the social feed presented in the GUI 304 (without using another application or otherwise exiting the GUI 304). A user can, for instance, add the product element 4116 to the shopping cart and then continue scrolling vertically along the social feed or horizontally along the product feed (without having to reopen or refocus the computing device 300 on the GUI 304).
The product element 4116 further includes a review section with user reviews for the product 4106. The review section includes a “top review” portion 4136, which in this example is a review by user 4138 who is a member of the social-retail platform (as indicated by the icon 4140). The review section further includes a selectable icon 4142 to indicate whether this review is helpful/useful, a rating 4144 that the user 4138 gave the product, and a textual review 4146 of the product. The review section also includes a selectable element 4148 to expand/view all reviews (not just the top review 4136). The product reviews can be from one or more user groups, such as users who are part of the social-retail platform and/or users of one or more online retail stores where the product 4106 is offered.
In the depicted example, the user provides selecting input 4150 to the save icon 4122 that is presented with the product element 4116 and within the social feed of the GUI 304. Referring to
Saving the product element 4116 can cause the product element 3718 to appear in product tab 724 in the profile GUI 701 and/or for the post 360 that tagged the product element 3718 to appear in the posts tab 722 in the profile GUI 701. Additionally, information regarding the logged-in user saving the product element 4116 can be presented as news activity information in the activity feeds of other users who are socially connected to the logged-in user (similar to the activity information presented in the graphical element 3700b regarding the user 3702b having saved the post 360). Furthermore, information regarding the product element 4116 can also be presented in as user activity in the activity feed of the logged-in user (in the tab 602b), such as the product 4106 identified in the product element 4116 going on sale (similar to the information presented in the graphical element 3730h).
Referring to
For example, the GUI 4246 can present an interface through which a user of the device 4202 can view analytics related to user engagement with content that the user has created or is otherwise associated with, such as social media content (e.g., social media posts) with other types of content (e.g., product content, messaging content, productivity application content, news content). The GUI 4246 can allow a user to view and analyze user engagement with content elements along a variety of different dimensions, such as based content views, content saves (user actions persistently associating a content element to a user's profile), actions related to content tagged or otherwise identified in content elements (e.g., purchases of products tagged in content elements, selections of links included in content elements), and/or other user engagement-related metrics. For instance, the user of the computing device 4202 can be a user on a social network who has been designated as an “influencer”—meaning that the user has been identified as having at least a minimum level of social influence over other users on the social network (e.g., the user at least a threshold number of followers/fans/socially-connected users on the social network, content generated by the user on average has at least a threshold level of engagement by other users on the social network). Influencers can enhance overall user engagement with content on a content platform (e.g., social platform) and can receive incentives to produce content and to enhance user engagement with the content they generate. For instance, influencers can receive special benefits based on user engagement with content they generate, such as credits, discounts, payments, revenue percentages, promotion on various platforms, and/or other benefits. The GUI 4246 can be an interface that is provided to influencers to track user engagement with the content they generate along one or more dimensions of user engagement.
The GUI 4222 is another interface that can be provided to influencers to assist them in enhancing user engagement with the content they generate. For example, the GUI 4222 is part of a post creation interface through which the user of the computing device 4202 can generate and upload content to the server system 4204 to distribution to other users as part of a social platform. Conventionally, user generated content goes “live”—meaning it is accessible by and distributed to other users on a social platform—when it is uploaded to a server system hosting a social platform. However, engagement with user-generated content can vary dramatically depending on when the content first goes live. For example, content posted on Thursday and Friday afternoons may be viewed, commented on, and shared (example types of user engagement) with greater frequency than content that goes live on Sunday mornings. Likewise, the engagement with user-generated content can vary depending on the particular audience that is viewing the content, such as the group of users who follow or are otherwise socially connected with another user. The server system 4204 and/or the computing device 4202 can determine suggested days and times when new content that the user of the computing device 4202 is generating should go live to optimize user engagement, which are presented in the GUI 4222. The suggested days and times can be automatically determined based on data analysis (e.g., machine learning techniques) of a variety of data sources that can indicate future engagement with the new content, such as historical engagement data for content generated by the user of the computing device 4202, the types and composition of content generated by the user in comparison with the new content, engagement trends over time with the user's audience, and/or other factors. The GUI 4222 can additionally allow the user to manually designate a day and time when the new content should go live. By providing suggested days/times in the GUI 4222 to designate a future time when the new user-generated content goes live on the server system 4204, the computing device 4202 and the server system 4204 can improve the GUI 4222 by both simplifying the analysis around and designation of future times for a post to go live.
Similar to the GUI 4246, the GUI 4270 can allow a merchant to view and analyze user engagement with products tagged or otherwise identified in content elements along a variety of different dimensions, such as engagement information across different demographic categories for users who have engaged with the content elements, sentiment analysis related to the user engagement, and/or other factors. The system 4200 can provide a content platform through which different types of content elements can be associated with each other through content tags. For example, GUIs provided on client computing devices can include controls that allow users to designate first types of content and to tag second types of content in first types of content, such as tagging product elements (example second type of content) in user-generated images that are included in social media posts (example first type of content). Client computing device can upload these content associations (e.g., content tags) to the server system 4204, which can serve the multiple different associated content elements to the client computing devices for presentation in a single user interface on the client computing devices. For example, a GUI on a client computing device can present and seamlessly integrate social media content (e.g., user posts, comments, shared content) with other types of content (e.g., product content, messaging content, productivity application content, news content) using interfaces and controls that allow users to interact with each of the content items within a common content stream. Such a GUI can allow users to interact with content in a variety of ways, such as through social interactions (e.g., share, save, comment) and other types of interactions (e.g., purchasing, messaging, productivity, news distribution) without exiting the GUI and its content stream to use other, specifically designed applications or interfaces. Instead of providing a GUI that presents a single type content (e.g., social media content, product content) and that links to other applications/GUIs that are launched to present other types of content, such a GUI can be programmed present multiple types of content without launching or otherwise relying on another application/GUI.
User actions and engagement with multiple different types of content that are presented through such a GUI can be uploaded to and analyzed by the server system 4204, and used to provide the user engagement information for a merchant in the GUI 4270. The user engagement information can draw on user engagement across multiple different types of content that are associated with a merchant's products, such as user engagement with social media posts that tag the merchant's products and user engagement with product elements that are presented to users with the social media posts. For example, the GUI 4270 can present user engagement information identifying a number of social media posts that have tagged a particular product, a number of times that either the social media posts or product elements for the particular product have been saved by users (persistently associated with their profiles), and a number of times that the product has been purchased on the social platform. Additional and/or alternative dimensions of user engagement on a content platform providing associations between multiple different content types are also possible in the GUI 4270, which can also be adapted to other entities (e.g., news sources, organizations).
The computing devices 4202 and 4266 can be any of a variety of client computing devices, such as a mobile computing device (e.g., smartphone, tablet, wearable device, smartwatch), laptop computer, desktop computer, and/or other types of user computing devices. The computing devices 4202 and 4266 can communicate with the server system 4204 over one or more networks (e.g., internet, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network, mobile data network, or any combination thereof) to obtain and present user engagement information in the GUIs 4222, 4246, and 4270. The server system 4204 can be a computer system (e.g., cloud computer system) that either by itself or through affiliate networks is programmed to serve and provide features for multiple different types of content (e.g., social media, messaging, e-commerce, and/or other types of content), tracking user actions and engagement with content, and to perform data analysis to determine user engagement information. For example, the server system 4204 may directly provide social networking features and can communicate with other affiliate computer systems to provide product-related features (e.g., reviews, purchasing, order tracking). In other examples, the server system 4204 may directly provide both social networking features and product-related features. Other configurations of the server system 4204 among one or more other computer systems are also possible.
As indicated by step A (4212), the server system 4204 receives user-generated content, such as social media posts that tag other types of content (e.g., merchant-provided product content, news content, messaging content). For example, the server system 4204 can receive social media content (e.g., posts, comments, shared content) from the client computing device 4202 and/or other computing devices, and can retrieve other types of content that are tagged in the social media content, such as retrieving product-related content (e.g., product information, product images, product reviews) from merchant computer systems. The server system 4204 can store the received user-generated content in a data repository 4206 (e.g., cloud storage system) and the other tagged content, from which it can be served by the server system 4204 to client computing devices.
As indicated by step B (4214), the server system 4204 also receives user activity information from client computing devices that identifies both explicit and implicit user actions performed with regard to content elements served by the server system 4204. Client computing devices can be programmed to report activity information in response to user actions performed, such as users selecting or using various controls features (e.g., save button, like button, share feature, entering a comment, adding a product to a virtual shopping cart, selecting a content element, swiping/scrolling between content elements in a content stream, viewing a content element, creating a post, tagging other content elements). For example, the server system 4204 can distribute content to client computing devices based on social connections between users and/or other designated interests/associations, which can be presented in GUIs on the client computing devices with various features through which users can interact with the content elements. User interactions can be reported back to the server system 4204 as user activity information, which the server system 4204 can store in a user activity data repository 4208 (e.g., cloud storage system). The server system 4204 can retrieve and use the activity information stored in the data repository 4208 to determine user engagement with various content elements, and to serve engagement information to the computing devices 4202 and 4266 for presentation in the GUIs 4222, 4246, and 4270.
As indicated by step C (4216), the server system 4204 can also receive product purchase information that identifies products that have been or are being purchased by users in relations to content elements served by the server system 4204. The product purchase information can be generated by the server system 4204 (e.g., in instances where the server system 4204 is designated to process product purchases for products tagged in a content element served by the server system 4204) and/or by one or more affiliate computer systems through which product purchases via content elements served by the server system 4204 (e.g., in instances where the affiliate computer systems are designated to process product purchases for products tagged in a content element served by the server system 4204). Product purchase information 4216 can identify a variety of information related to product purchases, such as identifying a user who purchased the product, a product element that corresponds to the product, a content element (e.g., social post) that tagged the product element and from which the user purchased the product, and revenue for the purchase. The server system 4204 can receive the product purchase information and store it in a product purchase data repository 4210 (e.g., cloud storage system), which can be used to determine and serve engagement information for both the product elements representing the products that were purchased as well as the content elements that tagged the product elements.
As indicated by step D (4218), the server system 4204 can provide suggested dates and times to post (go live) with content elements that are being generated through the GUI 4222 on the computing device 4202. For example, the GUI 4222 can include various features that a user of the device 4202 can use to designate user-generated content 4224, such as selectable buttons through which media elements can be selected (e.g., photos, videos, audio) and text boxes through which text and tags can be designated. The GUI 4222 can poll the server system 4204 for suggested dates/times when the user begins or resumes working on a post, which can cause the server system 4204 to determine engagement information relevant to the user, the user-generated content 4224 to be included in the post, and the user's expected audience for the post. For example, the server system 4204 can identify previous content information (e.g., type of content, time when content element was published) that the user of the computing device 4202 has generated from the user-generated content repository 4206, and can use identifiers for those content elements to retrieve user activity information (e.g., type of activity, time when the activity occurred) related to those content element from the user activity repository 4208 and the product purchase repository 4210. The server system 4204 can use the user activity information to identify days (e.g., days of the week, weeks of the month) and times (e.g., morning, afternoon, evening, specific times) when the user's audience (e.g., followers, other users who are socially connected to the user of the device 4202) has historically engaged with the content generated by the user of the computing device 4202 at a high rate (e.g., at least a threshold number of user actions performed with regard to content elements posted at particular day and time). The server system 4204 can use any of a variety of appropriate data analysis and/or statistical techniques to determine particular days and times, such as machine learning algorithms.
As part of the determination of particular days and times for the user to schedule a post, the server system 4204 can weigh particular historical data more heavily than other historical data based on a variety of factors, such as the similarity between the proposed user-generated content 4224 for the new post and previous user-generated content, the use of currently trending or popular tags (e.g., hashtags) in the content 4224 in comparison to the use of previously trending/popular tags in previous user-generated content, and/or the seasonality of content elements (e.g., product taxonomy for products tagged in the user-generated content 4224, keywords and phrases used in the user-generated content 4224, seasonal hashtags used in the user-generated content 4224, inclusion of images/videos with particular color palettes in the user-generated content 4224) used in the user-generated content 4224 relative to the seasonality of content elements used in previous user-generated content. For example, the more similar the user-generated content 4224 is to previous user-generated content (e.g., in terms of text, images, tags, tagged product taxonomy), the more likely the engagement information for that previous user-generated content will accurately indicate the engagement with the user-generated content 4224, and the more heavily that engagement information can be weighted relevant to other engagement information.
The server system 4204 can additionally determine the likely engagement for the expected audience for the user-generated content 4224 based on historical engagement for those users included in the expected audience (e.g., users who are following or otherwise socially connected with the user of the computing device 4202). For instance, the audience for content posted by the user of the computing device 4202 can change over time. To accurately capture an expected response to the user-generated content 4224, the server system 4204 can identify a current set of users to whom the user-generated content 4224 will be provided (e.g., identify followers from a social graph maintained by the server system 4204), can retrieve their historical activity from the user activity repository 4208, and can use that to identify particular times when the users have been most active and engaged with user-generated content hosted by the server system 4204.
The server system 4204 can use one or more of these predictive engagement sources—historical engagement with the user's previous content, weighting some engagement instances based on similarities between the user-generated content 4224 and the previous content, historical engagement with content elements for the expected audience for the user-generated content 4224, and/or other predictive engagement sources—to determine particular days and times when the user-generated content should be posted/go live on the server system 4204. The server system 4204 can provide the suggested days and times for the user-generated content 4224.
The computing device 4202 can receive the suggested days and times and can present the suggestions in the GUI 4222 to the user, for example, in a suggested time section 4226 as selectable graphical elements 4228a-b that can be readily selected by the user. The GUI 4222 can also include a section 4230 with fields 4232a-b through which the user can manually designate a future day and time for the post to be published/go live on the server system 4204. Once the user has either selected an automatically suggested future day/time for the post (through graphical elements 4228a-b) or manually designated a day and time through the fields 4232a-b, the user can select the post button 4234 (as indicated by step F, 4236), which can cause the computing device 4202 to upload schedule information 4240 designating the user-generated content 4224 for distribution by the server system 4204 at a future time (as opposed to being instantaneously made available for distribution upon being uploaded), as indicated by step G (4238). The server system 4204 can receive the schedule information 4240 and use it to store the user-generated content 4224 in the user-generated content repository 4206 with one or more flags (e.g., flag to not yet publish the content 4224), values (e.g., timestamp designating the future time at which the content 4224 can go live/publish), and/or scripts (e.g., cron job to remove the flag for the content 4224 at particular time in the future) designating the content 4224 for distribution at the future time identified in the schedule information 4240.
The server system 4204 can also provide engagement-based analytics on the client computing device 4202 related to the performance of content generated by the user of the device 4202. For example, once the user-generated content 4224 is published, the user of the computing device 4202 can access the analytics GUI 4246 for the content 4224 to analyze user engagement with the content 4224. The computing device 4202 can request analytics information to present in the GUI 4246 from the server system 4204 for one or more content elements, which the server system 4204 can determine from the user activity and product purchase information for the content elements from the repositories 4208-4210. For example, the server system 4204 can determine user engagement with the user-generated content 4224 (after it has gone live/published) across a number of dimensions, such as a number of views of the content 4224, a number of times either the content 4224 or other content elements it tags have been saved, and/or a number of times that products tagged in the content 4224 have been purchased. Other dimensions are also possible. Such data can additionally be plotted over time, so that the user of the computing device 4202 is able to view trends with regard to the content element 4224.
The server system 4204 can provide the analytics information to the client computing device (as indicated by step H, 4242), which the client computing device 4202 can present in the GUI 4246 (as indicated by step I, 4244). The example GUI 4246 can include a variety of different features and graphical elements for presenting the analytics information, which can pertain to a single content element (e.g., single social media post) and/or to a combination of content elements (e.g., multiple social media posts). The GUI 4246 also includes selectable tabs 4248a-c that the user of the device 4202 can use to toggle between analytics information for different dimensions, such as content views (4248a), content saves (4248b), and product purchases for products tagged in content (4248c). In the depicted example, the product purchase tab 4248c is selected, which causes the GUI 4246 to present a graph 4250 plotting product purchases 4252 (e.g., number of product purchases, revenue from product purchases) related to one or more content elements over time 4254 (e.g., current day, week, month, year) with influencer revenue information 4256 related to one or more products tagged in the one or more content elements. Example influencer revenue information 4256 depicted in the GUI 4246 includes a number of products sold 4258, a percentage of the product sales that have been done in-network 4260 (as opposed to being out of network), and an amount revenue 4262 from product sales earned by the user of the device 4202. In-network refers to sales processed through the server system 4204 and/or through affiliated computer systems that have pre-established arrangements with the server system 4204 (and its users) to share revenue from product sales generated through content on the server system 4204 (e.g., generated from social posts).
Users designated as influencers on the server system 4204 can receive a portion (e.g., percentage, per product amount) of the revenue from in-network sales that originate through content (e.g., social media posts tagging products) they have generated and distributed to other users through the server system 4204. Influencers may not receive revenue from sales that are out of network. For example, an influencer can receive a share of revenue from product sales (and/or other activity) for products that are tagged in social media posts generated by the influencer. Product sales attributed to an influencer can be limited to those that stem directly from the content generated by the influencer. For example, a social post (tagging a product) created by an influencer can be distributed to other users who are socially connected to the influencer (e.g., following the influencer, friends with the influencer). The post can be presented on client computing devices in user interfaces through which these other users can purchase the products tagged in the post, such as through purchasing the product from within a social feed, selecting a link/graphical element for the product from within the post and purchasing on the product another page/site, and/or saving the post (and/or tagged product) and purchasing the product at a later time from a repository of saved content. Such purchases can be directly attributed to the post and can be designated as having originated with the influencer, and a portion of the revenue from the purchase can be allocated to the influencer through data stored in the repositories 4206-4210 (described in greater detail below with regard to
The server system 4204 can be programmed to not allocate product purchases that indirectly stem from the user-generated content element. For example, if an influencer generates a social post (tagging a product) that is shared by one of their followers, and then the product is purchased by another user (not a follower) who views the shared content, that purchase may not be attributed to the influencer because it is not direct. Such indirect purchasing of products can be determined by the server system 4204 and used to designate data regarding directly attributable product purchases in the repositories 4208-4210. Providing compensation for only directly attributed purchases can provide an incentive to influencers to cultivate a rich following of users instead of relying other people who are socially connected with their followers to make purchases.
The server system 4204 can additionally provide analytics to merchant computing devices, such as the computing device 4266, regarding one or more products that are sold by the merchant. For example, the computing device 4266 can request analytics related to a particular product from the server system 4204, which can prompt the server system 4204 to retrieve relevant information from the repositories 4206-4210 and to provide analytics information to the device 4266, as indicated by step J (4264). The analytics information can be presented in the GUI 4270 on the computing device 4266, as indicated by step K (4268). The analytics information can be provided over a variety of dimensions, including both product and social dimensions related to content elements that tagged the product. For instance, analytics information can be across the multiple example dimensions 4280a-c, which include a number of posts that tagged the product (4280a), a number of save instances in which users either saved a post tagging the product or saved the product directly (4280b), and a number of times the product was purchases (4280c).
In the depicted example, the GUI 4270 includes a product analytics section 4272 and a sentiment analytics section 4282. The products analytics section 4272 includes example histograms (4278) presenting information on a number of instances of social and product action (4274) across multiple different demographic categories (4276), which the server system 4204 can determine from, for example, user profile information that users provide to the server system 4204. The sentiment analytics section 4282 also includes example histograms 4288 that compare a number of instances (4284) in which particular user responses (4286) are provided with regard to the product (and/or posts tagging the product). The responses 4286 can be, for example, different enumerated reactions that users can register to a content element (e.g., social post) and/or tagged product element, such as liking or loving an element. The responses 4286 can also include reactions that users enter through comments for a content element and/or tagged product element, such as emojis, tags (e.g., hashtags), keywords, links, animated media elements (e.g., animated GIFs), and/or other reactions. The sentiment analytics 4282 can provide a merchant with insight into how users view a particular product and content elements that tag the product. For example, the post histogram for Response A can indicate a number of instances of the Response A in posts and/or in reactions/comments to posts tagging the particular product, the save histogram can indicate a number of instances of those posts being saved by users, and the purchase histogram can indicate a number of instance that the particular product has been purchased from those posts.
Additional analytics features and dimensions can be presented in the merchant GUI 4270. For example, the merchant GUI 4270 can permit a merchant to drill-down into particular categories of data and/or to aggregate particular groupings of data. The merchant GUI 4270 can also allow merchants to track revenue that is being allocated to influencers and to make adjustments thereto. For example, the merchant GUI 4270 can allow a merchant to increase the revenue allocation to influencers for a particular product to incentivize influencers to consider a social post tagging that product.
Referring to
Referring to
The server system 4204 can store the post in a manner that will permit the server system 4204 to serve it to client devices, but also to track and attribute product purchases to the influencer's social post. For example, server system 4204 can store posts with unique identifiers that are associated with the user who created it and with any products that are tagged in the content. For example, the following simplified database schema can be used to store data entries in the user-generated content data repository 4206:
The server system 4204 can subsequently provide the post created by the influencer to the user computing device 4316 (4314), such as in response to a request for content from the computing device 4316. The computing device 4316 can present the post 4317 in the home feed GUI 304. For example, the post 4317 can include attribution information 4318 identifying the influencer as the source of the post, such as the influencer's image and username. The post includes icons 4320-4322 indicating that the post 4317 includes a tagged product, and the product icon 4322 being highlighted indicates that the user of the device 4316 the product element (product 4304) associated with the post 4317 is currently being shown. For example, the social post content can originally be presented in the GUI 304, but the user of the device 4316 may display the product element 4304 in response to particular types of user input via the GUI 304, such as horizontal scrolling or swiping input with regard to the post 4317. The product element 304 that is presented includes various information associated with the product element, including a button 4324 through which the user can purchase or add the product (glasses) to the virtual shopping cart 305. As indicated by the user input 4326 selecting the button 4324, the user can purchase the product element 4304 either directly from within the GUI 304.
In response to the user input 4326, the computing device 4316 can transmit information indicating that the product element 4304 tagged in the post 4317 is being purchased by the user. The server system 4204 can store information indicating that this purchase, which is directly attributed to the post 4317, should be allocated to the influencer who created the post 4317. For example, the server system 4204 can log information into the user activity data repository 4208 and/or the product purchases repository 4210 that indicates that the product purchase should be allocated to the post 4317 and the influencer. For example, products that are purchased directly within the an interface presenting a content element, such as a social feed (e.g., GUI 304), can be processed by the server system 4204 and logged directly in the product purchases repository 4210, such as in the following format:
In instances in which the product 4304 purchase is processed on an affiliated computer system (as opposed to being processed directly on the server system 4204), the purchase can be attributed to the social post 4317, for example, logging instances of user action that direct a user from the user-generated content element to another page/site, and then correlating that user action to purchase information. For example, when the user of the device 4316 selects the button 4324 (or a link, or other graphical element) for the tagged product 4304 from the social media post 4317, the instance of that user selection can be reported by the client computing device 4316 to the server system 4204 and logged in the repository 4208, such as in the following format:
In another example, if the user of the device 4316 were to save the product element 4304, by selecting the “+” button, and subsequently purchasing the product element 4304, the user purchase of the saved product (persistently saved in association with a user's profile) can also be directly attributed to the social post 4317 and the influencer (user of device 4302) from which the product element that were originally been saved (or otherwise persistently associated with) the user's profile. For example, when a user saves the social post 4317 that tags the product element 4304 and/or saves the product element 4304 directly, the product element 4304 and the social post 4317 can be associated with the user (User A) who performed the action, such as in the repository 4208 in the following data format:
The server system 4204 can allocated the product purchase to the influencer (4330) in this instance based on the purchase having directly originated from the social post 4317 created by the influencer. For example, the server system 4204 can reference the product purchase repository 4210 to determine and allocate product purchases to influencers (and other users) on the server system 4204. The server system 4204 can determine percentages (or other amounts) of revenue from particular product purchases attributed to an influencer. The server system 4204 can maintain various allocations of revenue for particular products depending on, for example, the merchant, the product manufacturer, the product SKU, current deals/offers extended to the influencer, the site processing the purchase (e.g., the server system 4204, in-network affiliate, out of network) and/or other factors. The server system 4204 can use this to determine an amount that has been earned by influencers who are compensated for driving product purchases through their social activity, but can also be used to identify other users who should potentially be offered the opportunity to be influencers (e.g., users who are driving significant amounts of social engagement with their content, such as through product purchases).
The server system 4204 can provide information on the post 4317 and associated product purchases to the computing device 4302 for presentation in the activity feed (4332). For example, the activity feed GUI 601 can present example activity feed entries 4334 and 4336 relating the influencer's revenue allocation for the product element 4304 having been tagged in the post 4317. In particular, the entry 4334 indicates that the influencer has obtained a revenue milestone for products purchased via the post (identified by the icon 4338 and the link 4340), and included information 4342 identifying the milestone (e.g., number of purchases, amount of revenue allocated to the influencer) and providing a link 4344 to view analytics for the post (e.g., view the analytics presented in the interface 4246). The entry 4336 indicates that the user of the computing device 4316 (identified by the link 4346) purchased the product element 4304 (identified by the link 4348) tagged in the post 4317 (identified by the icon 4338 and link 4340).
Referring to
However, in this example the first user on the computing device 4316 does not purchase the product element 4304, but instead saves the product element by selecting the save button 4352, as indicated by the selection input 4354. In response to the button 4352 being selected, the computing device 4316 can transmit a request for the post 4317 and/or the product element 4304 to be saved in association with an account for the first user, as indicated by 4356. The server system 4204 can store data regarding the save in the user activity repository 4208, as described above, which the first user can access from his/her profile at a later date.
The first user saving the post 4317 and/or the product element 4304 tagged in the post 4317 can additionally cause the server system 4204 to transmit the post 4317 and/or the product element 4304 to other users who are following (or otherwise socially connected to) the first user, such as the second user. These other users may not be following the influencer, however the influencer's content may be distributed to them based on the actions of users who are following (or otherwise socially connected to) the influencer. For example, the post can be provided by the server system 4204 to the computing device 4364 associated with the second user, as indicated by 4358. The post 4317 and the product element 4304 can be presented in the GUI 304 on the computing device 4364 in the similar manner as it is presented on the computing device 4316, but the attribution for the post 4317/product element 4304 can be different. For example, attribution information 4360 can identify the socially connected user (first user) and the action that user performed (save) to cause the post 4317/product element 4304 to be presented in the GUI 304. However, the original creator of the post 4317 can additionally be identified in the “via” section 4362, which identifies the influencer 4318 who created the post 4317.
In this example, the second user selects a purchase button 4366 (similar to the button 4324) to purchase the product element 4304, as indicated by the selecting input 4368. In response the button 4366 being selected, the computing device 4364 can transmit information regarding the product purchase to the server system 4204, as indicated by 4370. For example, the computing device 4364 can transmit a save identifier (<save id>—identifying the instance of the first user saving the post 4317/product element 4304), a user identifier for the second user (<user id>—identifying the second user), and information indicating that the second user is purchasing the product element 4304.
The server system 4204 can receive this information and determine whether to allocate the purchase to the original creator of the post 4317. However, unlike the purchase described above with regard to
The server system 4204 can provide information related to the post 4317 and its performance to the influencer's computing device 4302, as indicated by 4374. Similar to the description in
For example, user input 4400 selecting the 18-35 demographic category 4406 in the product analytics section of the GUI 4270 can cause detailed product analytics information 4408 for this demographic category to be presented on the computing device 4266. For example, the computing device 4266 can request and present detailed information for the selected demographics category, such as presenting an ordered ranking of posts 4410-4412 that have tagged the relevant product(s) to the analytics. In this example, the posts 4410-4412 (only a portion of which are depicted, others can be presented via scrolling in the interface) can include a variety of information related to each post that has tagged the relevant product(s), such as the number of sales, the number of impressions, the number of saves, whether other products were also tagged in the post, how the product sales compare to other sales stemming from the user's posts, qualitative analysis of the user's post (e.g., image quality, textual description quality), and/or other information. A variety of information can be further drilled down into and/or analyzed by the user via the selectable links, such links to view the post, to view a timeline of purchases related to the post, to contact the user directly, to provide additional product proposals to the user, and/or to modify a current percentage of revenue allocated by the merchant to the user. Other features are also possible.
In another example, user input 4402 selecting the example sentiment 4404c (an emoji) from multiple different sentiments 4404a-c (e.g., keywords, hashtags, emojis) related to the product(s) is received. In response to the user input 4402, sentiment analytics information 4414 related to the selected sentiment 4404c is presented on the computing device 4266. The sentiment analytics information 4414 includes analytics information on posts 4416, on save instances 4418, and on product purchases 4420. Several of these analytics provide selectable links through which the user of the device 4266 can further drill down into or analyze the underlying data, such as viewing the individual posts that have tagged a product, posts that have included the sentiment 4404c in the description, posts for which the sentiment 4404c has been provided in the comments, posts for which the sentiment 4404c has been identified as the top emoji response, posts that have been created by influencers, a number of save instances, a number of saves converted to purchases, an number of saves via influencers posts, a number of product purchases, a number of product purchases via influencers, an average revenue split with influencers, and/or other relevant features.
Referring to
In the depicted example, the user selects (4520) the proposed option 4510 and then selects (4522) the schedule post feature 4500. This user input 4520-4522 causes the client computing device 300 to transmit the post with the delayed/future post information to the server system 240, which can schedule the post to go live (change from being private to public) at the user-designated time. For instance, as indicated by the arrow 4524, in the depicted example the server system 240 will delay the post from going live until Thursday at 7:00 pm (option 4510), at which point the post will be presented in the GUI 304 (as depicted in
Referring to
Although particular combinations and sequences of graphical elements and inputs are described above, other combinations and sequences are also possible. For example, social feeds can be horizontally scrollable and product feeds can be vertically scrollable. In another example, users may scroll to the left from a social post along a product feed to navigate to product elements. Product elements can additionally and/or alternatively include a selectable feature to purchase the product directly from within a social feed (instead of adding a product to a virtual shopping cart). Other features and combinations are also possible.
Computing device 4600 includes a processor 4602, memory 4604, a storage device 4606, a high-speed interface 4608 connecting to memory 4604 and high-speed expansion ports 4610, and a low speed interface 4612 connecting to low speed bus 4614 and storage device 4606. Each of the components 4602, 4604, 4606, 4608, 4610, and 4612, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 4602 can process instructions for execution within the computing device 4600, including instructions stored in the memory 4604 or on the storage device 4606 to display graphical information for a GUI on an external input/output device, such as display 4616 coupled to high speed interface 4608. 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 4600 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 4604 stores information within the computing device 4600. In one implementation, the memory 4604 is a volatile memory unit or units. In another implementation, the memory 4604 is a non-volatile memory unit or units. The memory 4604 may also be another form of computer-readable medium, such as a magnetic or optical disk.
The storage device 4606 is capable of providing mass storage for the computing device 4600. In one implementation, the storage device 4606 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 4604, the storage device 4606, or memory on processor 4602.
The high-speed controller 4608 manages bandwidth-intensive operations for the computing device 4600, while the low speed controller 4612 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 4608 is coupled to memory 4604, display 4616 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 4610, which may accept various expansion cards (not shown). In the implementation, low-speed controller 4612 is coupled to storage device 4606 and low-speed expansion port 4614. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
The computing device 4600 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 4620, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 4624. In addition, it may be implemented in a personal computer such as a laptop computer 4622. Alternatively, components from computing device 4600 may be combined with other components in a mobile device (not shown), such as device 4650. Each of such devices may contain one or more of computing device 4600, 4650, and an entire system may be made up of multiple computing devices 4600, 4650 communicating with each other.
Computing device 4650 includes a processor 4652, memory 4664, an input/output device such as a display 4654, a communication interface 4666, and a transceiver 4668, among other components. The device 4650 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 4650, 4652, 4664, 4654, 4666, and 4668, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
The processor 4652 can execute instructions within the computing device 4650, including instructions stored in the memory 4664. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Additionally, the processor may be implemented using any of a number of architectures. For example, the processor 4610 may be a CISC (Complex Instruction Set Computers) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimal Instruction Set Computer) processor. The processor may provide, for example, for coordination of the other components of the device 4650, such as control of user interfaces, applications run by device 4650, and wireless communication by device 4650.
Processor 4652 may communicate with a user through control interface 4658 and display interface 4656 coupled to a display 4654. The display 4654 may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface 4656 may comprise appropriate circuitry for driving the display 4654 to present graphical and other information to a user. The control interface 4658 may receive commands from a user and convert them for submission to the processor 4652. In addition, an external interface 4662 may be provide in communication with processor 4652, so as to enable near area communication of device 4650 with other devices. External interface 4662 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
The memory 4664 stores information within the computing device 4650. The memory 4664 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 4674 may also be provided and connected to device 4650 through expansion interface 4672, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 4674 may provide extra storage space for device 4650, or may also store applications or other information for device 4650. Specifically, expansion memory 4674 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 4674 may be provide as a security module for device 4650, and may be programmed with instructions that permit secure use of device 4650. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 4664, expansion memory 4674, or memory on processor 4652 that may be received, for example, over transceiver 4668 or external interface 4662.
Device 4650 may communicate wirelessly through communication interface 4666, which may include digital signal processing circuitry where necessary. Communication interface 4666 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 4668. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 4670 may provide additional navigation- and location-related wireless data to device 4650, which may be used as appropriate by applications running on device 4650.
Device 4650 may also communicate audibly using audio codec 4660, which may receive spoken information from a user and convert it to usable digital information. Audio codec 4660 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 4650. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 4650.
The computing device 4650 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 4680. It may also be implemented as part of a smartphone 4682, personal digital assistant, or other similar mobile device.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), peer-to-peer networks (having ad-hoc or static members), grid computing infrastructures, and the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Although a few implementations have been described in detail above, other modifications are possible. Moreover, other mechanisms for performing the systems and methods described in this document may be used. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
This application is a continuation of U.S. patent application Ser. No. 17/745,318, which is a continuation of U.S. patent application Ser. No. 16/866,344, filed May 4, 2020, which is a continuation of U.S. patent application Ser. No. 15/799,599, filed Oct. 31, 2017, which claims the benefit of U.S. Provisional Application Ser. No. 62/445,538, filed Jan. 12, 2017; U.S. Provisional Application Ser. No. 62/445,531, filed Jan. 12, 2017; U.S. Provisional Application Ser. No. 62/416,034, filed Nov. 1, 2016; U.S. Provisional Application Ser. No. 62/416,052, filed Nov. 1, 2016; U.S. Provisional Application Ser. No. 62/416,046, filed Nov. 1, 2016; U.S. Provisional Application Ser. No. 62/416,065, filed Nov. 1, 2016; U.S. Provisional Application Ser. No. 62/416,061, filed Nov. 1, 2016; U.S. Provisional Application Ser. No. 62/416,073, filed Nov. 1, 2016; U.S. Provisional Application Ser. No. 62/416,070, filed Nov. 1, 2016; and U.S. Provisional Application Ser. No. 62/416,091, filed Nov. 1, 2016. The disclosures of the prior applications are considered part of (and are incorporated by reference) in the disclosure of this application.
Number | Date | Country | |
---|---|---|---|
62445538 | Jan 2017 | US | |
62445531 | Jan 2017 | US | |
62416034 | Nov 2016 | US | |
62416052 | Nov 2016 | US | |
62416046 | Nov 2016 | US | |
62416065 | Nov 2016 | US | |
62416061 | Nov 2016 | US | |
62416073 | Nov 2016 | US | |
62416070 | Nov 2016 | US | |
62416091 | Nov 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17745318 | May 2022 | US |
Child | 18190573 | US | |
Parent | 16866344 | May 2020 | US |
Child | 17745318 | US | |
Parent | 15799599 | Oct 2017 | US |
Child | 16866344 | US |