Using user segments for targeted content

Techniques for providing content to a computing device of a user are described. For example, a platform hosts a plurality of tools includes an analytics tool and a content tool. Input of a customer of the platform is received and specifies user segments and content to be provided accordingly. The tools are updated based on the customer input. User interactions of the user are also received and analyzed by, for example, the analytics tool. The analytics tool outputs an indication that the user is associated with a user segment based on the analysis. The output identifies the user segment and the user based on a format usable by the other tools. In turn, the content tool automatically receives and uses the output as an input to determine the content and the target of the content. Accordingly, the content tool provides the content to the computing device of the user.

TECHNICAL FIELD

This disclosure relates generally to techniques for providing content to computer devices.

BACKGROUND

Users are turning to online tools to access various types of services. User interactions with the services are often tracked and analyzed. Generally, the analysis is used to improve the services and/or to customize some of the services to the users. For example, interactions of a user with a product's web site are tracked. An interest of the user in a particular product is accordingly estimated. An advertisement for the product is selected based on this interest. Subsequently, when the user returns to the same web site or visits a different web site, the advertisement is inserted in the accessed web site. In this example, tracking and analyzing the user interactions can facilitate targeted advertisement.

Previous techniques for improving various services based on tracked user interactions can be complex. For example, in the context of targeted advertisement, the techniques involve two entities: analysts and marketers. The analysts frequently classify different types of visitors to web sites into buckets or categories, often referred to as segments. The marketers often choose which dimensions or demographics are to be used in segmenting the visitors and the advertisements to be provided to each segment.

However, the analysts and the marketers traditionally use disparate tools. The analysts use analysis and reporting tools. In comparison, the marketers use a digital advertising platform such as a search engine or banner advertisement platform. To provide targeted advertisements, the marketers often need to export and reformat data generated by the analysts into tools such as spreadsheet applications. The marketers then import that data into the digital advertising platform. This process is referred to as “remarketing” in the advertisement industry.

The use of disparate tools results in a complex process of exporting, reformatting, and importing data. In addition to this complexity, the imported data can become stale, impacting the effectiveness of targeted advertisements. More specifically, because of the complexity of the process, there can be a large time gap (e.g., a day) between the time user interactions are tracked and analyzed and the time the resulting data is imported and the targeted advertisement is provided. As such, a user visiting a product's web site and having a particular interest in a product may not receive an advertisement targeted for that product until much later (e.g., the next day). However, the user's interest may have changed during that long time frame (e.g., the user may have bought a similar product from a different web site). Thus, because of the staleness of the data, a lower than desired conversion rate for the target advertisement results meaning that the frequency of the purchase or other desired user action responsive to the targeted advertisement is less than it might otherwise be if the advertisement had been provided more quickly.

SUMMARY

One exemplary embodiment involves an analytics tool configured to analyze interactions of users with published content and a separate content tool configured to provide targeted content to the users. The exemplary embodiment involves receiving, by the analytics tool, information identifying one or more user interactions of a user using a computing device to interact with the published content. The exemplary embodiment also involves automatically triggering, based on receiving the information identifying the one or more user interactions, the analytics tool to associate the user with a user segment based on analyzing the information identifying the one or more user interactions. The exemplary embodiment also involves automatically triggering, based on associating the user with the user segment, the analytics tool to provide information identifying that the user is associated with the user segment to the content tool. The content tool is configured to provide targeted content to the computing device of the user based on receiving the information identifying that the user is associated with the user segment.

These illustrative features are mentioned not to limit or define the disclosure, but to provide examples to aid understanding thereof. These and additional features may be implemented independently in various embodiments or may be combined in yet other embodiments, further details of which can be seen with reference to the following description and illustrations. Advantages offered by one or more of the various embodiments may be further understood by examining the specification or by practicing one or more of the various embodiments.

DETAILED DESCRIPTION

Specific details of various exemplary embodiments of the present invention are set forth in the following description and are illustrated inFIGS. 1-9. The various embodiments described herein can be implemented in hardware, software, or a combination thereof. In the figures, similar symbols may identify similar components, unless context dictates otherwise. Certain well-known technology details, such as methods, apparatus, or systems that would be known by one of ordinary skill, are not set forth in the following description or in the figures to avoid unnecessarily obscuring the various examples. Those of ordinary skill in the relevant art will understand that they can practice other examples of the disclosed subject matter without departing from the scope and spirit of the present invention.

Generally, the embodiments described herein are directed to, among other things, providing content, such as advertisements. Specifically, disclosed are methods, systems, and computer readable media that embody techniques for analyzing user interactions to segment users and for providing targeted content accordingly. Unlike the previous techniques that use disparate tools, the embodied techniques provide an integrated solution for providing the targeted content.

In particular, the embodied techniques seamlessly integrate the various tools of the analysts and marketers in a single platform. This platform enables an automated and standardized interface between the tools. By using the platform, the marketers need not import data related to user interactions and segments. Instead, such data is automatically analyzed and stored at the platform and provided to the marketers' tools in a usable format. The process can be further simplified by enabling input of the marketers to predefine actions to be performed automatically based on the data, such as automatically providing targeted content (e.g., targeted advertisements) to users.

This reduction in the complexity of the process also contributes to a higher conversion rate. In particular, the process reduces the time gap between the analysis of the data to generate segments and the consumption of the segments to provide targeted content. Thus, the generated and consumed data is much fresher relatively to that of the previous techniques. In certain embodiments, the data represents real time or substantially real time data.

To illustrate, consider the following example of a product advertisement. A marketer associated with a product's web site defines a segment of “abandoned carts” and associates that segment with a targeted advertisement for a certain discount (e.g., a 20% mark down). In turn, a user visits the product's web site and adds a number of products to a virtual cart. However, the user decides not to check-out the virtual cart and to, instead, immediately visit a news web site. The user interactions (e.g., products added to the virtual cart but not purchased) are analyzed and the user is found to belong to the “abandoned cart” segment. This analysis automatically triggers the discount advertisement to be inserted in a banner space of the news web site as soon as the user accesses this web site. Thus, the targeted advertisement is provided to the user in a short time period. Having just left the product's web site and the products still being fresh on his or her mind, the timely targeted advertisement can entice the user to purchase the products at the discounted price.

As used herein, “platform” refers to a computing environment for hosting a plurality of tools, such as an analytics tool, a content tool, and other computing tools. In an example, the platform is implemented on a computing system. The computing system can be distributed and can provide cloud-based services. Adobe® Marketing Cloud is an example of such computing system.

As used herein, “analytics tool” refers to a computing tool configured to analyze data. In an example, the analytics tool is configured to group users in user segments based on user interactions. A “user segment” refers to a segment of users, such as to groups, audiences, or categories of users. A customer of the platform defines the user segments and associated parameters. Adobe® Analytics is an example of the analytics tool.

As used herein, “content tool” refers to a computing tool configured to provide content. In an example, the content tool is configured to perform an action, such as providing targeted content to a user, based on a user segment to which the user belongs. A customer of the platform defines the action. Adobe® Campaign and Adobe® Media Optimizer are examples of the content tool.

As used herein, “content” refers to data available from a source. In an example, the content is provided from the source to a computing device in various formats such as graphical, auditory, animated, static, two dimensional, three dimensional, or other multi-media formats. An advertisement is an example of content.

As used herein, an “identifier” of an item refers to data that identifies the item. In comparison, a “common identifier” of the item further refers to data that identifies the item commonly between two or more tools. For example, a common identifier of a user segment includes data that identifies the user segment in a same manner across different tools of the platform. An identifier can but need not be a common identifier.

As used herein, “customer” refers to a user of the platform. Typically, a customer signs-up to certain or all of the tools that the platform hosts. A marketer and an analyst are example customers.

As used herein, a “user” refers to an end-user that can but need not use the tools of the platform. An end-user that visits a web site or that downloads an application is an example of the user regardless of whether the web site or the application are associated with the platform or not.

As used herein, “user interactions” refers to interactions of a user (e.g., from a computing device of the user) with a resource, such as a web site or an application. Clicks, swipes, display tilts, adding products to a virtual cart, purchasing the added products, abandoning the virtual cart, and watching, pausing, fast forwarding, skipping, rewinding, or replaying a video clip are examples of user interactions.

As used herein, an “event” represents a particular occurrence based on a set of parameters. For example, a customer defines parameters for adding a user to a user segment based on user interactions. Adding the user to the segment is an example event.

In the interest of clarity of explanation, the various embodiments are described herein within the context of a platform hosting analytics and content tools to provide targeted advertisements based on user segments. However, the embodiments are not limited as such. Instead, the embodiments can similarly apply to other types of tools, to other content types, and/or trigger events. For example, the embodiments can apply to any two or more tools hosted on a platform, where integration between usages of the tools may be desired. In particular, the tools are updated to use common formats such that a triggered event outputted from one tool is consumable by another tool.

Turning toFIG. 1, that figure illustrates an example environment for providing content. In particular, the example environment includes a platform100configured to integrate various tools. This integration involves integrating interfaces between the tools and integrating usages of the tools. Accordingly, a customer such as a marketer operates a customer computing device110to access the platform100and define user segments and actions to be performed based on the user segments. Thereafter, user interactions are tracked and analyzed to associate a user with one or more of the defined user segments. Upon associating the user with a user segment, one or more of the actions applicable to the user segment are automatically performed. For example, a targeted advertisement corresponding to the user segment is provided to a computing device of the user.

In an embodiment, the platform100hosts a plurality of tools, such as an analytics tool102and a content tool104. The analytics tool102is configured to track and analyze user interactions to associate a user with a user segment. In comparison, the content tool104is configured to receive an indication that the user has been associated with the user segment and to, accordingly, provide a targeted advertisement.

The integration of the tools involves various levels. In one level, the integration includes setting-up the platform100and/or the tools such that an output of the analytics tool102(e.g., the indication that the user has been associated with the user segment) is usable by the content tool104. For example, an output of the analytics tool102automatically triggers an action to be performed by the content tool104(e.g., providing the targeted advertisement). In an embodiment, this level of integration updates the tools to use common identifiers of the user segments and to share identifiers of users. An example of this integration is further illustrated inFIG. 2.

In another level, the integration includes setting-up the platform100and/or the tools such that the output of the analytics tool102is available for use by the content tool104within a short time period (e.g., a few seconds or less) representing real time or substantially real time of data exchange between the tools. For example, this level of integration updates the platform100to provide an internal data communication bus between the tools. This bus allows the analytics tool102to publish its output and the content tool104to receive this output in a quick and efficient manner. An example of this integration is further illustrated inFIG. 3.

In an embodiment, a customer of the platform100operates the customer computing device110to access the platform100. Once authenticated, the customer provides customer input112that defines the user segments usable by the analytics tool102and the actions to be accordingly performed by the content tool104. The customer input112allows updating the analytics tool102and the content tool104to use common identifiers for the user segments. Once updated, the analytics tool102tracks and analyzes user actions based on the customer input112. This analysis allows the analytics tool102to associate a user with a user segment and output the association to the content tool104based on the common identifier of the user segment.

The user interactions of a user (or multiple users) are received from one or more sources, external or internal, to the platform100. The received user interactions are stored in a data store associated with the platform100along with an identifier of the user. The data store is accessible to the analytics tool102and the content tool104. The identifier of the user allows the two tools to share a common way for associating the user with the user interactions. As such, if the analytics tool102adds the user to a user segment (e.g., by associating the user with the user segment), the content tool104can determine that a targeted advertisement is to be provided to the user, and not another user, based on the user identifier being associated with the user interactions.

In an embodiment, an external source120represents a remote computing resource from which user interactions122are available. For example, the external source120is associated with a third party, such as a social media network, that tracks the user interactions122using various techniques. The user interactions122can be provided to the platform based on a request or an authorization received from the customer and/or a respective user.

In another example, user interactions132of a user are received from a user computing device130of the user. For example, the user operates the user computing device130to visit a web site or run an application. The web site and/or the application can include executable code configured to track the user interactions132related to usage of the web site and/or the application and to transmit the user interactions132to the platform100.

Based on the customer input112and the user interactions122and/or132, the platform100provides content140to the user computing device130. In an example, the content140represents a targeted advertisement. The targeted advertisement can be inserted in the same or another web site visited by the user and/or in a user interface of the same or different application running on the user computing device130.

In an embodiment, the analytics tool102analyzes the user interactions122and/or132and adds the user to a user segment based on the customer input112(e.g., the defined user segments). The analytics tool102outputs a common identifier of the user segment and an identifier of the user to the content tool104. In turn, the content tool104selects and provides a targeted advertisement to the user computing device130based on the customer input112(e.g., the defined actions).

Hence, the platform100allows a customer to define user segments and actions. The platform also seamlessly enables the analytics tool102and the content tool104to use this customer input. The analytics tool102analyzes user interactions, whereas the content tool104provides targeted content shortly thereafter. As described herein above, this can involve different levels of integrations within the platform100.FIG. 2illustrates a level of integration, where the analytics tool102and the content tool104are updated to implement a common usage of the customer input. In comparison,FIG. 3illustrates another level of integration, where an output of the analytics tool102is available for usage by the content tool104within a short time period. In the interest of clarity of explanation,FIGS. 2 and 3are illustrated in association with a single customer and a single user. However, the embodiments described herein are not limited as such. Instead, the embodiments similarly apply to a plurality of customers and a plurality of users.

Turning toFIG. 2, the figure illustrates an example of updating the analytics tool and the content tool104of the platform100based on the customer input112. In an embodiment, the platform100provides an external interface210accessible to the customer and configured to receive the customer input112. A web-based interface is an example of the external interface210.

The platform100also hosts a management module220configured to receive and process the customer input112. The management module220represents a computing service that processes the customer input112and updates the various tools of the platform100, including the analytics tool102and the content tool104accordingly. In an example, the management module220is a separate tool that interfaces with the other tools of the platform100. In another example, the management module220is integrated in one of the tools or distributed between a set or all of the tools.

The management module220generates metadata230based on the customer input112. The customer input112includes definitions of the user segments, actions, and parameters associated with the user segments and actions. Parameters of a user segment indicate conditions that need to be satisfied to associate a user with the user segment. Parameters of an action indicate conditions that need to be satisfied (e.g., the user belonging to the user segment) to trigger the action (e.g., a selection of a particular targeted advertisement).

The metadata230standardizes these definitions such that the definitions become available in a standard format for use by the various tools of the platform100. For example, the metadata230includes a common identifier for each user segment, a common identifier for each action, and a common identifier for each parameter.

The metadata230also specifies how an identifier of a user can be generated. For example, the metadata230specifies that the user identifier is to include a unique numeric value that does not contain nor store identifiable information about the user due to privacy concerns. As such, the identifier of the user can include an identifier of a browser or an application of the user computing device130or an identifier of the user computing device130itself, rather than an identity of the user.

Based on the metadata230, inputs and outputs of the tools of the platform100use a common format such than an output from one tool is usable as an input by another tool. For example, the analytics tool102outputs an indication that the user is associated with a user segment based on the user interactions. In this example, the indication includes a common identifier of the user segment and an identifier of the user computing device. Based on this output, the content tool104can use this output to determine an appropriate action to perform (e.g., select a particular advertisement) to provide to the user computing device.

In an embodiment, the management module220updates the analytics tool102and the content tool104(and/or other tools of the platform100) based on the metadata230. For example, each of the tools is associated with an application programming interface (API). As illustrated, the analytics tool102and the content tool104are associated with APIs242and244, respectively. The APIs run at various time intervals (e.g., periodically) or when event occurs to access the metadata230from the management module220and accordingly update the tools. The time intervals can be defined by an administrator of the platform100or can be requested by the customer. The event can include receiving the customer input112or receiving a number of such inputs exceeding a predefined threshold.

In an example, each tool receives the same metadata230. In another example, each tool receives relevant portions of the metadata230. As illustrated, the analytics tool102is updated based on metadata232, whereas the content tool104is updated based on the metadata234. The metadata232represents a portion of the metadata230containing data relevant to the operations of the analytics tool102. For example, the metadata232includes common identifiers of user segments but not common identifiers of actions. In comparison, the metadata234represents another portion of the metadata230containing data relevant to the operations of the content tool104. For example, the metadata234includes common identifiers of actions and common identifiers of user segments.

Hence, by updating the various tools of the platform100to use common formats for the customer input112, efficient exchange and reuse of data across the tools can be achieved. An output from one tool is usable as input to another tool and so on and so forth, regardless of how complex, intricate, or simple the customer input112is. In addition, regardless of how the customer input varies from one customer to the next, the tools of the platform100properly ingest the diverse customer inputs to provide the customer-desired operations.

Turning toFIG. 3, the figure illustrates another level of integration implemented within the platform100. In an embodiment, a data bus320is configured as an internal communication path between the tools. Thus, an output from one tool (e.g., the analytics tool102) is received by another tool (e.g., the content tool104). When a common format is used, as described in connection withFIG. 2, the output is usable as an input to the other tool, thereby triggering an operation to be automatically performed by the other tool.

As illustrated, user interactions312associated with a user are received from a user interaction source310, such as the external source120or the user computing device130. As indicated with the dashed lines, the user interactions312can be received by one or more tools of the platform100, such as the analytics tool102and/or the management module220. In turn, the receiving tool, or another tool of the platform100, is configured to associate the user interactions with a user identifier314of the user. The user identifier314is generated by the receiving tool or the other tool (e.g., an identifier tool implemented within the platform100and configured to generate user identifiers). As described herein above, the user identifier314includes a unique numeric value that does not contain nor store identifiable information about the user due to privacy concerns. For example, the user interactions314can include identifiers of the user computing device130or a browser or an application running on the user computing device130. This information is usable to generate the user identifier314. In an example, the user identifier314is generated as a cookie. The same cookie is shared and used by the various tools to associate the user interactions312with the user.

Once generated, the user identifier314and the user interactions312are stored in a data store330of the platform100. As stored, the user interactions312are associated with the user identifier314. For example, the data store330stores the user identifier314and the user interactions312in a key-value pair. Some or all of the tools of the platform100have access to the data store330. This enables the tools to process the user interactions312for various purposes while also, and as needed, being capable of associating the user interactions312with the user.

In an embodiment, the analytics tool102processes the user interactions312. This processing includes determining that the user belongs to one or more user segments according to the parameters defined by the customer input112. If a user belongs to a user segment, the analytics tool102outputs an indication316of this user-to-user segment association. In an example, the indication316includes a common identifier of the user segment and the user identifier314.

The analytics tool102provides the indication316on the data bus320to be received by one or more of the other tools of the platform100. In an example, providing the indication316includes publishing this indication on the data bus320. Various types of publishing techniques are usable. Some of the techniques can but need not involve the management module220directing the communication over the data bus320. Further, some of the techniques depend on the type of the data bus320. Generally, the data bus320represents an internal communication bus of the platform configured to facilitate a secure exchange of data (e.g., messages such as the indication316) between the tools. Publishing the indication316over the data bus320includes one or more of broadcasting, multicasting, or unicasting the indication316from the analytics tool102to one or more of the remaining tools (e.g., the content tool104).

Once outputted on the data bus320, the content tool104receives the indication316. Based on the customer input112defining parameters and actions, the content tool104automatically performs one or more of the actions. For example, the content tool104determines content based on the identified segment and determines a destination of the content, such as the user computing device130, based on the identified user. The customer input112can define what content to provide, such as a selection or a generation of a particular advertisement.

Hence, by using the data bus320, data between the tools of the platform100is exchanged quickly and efficiently. Once a user interest is detected based on the user interactions, the user is added to a user segment that best matches the user interest. In turn, targeted content is provided to the user based on the user segment. This process is automated and can be executed in a short period of time (e.g., within seconds). Thus, the data used by the various tools is relatively fresh. The freshness results in, for example, a higher conversion rate for targeted advertisements and an overall improvement to services customized to the user.

Turning toFIG. 4, the figure illustrates an example of using the platform100to provide targeted content. The example is illustrated within the context of tracking user interactions at one web site and accordingly inserting a targeted advertisement in another web site. However, the embodied techniques are not limited as such. Instead, the embodied techniques similarly apply to other examples. These examples include providing the targeted advertisement within the same web site. These examples also include providing other types of targeted content to other computing resources such as an application running on a mobile device or tablet.

As illustrated, a customer operates a customer device410, similar to the customer computing device110, to access the platform100and to provide customer input. The customer input updates the analytics tool102and the content104to associate users with segments and provide targeted advertisements, respectively. One of the customer-defined user segments includes an “abandoned cart” segment. A corresponding targeted advertisement offers a particular discount.

The customer device110also accesses (e.g., downloads from the platform100or receives in response to the customer input) executable code, such as a JavaScript or a beacon. Upon execution, the executable code is configured to track user interactions. What user interactions to track can be defined based on the customer input or can be set to certain default settings. The customer further operates the customer device410to install (e.g., embed) the executable code in a web site412associated with the customer. In this example, the web site represents a product's web site offering multiple products for sale.

A user operates a user device420, similar to the user computing device130, to visit the web site412and browse different products. When a browser of the user device420loads the web site412(or a web page thereof), the embedded code is executed enabling the tracking of the user interactions with the web site. As such, the user interactions are provided from the user device420to the platform100(e.g., to the analytics tool102). For example, the user adds a number of products to a virtual cart, but subsequently abandons the virtual cart without purchasing the added products. The corresponding user interactions are provided to the platform100.

In addition, an identifier of the user device420or the browser is provided to a cloud identifying tool430of the platform100in response to the visiting the web site412. The cloud identifying tool430is configured to generate a user identifier (e.g., a cookie) based on the received identifier and to add the user identifier to the data store330. The user identifier is associated with all the user interactions that are taken by the browser or the user device420and that are tracked by the analytics tool102. These user interactions can also be stored in the data store330in association with the user identifier, enabling various tools of the platform100to use such data as input to their respective capabilities or operations.

The analytics tool102analyzes the user interactions based on parameters specified in the customer input. If the user is found to belong to one of the segments, the analytics tool102adds (e.g., associates) the user to the user segment and publishes an indication of this addition on the internal communication bus of the platform100. The indication includes a common identifier of the user segment. For example, the analytics tool102publishes a tag that identifies the “abandoned cart” segment. This tag is commonly used by the other tools of the platform100to refer to the “abandoned cart” segment. In addition, the indication is added to the data store330.

In turn, other tools such as the content tool104consumes the segment data. For example, the content tool104receives the indication, triggering an automatic selection of a targeted advertisement as specified in the customer input, such as the advertisement for the discount. In addition, the content tool104accesses the associated user identifier from the indication (or from the data store330) to determine a destination for the targeted advertisement.

The user may have abandoned the virtual cart to visit another web site414, such as a news web site with a banner space for advertisement. As soon as the user visits the other web site414, the content tool104can receive an offer to insert an advertisement in the banner space, along with an identifier of the user. As such, the content tool104bids on that space and, as applicable, inserts the targeted advertisement that was determined based on the user interactions. Thus, the content tool104is capable, within a short time period after the virtual cart is abandoned, of inserting a relevant advertisement (e.g., a discount applicable the abandoned products) for presentation to the user.

Turning toFIGS. 5-8, those figures illustrate example flows for providing content. In the illustrative operations, each of the operations or functions can be embodied in, and fully or partially automated by, tools and/or modules executed by one or more processors of a computing system implementing the platform100. An example computing system is further illustrated inFIG. 9. Additionally, while the operations are illustrated in a particular order, it should be understood that no particular order is necessary and that one or more operations can be omitted, skipped, and/or reordered. In the interest of clarity of explanation, an example of providing targeted content (e.g., advertisement) based on an analysis of user interactions is illustrated. Nevertheless, one of ordinary skill in the art would appreciate that the flows similarly apply to other examples and tools. In also the interest of clarity of explanation, the illustrated example describes customer input of a customer, a user segment, an action, and user interactions of a user. Nevertheless, one of ordinary skill in the art would appreciate that the flows similarly apply to a plurality of customers, user segments, actions, and users.

FIG. 5illustrates an example overall flow for providing the targeted content. In comparison,FIG. 6illustrates another example overall flow for providing the targeted content, including various levels of integrations.FIG. 7illustrates an example flow for processing customer input to update the analytics and content tools.FIG. 8illustrates an example flow for providing the targeted content based on analyzing the user interactions according to the customer input. Operations of the example flow ofFIG. 5are further embodied in operations of example flows ofFIGS. 7-8. As such, some operations of the example flows ofFIGS. 5-8are similar. Such similarities are not repeated herein in the interest of clarity of explanation.

Turning toFIG. 5, the example flow starts at operation502, where information identifying one or more user interactions associated with a user is received. The information is received at a platform that hosts a plurality of tools including an analytics tool and a content tool. In an example, the information is received by the analytics tool from a computing device of the user. In another example, the information or a portion thereof, is received from another source external to the platform, such as from a social media network. The user interactions correspond to the user using the computing device to interact with published content, such as one available from a web site or an application. At operation504, the analytics tool is automatically triggered to analyze the information and associate the user with a user segment. In an example, the user segment is defined based on input of a customer of the platform. For instance, an interface is provided to the computing device of the customer. The interface is configured to receive the customer input defining the user segment and parameters to associate the user with the user segment based on an analysis of the user interactions (or the information thereof). In a further example, the automatic trigger includes providing a common identifier of the user segment and a common identifier of the user or the computing device of the user such that the analysis is associated with these identifiers. In this way, the analytics tool and the content tool, along with other tools of the platform are configured to use these identifiers such that an output of one tool is usable as input to, or more generally, by the other tools.

At operation506, the analytics tool is automatically triggers to provide information identifying that the user is associated with the user segment. This information is triggered based on the analysis of the operation504. In addition, this information includes one or more of the common identifier of the user segment and the common identifier of the user or user computing device. In this way, the output of the analytics tool (e.g., this information) is usable by the other tools of the platform.

At operation508, the content tool is automatically triggered to provide targeted content to the user. In an example, this trigger is based on receiving the information identifying that the user is associated with the user segment from the analytics tool. Providing the targeted content is an example of an action that the content automatically performs in response to receiving this information. This and other actions can be defined based on the customer input provided at the interface.

Turning toFIG. 6, the example flow starts at operation602, where customer input specifying data associated with a user segment and an action is received. For example, a customer operates a customer device to access the platform100, log in to a respective customer account, and provide the customer input.

At operation604, the analytics tool102and the content tool104are updated based on the customer input. For example, a common identifier of the user segment is provided to both tools. This allows the analytics tools102and the content tool104to exchange data about the user segment. For example, an output of the analytics tool102includes the common identifier and is usable, based on the common identifier, as an input to the content tool104. In addition, both tools can be updated to share a same identifier of a user. As such, if the analytics tool102outputs data related to the user segment or to user interactions, the analytics tools102can also associate that data with the user identifier. In turn, the content tool104is capable of processing the data in association with the user identifier.

At operation606, user interactions associated with a user are received. The user interactions correspond to actions of the user performed using a user computing device. The actions include interactions with a computing resource such as a web site or an application. The received interactions are associated with an identifier of the user. This user identifier is shared across the tools of the platform100.

At operation608, the user is associated with the user segment based on the user interactions. For example, the analytics tool102accesses or receives the user interactions. Thereafter, the analytics tool102analyzes the user interactions according to the customer input. For example, parameters from the customer input are applied to the user interactions to determine whether the user belongs to the user segment or not. This determination uses, in some examples, one or more analysis techniques, such as matching, pattern recognition, or regression models, to match the user interactions with a customer-defined user segment and accordingly associate the user with the matched user segment. If the user is associated with the user segment, the analytics tool102generates an indication of this association. In an example, the indication includes the common identifier of the user segment and the user identifier.

At operation610, the indication of the association of the user with the user segment is published. For example, the analytics tool102outputs the common identifier and the user identifier on the data bus320of the platform100. The publication allows other tools, such as the content tool104, to receive the indication and to automatically perform predefined actions as applicable.

At operation612, content is determined based on the indication of the customer-defined action. For example, the content tool104receives the indication over the data bus320. The content tool104also determines the user segment from the indication based on the common identifier. In response, the content tool104determines the action to perform as specified in the customer input. The action includes determining (e.g., selecting or generating) a targeted advertisement. Further, the content tool104determines a target for the advertisement based on the user identifier.

At operation614, the content is provided to the computing device of the user. For example, in response to the user computing device accessing a computing resource, such as a web site, the content tool104inserts the targeted advertisement in a section or space of the computing resource for presentation to the user at the user computing device.

Hence, by updating the tools of the platform100based on the customer input and using an internal data bus, the operations of the tools can be seamlessly integrated. In turn, computing services provided to the user are improved by, for example, providing the user with relevant and fresh data based on the user interactions. Turning toFIG. 7, the figure illustrates a flow for using the customer input to update the tools of the platform100.

The example flow ofFIG. 7starts at operation702, where an interface is provided to a computing device of a customer. In an example, the platform100provides a web-based interface to the computing device to enable the customer to log into the platform100and input the customer input.

At operation704, customer input is received via the interface. The customer input specifies, for example, a user segment and an action to be performed based on the user segment. The customer input can also define one or more parameters and/or one or more execution rules to trigger events. An example event includes associating a user with the user segment. If no parameters or rules are specified, the platform100applies default parameters and/or rules.

At operation706, metadata based on the customer input is generated. For example, the management module220of the platform100processes the customer input to generate the metadata. The metadata includes common identifiers of the user segment, action, parameters, and rules. The common identifiers allow one or more tools of the platform100to use data outputted by one or more other tools of the platform100. In an example, one set of metadata is generated and provided to the various tools of the platform100. In another example, various sets of metadata are generated based on capabilities of the tools such that each tool receives a respective set.

At operation708, the tools of the platform100, such as the analytics tool102and the content tool104, are updated based on the metadata. For example, the management module uses API calls to provide the metadata and update the analytics tool102and the content tool104. In an example, the APIs calls are performed at predefined time intervals (e.g. periodically). In another example, the API calls are performed after a number of customer inputs are received or sets of metadata are generated. Based on the update, the tools can exchange data using common formats such that an output from one tool is usable as input to another tool.

At operation710, tracking code is provided to the computing device of the customer. The tracking code, such as a JavaScript or a beacon, is configured to track user interactions. In an example, the tracking code is generated at the platform100based on the customer input. In this example, the customer input specifies what user interactions to track. In another example, the tracking code is independent of the customer input and is configured to track predefined or default user interactions. The tracking code can be pushed to or pulled by the customer computing device. Thereafter, the customer computing device installs the tracking code in a computing resource associated with the customer, such as a web site or an application.

Once the tools of the platform100are updated and the tracking code is installed, user interactions with the accessed computing resource can be analyzed. In addition, user interactions received from another external source, such as from a third party, can be similarly analyzed. In an example, the analysis is performed by the analytics tool. The result of the analysis automatically, and within a short time period, triggers an action by the content tool. The triggered action is based on the provided customer input. An example flow for analyzing the user interactions and performing an action is further illustrated inFIG. 8.

The example flow ofFIG. 8starts at operation802, where user interactions associated with a user are received. In an example, the user interactions are received from a computing device of the user in response to accessing the computing resource associated with the customer and executing the tracking code. In another example, the user interactions are received from another external source, such as from a social media platform. The analytics tool102, the management module220, and/or another tool of the platform100receives the user interactions. Further, the receiving tool, or another tool such as the cloud identifying tool430, associates the user interactions with an identifier of the user. The user identifier, such as a cookie, is shared by the tools of the platform100. This enables each tool to associate the user interactions with the user in a common way.

At operation804, the user interactions are analyzed to determine that the user belongs to a user segment. For example, the analytics tool102analyzes the user interactions and determines that the user belongs to one or more of the user segments specified by the customer input.

At operation806, an indication that associates the user with the user segment is generated. For example, the analytics tool102generates the indication based on the analysis. The indication includes the common identifier (e.g., a tag) of the user segment. In an example, the indication also includes the user identifier.

At operation808, the indication is published. For example, the analytics tool outputs the indication on the data bus320of the platform100. The publication allows other tools of the platform100, such as the content tool104, to receive the indication in a short time period. Because of the common identifier of the user segment and the shared user identifier, the indication is usable as input to the other tools.

At operation810, an action to be performed is triggered based on the indication. For example, the content tool104receives the indication and determines the user segment and the user identifier. The content tool104applies one or more actions specified by the customer input as applicable to the user segment and/or the user identifier. An example of an action includes providing content associated with the user segment, where the content is destined the user.

At operation812, content is determined based on the action. For example, the content tool104selects a targeted advertisement from a list of available advertisements. In another example, the content tool generates a targeted advertisement by assembling various content portions from a list of available content portions.

At operation814, the determined content is provided to the computing device of the user. For example, the content tool104determines that the advertisement is to be destined to the user based on the user identifier. Further, the content tool104receives data indicating that the user (or the user computing device) is accessing a computing resource that allows insertion of the targeted advertisement, such as a web site with advertisement space. Accordingly, the content tool104initiates a process to insert the targeted advertisement at the computing resource for presentation to the user.

Hence, once the tools of the platform100are updated based on the customer input and the user interactions are received, the tools can automatically analyze the user interactions and provide targeted content. In other words, the process of providing targeted content, and more generally, customizing a computing service to the user, is simplified and needs no intervention of the customer once the customer input has been provided. Further, the execution of the process is accelerated such that the targeted content is provided to the user within a short time period (e.g., within seconds) after receipt of the user interactions.

Turning toFIG. 9, the figure illustrates an example computing system900for implementing some or all of the components of the platform100. Although a single computing system is illustrated, this system can be distributed to provide, for example, cloud computing services.

The computing system900includes at least a processor902, a memory904, a storage device906, input/output peripherals908, communication peripherals910, and an interface bus912. The interface bus912is configured to communicate, transmit, and transfer data, controls, and commands among the various components of the computing system900. The memory904and the storage device906include computer readable storage media, such as RAM, ROM, electrically erasable programmable read-only memory (EEPROM), hard-drives, CD-ROMs, optical storage devices, magnetic storage devices, electronic non-volatile computer storage, for example Flash® memory, and other tangible storage media. Any of such computer readable storage media can be configured to store instructions or program codes embodying aspects of the disclosure, such as the various tools, the data bus, the modules, and/or the APIs of the platform100. The memory904and the storage device906also include computer readable signal media. A computer readable signal medium includes a propagated data signal with computer readable program code embodied therein. Such a propagated signal takes any of a variety of forms including, but not limited to, electromagnetic, optical, or any combination thereof. A computer readable signal medium includes any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use in connection with the computing system900.

Further, the memory904includes an operating system, programs, and applications. The processor902is configured to execute the stored instructions and includes, for example, a logical processing unit, a microprocessor, a digital signal processor, and other processors. The memory904and/or the processor902can be virtualized and can be hosted within another computing system of, for example, a cloud network or a datacenter. The input and output peripherals908includes user interfaces such as a keyboard, screen, microphone, speaker, other input/output devices, and computing components such as graphical processing units, serial ports, parallel ports, universal serial bus, and other input/output peripherals. The input/output peripherals908are connected to the processor902through any of the ports coupled to the interface bus912. The communication peripherals910are configured to facilitate communication between the computing system900and other computing devices over a communications network and include, for example, a network interface controller, modem, wireless and wired interface cards, antenna, and other communication peripherals.