Patent application title: METHODS AND SYSTEMS FOR REAL-TIME WEB TRACKING AND MARKETING
Andre T. Parreira (Odivelas, PT)
IBT - Internet Business Technologies
IPC8 Class: AG06F1722FI
Class name: Data processing: presentation processing of document, operator interface processing, and screen saver display processing presentation processing of document structured document (e.g., html, sgml, oda, cda, etc.)
Publication date: 2013-04-25
Patent application number: 20130104030
The present invention contemplates methods and systems for tracking and
interacting with on-line users in a given website. The system allows an
e-commerce merchant to track user actions and push multimedia content to
users in real-time. The system may send promotional alerts based on the
current user activity, order history and preferences
1. A method for real-time tracking and interacting with at least one
online user using a web browser running on a user device, comprising:
receiving, from the user device, a value or event on a web page of the
web browser; sending, to a customer service, the value or event of the
web page of the web browser; receiving, from the customer service, a
response; pushing the response to the user device in real-time, by an
Open Real-Time Connectivity (ORTC) interface; and displaying the response
on the web page in real-time without the web browser refreshing the web
2. The method of claim 1, wherein the value or event is abstracted from a Document Object Model (DOM) of the web page.
3. The method of claim 1, wherein the response comprises a change of an element of a Document Object Model (DOM) of the web page.
4. The method of claim 1, wherein the response comprises a change of a text, a numerical value, a timestamp, a Boolean value, a currency value, a custom object, or a collection of custom objects on the web page.
5. The method of claim 1, wherein the value or event comprises status information about the web browser.
6. The method of claim 1, wherein the event is triggered by a value change of an element of the web page.
7. The method of claim 1, wherein the response comprises a logic to be executed by the web browser on the web page.
8. The method of claim 1, wherein the response comprises an input request to the online user.
9. The method of claim 1, further comprising: generating a response at the customer service automatically when the value or event of the web page of the web browser conforms one or more logic rules.
10. The method of claim 1, further comprising: generating a response at the customer service by an operator,based on the value or event of the web page of the web browser.
11. The method of claim 1, wherein the value or event is a network location of the web page of the web browser represented by a uniform resource locator (URL).
12. The method of claim 1, further comprising: receiving, at the user device, the response in realytime.
13. The method of claim 1, further comprising: establishing a multimedia communication session with the web browser running on the user device, without refreshing the web page.
14. The method of claim 1, further comprising: receiving, from a electronic commerce server, data of the online us
15. The method of claim 1, further comprising: receiving, from a electronic commerce server, an order history of the online user.
16. The method of claim 1, wherein the response is a sales promotion message.
17. The method of claim 1, wherein the response is a help message to improve a user experience for the online user.
18. The method of claim 1, wherein the response is a request to establish a multimedia communication session with the online user.
19. The method of claim 13, wherein the multimedia communication session runs through an ORTC channel.
20. The method of claim 13, wherein the multimedia communication session is a video chat session.
21. The method of claim 13, wherein the multimedia communication session is an audio chat session.
22. The method of claim 13, wherein the multimedia communication session is a text chat session.
23. The method of claim 13, wherein the multimedia communication session is a remote desktop session.
24. The method of claim 1, wherein the ORTC interface is an abstraction layer to the underlying real-time full-duplex web communication platform.
25. The method of claim 24, wherein the underlying real-time full-duplex web communication platform is an HTML5 WebSocket platform.
26. The method of claim 24, wherein the abstraction layer enables the user device to operate independent of a type of underlying communication platform.
27. A system for real-time tracking and interacting with at least one online user using a web browser running on a user device, comprising: a server component for receiving, from the user device, a value or event on a web page of the web browser; a client-side component for sending, to a customer service, the value or event of the web page of the web browser; an applications component for generating and transmitting a response to the user device in real-time, by an Open Real-Time Connectivity (ORTC) interface; and the client-side component being further configured for displaying the response on the web page in real-time without the web browser refreshing the web page
28. The system of claim 27, wherein the response is transmitted via a network path not including a web server hosting the web page.
29. The system of claim 27, wherein the applications component comprises a dashboard component, a workplace component, a reporting component and a backoffice component.
30. The system of claim 27, wherein the value or event is read from a
CROSS REFERENCE TO RELATED APPLICATIONS
 This patent application claims priority to U.S. Patent Application No. 61/477,577, entitled METHODS, SYSTEMS AND PRODUCTS IN REAL-TIME TRACKING AND MARKETING INTERACTION WITH WEB APPLICATION USERS, filed Apr. 20, 2011, the entire contents of which are incorporated herein its entirety.
 This patent application is further related to the technologies described in the following patents and applications, all of which are incorporated herein in their entireties:
 U.S. Provisional Patent Application No. 61/1,477,579, entitled METHOD, SYSTEM AND PRODUCTS FOR STANDARDIZED ACCESS TO REAL-TIME FULL-DUPLEX WEB COMMUNICATIONS PLATFORM, filed Apr. 20, 2011, and U.S. Patent Application No. 61/477,575, entitled METHOD, SYSTEM AND PRODUCTS FOR STANDARDIZED xRTML-MARKUP LANGUAGE IN REAL-TIME WEB CONTENT PUBLISHING, filed Apr. 20, 2011.
 The present invention relates to real-time tracking and marketing for web application users, more specifically to a system that allows a web merchant to track in real-time the status of users in a web site and push multimedia content to their browsers,
 E-commerce has been a major form of commerce for years. Online business has been growing stronger. In the US only, sales have been increased 12.6% to $176.2 billion in 2010 and are expected to reach nearly $280 billion in 2015. Companies in E-commerce business face fierce competition. Discounts, vouchers, group shopping and wish lists are common tools in E-commerce. Yet, there is still the need to improve the customer online shopping experience, to attract returning customers, and to better promote the online sales.
 Overall, the examples herein of some prior or related systems and their associated limitations are intended to be illustrative and not exclusive. Other limitations of existing or prior systems will become apparent to those of skill in the art upon reading the following Detailed Description.
SUMMARY OF THE DESCRIPTION
 At least one embodiment of this invention pertains to a method for real-time tracking and interaction with at least one online user using a web browser running on a user device. The method comprises: receiving, from the user device, a value or an event of a current web page of the web browser; sending, to a customer service, the value or event of the current web page of the web browser; receiving.sub.; from the customer service, a response; pushing the response to the user device in real-Lime, by an Open Real-Time Connectivity (ORTC) interface; and displaying the response on the current web page in real-time without the web browser refreshing the web page.
 Another embodiment of this invention pertains to a system for real-time tracking and interacting with at least one online user using a web browser running on a user device. The system comprises a receiving module for receiving, from the user device, a value or event on a current web page of the web browser; a sending module for sending, to a customer service, the value or event of the current web page of the web browser; a graphical user interface for receiving.sub.; from the customer service, a response; a transmission module for transmitting the response to the user device in real-time, by an Open Real-Time Connectivity (ORTC) interface; and a client-side component for displaying the response on the current web page in real-time without the web browser refreshing the web page.
 The system allows providing help online and thousands of miles away from the customers, without the need for any web page refresh. A web merchant is able to send content to the end user's browser without the need for web page refreshes. Built upon the Open Real-Time Connectivity API (ORTC), the system allows real-time interaction with end user's web browsers over standard web ports, such as 80 or 443. Unlike other technologies such as AJAX, web servers in this system are not taxed with repeated requests.
 Other advantages and features will become apparent from the following description and claims it should be understood that the description and specific examples are intended for purposes of illustration only and not intended to limit the scope of the present disclosure.
BRIEF DESCRIPTION OF DRAWINGS
 These and other objects, features and characteristics of the present invention will become more apparent to those skilled in the art from a study of the following detailed description in conjunction with the appended claims and drawings, all of which form a part of this specification. In the drawings:
 FIG. 1 illustrates a real-time web tracking and marketing system utilizing a real-time server to process data communications
 FIG. 2 illustrates information flows in an implementation of the real-time web tracking and marketing system.
 FIG. 3 illustrates a sample process of remotely reading webpage content information in real-time.
 FIG. 4 illustrates a sample process of pushing new logic and/or content in real-time.
 FIG. 5 illustrates a sample of tracking events of browser window getting or losing focus.
 FIG. 6 illustrates a sample workplace GUI used to push content to a group of filtered visitors and to a specific unique visitor.
 FIG. 7 illustrates an example of handling push action by displaying a control on a web browser.
 FIG. 8 illustrates how a page title bar can have its content customized upon receiving a push action.
 FIG. 9 illustrates a sample text chat interaction in real-time, on a real-time web tracking and marketing system workplace GUI.
 FIG. 10 illustrates a sample real-time web tracking and marketing system backoffice GUI for configuring a selector.
 FIG. 11 Illustrates a sample real-time web tracking and marketing system backoffice GUI for Navigation Contexts configuration.
 FIG. 12 illustrates a sample real-time web tracking and marketing system dashboard GUI, with visitors' information displayed in real-time.
 FIG. 13 illustrates a sample real-time web tracking and marketing system workplace GUI, with an interface to push new content in real-time to visitors in bulk or individually.
 FIG. 14 illustrates a sample composition of conditions for an automatic rules engine.
 FIG. 15 illustrates a diagram of a sample environment for a web server interacting with client devices through the Internet;
 FIG. 16 Illustrates a block diagram describing interactions between components of a real-time marketing system;
 FIG. 17 illustrates a sample process of user receiving help through a real-time marketing system;
 FIG. 18 illustrates a zoomed portion of a customer's web browser receiving a promotion; and
 FIG. 19 illustrates a customer's web browser displaying a promotion web page.
 The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed invention.
 In the drawings, the same reference numbers and any acronyms identify elements or acts with the same or similar structure or functionality for ease of understanding and convenience. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the Figure number in which that element is first introduced.
DETAILED DESCRIPTION OF THE INVENTION
 Various examples of the invention will now be described. The following description provides specific details for a thorough understanding and enabling description of these examples. One skilled in the relevant art will understand, however, that the invention may be practiced without many of these details. Likewise, one skilled in the relevant art will also understand that the invention can include many other obvious features not described in detail herein. Additionally, some well-known structures or functions may not be shown or described in detail below, so as to avoid unnecessarily obscuring the relevant description.
 The terminology used below is to be interpreted in its broadest reasonable manner, even though at is being used in conjunction with a detailed description of certain specific examples of the invention. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
 The Real-Time Web Tracking and Marketing system, also called POWERMARKETING, tracks website users' activities in real-time and executes real-time marketing actions. The POWERMARKETING system may be based on an Open Real-Time Connectivity (ORTC) communications system. The POWERMARKETING system includes a server component, client-side component, and application components. A visitor of a webpage tracked by POWERMARKETING system will be in direct contact with the client-side component. An operator of an instance of the POWERMARKETING system will be in contact with the application components including dashboard, workplace, reporting and backoffice. The server component routes, handles and dispatches all POWERMARKETING messages originating from the client-side component or applications components. The server component further guarantees the usage of the ORTC system to maintain the persistent and bi-directional communications in real-time. The server component also processes any calculations, data persistence, data aggregation, automatic rules parsing and actions triggering for the POWERMARKETING system.
 Web Server Independence
 The POWERMARKETING system allows for the real-time tracking of visitors to any HTML webpage. The webpage may or may not be hosted on a webserver, as long as the user's device contains the POWERMARKETING client-side component. A simple webpage on a user's device, as long as the machine is connected to the Internet and the POWERMARKETING and ORTC services are reachable, can act as a source of POWERMARKETING information.
 The real-time tracking can leverage Websockets, allowing a different approach from the usual model used by webservers to provide REQUEST/RESPONSE type of communications. Nevertheless, given the current market of websites based on web servers and compatible web browsers, POWERMARKETING can be used in conjunction with those websites, without installation of third party web browser extensions or plugins.
 FIG. 1 illustrates a POWERMARKETING system utilizing a real-time server based on ORTC to process the data communications between a web browser instance and the POWERMARKETING services.
 Not only POWERMARKETING system has its communications handled by ORTC, allowing independence of the web server, but it can also freely read from and write to the web browser's rendered webpage Document Object Model (DOM). This means that the POWERMARKETING system can not only remotely execute methods to obtain information from a visitor's browser rendered page in real-time, but can also execute methods to change any element on the visitor's browser DOM, allowing its content to dynamically reflect any changes wanted, without that content being rendered by the web server in advance.
 FIG. 2 illustrates information flows in an implementation of the POWERMARKETING system. The web browser retrieves a web page from a web server and renders the web page. The POWERMARKETING server interacts with the web browser directly for reading and pushing content dynamically in the web page.
 FIG. 3 illustrates a sample process of remotely reading webpage content information in real-time. The web browser transmits specific values on the webpage to customer service in realtime and keeps monitoring these values. If any of these values is changed, the web browser will transmit and update the value to customer service in realtime. FIG. 4 illustrates a sample process of pushing new logic and/or content in real-time. The customer service instructs the web browser to push new logic and/or content. Accordingly, the web browser executes the new logic or display the new content on the web page.
 Tracking Content and Events, Pushing Content and Logic
 Since the client-side component of POWERMARKETING system can have direct access to the visitor's browser DOM, it can read all elements on the rendered webpage, subscribe to the events on the webpage, and route information to the POWERMARKETING system in real-time. For example, FIG. 5 illustrates a sample of tracking events of browser window getting or losing focus. As shown, when a browser window gets or loses focus, an event is triggered and routed to the POWERMARKETING system. The information is shown based on those events, in real-time, to a POWERMARKETING operator, through a POWERMARKETING application GUI. FIG. 5 shows a POWERMARKETING dashboard widget displaying the amount of visitors connected to a website, and the amount of visitors whose web browser instance has the focus, indicating that the visitor is paying attention to the webpage content.
 On the other hand, the POWERMARKETING client-side component can also modify the DOM elements, so that it can add client-side logic to the webpage dynamically and in real-time. The client-side logic may enhance the experience available to the webpage visitor, promote products with additional images, sounds, videos, or contain any other type of media that can be transmitted and rendered. Since the web browser DOM can also be changed in real-time, events such as a message content being displayed as a marquee on the page title bar is also possible to track. For example, FIG. 6 illustrates a sample workplace GUI used to push content to a group of filtered visitors (above), or to a specific unique visitor (below). FIG. 6 shows a zoomed portion of the PMS GUI where the selection of the ad to push is made. Upon the push button being pushed, the POWERMARKETING system will send a notification to the selected user that an exclusive promotion is available for the user. FIG. 7 illustrates an example of handling a real-time POWERMARKETING push action, by displaying an advertisement "toast" control on the bottom right hand corner of the web browser. FIG. 8 illustrates how a page title bar can have its content customized upon receiving a real-time POWERMARKETING push action.
 Utilizing the system disclosed above, it is possible to create interactive experiences between a POWERMARKETING application operator, and a visitor of a POWERMARKETING enabled webpage, via different forms of interactions such as text chats, video conference, help in filling forms, helping the visitor to navigate to another page through push of the navigation action and target network location, or even a full co-browsing experience. For example, FIG. 9 illustrates a sample text chat interaction in real-time, on a POWERMARKETING workplace GUI. A POWERMARKETING operator text-chats with the visitor in a text-chat control on the right side of the web page.
 The POWERMARKETING Backoffice component allows the configuration of expressions that, upon being received by the POWERMARKETING client-side component in real-time, are executed against the webpage and retrieve information from the rendered page DOM. The component then sends the information back to the POWERMARKETING Server components. These expressions are called selectors, since they provide a way to remotely select which specific elements' information to get from the webpage. Selectors can then be associated to different data types, such as, but not limited to: text, numeric values, date/time, Boolean, currency, custom object, or collection of custom objects.
 The return values of the selectors can be used to obtain the underlying value of the selected DOM element or attribute, but may also be used to retrieve different information about the selected element or attribute, besides its associated value. For example, it is possible to use a selector to retrieve the visibility status of an element, in relation to the web browser's viewable area, i.e. webpage area being currently rendered in the visible portion of the web browser. This also applies to other attributes and metadata such as color, font information, relative and absolute position.
 Selectors can be configured to check for changes to the element or attribute which has its value being monitored at regular time intervals. The check may be done on the visitor's web browser. If the value of the element/attribute monitored by the selector changes, such as in a result of an AJAX call by the website, an event is triggered and the new value is sent to the POWERMARKETING server. Thus a real-time perception of the monitored values on the webpage is effectively maintained. FIG. 10 illustrates a sample POWERMARKETING backoffice GUI for configuring a selector.
 Website Sections
 On webpages that are served by a web server, its network location is usually defined by a Universal Resource Locator (URL), which the web browser uses to make a request to the web server. Based on that request, the web server renders an appropriate HTML webpage. Since the POWERMARKETING system can change the DOM of the rendered webpage remotely, dynamically and in real-time., the rendered webpage may not reflect what was rendered by the webserver. Thus the rendered webpage represents a different "logical" location, referred to as section, of the website.
 A section can be identified by matching section detection rules to its URL, but that URL does not allow for the identification of what the visitor has currently rendered on its webpage. Therefore selectors can be created to determine which section of the website the visitor is currently in. Using selector, different content can be rendered for the same URL.
 POWERMARKETING system allows the detection of one or more different sections by reading its DOM elements and associated attributes through, and applying filter rules as defined in the POWERMARKETING backoffice component. This allows the tracking of where on a website the visitor currently is, and what is currently rendered and visible on his web browser.
 Navigation Contexts
 The association of specific selectors to obtain values and metadata from a webpage with one or more specific sections, is called Navigation Contexts. Navigation Contexts are configured in the POWERMARKETING backoffice component, and allow the loading of the necessary Selectors that must be executed in those Sections. This allows the selectors configured for a specific section to be loaded and executed only when that section is detected as having been rendered on the visitor's web browser. FIG. 11 illustrates a sample POWERMARKETING backoffice GUI for Navigation Contexts configuration. As shown in FIG. 11, the GUI may include URL filtering rules, areas identified by the context, selectors to be applied remotely to the section's webpages and remote events to detect.
 The POWERMARKETING system can determine where the visitor is located on a website, and what information is rendered on the page, as well as the events triggered. It is possible to send from the POWERMARKETING server, in real-time, the additional content to be rendered and/or logic to be executed at a precise moment, on a precise webpage, for a precise visitor. In addition, by collecting additional information in real time, and detecting visitors web browser behavior in real-time, a visitor profile can be assumed. The visitor profile may be utilized to customize the content to render and logic to be executed.
 A POWERMARKETING system operator can update content and/or logic remotely on a visitor's web browser instance of a webpage, or on several visitors' web browser instances at the same time, using the Push methods shown in FIGS. 6-8.
 Real-Time Web Marketing
 Through the use of pre-configured selectors, information can be obtained from the instance of a visitor's web browser that is visiting a monitored website. That information about specific content or logic may be transmitted and displayed in real-time, on one of the POWERMARKETING application GUIs, by Marketing or Customer Service operators.
 For example, FIG. 12 illustrates a sample POWERMARKETING dashboard GUI, with visitors' information being received and displayed in real-time. FIG. 13 illustrates a sample POWERMARKETING workplace GUI, with visitors information being received and displayed in real-time, as well as an interface to push new content in real-time to visitors in bulk or individually. In one embodiment, a product promotion is pushed to a specific user based on the user order history. Through a POWERMARKETING GUI, a member of the CS identifies a user and checks the user's order history. The user has bought previously product X; the CS may decide to send him an ad with a promotion for a new product complementary to product X.
 Push Input Requests and Receive Responses in Real-Time (Powersurvey)
 A specific utilization of a composition of the above methods allows the push of an input request, i.g. pushing a survey form, to visitors. Then the system receives the visitor feedback in real-time in the POWERMARKETING Applications through ORTC.
 Automatic Rules Engine for Real-Time Web Marketing (Automagic)
 Utilizing tracking methods previously disclosed, it is possible to define Boolean conditions that reflect a visitor's context on a specific webpage (e.g. the visitor has products in the shopping cart over $100 USD and is on the checkout process page), or a specific website context condition (e.g. visitors with browser in focus on the website decreased below 10% of the amount of visitors connected to the same website).
 FIG. 14 illustrates a sample composition of conditions for an automatic rules engine. These conditions are defined by sets of rules which includes selector-obtained value, operator and value to match.
 Methods called actions that can be invoked as a consequence of a trigger. Actions can include the remote update of content and/or logic through the POWERMARKETING system, such as pushing an advertisement or promotion banner, or triggering an event of starting a text chat with a POWERMARKETING operator.
 A trigger is a specific set of conditions that can be associated to a set of actions to be executed when the conditions for the trigger are met. Below shows a sample trigger "VIP Customer Checkout":
TABLE-US-00001 Selector -> ShoppingCartTotal Operator -> Greater Than Value -> 5000 AND Selector -> CurrentPage Operator -> Equals Value -> Checkout AND Selector -> TimeOnPage Operator -> Greater Than Value -> 100.
 FIG. 15 and the following discussion provide a brief, general description of a representative environment in which the invention can be implemented. Although not required, aspects of the invention may be described below in the general context of computer-executable instructions, such as routines executed by a general-purpose data processing device (e.g., a server computer or a personal computer). Those skilled in the relevant art will appreciate that the invention can be practiced with other communications, data processing, or computer system configurations, including: wireless devices, Internet appliances, hand-held devices (including personal digital assistants (PDAs)), wearable computers, all manner of cellular or mobile phones, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, mini-computers, mainframe computers, and the like. Indeed, the terms "computer," "server," and the like are used interchangeably herein, and may refer to any of the above devices and systems.
 While aspects of the invention, such as certain functions, are described as being performed exclusively on a single device, the invention can also be practiced in distributed environments where functions or modules are shared among disparate processing devices. The disparate processing devices are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
 Aspects of the invention may be stored or distributed on tangible computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Alternatively, computer implemented instructions, data structures, screen displays, and other data related to the invention may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time. In some implementations, the data may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).
 As shown in FIG. 15, a user may use a personal computing device (e.g., a phone 102, a personal computer 104, etc.) to communicate with a network. The term "phone," as used herein, may be a cell phone, a personal digital assistant (PDA), a portable email device (e.g., a Blackberry®), a portable media player (e.g., an !Pod Touch®), or any other device having communication capability to connect to the network. In one example, the phone 102 connects using one or more cellular transceivers or base station antennas 106 (in cellular implementations), access points, terminal adapters, routers or moderns 108 (in IP-based telecommunications implementations), or combinations of the foregoing (in converged network embodiments).
 In some instances, the network 110 is the Internet, allowing the phone 102 (with, for example, WiFi capability) or the personal computer 104 to access web content offered through various web servers. In some instances, especially where the phone 102 is used to access web content through the network 110 (e.g., when a 3G or an LTE service of the phone 102 is used to connect to the network 110), the network 110 may be any type of cellular, IP-based or converged telecommunications network, Including but not limited to Global System for Mobile Communications (GSM), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiple Access (OFDM), General Packet Radio Service (CPRS), Enhanced Data GSM Environment (EDGE), Advanced Mobile Phone System (AMPS), Worldwide Interoperability for Microwave Access (WiMAX), Universal Mobile Telecommunications System (UMTS), Evolution-Data Optimized (EVDO), Long Term Evolution (LTE), Ultra Mobile Broadband (UMB), Voice over Internet Protocol (VoIP), Unlicensed Mobile Access (UMA), etc.
 In some instances, a user uses one of the personal computing devices (e.g., the phone 102, the personal computer 104, etc.) to connect to a web server 120 over the network 110. A web server, as defined herein, refers to any computing device that hosts or operates data pertaining to a website. In one example, the web server 120 is a server that operates by an online clothing store company. In such an example, the web server 120 has local or remote access to a database comprising the online store's catalog of products and pricing information. The web server 120 may also include information, in the form of a database of scripts or high-level languages, relevant to receiving user input and responding with content pertinent to the user's input. For example, if a user requests samples of a particular designer shirt, the web server 120 includes capability to retrieve the relevant designer information and products from the database and return the information to the requesting client such that the information is displayed on the user's personal computing device. The web server 120 also includes code relevant to hosting the web site and managing all interactive actions related to the hosted web site. In another example, the web server operates an interactive online networking model, where several users may operate concurrently in an interactive session.
 As will be explained in more detail below, in one embodiment, the techniques described herein introduce a layer of abstraction to the underlying web communication platform (simply, "communication platform"). Such an abstraction layer, introduced as the Open Real-Time Connectivity (ORTC) layer, presents several advantages. In such embodiments, the web site (and corresponding web pages) corresponding to the dynamic session operated by the web server 120 include interfaces (e.g., APIs) to a base ORTC layer. Upon interfacing, through ORTC interfaces, with the ORTC layer, the web pages are ORTC enabled and operate via the ORTC layer to establish communication with the underlying communication platform. There are several advantages in having such an abstraction layer. One advantage is that the web server 120 may change the underlying communication platform (e.g., when there are updates or newer and advanced platforms) without having to change the web site architecture (e.g., without changing code relevant to the operation of the interactive session). Another advantage is that, in certain implementations, information related to updates to interactive sessions are broadcast and captured directly via the ORTC interfaces associated with the web clients, without requiring any update pushed out from the web server. Additionally, the web client does not have to repeatedly request or look for updates from the server. Instead, the web client automatically receives an update message through the ORTC layer, thus conserving considerable bandwidth resources that would have originally been spent on continuously querying the web server 120.
 The ORTC layer is developed to add a layer of abstraction to real-time full-duplex web communications platforms by making real-time web applications independent of the actual network communication platform in use. However programmers still need to interpret the server messages being sent over the network and render the appropriate received content at the appropriate place in the GUI on the end user's web browser.
 In one embodiment, there is a system allowing real-time interaction with end users of a given website through the Internet, for the purpose of increasing sales and providing a better customer experience. The system consists of a services platform, including a consistent web GUI, called POWERMARKETING, allowing an e-commerce merchant (hereby referred to as merchant) to track user actions and push multimedia content to all or to a subset of users in real-time. Within the present disclosure, real-time means that the user receives the content without the need of refreshing the current page or navigating to another page on the website. The communication is initiated by the server, i.e. a request from the merchant through the POWERMAKETING GUI. In contrast, in non-real-time websites, the communication is usually initiated by the end user, and the server can only send content to a user when his web browser sends a request for it. This feature is achieved by leveraging on the Open Real-Time Connectivity API through which existing websites can be engineered to connect to a real-time marketing server such as a POWERMARKETING server, thus becoming a powerful real-time marketing tool.
 FIG. 16 shows a block diagram describing interactions between components of an e-commerce system. In one embodiment, the web user browses the site by sending requests to the e-commerce server (ECS). At the same time, the user's web browser sends the current URL along with the user id to the POWERMARKETING Server (PMS), which updates the PMS GUI used by the Customer Support Team (CST) through an interface such as a web browser interlace. By analyzing the user actions or upon reception of a PMS alert, the CST members can push content to a specific user or groups of users through the PMS GUI. Accordingly, the PMS will push the desired content to the defined user's browsers. The content being pushed can be any multimedia content or a request for establishing a chat-video connection with the CST. The system provides a completely bi-directional, i.e. full-duplex, connection with a website user, enabling powerful direct interactions between the customer support team and users over a common web browser and internet connection without the need of installing any browser plug-ins. The interactive communication between the POWERMARKETING server and the web user may utilize various technologies. For example, full-duplex web communication platforms (e.g., HTML5 Websocket) enable duplex communication between the clients and the POWERMARKETING server, allowing the clients to transmit instructions or messages and receive updates (e.g., refreshed pages or information within pages upon receiving new information).
 FIG. 17 shows a scenario which a user receives a help proposition from the merchant because he is stalled at the payment process of the e-commerce workflow for more than a time period, e.g. 5 minutes. In one embodiment, the web user X has a shopping cart ready to be paid and navigates through the website's checkout process until he reaches the payment page (step 1A). While he was navigating the website, his location, i.e. the web page URL, was being sent (step 1B) to the POWERMARKETING Server (PMS). When after 5 minutes there's still no payment received from user X, according to a pre-defined rule, PMS alerts one of the Merchant Customer Support members (CS) identifying the user and his current location (step 2). If needed the CS may request more information about the user by relaying a request to the e-commerce server through the PMS GUI (the e-commerce server needs the appropriate PMS plug-in in order to be able to respond to the PMS requests). Understanding that probably the user is facing certain difficulty during the payment process, the CS sends a help proposition to the user through the PMS GUI (step 3). The PMS will send an invitation message to the user web browser indicating that a CS member would like to assist the user via a video session (step 4). If the user accepts the CS invitation, a video session is established between the user and the selected CS member (step 5), enabling him to understand the user difficulty and providing the answer. With this information, the user can then finish the payment and a new order is placed at the e-commerce server (step 6).
 FIG. 18 shows a zoomed portion of the user's web browser where he is invited to see the exclusive promotion. If the user decides to learn more about the promotion, the user can click the "Click here" link, and then the promotion is displayed in the user's web browser as FIG. 19 depicts.
 In another embodiment, a website allows groups of friends to make their online purchases together. The friends can browse through the website together. Given the appropriate permission by his friend, another user can take over the other user's browser, tour them through sections or products, talk about what they're seeing, discuss about what products they are buying, exchange experiences on given items, or simply provide their opinion. User can enter a group-shopping session with a couple of friends and ask them for help on getting the right merchandize. One of the Customer Support Members may notice that a group of users is browsing through an area; the Customer Support Member may push a banner for a given product to highlight the recommendation to the group of users. The Customer Support Member may offer the group a discount in real-time, for the article that the group of users are watching at that moment. The Customer Support Member may also offer help and joins the video-chat session to better guide the potential customers.
 With the real-time marketing system such as POWERMARKETING, online support is not a one-way process. Customer support members don't have to stand-by and merely react to help based on the requests. With the real-time marketing system, customer support members can be proactive. They can initiate interaction with their users. They can provide a customer support service that customers appreciate and remember. The real-time marketing system, such as POWERMARKETING, offers online businesses an unprecedented level of information, interaction and opportunity that will help boost sales.
 Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense(i.e., to say, in the sense of "including, but not limited to"), as opposed to an exclusive or exhaustive sense. As used herein, the terms "connected," "coupled," or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements. Such a coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words "herein," "above," "below," and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word "or," in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
 The above Detailed Description of examples of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific examples for the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. While processes or blocks are presented in a given order in this application, alternative implementations may perform routines having steps performed in a different order, or employ systems having blocks in a different order. Some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or sub-combinations. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or Implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples. It is understood that alternative implementations may employ differing values or ranges.
 The various illustrations and teachings provided herein can also be applied to systems other than the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the invention.
 Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions, and concepts included in such references to provide further implementations of the invention.
 These and other changes can be made to the invention in light of the above Detailed Description. While the above description describes certain examples of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the invention disclosed herein, As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the invention under the claims.
 While certain aspects of the invention are presented below in certain claim forms, the applicant contemplates the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as a means-plus-function claim under 35 U.S.C. §112, sixth paragraph, other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer-readable medium. (Any claims intended to be treated under 35 U.S.C. §112, 6 will begin with the words "means for.") Accordingly, the applicant reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention,
Patent applications by Andre T. Parreira, Odivelas PT
Patent applications by IBT - Internet Business Technologies
Patent applications in class Structured document (e.g., HTML, SGML, ODA, CDA, etc.)
Patent applications in all subclasses Structured document (e.g., HTML, SGML, ODA, CDA, etc.)