Systems and methods for generating campaign analytics

The present approach relates to systems and methods for tracking a plurality of client actions within a portal running on a client instance and generating an analytics report that includes analytics information indicative of the tracked plurality of user actions and other events. The present approach includes receiving a user criteria specifying a web service integratable with an analytics package. The present approach further includes integrating the analytics package with the specified web service to leverage functionality of the specified web service, such as tracking functionality, to enhance tracking efficiency by causing the analytics package to selectively import analytics information from the web service. Furthermore, the present approach includes generating an analytics report that includes the analytics report may include analytics information indicative of user actions tracked by the analytics package or other analytics information imported from the web service by the analytics package.

BACKGROUND

The present disclosure relates generally to systems and methods for generating analytic information. In particular, the present disclosure generally relates to systems and methods for generating campaign analytic information in response to tracking user activity.

An enterprise or organization may include different departments (e.g. human resources (HR), information technology (IT), accounting, and so forth) that may operate in different locations (e.g., cities, states, countries), and each department typically includes members or employees having different roles (e.g., managers, assistants, associates, and so forth). Typically, enterprises may make available to their employees an electronic portal, which may function as an employee service center that enables the employees to engage with various features on the portal via a web-based interface. For example, the employees may engage with various applications, widgets, or features selectable through the portal to view desired information regarding their respective insurance plans, upcoming trainings, enterprise-wide announcements, and the like. In a similar fashion, the enterprises may create content accessible to clients (e.g., users who pay to access the content and benefit from services the enterprises offers) via a web-based interface allowing client interaction with features on a client portal. In this manner, clients may engage with the various features in the client portal.

In some contexts, enterprises may wish to determine information indicative of actions within various portals, such as activity within each of the client portals and each of the employee portals, for example, to improve the functionality, arrangement, timing, etc., of features and content present on those respective portals. Determining client and employee preferences by tracking their activities on their respective portals may be useful in improving these features and/or content. However, it may be difficult to track activity within a web-based interface of the portals to determine information indicative of actions (e.g., performed by employees associated with the enterprise and/or clients of the enterprise), in view of the operating conditions under which the clients and employees may operate and in view of the diverse range of actions the clients and employees associated with the enterprise are able to perform. Accordingly, there is a need to improve the information retrieved from clients and employees useful in determining user preferences within various portals, so that enterprises may modify their operations, to, at least enhance the user experience and efficiency by which the clients and employees engage with respective portals.

SUMMARY

The present approach relates to systems and methods for tracking a plurality of client actions within a portal running on a client instance and generating an analytics report that includes analytics information indicative of the tracked plurality of user actions and other events. The present approach includes receiving a user criteria specifying a web service integratable with the analytics package. The present approach further includes integrating the analytics package with the specified web service to leverage functionality of the specified web service, such as tracking functionality, to enhance tracking efficiency by causing the analytics package to selectively import analytics information from the web service. The analytics report may include analytics information indicative of user actions tracked by the analytics package or other analytics information imported from the web service by the analytics package. In this manner, authorized personnel may use the analytics information from the analytics report to enhance the portal.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS

As used herein, the term “computing system” refers to an electronic computing device such as, but not limited to, a single computer, virtual machine, virtual container, host, server, laptop, and/or mobile device, or to a plurality of electronic computing devices working together to perform the function described as being performed on or by the computing system. In some embodiments, the computing system may employ any suitable circuitry, such as a processor-based device, memory devices, storage devices, and the like. As used herein, the term “medium” refers to one or more non-transitory, computer-readable physical media that together store the contents described as being stored thereon. Embodiments may include non-volatile secondary storage, read-only memory (ROM), and/or random-access memory (RAM). As used herein, the term “application” refers to one or more computing modules, programs, processes, workloads, threads and/or a set of computing instructions executed by a computing system. Example embodiments of an application include software modules, software objects, software instances and/or other types of executable code.

Furthermore, as used herein a “campaign” refers to a planned and coordinated dissemination of informational and/or actionable content to select users (i.e., “campaign participants” or “participants” as used herein) of an organization or enterprise. Hence, a campaign as used herein may include, but is not limited to, an informational campaign, a sign-up campaign, an awareness campaign, a safety campaign, and so forth, in which some or all of the individuals of an organization receive information and/or tasks in a coordinated or sequential manner. As used herein, “campaign items” relate to pre-configured or pre-determined campaign-related content (e.g., information and/or actions) pushed (e.g., sent) out to individuals of an organization (e.g., an enterprise) or a subset of the individuals via various content channels (e.g., web, E-mail, instant messaging (IM), etc.) in response to specified trigger events, such as events related to employment dates or anniversaries, organizational deadlines or target dates (e.g., open benefits enrollment), calendar-based events, holidays, life events (e.g., birthdays, anniversaries, and so forth); based on a request from personnel; and/or based on a determined identity of an individual (e.g., project manager, accountant, field operator, engineer, etc.) or any other suitable data. Examples of campaign items include content data associated with human resources (HR), information technology (IT), accounting, insurance, and the like, such as data or actions associated with health insurance, retirement plans, savings accounts, employee training, password management, and so forth.

As used herein, “campaign-related activities” refer to specific campaign-related content requiring action from an assigned (e.g., target) individual (i.e., a campaign participant). For example, an enterprise may assign and send new hired employees a campaign-related activity associated with accepting the terms and conditions of an assigned insurance policy. Since this campaign-related content requires an action (e.g., accepting the terms and conditions) by a participant, it may be referred to as a “campaign-related activity.” The campaign items and/or campaign-related activities in the campaign may be sequentially associated to one another or organized in any suitable manner, such that completion of a campaign-related activity enables the participant to receive or have access to a subsequent campaign item or a subsequent campaign-related activity. Additionally or alternatively, the campaign items and/or campaign-related activities may be organized or connected in non-linear networks (e.g., webs) having many nodes that may define a plurality of paths, such that different paths along the campaign may be taken as the assigned participant completes campaign-related activities based on the identity of the participant, selected responses or actions to a given campaign-related activity (e.g., selection of an insurance plan from among several options), and so forth. For example, a first participant (e.g., a new hired employee) may be associated with a first campaign (or a first path along a campaign having web-like arrangement) having a first set of campaign items and campaign-related activities, while a second participant (e.g., a project manager having ten years of experience) may be associated with a second campaign (or a second path along a campaign having web-like arrangement) having a second set of campaign items and campaign-related activities. The first and second set of campaign items and campaign-related activities may be different from one another, include a subset of similar campaign items and campaign-related activities, or be identical.

Enterprises may make this campaign-related content available to their employees via an electronic employee portal, which may function as an employee service center that enables the employees to engage with various features on the portal via a web-based interface. In some instances, the web-based interface may include a browser for accessing the internet and accessing the portal via the internet, such as in contexts where the content or applications to be accessed are provided as part of a cloud-based platform. For example, the employees may engage with various applications, widgets, or features selectable through the portal to view desired information regarding their respective campaigns (e.g., insurance plans, upcoming trainings, enterprise-wide announcements, and so forth).

Additionally, the enterprises may create content accessible to clients (e.g., users who pay to access the content and benefit from services the enterprises offers) via the web-based interface allowing client interaction with features on a client portal. In this manner, clients may engage with the various features in the client portal.

As used herein, “users” is intended to refer to clients of the enterprise, employees of the enterprise, or any other person whose activities may be tracked using the embodiments disclosed herein. To facilitate discussion by distinguishing the persons whose actions on a portal are tracked from the people who are receiving information indicative of the tracked user actions with respect to a content event, as used herein, “authorized personnel” refers to people who receive the information indicative of the tracked user actions, and may include campaign managers, executives, and so forth. For example, authorized personnel may have access to the information indicative of the tracked user actions. To facilitate discussion, as used herein “user action” may refer to a corresponding content event (i.e., an action or occurrence detected by a program), which may include data indicative of any user action, such as, but not limited to, clicking a mouse button, pressing a key, filling out a text field, running out of memory, and so forth.

In some contexts, enterprises may wish to determine information indicative of user actions within various portals, such as activity within each of the client portals and each of the employee portals, for example, to improve the functionality, arrangement, timing, etc., of features present on those respective portals. Determining client and employee preferences by tracking their activities on their respective portals may be useful in improving the offered or displayed features. However, in a cloud-based platform or other instanced context, it may be difficult to track activity within a web-based interface to determine information indicative of actions within various portals, both for employees associated with the enterprise and for clients of the enterprise, in view of the diverse range of actions the clients and employees associated with the enterprise are able to perform. Accordingly, there is a need to improve prior techniques for retrieving information (from users) useful in determining user preferences within various portals, so that enterprises may modify their operations, to, at least enhance the user experience.

With this in mind, the present approach includes improving the tracking of user actions within a portal running on a client instance by employing an analytics package. Using the embodiments disclosed herein, an analytics package may be installed on a client device to enable a cloud computing platform to track analytics information indicative of user actions to then generate an analytics report that includes relevant analytics data associated with respect to one or more tracked targeted content events. As used herein, “the analytics package” refers to a set of computer script that may be installed on a computer system or application node accessible on a cloud-based platform and configured to a set of configured preferences to track user activity and generate an analytics report that includes information regarding an aggregation of the client actions performed on the client instance with respect to a certain targeted action.

In one implementation, the analytics package may integrate with the web service, such that the analytics package is added as an extension onto the web service. Selection of the extension may cause the analytics package to run and perform the functionality disclosed herein. For example, the analytics package may be realized as a plug-in (e.g., extension) that may be installed via a client device to enable tracking of user actions within the portal accessed through a client instance. After installing the analytics package, the analytics package may prompt the user to specify a client criteria, such as the portal being accessed by the user, the web service with which the analytics package will integrate with, and the like. In this manner, the analytics package may be installed on the client device based on the specified client criteria. It should be understood that in some embodiments, the analytics package is not manually installed by a user, and may alternatively be integral to the portal access via a client instance or may be installed by authorized personnel on the client instances.

Furthermore, the analytics package may track various user actions, such as a time duration a user accesses the portal or features within the portal, a number of times the portal or the features of the portal were accessed by the user, the devices used to access the portal or the features, the browser user to enable the access of the portal or the features, and so forth, as described in detail below. Furthermore, the analytics package may leverage the web service and import additional tracked user actions from the web service to enhance the analytics information. The analytics package may generate an analytics report that includes desired analytics information indicative of the plurality of user actions determined by the analytics package and the additional plurality of user actions retrieved by the analytics package from the web service, each with respect to one or more tracked targeted content events. Additional details with regard to the embodiments described herein will be discussed below with reference toFIGS. 1-15.

While the following discussion is generally provided in the context of a portal accessible to clients and employees associated with an enterprise, it should be understood that the embodiments disclosed herein are not limited to such specific contexts associated with these portals. Indeed, the provision of examples and explanations in such an application is to facilitate explanation by providing instances of real-world implementations and applications. It should be understood that the embodiments disclosed herein may be useful in other applications not limited to a client portal or an employee portal. For example, the embodiments disclosed herein may be useful in tracking user actions on any application, widget, or interface, as employed by any suitable enterprise to generate an analytics report with analytics information with respect to one or more tracked content events.

With the preceding in mind, and by way of context, the following figures relate to various types of generalized system architectures or configurations that may be employed to provide services to an organization in a multi-instance or multi-tenant framework and on which the present approaches may be employed. Correspondingly, these system and platform examples may also relate to systems and platforms on which the techniques discussed herein may be implemented or otherwise utilized. Turning now toFIG. 1, a schematic diagram of an embodiment of a cloud computing platform10, such as a cloud computing system, where embodiments of the present disclosure may operate, is illustrated. The cloud computing platform10(e.g., cloud computing system) may include a client network12, a network18(e.g., the Internet), and a cloud-based platform20. In some implementations, the cloud-based platform may be a configuration management database (CMDB) platform. In one embodiment, the client network12may be a local private network, such as local area network (LAN) having a variety of network devices that include, but are not limited to, switches, servers, and routers. In another embodiment, the client network12represents an enterprise network that may include one or more LANs, virtual networks, data centers22, and/or other remote networks. As shown inFIG. 1, the client network12is able to connect to one or more client devices14A,14B, and14C so that the client devices are able to communicate with each other and/or with the network hosting the platform20. The client devices14A-C may be computing systems and/or other types of computing devices generally referred to as Internet of Things (IoT) devices that access cloud computing services, for example, via a web browser application or via an edge device16that may act as a gateway between the client devices14A-C and the platform20.FIG. 1also illustrates that the client network12includes a bridge device or server, such as a management, instrumentation, and discovery (MID) server17that facilitates communication of data between the network hosting the platform20, other external applications, data sources, and services, and the client network12. Although not specifically illustrated inFIG. 1, the client network12may also include a connecting network device (e.g., a gateway or router) or a combination of devices that implement a customer firewall or intrusion protection system.

For the illustrated embodiment,FIG. 1illustrates that client network12is coupled to a network18. The network18may include one or more computing networks, such as other LANs, wide area networks (WAN), the Internet, and/or other remote networks, to transfer data between the client devices14A-C and the network hosting the platform20. Each of the computing networks within network18may contain wired and/or wireless programmable devices that operate in the electrical and/or optical domain. For example, network18may include wireless networks, such as cellular networks (e.g., Global System for Mobile Communications (GSM) based cellular network), IEEE 802.11 networks, and/or other suitable radio-based networks. The network18may also employ any number of network communication protocols, such as Transmission Control Protocol (TCP) and Internet Protocol (IP). Although not explicitly shown inFIG. 1, network18may include a variety of network devices, such as servers, routers, network switches, and/or other network hardware devices configured to transport data over the network18.

InFIG. 1, the network hosting the platform20may be a remote network (e.g., a cloud network) that is able to communicate with the client devices14A-C via the client network12and network18. The network hosting the platform20provides additional computing resources to the client devices14A-C and/or client network12. For example, by utilizing the network hosting the platform20, users of client devices14A-C are able to build and execute applications for various enterprise, IT, and/or other organization-related functions. In one embodiment, the network hosting the platform20is implemented on one or more data centers22, where each data center could correspond to a different geographic location. Each of the data centers22includes a plurality of virtual servers24(which may be referenced herein as application nodes, application servers, virtual server instances, application instances, or application server instances), where each virtual server can be implemented on a physical computing system, such as a single electronic computing device (e.g., a single physical hardware server) or across multiple-computing devices (e.g., multiple physical hardware servers). Examples of virtual servers24include, but are not limited to a web server (e.g., a unitary web server installation), an application server (e.g., unitary JAVA Virtual Machine), and/or a database server (e.g., a unitary relational database management system (RDBMS) catalog).

To utilize computing resources within the platform20, network operators may choose to configure the data centers22using a variety of computing infrastructures. In one embodiment, one or more of the data centers22are configured using a multi-tenant cloud architecture, such that one of the server instances handles requests from and serves multiple customers. Data centers with multi-tenant cloud architecture commingle and store data from multiple customers, where multiple customer instances are assigned to one of the virtual servers24. In a multi-tenant cloud architecture, the particular virtual server24distinguishes between and segregates data and other information of the various customers. For example, a multi-tenant cloud architecture could assign a particular identifier for each customer in order to identify and segregate the data from each customer. Generally, implementing a multi-tenant cloud architecture may suffer from certain drawbacks, such as a failure of a particular one of the server instances causing outages for all customers allocated to the particular server instance.

In another embodiment, one or more of the data centers22are configured using a multi-instance cloud architecture to provide every customer its own unique customer instance or instances. For example, a multi-instance cloud architecture could provide each customer instance with its own dedicated application server(s) and dedicated database server(s). In other examples, the multi-instance cloud architecture could deploy a single physical or virtual server and/or other combinations of physical and/or virtual servers24, such as one or more dedicated web servers, one or more dedicated application servers, and one or more database servers, for each customer instance. In a multi-instance cloud architecture, multiple customer instances could be installed on one or more respective hardware servers, where each customer instance is allocated certain portions of the physical server resources, such as computing memory, storage, and processing power. By doing so, each customer instance has its own unique software stack that provides the benefit of data isolation, relatively less downtime for customers to access the platform20, and customer-driven upgrade schedules. An example of implementing a customer instance within a multi-instance cloud architecture will be discussed in more detail below with reference toFIG. 2.

FIG. 2is a schematic diagram of an embodiment of a multi-instance cloud architecture40where embodiments of the present disclosure may operate.FIG. 2illustrates that the multi-instance cloud architecture40includes the client network12and the network18that connect to two (e.g., paired) data centers22A and22B that may be geographically separated from one another. UsingFIG. 2as an example, network environment and service provider cloud infrastructure client instance42(also referred to herein as a client instance42) is associated with (e.g., supported and enabled by) dedicated virtual servers (e.g., virtual servers24A,24B,24C, and24D) and dedicated database servers (e.g., virtual database servers44A and44B). Stated another way, the virtual servers24A-24D and virtual database servers44A and44B are not shared with other client instances and are specific to the respective client instance42. Other embodiments of the multi-instance cloud architecture40could include other types of dedicated virtual servers, such as a web server. For example, the client instance42could be associated with (e.g., supported and enabled by) the dedicated virtual servers24A-24D, dedicated virtual database servers44A and44B, and additional dedicated virtual web servers (not shown inFIG. 2).

In the depicted example, to facilitate availability of the client instance42, the virtual servers24A-24D and virtual database servers44A and44B are allocated to two different data centers22A and22B, where one of the data centers22acts as a backup data center. In reference toFIG. 2, data center22A acts as a primary data center that includes a primary pair of virtual servers24A and24B and the primary virtual database server44A associated with the client instance42. Data center22B acts as a secondary data center22B to back up the primary data center22A for the client instance42. To back up the primary data center22A for the client instance42, the secondary data center22B includes a secondary pair of virtual servers24C and24D and a secondary virtual database server44B. The primary virtual database server44A is able to replicate data to the secondary virtual database server44B (e.g., via the network18).

As shown inFIG. 2, the primary virtual database server44A may back up data to the secondary virtual database server44B using a database replication operation. The replication of data between data may be implemented by performing full backups weekly and daily incremental backups in both data centers22A and22B. Having both a primary data center22A and secondary data center22B allows data traffic that typically travels to the primary data center22A for the client instance42to be diverted to the second data center22B during a failure and/or maintenance scenario. UsingFIG. 2as an example, if the virtual servers24A and24B and/or primary virtual database server44A fails and/or is under maintenance, data traffic for client instances42can be diverted to the secondary virtual servers24C and/or24D and the secondary virtual database server instance44B for processing.

AlthoughFIGS. 1 and 2illustrate specific embodiments of a cloud computing platform10and a multi-instance cloud architecture40, respectively, the disclosure is not limited to the specific embodiments illustrated inFIGS. 1 and 2. For instance, althoughFIG. 1illustrates that the platform20is implemented using data centers, other embodiments of the platform20are not limited to data centers and can utilize other types of remote network infrastructures. Moreover, other embodiments of the present disclosure may combine one or more different virtual servers into a single virtual server or, conversely, perform operations attributed to a single virtual server using multiple virtual servers. For example, usingFIG. 2as an example, the virtual servers24A-D and virtual database servers44A and44B may be combined into a single virtual server. Moreover, the present approaches may be implemented in other architectures or configurations, including, but not limited to, multi-tenant architectures, generalized client/server implementations, and/or even on a single physical processor-based device configured to perform some or all of the operations discussed herein. Similarly, although virtual servers or machines may be referenced to facilitate discussion of an implementation, physical servers may instead be employed as appropriate. The use and discussion ofFIGS. 1 and 2are only examples to facilitate ease of description and explanation and are not intended to limit the disclosure to the specific examples illustrated therein.

As may be appreciated, the respective architectures and frameworks discussed with respect toFIGS. 1 and 2incorporate computing systems of various types (e.g., servers, workstations, client devices, laptops, tablet computers, cellular telephones, and so forth) throughout. For the sake of completeness, a brief, high level overview of components typically found in such systems is provided. As may be appreciated, the present overview is intended to merely provide a high-level, generalized view of components typical in such computing systems and should not be viewed as limiting in terms of components discussed or omitted from discussion.

With this in mind, and by way of background, it may be appreciated that the present approach may be implemented using one or more processor-based systems such as shown inFIG. 3. Likewise, applications and/or databases utilized in the present approach may be stored, employed, and/or maintained on such processor-based systems. As may be appreciated, such systems as shown inFIG. 3may be present in a distributed computing environment, a networked environment, or other multi-computer platform or architecture. Likewise, systems such as those shown inFIG. 3, may be used in supporting or communicating with one or more virtual environments or computational instances on which the present approach may be implemented.

With this in mind, an example computer system may include some or all of the computer components depicted inFIG. 3and may be present in the embodiments ofFIGS. 1 and 2.FIG. 3generally illustrates a block diagram of example components of a computing system80and their potential interconnections or communication paths, such as along one or more busses84. As illustrated, the computing system80may include various hardware components such as, but not limited to, one or more processors82, one or more busses84, memory devices86, input devices88, a power source90, a network interface92, a user interface94, and/or other computer components useful in performing the functions described herein. The one or more processors82may include one or more microprocessors capable of performing instructions stored in the memory devices86. Additionally or alternatively, the one or more processors82may include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or other devices designed to perform some or all of the functions discussed herein without calling instructions from the memory devices86.

With respect to other components, the one or more busses84includes suitable electrical channels to provide data and/or power between the various components of the computing system80. The memory devices86may include any tangible, non-transitory, and computer-readable storage media. Although shown as a single block inFIG. 1, the memory devices86can be implemented using multiple physical units of the same or different types in one or more physical locations. The input devices88correspond to structures employed to input data and/or commands to the one or more processor82. For example, the input devices88may include a mouse, touchpad, touchscreen, keyboard, and the like. The power source90can be any suitable source for power of the various components of the computing system80, such as a line power and/or a battery source. The network interface92includes one or more transceivers capable of communicating with other devices over one or more networks (e.g., a communication channel). The network interface92may provide a wired network interface or a wireless network interface. A user interface94may include a display that is configured to display text or images transferred to it from the one or more processors82. In addition and/or alternative to the display, the user interface94may include other devices for interfacing with a user, such as lights (e.g., LEDs), speakers, and the like.

With the preceding in mind,FIG. 4is a flow diagram99of steps performed in generating an analytics report by employing an analytics package100to track user actions within a client instance42, in accordance with aspects of the present disclosure. The steps illustrated in the flow diagram99may be performed by the cloud computing platform10, by a client instance used by a client or employee of an enterprise, or on an application node of a client instance having access to the analytics package. In accordance with an embodiment, the analytics package100may track user actions with respect to one or more targeted content events, for example, to provide the enterprise with an analytics report, including information useful in improving accessibility and presentation of content to various users. Furthermore, the steps illustrated in the flow diagram99are meant to facilitate discussion and are not intended to limit the scope of this disclosure, since additional steps may be performed, certain steps may be omitted, and the illustrated steps may be performed in any order.

A client device14may receive a request to install the analytics package100, which causes the cloud platform10to install (process block102) the analytics package100. In one embodiment, the analytics package100may be installed as a plug-in, which may include a software component that adds to an existing computer program, for example, a web browser used to access the user portal. In such embodiment, the web service supporting the plug-in may enable customization of the plug-in. The plug-in may be installed on a web service (e.g., that may track user actions within a web-based interface associated with the web service). In another embodiment, the analytics package100disclosed herein may be integral to the user portal or the web service, such that manual installation is not required.

The analytics package100may integrate with one of a plurality of web services. For example, the analytics package100may operate in accordance with a first, second, or third web service that are each integratable with the analytics package100. The analytics package100may integrate with the first, second, or third web service to allow the exchange of analytics information to authorized personnel. That is, the analytics package100may leverage the first, second, or third web service to retrieve analytics information indicative of the user actions that is tracked with the first, second, or third web service, respectively.

In one embodiment, authorized personnel may cause the analytics package100to run on the web service as used by the clients and employees of the enterprise, such that the steps of the flow diagram99are transparent to a user. It should be understood that the authorized personnel, the users, or any other person associated with the enterprise may cause the analytics package100to integrate with a web service and run on the cloud-based platform10. It may be beneficial for the user to specify various content events as part of configuring (process block104) the analytics package100, for example, to integrate with the specified web service.

To that end, in response to selection or installation of the analytics package100, the client device14may prompt the user to make one or more user selections to configure (process block104) the analytics package100. In one example, a client device14may prompt the user to select (process block106) the web service that the analytics package100will integrate with, such that the analytics package100integrates with the web service based on the selection (process block106). In one implantation, integrating the analytics package comprises adding an extension (e.g., plug in) indicative of the analytics package to the web service, such that selection of the extension causes presentation of an Application File on the web service for executing the rest of the steps included in the flow diagram99.

The client device14may enable the user to select (process block106) whether the analytics package100will run with/on a web service. The analytics package100may be configured (process block104) based on the receipt of the selection (process block106) of the web service, such that selection of the web service causes the analytics package100to integrate with the selected web service. For example, the user may select between a first, second or third web service, and the cloud computing platform10may associate the user profile (e.g., of a corresponding client instance42), the analytics package100, and the selected web service, such that the client device14may run one tracking configuration record per client instance. In some contexts, this association may be realized via an industry standard architecture (ISA).

Additionally or alternatively, the analytics package100may be configured (process block104) based on user selection (process block108) of desired content events. The desired content events the user specifies may be included in the analytics information present on the analytics report generated by the analytics package100, described below. In one embodiment, the user may specify the desired content events by selecting from a list of pre-generated content events that are presented to the user after installation of the analytics package100. For example, the user may select from a list of content events that may include the number of page visits per time period, the number of pages open per session, the browsers used to access the portal, total time spend viewing the portal, the click rate, and the number of people a certain piece of content was forwarded to, to name a few, as described in detail below. However, it should be understood that the analytics package100may track any additional or alternative content events whether a user makes a selection of those content events or not. For example, certain user actions associated with certain content events may be tracked without user selection of those certain content events.

Furthermore, in some embodiments, an enterprise may make available or may limit client instances42corresponding to clients or employees associated with the enterprise based on the selection of the web service, the selection of the desired content events to track, or any other suitable settings configuration. In this manner, the enterprise may receive information indicative of the tracked user actions (e.g., client and employee actions) to better improve the content the employees and clients may engage with.

After the analytics package100is configured (process block104) the analytics package100, the cloud computing platform10may run the analytics package100on the client devices14to track (process block110) user actions associated with the corresponding client instances42via a web browser. As described in detail below, the analytics package100may integrate with the web service, for example, based on receipt (process block106) of the user selection specifying the web service, and may track (process block110) the client actions, for example, based on receipt (process block108) of the user selection of the desired content events. In some contexts, the analytics package100may track (process block110) a duration (block114) of time spent accessing content via a portal, a number of times the content is accessed (block116), and the devices user to access the content (block118), just to name a few.

In some contexts, the analytics package100may leverage the ISA to receive an indication of the user action, and assemble a tracking profile that includes information related to that tracked action within the portal. For example, in response to an indication of a user action, such as clicking on a uniform resource locator (URL), the analytics package100may leverage the ISA to determine the URL selected by the user, the length of time the user spent accessing the URL, the application programming interface (API) token, and the like.

Additionally, configuring (process block104) the analytics package100may include adding an application file table in which tracked user actions may be stored (process block111). The analytics package100may store (process block111) the tracked (process block110) client actions (e.g., in a virtual database server22or memory device86), as discussed in detail below with regard toFIG. 7. Furthermore, as described above, the analytics package100may leverage the web service and import (process block112) additional tracked user actions from the web service to enhance the analytics information. For example, the analytics package100may employ Asynchronous JavaScript (AJAX) to call on the client side to facilitate tracking browser activity. While the AJAX may be employed to call on the client-side to track browser activity, it should be understood that the tracked events may be stored elsewhere on the cloud computing platform10. In another example, the analytics package100may employ Representational State Transfer (REST) application programming interface (API) to call on the server-side to track email activity.

The analytics package100may generate (process block113) an analytics report that organizes the tracked user actions in an easy to read document (e.g., as a table, sectioned lists, graphs, etc.). For example, the analytics package100, when executed on a cloud computing platform10, may track (process block110) content events (indicative of user actions) such as the duration (block114) of time spent accessing content (e.g., a portal), the number of time the content is accessed (block116), the devices user to access the content (block118). In response to the analytics package100receiving (process block108) an instruction that the desired content events include the duration (block114) and the number of time the content was accessed (block116), the analytics package100may retrieve information associated with the client actions indicative of these desired content events to generate (process block113) an analytics report that includes this desired information. It should be understood that in some embodiments the analytics report generated by the analytics package100may include only a subset of the total tracked user actions. For example, the analytics package100may filter through the tracked user actions, based on the selections (e.g., blocks106and108) used for configuring the analytics package100, to generate (process block113) the analytics report, such that the analytics report only includes information associated with the client actions indicative of the desired content events associated with specific client devices14, specific client instances42, or specific application nodes of a client instance. In one implementation, the identity of the users who performed the user action that is tracked may be omitted, such that the tracked user actions are anonyms with respect to the user who performed the action.

FIG. 5is a flow diagram130of steps performed in tracking (process block110;FIG. 4) user actions by employing the analytics package100operating within a cloud computing system10, in accordance with aspects of the present disclosure. Specifically, the illustrated flow diagram130may be useful for tracking user actions on a web-based interface (e.g., browser used to access a portal). For example, the process illustrated in the flow diagram130may facilitate determining analytics information associated with a content delivery package or a content automation package that may include content delivered and accessible via the web-based interface. To help illustrate, flow diagram130is discussed in the context of interacting with a widget of the client portal or the employee portal discussed above. In response to a user interaction132with respect to a feature on the portal, such as a widget134, the analytics package100may determine that a tracked user action136has occurred based on the user interaction132. The analytics package100may cause the client device14to communicate the tracked user action136to a content delivery analytics feature138that may associate the tracked user action136with a campaign, when the user interaction is associated with (or part of) a campaign.

In some embodiments, the analytics package100may transcribe the tracked user action136into a target scripting language140(e.g., JavaScript) that may be leveraged on one of a plurality of web services142. For example, the analytics package100may transcribe the tracked user action136into the target scripting language140(e.g., JavaScript) that may be used by a first web service144, a second web service146, or a third web service148. The first, second, and third web services144,146,148may store the tracked user actions136defined by the target scripting language140according to the storing methods employed by the first, second, or third web services144,146,148, respectively.

In one example, the third web service148, while running the analytics package100, may store (process block111;FIG. 4) the tracked user action136in one or more buffers, as discussed above. After a buffer becomes full (or after the number of records in the buffer reaches a threshold value), the analytics package100may cause the tracked user actions136to be stored in another buffer. In some implementations, after a buffer is full (or after the number of records in the buffer reaches a threshold value), the analytics package100may send the tracked user actions136via Representational State Transfer (REST) API to the database server22. That is, the analytics package100may leverage the first web service144, second web service146, or any other web service142to store the tracked user actions136in the database server22and then generate the analytics report by using the stored tracked user actions136.

FIG. 6is a flow diagram160of steps performed in tracking user actions136by employing the analytics package100operating within a web service142, in accordance with aspects of the present disclosure. The process illustrated in the flow diagram160may be useful in tracking user actions on an E-mail application. For example, the process illustrated in the flow diagram160may facilitate determining analytics information associated with a content delivery package or a content automation package that may include content delivered via the E-mail application. To help illustrate, flow diagram160is discussed in the context of interacting with an E-mail application accessible via the client device14and associated with the client portal or the employee portal discussed above, but it should be understood that the flow diagram160may be useful in tracking user actions on any web-based application.

In response to a user interaction132(e.g., opening the E-mail application or selecting a features, such as a link, within the E-mail application) with respect to an E-mail application162, the analytics package100may intercept (process block164) an indication indicative of the E-mail application162opening up or indicative of the user interaction within the E-mail application162. In certain contexts, when an enterprise sends campaign-related content to a user via E-mail or when the client device14is configured to automatically send campaign-related content to the user via E-mail, intercepting (process block164) the indication may include associating (process block166) the performed user action as related to the campaign with the tracked user actions. For example, the client device14may automatically send campaign-related content, such as a link, via the E-mail application to the user. When the user opens the campaign-related content via the E-mail application, the analytics package100may intercept (process block164) the indication indicative of the user opening up the E-mail and may associate user selection of the link with the tracked user action136, such that the tracked user actions136may be associated with certain campaigns.

In some embodiments, the analytics package100may transcribe the tracked user action136(and its association to a campaign) into a target scripting language140(e.g., JavaScript) that may be leveraged on one of a plurality of web services142. For example, the analytics package100may transcribe the tracked user action136(and its association to a campaign) into the target scripting language140(e.g., JavaScript) that may be used by a first web service144, a second web service146, or a third web service148. The first, second, and third web services144,146,148may store the tracked user actions136defined by the target scripting language140according to the storing methods employed by the first, second, or third web services144,146,148, respectively. In one embodiment, only one web service142may be active at a time per client instance. While the illustrated embodiment includes three webs services142, from which one web service integrates with the analytics package100, it should be understood that the analytics package100may integrate with any additional or alternative web services.

In one example, the third web service148, while running the analytics package100, may store the tracked user action136in one or more buffers, as discussed above. After a buffer becomes full (or after the number of records in the buffer reaches a threshold value), the analytics package100may cause the tracked user actions136to be stored in another buffer. In some implementations, after a buffer is full (or after the number of records in the buffer reaches a threshold value), the analytics package100may send the tracked user actions136via Representational State Transfer (REST) API to the database server22. That is, the analytics package100may leverage the first web service144, second web service146, or any other web service142to store the tracked user actions136in the database server22and then generate the analytics report by using the stored tracked user actions136.

FIG. 7is a flow diagram180of a process for compiling and storing information indicative of the tracked user actions136, in accordance with aspects of the present disclosure. In one embodiment, the analytics package100may track event information182. The event information182may include information indicative of a campaign184, a campaign-related content186, and a user action136engaging with the campaign-related content186. In addition or alternatively, the analytics package100may track analytics visit information188, which may include the average time spent on a piece of content, the time and date that the piece of content was accessed, the number of content pages viewed, the average number of content pages opened per session, the number of unique users who visit a content page, the number of visits, and the like. The analytics package100may also track the number of visits190, browser information191(e.g., information indicative of the browser used to access a piece of content, including a name of the browser, a statistic about the browser, etc.) and the device information192(e.g., information indicative of the device used to access the browser, the type of device, the time and date the device accessed the content via the browser, etc.). The analytics package100may also track visit referral information194(e.g., information indicative of content referred by one user to another user, which may include the date the referral was submitted, the number of times the another user engaged with the referred content, the referral path, etc.).

As mentioned above, in one embodiment, the tracked user action may be imported from one of a plurality of web services. In another embodiment, the analytics package100may track the user actions136to determine the information illustrated inFIG. 7. In some embodiments, the analytics package100may cause the cloud computing platform10to store over 10,000 records. By way of example of this storage capacity, the event information182may include a record for each of five campaigns at a time, four pieces of campaign-related content per campaign, two events per campaign-related content, two elements per campaign-related content, and two websites (e.g., an open browser accessing the portal, another open browser accessing any suitable information). The analytics visit information188may include one record for each for each of two sites (e.g., client or employee portals, etc.) per day. The device information192may include one record for each of four device records (e.g., each device record corresponding to a device, such as a tablet, mobile device, desktop, laptop, etc.) for each of two sites (e.g., client or employee portals, etc.). In another example, the browser information191may include one record for each of four device records for each of four browsers (e.g., a first, second, third, and fourth browser) used to access each of two sites. These examples are used to illustrate that the analytics package100is able to cause the cloud computing platform10to retrieve and store the above-referenced information associated with the user actions in one or more large tables. Continuing the above examples, tracking the above-referenced information may cause 132 records to be stored per day, such that the stored records may exceed 10,000 records over a 75 day period.

While the embodiments disclosed herein are able to store all this information in the virtual database server22or the memory device86, the analytics package100may employ one or more buffers to facilitate storage of the tracked user actions. In one embodiment, the user actions may be tracked in installment segments. For example, the analytics package100may track user actions until the tracked user actions fill a first buffer or reach a threshold number of records within the buffer. In response to the number of records stored in the buffer filling the entries in the first buffer or reaching a threshold number of records in the first buffer, the analytics package100may cause additional tracked user actions to be stored in a second buffer. In addition or alternatively, in response to the number of records stored in the one or more buffers filling the entries in one or more buffers, or in response to the number of records stored in the one or more buffers reaching a threshold number of records in the one or more buffer, the analytics package100may store the records from the buffer in the virtual database server22or the memory device86. In this manner, the number of requests to import the tracked information from the web services and/or the number of requests to store the tracked information in the virtual database server22or the memory device86may be reduced, which may increase the efficiency and reliability of the information stored in the virtual database server22or the memory device86.

By way of example regarding the types of tracked user actions that may be tracked and included in the analytics report,FIGS. 8-16include various types of content from which user actions may be tracked by employing the analytics package100ofFIG. 4. In one embodiment, these tracked user action or a portion of these tracked user actions may be imported from the web service. In another embodiment, these tracked user actions or a portion of these tracked user actions may be tracked by the analytics package100. Furthermore, it should be understood that the tracked user actions may be organized in the analytics report in any suitable manner, for example, such that a portion of the tracked user actions are expressed as a percentage, a rate, an aggregate amount (e.g., a total number), ratios, and the like.

With this in mind,FIG. 8depicts an example of a screenshot200of a user portal202on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. As discussed above, the user portal may be accessed via the client instance42. As discussed above, the analytics package100may be realized via a plug-in that may be installed on the client device14to enable tracking of user actions within the user portal202accessed through a client instance42. In some embodiments, the analytics package100may integrate with a web service to facilitate this tracking. The analytics package100may track a plurality of information, including the number of visits (e.g., sessions) that users access the user portal202via associated client instances, the number of unique visitors (e.g., users), the number of pages204the user engages with per session, the duration per session, the links referred to other users via the user portal202, the browsers used to access the user portal202, the devices used to access the user portal202, the paths taken by users to access the user portal202, the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), just to name a few.

FIG. 9depicts an example of a screenshot210of an E-mail application162on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. The analytics package100may track user actions or import tracked user action associated with user actions within the E-mail application162. For example, tracked user actions associated with user actions within the E-mail application162may include information regarding who the E-mail was sent to, the number of successful delivered E-mails, the number of unsuccessful delivered E-mails, the number of E-mails opened, the clicks within the E-mail application, the top selected links selected via the E-mail application162, and/or the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), to name a few.

FIG. 10depicts an example of a screenshot220of a banner222on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. The analytics package100may track the user actions or import tracked user action associated with user actions with the banner222. For example, the tracked user actions associated with user actions with the banner222may include information regarding the total impressions associated with the banner222, the unique impressions associated with the banner222, and/or the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), just to name a few. In certain embodiments in which the banner222includes a selectable button224, the tracked user actions associated with user actions with the banner22may include information regarding the total click through for the selectable button224and/or the unique click through for the selectable button224, to name a few.

FIG. 11depicts an example of a screenshot230of a window232of to-do items234on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. The analytics package100may track the user actions or import tracked user action associated with the window232of to-do items234. For example, the tracked user actions may include information regarding the completed and/or uncompleted to-do items234, the total impressions, the unique impressions, the total click throughs, and/or the unique click throughs associated with the window232or the to-do items234, to name a few.

FIG. 12depicts an example of a screenshot240of a widget242, including selectable links244(e.g., URLs), on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. The analytics package100may track the user actions or import tracked user action associated with the user engaging with the widget242and the corresponding selectable links244. For example, the tracked user actions may include information regarding the total number of link views (e.g., which may be broken down into the views for a given day, week, month or year), the total impressions, the unique impressions, the total click throughs, and/or the unique click throughs associated with the selectable links244, to name a few.

FIG. 13depicts an example of a screenshot250of a window252of calendar events254on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. A user may engage with the calendar events254, for example, to view more details about the calendar event, add the calendar event to another calendar application, and the like. The analytics package100may track these user actions (and others) or import these tracked user action (and others) associated with the user engaging with the window252of calendar events254and the corresponding calendar events254. For example, the tracked user actions may include information regarding the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), the total impressions, the unique impressions, the total click throughs, the total download click through, the unique click throughs, and/or the expand rate associated with the window252of calendar events254, to name a few.

FIG. 14depicts an example of a screenshot260of a video262on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. A user may engage with the video262in a variety of ways, for example, by playing or viewing the video. The analytics package100may track or import user actions associated with the user engaging with the video262. For example, the tracked user actions may include information regarding the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), the total impressions, and/or the unique impressions associated with the video262, to name a few.

FIG. 15depicts an example of a screenshot270of a window272of selectable image-based links274on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. The image-based links274may be selectable images that include embedded URLs (e.g., hyperlinks) that are selected when the user selects the image-based link274. The analytics package100may track or import user actions associated with the user engaging with the image-based links274. For example, the tracked user actions may include information regarding the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), the total impressions, the unique impressions, the total click throughs, and/or the unique click throughs associated with the window272of image-based links274, to name a few.

FIG. 16depicts an example of a screenshot280of a calendar282on which the analytics package100ofFIG. 4may be employed, in accordance with aspects of the present disclosure. The analytics package100may track or import user actions associated with the user engaging with the calendar282. For example, the tracked user actions may include information regarding the total number of views (e.g., which may be broken down into the views for a given day, week, month or year), the total impressions, and/or the total times the calendar282has been downloaded (e.g., added to the user's calendar), to name a few.