The present disclosure is directed, in general, to containerized software, and more specifically, to systems and methods for distributing containerized software.
Online shopping has increased in recent years. Consumers use technology to simplify the shopping experience to shop from home without needing to travel to the store. Merchants have become increasingly competitive to market their products and services to consumers over the Internet. Traditionally, when a consumer sees an advertisement for a product or desires to purchase something online, the consumer needs to visit the website for the merchant in order to complete the transaction. This may be undesirable in certain situations. For example, consumers may not wish to be distracted by advertisements or may not wish to leave the website that they are viewing in order to purchase something. As a result, online sales potential is diminished due to lack of convenience from the consumer perspective. Additionally, hosts of the website the consumer is viewing may not want consumers to leave their website to go transact business elsewhere.
Videos and other types of media are often popular among viewers. Websites, such as YouTube, allow users to post videos for others to view. Some videos gain popularity that can be tracked through number of views or “hits.”
Monetization of media content can present challenges even despite the popularity of the video. For example, some websites provide advertising that is displayed prior to the video or elsewhere on the webpage. Such advertisements may interfere with the video content and may annoy viewers. While website advertisement may generate some revenue, that revenue is often primarily retained by the website hosting the video content. This results in a dynamic where the website doing the hosting profits financially while the creators of the video content, although gaining notoriety, often struggle to see a return on investment.
Accordingly, there is a need for methods, systems, devices and computer readable media that take into account one or more of these issues and possibly other issues as well. For example, there is a need to bring the store to the consumer.
According to various embodiments of the present disclosure, methods, systems devices and computer readable media are disclosed for enabling containerized software.
In one embodiment, a method is provided for including objects with media content. The method includes receiving, at one or more servers, a request for the media content to be displayed at an endpoint. The method includes identifying information about an environment associated with the endpoint. The method includes identifying a set of objects to include in a container for the media content based on the information identified about the environment. At least one of the objects includes program code for completing an electronic commerce transaction during display of the media content. Additionally, the method includes sending, by one or more servers, the set of objects to the endpoint.
Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
For a more complete understanding of the present disclosure and advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts:
Examples of an endpoint(s) include, but are not necessarily limited to, a computer or computers (including servers, applications servers, enterprise servers, desktop computers, laptops, net books, tablet computers (e.g., IPAD)), a switch, mobile phones (e.g., including IPHONE and Android-based phones), networked televisions, networked disc players, components in a cloud-computing network, or any other device or component of such device suitable for communicating information to and from the communication network 130. In various embodiments, the endpoint(s) 110 and 120 may be a website or email message. Endpoints may support Internet Protocol (IP) or other suitable communication protocols. Endpoints may additionally include a medium access control (MAC) and a physical layer (PHY) interface that conforms to IEEE 801.11. If the endpoint is a device, the device may have a device identifier, such as the MAC address, and may have a device profile that describes the device.
The communication network 130 and links 105, 115 and 125 to the communication network 130 may include, but is not limited to, a public or private data network; a local area network (LAN); a metropolitan area network (MAN); a wide area network (WAN); a wireline or wireless network (GSM, CDMA, LTE, WIMAX, or the like); a local, regional, or global communication network; portions of a cloud-computing network; a communication bus for components in a system; an optical network; a satellite network; an enterprise intranet; other suitable communication links; or any combination of the preceding. In particular embodiments, portions of the links 115, 125 or communication network 130 may be on the Internet.
Although an endpoint generally appears as being in a single location, the endpoint(s) may be geographically dispersed, for example, in cloud computing scenarios. As used in this document, “each” may refer to each member of a set or each member of a subset of a set.
When the endpoints(s) 110 and 120 communicate with one another, any of a variety of security schemes may be utilized. As an example, in particular embodiments, endpoint(s) 110 may represent a client and endpoint(s) 120 may represent a server in client-server architecture. The server and/or servers may host a website, and the website may have a registration process whereby the user establishes a username and password to authenticate or log into the website. The website may additionally utilize a web application for any particular application or feature that may need to be served up to the website for use by the user.
Embodiments of the present disclosure provide innovative new methods for merchants to reach their customers online. In the traditional online sales model, merchants need to create search or display ads which show up when online consumers visit search engine sites or various web properties. If the consumer sees an interesting ad related to a product or service, they need to leave their current activity and visit some other web destination to discover more information or make online purchases. Consumers have specific online behavior patterns. If they are actively shopping, then the traditional multistep model is workable. The traditional advertising sales model requires that the consumer stop what they are doing and visit some other online destination. However, if they are on a social site interacting with friends, reading the news, playing games, or engaged in other online activities, they are much less likely to leave their current activity to visit some external Internet destination.
Various embodiments of the present disclosure bring the product information or store to the consumer. Various embodiments of the present disclosure utilize an innovative new Smart Container™ code/technology that virally syndicates across the web, for example, using components described with reference to
Shopping and marketing experiences can be enhanced when interactive media is used. The container 205 serves up interactive media to users. For example, one of the objects 210 in the container 205 is a media player 215. The media player 215 includes instructions and parameters for rendering or otherwise displaying media content in a display unit 220 located at the endpoint 225. The media player 215 displays or streams media content from media server(s) 230 in the display unit 220 at the endpoint 225. For example, the media player 215 may reference a URL or other location to stream media content from the media server(s) 230. In some examples, the media player 215 may stream content from websites, such as YouTube™. Examples of media content that may be displayed include video data (such as video clips and animation), image data (e.g., still images from the video data, advertisements, pictures of goods or services, etc.) and audio data (e.g., narration or marketing content associated with the video data or the image data, music or songs). Various embodiments recognize that one of the most appealing forms of media for sales and shopping is video. Video allows a much more lifelike representation than text or static pictures. Video also creates a rich product browsing or shopping experience.
In various embodiments of the present disclosure, the container 205 supports many different types of transactions. For example, the container 205 can be configured in a variety of ways to address an entire value chain of online marketing and shopping. The value chain of online marketing and shopping includes impressions, clicks (e.g., enticing a viewer to click on an object and be directed to a different website or to different content within the container 205), lead generation (e.g., submitting personal information with a request for offers of products or service), and performing electronic commerce transactions. Electronic commerce is the buying and selling of products or services over computer networks, such as the Internet. Electronic commerce transactions are transactions associated with electronic commerce. In non-limiting examples, electronic commerce transactions include the purchase or sale of goods and services and donation of items of value (e.g., money, goods or services) to an organization (e.g., a charity, campaign, cause, etc.). In other non-limiting examples, electronic commerce transactions may encompass activities (such as impressions, clicks or lead generation) that lead up to other electronic commerce transactions (such as the purchase or sale of goods and services).
The container 205 includes transaction objects 235 to support the different types of transactions. The transaction objects 235 include code for marketing and completing transactions within the container 205. For example, the transaction objects 235 may include images and information about a selection of products or services being offered, data for competing payment transactions, an electronic shopping cart and/or other data for completion of electronic commerce transactions. The media content, such as video clips, may be displayed by the media player 215 at one of the endpoints to allow a consumer to learn more about the products, services or transactions supported by the container 205. The consumer can select any of these offered items to get more details (e.g., using the transaction objects 235), all enclosed within the container 205.
The syndication objects 240 include code for allowing a user to share, embed or otherwise send a container to another endpoint. For example, the syndication objects 240 include code for allowing a user to share the media content (and consequently the objects accompanying the media content in the container 205) on a social website, embed within a webpage or send the container 205 (or at least a link (e.g., uniform resource locator (URL)) for the container) via an electronic message (e.g., email, text message, instant message).
The authentication objects 245 include program code for allowing a user of the endpoint 225 to authenticate or login to an account associated with the container 205. The authentication objects 245 may provide a user interface for a user to login or may automatically log a user in based on a combination of one or more of user settings, device recognition, and/or data stored in a cookie. The account may be a user account for the provider of the container or the merchant associated with the container. For example, the account may be used for easy payment processing of transactions or a distributed shopping cart, as will be described in greater detail below. If the user selects to share the container 205, the authentication objects 245 may include information about the user sharing the container 205 for data tracking analytics and/or identifying information about which objects to include in the syndicated container.
The tethering objects 250 include program code for tethering the container 205 with another container at another endpoint. The tethering objects 250 enhance the shopping experience for different users. The tethering objects 250 enable a shared container experience between two or more different users. For example, the tethering objects 250 may synchronize the display of the media content, allow users to share purchases or a shopping cart, provide an interface for text, voice and/or video chat between the users.
The reporting objects 255 include program code for keeping track of information about the container 205. For example, the reporting objects 255 may report information on clicks, impressions, lead generation, product sales, donations, users, syndication paths, syndication locations, and/or any other reportable metrics for merchants and/or container providers to track and improve container performance. The description of the objects 210 included in the container 205 is not intended to be exhaustive or limiting. Any other suitable types of objects may be included in the container 205.
Because the code for the container 205 handles all the complexity, in some embodiments, the container 205 can turn a simple web site into an instant e-commerce store. The container 205 enables users to transact online without having to deal with the complexity of setting up an e-commerce site. For merchants with an e-commerce site, the container 205 readily enables a rich shopping experience with the interaction between the media content and transaction objects 235. In non-limiting examples of a creative hobbyist or local band, the container 205 allows the user to readily sell directly to interested consumers. In some embodiments, the transaction objects 235 may include offers in the container 205 for custom merchandise. For example, merchants can custom design a selection of apparel with their art and graphics to be sold along with their own creations. Some embodiments may dynamically produce and ship the custom apparel for the merchant, eliminating the need to manage inventory, and providing online customers with a richer line of products. Because the e-commerce store uses the container 205, the e-commerce store can also propagate out onto all forms of viral syndication methods as well.
These offered items (products or services) may be items being advertised or sold. Depending on the type, the container 205 may allow the consumer to request to be contacted, or even purchase the object, within the container 205. The consumer need not leave their current activity or web page. The offered items could also include getting discounts or coupons. The offered items may even be an opportunity to donate to a charity or political campaign. In certain instances, it does make sense to visit another Internet designation, and if appropriate, the consumer can be linked there as well.
The objects 210 in the container 205 are supported by backend event server(s) 260. The objects 210 are individual applications (e.g., mini apps or applets) that provide the functionality for implementing the container 205. The objects 210 are intelligent and lightweight, which improves the transferability of the container 205 while allowing the container 205 to implement tasks in a dynamic and effective manner. The objects 210 may not include everything necessary for handling all the tasks required. The objects 210 may communicate with one or more servers in backend event server(s) 260 to complete tasks in the container 205.
For example, to process a transaction, the transaction objects 235 may securely send payment information to payment server(s) 265. In other examples, the transaction objects 235 or authentication objects 245 may send information about impressions, clicks, shares, and/or user login information to admin server(s) 270 for reporting and analytics. In other examples, all the objects needed for the container 205 may not be initially provisioned. For example, to keep the container initially lightweight, identifiers or locations for objects may be included in the container 205 initially with the objects later provisioned by the objects server(s) 275. In another example, certain objects may be provided in the container 205 based on initial information about the endpoint 225 (e.g., object selection based on assumed device type, website location, or programming language). Upon recognition that additional or different objects should be included in the container 205, the objects server(s) 275 may provision the additional or different objects for improved container experience at the endpoint 225. Peer event server(s) 280 may send and receive information from objects to handle information related to sharing and purchases. For example, the peer event server(s) 280 support tethering events, such as notification of video clip views, purchases, and/or user messaging.
The container 205 can virally syndicate across the Internet following the more popular network paths. The container 205 can be hosted on traditional web pages, blogs, contained in emails, operate on mobile devices, or propagate social networks. Because the container 205 code is flexible, the container 205 can also be set up in the form factor of a display ad unit and distributed via ad servers or display advertising networks. When the code for the container 205 exists on social networks like Facebook™, the container 205 can ride the wave of user “likes”. For example, if a woman shopper likes some great shoes shown in a video in the container 205, the container 205 code can propagate directly to their “wall.” Now all her friends see the video and products in the container, and can view or transact right there on their own wall. Of course, if any of their friends also “like” it, the container 205 code propagates and rides the wave further out into that branch of the social network yielding a potential exponential growth factor. In other examples, the container 205 objects may support a politician running for office. Their supporters may be passionate about the message and “like” it, again making it available to their network. Now, similarly minded political supporters can view those messages too, and if so moved may donate to the cause within the container 205. In another example, such as sports, a sports fan may wish to watch that content on their HD large screen TV. More and more have interconnected devices, such as a Roku™, and a container 205 code could exist on such an IP TV box as well, enabling the sharing of a container 205 in a variety of Internet connected devices.
Another form of tracking relates to how the container 205 is propagated. A Merchant may wish to use affiliates to help syndicate the container 205 and pay a percentage based on the transactions resulting from their work. The container 205 objects can be tagged with affiliate tracking identifiers allowing status reports and transactions from that container instance or its descendants to be properly filtered. Another tracking usage may be for a politician to assign affiliate codes to their supporters and be able to measure whose efforts result in the most new supporters.
The container 205 is a smart container in that the container 205 is capable of customizing automatically based on the environment to which the container 205 is propagated. For example, the objects 210 included in the container 205 may be configured or selected in real-time based on different criteria. The container 205 is generated by the configurator 285 when the configurator 285 receives a request for the container 205, such as an embed code 290. The configurator 285 is a backend service or application that runs on a server (e.g., one or more of the server(s) 102 in
The environment associated with the endpoint 225 where the container is being propagated to is one example of criteria that may be used to select or otherwise configure the objects 210 included in the container 205. For example, the configurator 285 may identify this environment information from the embed code 290. The embed code 290 is a request for the container 205 that includes information, such as, for example, without limitation, an identifier of the container 205 being propagated, an originating Internet Protocol (IP) address, a time the request was sent and/or received, reference codes, such as a requester identifier, merchant identifier, website (e.g., URL) where the embed code 290 was sent from and/or is requesting the container 205 be rendered at, and/or other information that may be identified about the environment where container 205 renders. From the IP address and/or the website information, the configurator 285 may identity a location of the endpoint 225, a type of device (e.g., mobile device, computer, etc.) of the endpoint, the website (e.g., stand alone web page, embedded within a webpage, displayed on a social website) for the endpoint and/or other information about the environment.
In some examples, if the device is a traditional PC or laptop, the configurator 285 will include objects for the container 205 to render using the optimal technology or rendering parameters, which, for this purpose, may be flash video. On mobile devices, such as IPhones, IPads, or Android phones, the rendering parameters may be selected as HTML5 or a native interactive app. Based on the information about how the content should be rendered, configurator 285 includes the appropriate objects for the media player 215 to render properly for the environment. Beyond device type, there are other dimensions of customization. Smaller devices and some environments, such as a social site, restrict window sizes, so the media player 215 in the container 205 adapts to properly render the media content.
In other examples, the configurator 285 may identify which products to advertise or ways to customize the media content based on the location of the endpoint 225, which can be identified from the IP address. For example, the container 205 can provide different content customized based on geo-location. In one example, if the location of the endpoint is in a cold climate, objects in the transaction objects 235 may be selected to offer appropriate seasonal products with the media content. In other examples, the media content may be customized based on the location. For example, text associated with the media content and the transaction objects 235 may be selected based on a language commonly spoken at the location. In other examples, the media content may be selected to appeal to location preferred sports teams, activities, etc.
As other examples of criteria that may be used to select or otherwise configure the objects 210 included in the container 205, the configurator 285 may communicate with backend event server(s) 260 to identify the objects to identify objects to include in the container 205. For example, the configurator 285 may identify products to market or video clips to send based on merchant information accessible via the admin server(s) 270. For example, the status of a marketing campaign may be used to select or otherwise configure the objects 210 and media content included in the container 205. The objects in the container 205 may be updated and/or selected based on real-time information about successes and failures based on information about the marketing campaign. For example, embodiments of the present disclosure track sales data and video propagation data, such as what video clips are popular, and/or a demographic of the viewers syndicating or viewing the media content. The server(s) 102 in
The admin server(s) 270 can track data on how a merchant campaign is performing and when merchants launch and syndicate their container 205 code onto the Internet. For example, the reporting objects can report back the status on events and transactions of interest, (e.g., how many impressions, video views, clicks, leads, sales have occurred). All such statuses can be sent back as events occur, providing details on how they are doing. Because the containers 205 are smart, the server(s) can instruct the container 205 to change behavior, offer different clips, update products, or to stop the marketing or sales campaign.
The objects in the container 205 code know about each other in certain embodiments. When a video is playing, the container 205 can update the product and service objects being shown that correspond with the particular sequence in a video segment. The container 205 allows a shopping channel to be created and syndicated across the Internet.
The code for the container 205 is designed to be highly scalable in particular embodiments. Rather than burden a single website with massive traffic which would result from a traditional model of bringing all consumers to the store, the code for the container 205 operates in a distributed manner. In particular embodiments, the code for the container 205 executes at the endpoint 225, (e.g., on a blog, social network or mobile device). The container 205 can fetch the instructions when stated, and then gather product items and video streams from a worldwide distributed content delivery network (e.g., the network 130). This results in highly scalable architecture allowing millions of concurrent consumers.
Although the container 205 has been described with media content and objects 210, such media content and objects 210 may not all be sent to an endpoint at the same time or as a bundle. Rather, in particular embodiments, information concerning the container may initially be stored on, for example, a server accessed by the endpoint. Then, when the endpoint requests the information for the container, additional information can be dynamically pushed to the endpoint or pulled from the endpoint (e.g., by the server sending a pointer to the endpoint).
By utilizing such a dynamic push/pull scenario, a single container 205 can be modified over time. As a simple example, a price may be associated with an item for sale at a point in time; however, when that point in time changes, the price for that item may change. Although the price changes, the initial information for requesting the container 205 does not change. Further examples of dynamic content will be described below.
The container 205 can be implemented in a variety of different environments.
By bringing the store to the customer, the container 205 enables many new ways for merchants to connect with their consumers without disrupting the consumers' web activities. The end result is to connect the consumer directly with the merchant eliminating the intermediary and promoting a much more natural shopping experience.
According to an embodiment of the disclosure, an innovative new method for merchants to administer their virtual stores online is provided. To manage features with the container 205, an administrative feature may be provided via the admin server(s) 270 in what is referred to as an administration application. In an online administration model, merchants are typically required to have a fully featured computing device with persistent access to the World Wide Web. As an alternative to such a scenario and to enable on-the-go management, an embodiment of the disclosure provides merchants with a fully featured administration application—executable on mobile, handheld and smart devices—that is capable of creating and administering an entire virtual online store. In such embodiments, camera and video features may be utilized to capture digital assets for the container 205, whereas the mobile device's communication capabilities may be utilized to not only upload the digital assets, but also to issue commands and/or retrieve information for the management of an account that is used to create objects for the container 205.
The administration application for the mobile device is capable of running in both connected and disconnected modes. In a connected mode, the mobile administration application sends commands to the remote server instructing it to perform various actions related to store administration. Alternatively, in a disconnected mode, the mobile administration application performs all of the commands locally, on the installed device, with periodic synchronization to the remote server.
Below are non-limiting features of administration applications for the mobile device:
Given the above, in particular embodiments, a user may create objects for virally spreadable container(s) 205 directly from a mobile device. As a non-limiting example, a user may shoot a video from the mobile device, upload the video asset from the mobile device (e.g., using the wireless network described in
In particular embodiments, a traditional web interface for the administration application may largely be replicated to allow a mobile user the convenience of modifying and/or creating information for one's account on the go.
In various embodiments, the container 205 technology allows users to select products and services in context of their video or animation viewing experience in the confines of the display unit for the container 205. Upon product or service selection, a user is presented with details of the selected product or service without leaving the confines of the display unit or interrupting the animation or video viewing experience, as illustrated for example in
It is important to note that the container 205 retains all of the purchasing and advertising capabilities—substantially conducted in the same manner—when shared on social distribution channels, such as social networks or blogs. In particular configurations, the container 205 is fully capable to be distributed or virally syndicated upon any media that supports Adobe Flash™ and HTML5 technologies.
In addition to physical goods and services, the container 205 technology supports sale and redemption of digital goods, such as coupons and gift certificates. Digital products presented in the container 205 display units are available for purchase or as a reward for completing an action a merchant deems worthy of product redemption. Such actions may include purchase, submission of requested information, advertisement or video viewing or acknowledgement. Upon the sale of a digital product or as a result of the action deemed to be satisfactory to qualify a user for a digital product award, the digital product is available for redemption. A digital product can be redeemed using a variety of mechanisms, including, but not limited to: a) thanks for the purchase email; b) thanks for the purchase screen; c) end of play of a screen; or d) third party redemption web page.
In particular configurations, a “thanks for the purchase” email may constitute a digital mail delivered to the user upon performing a downloadable product redemption qualifying action. Digital mail provides instructions on how a downloadable product shall be redeemed. In other configurations, a “thanks for the purchase” screen is presented to the user upon performing a downloadable product redemption qualifying action. In such configurations, the aforementioned screen may optionally contain instruction on how to redeem downloadable product or how to download the product itself.
In other configurations, an “end of play screen” may be presented to the user upon completing an animation or video viewing experience until the end. In such configurations, the aforementioned screen may optionally contain instructions on how to redeem the downloadable product or how to download the product itself. In other configurations, a third party redemption webpage served by a third party provider to the user may be provided upon performing a downloadable product redemption qualifying action. The presented webpage may optionally contain instructions of how to redeem a downloadable product or how to download the product itself.
Various embodiments of the present disclosure also provide companion products and up sell products with intelligent Internet objects. The container 205 technology supports companion products and services as well as up sell products and services. Companion products and services are presented to the user at the time of the product selection or post product sale. Upon product or service selection, a user may be presented with details of the selected product or service, in addition to a matching mechanism. The matching mechanism either may be predefined or dynamically selected additional products or services that complement an original selection. The user is given a choice to perform an action using original product or service selection or proceed with a suggested product or service bundle. In the context of the container 205, an action is defined as a purchase, a charitable contribution, a submission of requested information, advertisement or video viewing or acknowledgement. An identical mechanism may be utilized during the post purchase process where, upon completion of the purchase, a user is presented with up sell products or services suggesting additional actions.
Any suitable algorithm may be utilized with either mechanisms based, for example, on common linkage between products and services. Alternatively, the algorithm may be based, for example, on a statistical analysis that looks at users and linked products to yield what linked products or services are most often purchased with a particular product or service or grouping of products or services. Yet other techniques will become apparent to one of ordinary skill in the art.
Various embodiments of the present disclosure provide a distributed shopping cart with intelligent Internet objects. The container 205 technology supports a distributed shopping cart (e.g., accessible via “add to cart” button 505 as illustrated in
As a brief recapitulation of the above and as an example, a user may be visiting a friend's Facebook™ wall and see a display of a container with something of interest. The particular container display may become associated with the user upon the user's interaction with the container using any suitable tracking mechanism. As a simple example, a user may log into a particular account directly within the display to associate the container and any items placed within a shopping cart with the user. The user may then visit another site or simply access a container display via an email. Upon the display being associated with the same user, the user may access the items previously placed within the cart and continue shopping, placing additional items within the cart. The above is a non-limiting example and is not intended to preclude other manners of accessing the distributed shopping cart.
Various embodiments of the present disclosure provide distributed retargeting of products with intelligent Internet objects. The container 205 supports distributed retargeting of products and services. Distributed retargeting of products and services allows merchants to display products or services that were viewed or similar to the products or services that were viewed by users that belong to a merchant or a group of merchants combined into the merchant network. Upon recognition of a user that has viewed one or several products or services in the container 205 or a merchant website belonging to the same merchant network, the user may be presented with the products or services that were viewed or similar to the products and services that were viewed during previous visits. Any suitable algorithm may be used for the presentment of distributed retargeting, including collaborative filtering and others. Such algorithms may avail from data from a group of merchants. Additionally, in the distributed retargeting, additional types of media may be shown with such media associated with the other products or services.
Various embodiments of the present disclosure provide dynamic configuration of intelligent internet objects. The container 205 technology supports dynamic configuration. The dynamic configuration allows the container 205 to determine the number of screens, screen fields, field validation, business rules and user specific characteristics based on the configuration file that is passed to the container 205 technology during the runtime or assembly time. The configuration file contains configuration metadata. Upon receipt of the configuration file, the container 205 determines what screens, containing what fields, requiring what validation should be presented to the user. Based on the user input, the container 205 interprets business rules passed to it using the configuration file, the logic and the flow of the screen execution. In addition to accepting metadata centric configuration files, the container 205 allows inclusion of third party dynamic flows. Such flows can be passed to the container 205 in the form of executable files during container 205 configuration or during runtime. Just like dynamic configuration files, third party dynamic flows contain screens, screen fields, field validation, business rules and user-specific characteristics. Unlike dynamic configuration files, third party dynamic flows may not require separate interpretation steps and can be executed natively inside of the web browser.
The process begins by the system receiving a request for the media content to be displayed at an endpoint at block 1505. For example, in block 1505, the system may receive the request as a click to play a video or may receive the request from a second endpoint where the media content has been viewed and shared to the first endpoint.
Thereafter, the system identifies information about an environment associated with the endpoint at block 1510. For example, in block 1510, the system may identify a type of a device associated with the endpoint, a website where the media content is to be displayed, and a network speed between the endpoint and the system. In other examples, the system may identify information about a location of a device associated with the endpoint.
The system then identifies a set of objects to send with the requested media content based on the information identified about the environment at block 1515. For example, in block 1515, the system may include objects and the media content in a container (e.g., the container 205 in
In some examples, the system may identify information about a user associated with the second endpoint and identify objects to send with the requested media content based on the information about the user. For example, higher quality media content may be sent where the network bandwidth between an endpoint and the system is high. In other examples, the system may identify rendering parameters associated with the type of the device or the website and include objects designed to generate the display of the media content in the set of objects to send based on the rendering parameters. In other examples, the system may identify a product to advertize with the media content, a language for text associated with the media content and/or a type of video to send as the media content for display based on information about the location of the device and include appropriate objects in the container. In yet other examples, the system may identify information about a status of the marketing campaign associated with the media content and objects based on the information about the status of the marketing campaign.
In a variety of configurations, analytics may be utilized to determine what to send to a user based on their environment and/or profile information about the user. For example, based on a geographic location or determined profile, a shirt advertisement may be sent as opposed to a hat advertisement (which may also be shown in the video) because the analytics are showing the shirt to be more likely to sell than the hat.
Thereafter, the system sends the set of objects including the media content for display at the endpoint in block 1520. For example, in block 1520, the system sends the container to the endpoint for the media content to be displayed and the electronic transaction opportunities to occur. As referenced above, the objects and media may be sent separately or together.
The process begins by receiving a request to render a container at an endpoint at block 1605. For example, in block 1605, the process may receive the request from a user requesting to view a video clip associated with the container. The process may also receive the request from a user sharing the container. The process then identifies a server supporting the container at block 1610. For example, in block 1610, the process may identify the server from the container. The server may be one or more of the server(s) 102 in
Thereafter, the process provides information about the environment at the endpoint at block 1615. For example, in block 1615, the process may provide the identifier of the container information about the endpoint (e.g., website, device type, IP address), information about the user sharing or requesting to view the video, cookies, shopping cart information, container tethering information and/or any other type of information that may be useful in selecting objects to include in the container.
The process then receives container objects and location of media content at block 1620. For example, in block 1620, the process receives the container objects from the configurator 285 having configured or otherwise selected the objects to include in the container. The location of the media content may be a server that the media player in the container is to stream or otherwise receive the media content. Thereafter, the process receives and displays media content from the location at block 1625. For example, in block 1625, the process may stream the media content inside a display unit for the container from a media server specified in the container.
The processor 1704 processes instructions for software that may be loaded into the memory 1706. The processor 1704 may be a number of processors, a multi-processor core or some other type of processor, depending on the particular implementation. Further, the processor 1704 may be implemented using a number of heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, the processor 1704 may be a symmetric multi-processor system containing multiple processors of the same type.
The memory 1706 and the persistent storage 1708 are examples of storage devices 1717. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, data, program code in functional form and/or other suitable information either on a temporary basis and/or a permanent basis. The memory 1706, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device. For example, the persistent storage 1708 may contain one or more components or devices. For example, the persistent storage 1708 may be a hard drive, a flash memory, an optical disk, a rewritable magnetic tape or some combination of the above. The media used by the persistent storage 1708 also may be removable. For example, a removable hard drive may be used for the persistent storage 1708.
The communications unit 1710 provides for communications with other data processing systems or devices. For example, the communications unit 1710 may be connected to a computer network or a variety of other communicative platforms including, but not limited to, a public or private data network; a local area network (LAN); a metropolitan area network (MAN); a wide area network (WAN); a wireline or wireless network; a local, regional, or global communication network; an optical network; a satellite network; an enterprise intranet; other suitable communication links; or any combination of the preceding. For example, the communications unit 1710 may include a network interface card. The communications unit 1710 may provide communications through the use of either or both physical and wireless communications links. The communications unit 1710 may also include a radio frequency (RF) transceiver enabling wireless network communication (e.g., WiFi, cellular data connection, etc.). The communications unit 1710 may also include a GPS transceiver enabling positional location information.
The input/output unit 1712 allows for input and output of data with other devices that may be connected to the data processing system 1700. For example, the input/output unit 1712 may provide a connection for user input through a keyboard, a mouse, a touch screen and/or some other suitable input device. Further, the input/output unit 1712 may send output to a printer. The input/output unit 1712 may also include or be connected to a camera, microphone, speaker, accelerometer and/or proximity sensor. The data processing system 1700 may utilize inputs and outputs from a camera, microphone, speaker, accelerometer and/or proximity sensors in accordance with various communication and data transfer principles of the present disclosure. The display 1714 provides a mechanism to display information to a user. For example, the display 1714 may be a touch screen.
Program code for an operating system, applications or other programs may be located in the storage devices 1717, which are in communication with the processor 1704 through the bus system 1702. In some embodiments, the program code is in a functional form on the persistent storage 1708. These instructions may be loaded into the memory 1706 for processing by the processor 1704. The processes of the different embodiments may be performed by the processor 1704 using computer implemented instructions, which may be located in the memory 1706. For example, the processor 1704 may perform processes for one or more of the modules and/or devices described above.
In some embodiments, various functions described above are implemented or supported by a computer program product that is formed from computer-readable program code and that is embodied in a computer-readable medium. Program code for the computer program product may be located in a functional form on a computer-readable storage device that is selectively removable and may be loaded onto or transferred to the data processing system 1700 for processing by the processor 1704. In some illustrative embodiments, the program code may be downloaded over a network to the persistent storage 1708 from another device or data processing system for use within the data processing system 1700. For instance, program code stored in a computer-readable storage medium in a server data processing system may be downloaded over a network from the server to the data processing system 1700. The data processing system providing program code may be a server computer, a client computer, or some other device capable of storing and transmitting program code.
As will be appreciated by one skilled in the art, aspects of the present disclosure may take the form of a computer program embodied in one or more computer-readable storage medium(s) having program code embodied thereon. A computer-readable storage medium may be, for example, without limitation, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), flash memory, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device or any suitable combination of the foregoing. The program code may also be loaded for execution by a processor to provide processes for implementing the functions or operations described in the present disclosure.
Although
Several embodiments of the disclosure may include logic contained within a medium. In the embodiment of
The functionality of the above description, once again may avail from any of the components described in
It will be understood that well known processes have not been described in detail and have been omitted for brevity. Although specific steps, structures and materials may have been described, the present disclosure may not be limited to these specifics, and others may be substituted as it is well understood by those skilled in the art, and various steps may not necessarily be performed in the sequences shown.
While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure, as defined by the following claims.
The present application is a continuation of U.S. patent application Ser. No. 15/234,863 filed Aug. 11, now U.S. Pat. No. 10,171,555, issued Jan. 1, 2019, which is a continuation of U.S. patent application Ser. No. 14/280,235 filed May 16, 2014, now U.S. Pat. No. 9,451,010, issued Sep. 20, 2016, which is a continuation of U.S. patent application Ser. No. 13/598,443 filed Aug. 29, 2012, now U.S. Pat. No. 8,769,053, issued Jul. 1, 2014, which is related to and claims the benefit of: U.S. Provisional Patent Application No. 61/528,635, filed Aug. 29, 2011; U.S. Provisional Patent Application No. 61/650,917, filed May 23, 2012; U.S. Provisional Patent Application No. 61/650,873, filed May 23, 2012; U.S. Provisional Patent Application No. 61/650,888, filed May 23, 2012; U.S. Provisional Patent Application No. 61/650,897, filed May 23, 2012; U.S. Provisional Patent Application No. 61/650,900, filed May 23, 2012; U.S. Provisional Patent Application No. 61/650,881, filed May 23, 2012 and U.S. Provisional Patent Application No. 61/662,765, filed Jun. 21, 2012 U.S. patent applications Ser. Nos. 14/280,235 and 13/598,443 and Provisional Patent Application Nos. 61/528, 635; 61/650,917; 61/650,873; 61/650,888; 61/650,897; 61/650,900; 61/650,881 and 61/662,765 are owned by the assignee of the present application and are hereby incorporated by reference into the present application as if fully set forth herein.
Number | Date | Country | |
---|---|---|---|
61528635 | Aug 2011 | US | |
61650917 | May 2012 | US | |
61650873 | May 2012 | US | |
61650888 | May 2012 | US | |
61650897 | May 2012 | US | |
61650900 | May 2012 | US | |
61650881 | May 2012 | US | |
61662765 | Jun 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15234863 | Aug 2016 | US |
Child | 16215138 | US | |
Parent | 14280235 | May 2014 | US |
Child | 15234863 | US | |
Parent | 13598443 | Aug 2012 | US |
Child | 14280235 | US |