SYSTEMS AND METHODS FOR MEASURING THE STRENGTH OF USER ENGAGEMENT OVER A NETWORK
20220318844 · 2022-10-06
Inventors
Cpc classification
G06Q30/0236
PHYSICS
International classification
Abstract
Systems and methods are described herein for measuring the strength of a user engagement strategy including zero-party data over a network. Specifically, upon receiving, at a server, user data and user actions from a plurality of client devices and information from remote servers, the server aggregates the received user data and user actions, and generates an output corresponding to user engagement based on the aggregated received user data, the aggregated received user actions, and the information from remote servers.
Claims
1. A method for measuring the strength of a user engagement strategy including zero-party data over a network comprising: receiving a request for a webpage from a client device; in response to receiving the request for the webpage, causing to be displayed a form, wherein the form comprises a user-interactive response field; receiving user data via the user-interactive response field; receiving a user action performed on the webpage; causing to be stored in a profile associated with the client device, on a first server, the received user data and the received user action, wherein the profile associated with the client device is one of a plurality of stored profiles associated with a plurality of client devices; generating aggregated received user data and aggregated received user actions from the plurality of stored profiles associated with the plurality of client devices; and generating an output corresponding to user engagement, based on the aggregated received user data and the aggregated received user actions.
2. The method of claim 1, wherein generating the output further comprises: training a machine learning model based on at least one of aggregated received user data, aggregated received user actions, insights, impressions, events, and metrics; and computing the output using the trained machine learning model by inputting the aggregated received user data and the aggregated received user actions to input nodes of the trained machine learning model.
3. The method of claim 2, further comprising receiving at least one of the insights, impressions, events, and metrics from a second server, remote from the first server.
4. The method of claim 1, further comprising: in response to receiving the request for the webpage, determining whether a file with a unique identifier for the client device is stored on the client device; in response to detecting that the file with the unique identifier for the client device is stored on the client device: identifying the profile associated with the client device, stored on the server, based on the unique identifier; in response to detecting that the file with the unique identifier for the client device is not stored on the client device: generating a unique number for the client device; generating a file comprising the generated unique identifier for the client device; storing the file comprising the generated unique identifier on the client device; creating the profile associated with the client device, wherein the profile comprises the unique identifier; and storing the profile on the server.
5. The method of claim 1, wherein the form comprises a multi-step form that uses responses to prompts to generate or select subsequent prompts based on a progression of a logic mapping.
6. The method of claim 1, wherein the causing to be stored the received user data further comprises updating the profile associated with the client device to include identifying information inputted by the user.
7. The method of claim 1, further comprising: in response to receiving the user data from the user-interactive response field, providing a reward to the profile associated with the client device.
8. The method of claim 7, wherein the providing the reward comprises: generating a code comprising a unique sequence of characters and a number of remaining uses; transmitting the code to a remote server; storing, in the profile associated with the client device, the unique sequence of characters and the number of remaining uses; and causing to be displayed on the client device, the code.
9. The method of claim 7, wherein providing the reward comprises adding the code to a shopping cart for the user without requiring a subsequent user action.
10. The method of claim 8, further comprising: detecting an attempted use of the code; determining the number of remaining uses based on the profile associated with the client device; in response to detecting that the number of remaining uses of the code is zero: blocking the instance of attempted use of the code; in response to detecting that the number of remaining uses of the code is not zero: allowing usage of the code; and decreasing the number of remaining uses stored in the profile associated with the client device.
11. A system for measuring the strength of a user engagement strategy including zero-party data over a network comprising: control circuitry configured to: receive a request for a webpage from a client device; in response to receiving the request for the webpage, cause to be displayed a form, wherein the form comprises a user-interactive response field; receive user data via the user-interactive response field; receive a user action performed on the webpage; storage circuitry configured to: cause to be stored in a profile associated with the client device, on a first server, the received user data and the received user action, wherein the profile associated with the client device is one of a plurality of stored profiles associated with a plurality of client devices; wherein the control circuitry is further configured to: generate aggregated received user data and aggregated received user actions from the plurality of stored profiles associated with the plurality of client devices; and generate an output corresponding to user engagement, based on the aggregated received user data and the aggregated received user actions.
12. The system of claim 11, wherein the control circuitry is further configured to generate the output by: training a machine learning model based on at least one of aggregated received user data, aggregated received user actions, insights, impressions, events, and metrics; and computing the output using the trained machine learning model by inputting the aggregated received user data and the aggregated received user actions to input nodes of the trained machine learning model.
13. The system of claim 12, wherein the control circuitry is further configured to: receive at least one of the insights, impressions, events, and metrics from a second server, remote from the first server.
14. The system of claim 11, wherein the control circuitry is further configured to: in response to receiving the request for the webpage, determine whether a file with a unique identifier for the client device is stored on the client device; in response to detecting that the file with the unique identifier for the client device is stored on the client device: identify the profile associated with the client device, stored on the server, based on the unique identifier; in response to detecting that the file with the unique identifier for the client device is not stored on the client device: generate a unique number for the client device; generate a file comprising the generated unique identifier for the client device; store the file comprising the generated unique identifier on the client device; create the profile associated with the client device, wherein the profile comprises the unique identifier; and store the profile on the server.
15. The system of claim 11, wherein the form comprises a multi-step form that uses responses to prompts to generate or select subsequent prompts based on a progression of a logic mapping.
16. The system of claim 11, wherein the storage circuitry is further configured, when causing to be stored the received user data, to update the profile associated with the client device to include identifying information inputted by the user.
17. The system of claim 11, wherein the control circuitry is further configured, in response to receiving the user data from the user-interactive response field, to provide a reward to the profile associated with the client device.
18. The system of claim 17, wherein the control circuitry is further configured, when providing the reward, to: generate a code comprising a unique sequence of characters and a number of remaining uses; transmit the code to a remote server; store, in the profile associated with the client device, the unique sequence of characters and the number of remaining uses; and cause to be displayed on the client device, the code.
19. The system of claim 17, wherein the control circuitry is further configured, when providing the reward, to add the code to a shopping cart for the user without requiring a subsequent user action.
20. The system of claim 18, wherein the control circuitry is further configured to: detect an attempted use of the code; determine the number of remaining uses based on the profile associated with the client device; in response to detecting that the number of remaining uses of the code is zero: block the instance of attempted use of the code; in response to detecting that the number of remaining uses of the code is not zero: allow usage of the code; and decrease the number of remaining uses stored in the profile associated with the client device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The present disclosure, in accordance with one or more various embodiments, is described with reference to the following figures. The drawings are provided for purposes of illustration only and merely depict typical or example embodiments. These drawings are provided to facilitate an understanding of the concepts disclosed herein and do not limit the breadth, scope, or applicability of these concepts. It should be noted that for clarity and ease of illustration these drawings are not necessarily made to scale.
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
DETAILED DESCRIPTION
[0050] Systems and methods are described herein for measuring the strength of a user engagement strategy including zero-party data over a network. In the following description, numerous specific details are set forth to provide thorough explanation of embodiments of the present disclosure. It will be apparent, however, to one skilled in the art, that embodiments of the present disclosure may be practiced without all of these specific details. In other instances, certain components, structures, and techniques have not been shown in detail in order not to obscure the understanding of this description.
[0051] The processes depicted in the figures that follow are performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, etc.), software (such as is run on a general-purpose computer system or a dedicated machine), or a combination of both. Although the processes are described below in terms of some sequential operations, it should be appreciated that some of the operations described may be performed in different order. Moreover, some operations may be performed in parallel rather than sequentially. The system and/or any instructions for performing any of the embodiments discussed herein may be encoded on computer-readable media. Computer-readable media includes any media capable of storing data. The computer-readable media may be transitory, including, but not limited to, propagating electrical or electromagnetic signals, or may be non-transitory including, but not limited to, volatile and non-volatile computer memory or storage devices such as a hard disk, random access memory (“RAM”), a solid state drive (“SSD”), etc.
[0052] The systems and methods described herein provide a method for a server generating an output corresponding to user engagement. This output is generated by inputting aggregated received user data and aggregated received user actions from websites to input nodes of a machine learning model that has been trained based on insights, impressions, events, and metrics. In one instance, the insights, impressions, events, and metrics are received from a remote server, for example, a remote server associated with a third-party platform integration. In some embodiments, the aggregated received user data are received by the server from forms with user-interactive response fields on webpages, and the aggregated received user actions are received by the server from files stored on client devices that track actions users take on websites. Oftentimes, users are incentivized with rewards to provide responses to the forms, and to perform user actions, such as purchasing or viewing products on the website. In some embodiments, the received user data and received user actions are stored on profiles on the server, the profiles corresponding to the client devices that are transmitting the user data and performing the user actions.
[0053] As referred to herein, “third-party data” is data companies collect about an individual from following the individual around the Internet (e.g., by tracking the individual's Internet protocol (IP) address through cookies, pixels or other tracking technologies). As referred to herein, “profile” is the data comprised of the subscribed user in an e-commerce platform or tool, including contact information. As referred to herein, “new user” is an individual who is visiting a website for the very first time. As referred to herein, “returning user” is an individual that has previously visited the website. As referred to herein, “dynamic coupon code” means a unique coupon code created specifically for the eligible user (e.g., in exchange for identifying information) for use by the applicable user for purchases made through the e-commerce store. As referred to herein, “form” means a form that presents information and/or collects zero-party data from a user (e.g., displaying an offer for a discount, a sign-up form, a quiz).
[0054]
[0055] In some examples, the actions outlined within system 100 are performed by server 102, or any other servers, devices and/or networks, such as any of the devices described further below with respect to
[0056] In some embodiments, at action 140, server 102 receives a request for webpage 108 from client device 104, causing the client device 104 to display webpage 108. For example, a user types the web address “swimwear.com” in the browser of client device 104, and server 102 causes client device 104 to display the webpage for “swimwear.com.”
[0057] In some embodiments, at action 142, server 102 causes form 110, associated with advertising campaign ID 130, to be displayed on webpage 108 on client device 104. For example, form 110 may be a part of an advertising campaign that has advertising campaign ID 130 that has the goal of encouraging users to purchase apparel and swimwear from swimwear.com. In some instances, server 102 causes form 110 to present subscription incentive 112 and user-interactive response field 114. Subscription incentive 112, for example, text saying, “Want a Free $15 Gift Card?” and a selectable option to “sign up,” may cue a user to input user identification information 116, for example, a user's email address, into user-interactive response field 114.
[0058] In some embodiments, server 102 may cause form 110 to present prompt 118 with one or more other user-interactive response fields 120 that populate in response to inputs provided to previous user response fields. For example, the prompt may be text asking, “What are you interested in?” and the one or more user-interactive response fields 120 may be selectable options with preset answers to prompt 118, such as three selectable buttons that say “Apparel,” “Swimwear,” and “Both,” respectively. The one or more user-interactive response fields 120 may also be open fields that can receive text inputted by a user, for example, a text box. The one or more user-interactive response fields 120 may cue a user to answer prompt 118 requesting user preference information 122 (e.g., a preference for apparel, swimwear, or both apparel and swimwear). In some instances, server 102 may cause form 110 to present multiple prompts in the same way as prompt 118. The subsequent prompts may request different user preference information than user preference information 122, in response to inputs being provided to previous user response fields. For example, server 102 causes form 110 to display a request for a user's email address. Once server 102 receives an email address via form 110, server 102 may cause form 110 to display a prompt for the user to answer, “What are you interested in?” When server 102 receives a response of “Swimwear,” server 102 may cause form 110 to display a prompt, “What type of suits do you prefer?” Server 102 may receive a response of “trunks.” Server 102 may cause any number of prompts 118 to be displayed by form 110 in response to inputs being provided to previous user response fields.
[0059] In some embodiments, server 102 causes form 110 to present prompt 118 requesting user preference information 122 prior to presenting a subscription incentive 112 requesting user identification information 116. In this case, server 102 may cause form 110 to present subscription incentive 112 requesting user identification information 116 in response to inputs being provided to previous user response fields. For example, server 102 causes form 110 to display a prompt for the user to answer, “What are you interested in?” and receives a response of “Swimwear.” Once server 102 receives the response of “Swimwear,” server 102 causes form 110 to display a request for the user's email address.
[0060] In some embodiments, server 102 may cause form 110 to present only prompt 118 requesting user preference information 122 without presenting subscription incentive 112 requesting user identification information 116. In this instance, server 102 may receive user identification information 116 at a later time, as described further below with respect to
[0061] In some embodiments, form 110 comprises a multi-action form that uses responses to prompts 118 to generate or select subsequent prompts based on a progression of a logic mapping, as described further below with respect to
[0062] In some embodiments, at action 144, server 102 receives the user data (e.g., one or more of user identification information 116 and user preference information 122) inputted within user-interactive response fields 114 and 120. For example, client device 104 may transmit the user data (e.g., one or more of user identification information 116 and user preference information 122) to server 102 over a network automatically as the data is inputted within form 110.
[0063] In some embodiments, at action 146, server 102 receives one or more user actions 124 performed on webpage 108. User actions 124 may be, for example, one or more of a purchase of a swimsuit, adding a hat to a shopping cart, or viewing color choices for a pair of flip-flops. Server 102 may receive user actions 124 via, for example, a first-party cookie embedded in webpage 108 on client device 104, as described further below with respect to
[0064] In some embodiments, at action 148, server 102 stores the received user data (e.g., one or more of user identification information 116 and user preference information 122) from action 144 and the received user actions 124 from action 146 in user profile 126 associated with client device 104. In some embodiments, the user profile 126 contains client ID 128 to identify client device 104. The client ID may be, for example, a string of characters, e.g., “abc123.” In some embodiments, the user profile 126 contains advertising campaign ID 130, to identify the advertising campaign associated with form 110. The advertising campaign ID 130 may be, for example, a string of characters, e.g., “tcamp609.” In some embodiments, the user profile 126 comprises client ID 128, user identification information 116, advertising campaign ID 130, user preference information 122, and user actions 124.
[0065] Server 102 stores a plurality of user profiles 126 comprising received user data (e.g., one or more of user identification information 116 and user preference information 122) and received user actions 124 for a plurality of advertising campaigns IDs 130 across a plurality of webpages 108. Server 102 generates aggregated received user data (e.g., one or more of user identification information 116 and user preference information 122) and aggregated received user actions 124 for each advertising campaign across the plurality of user profiles 126 stored in server 102.
[0066] In some embodiments, at action 150, server 102 generates output 132 for the advertising campaign ID 130. Output 132 is based on the aggregated received user data (e.g., one or more of user identification information 116 and user preference information 122) and aggregated received user actions 124 for each advertising campaign across the plurality of user profiles 126 stored in server 102. Server 102 may generate output 132 using a trained machine learning model, as described further below with respect to
[0067] In some embodiments, at action 152, server 102 displays output 132 on dashboard 134 on administrative device 106. In this instance, administrative device 106 is the device associated with the creators of the advertising campaign associated with advertising campaign ID 130. In addition to output 132, dashboard 134 may display any number of additional metrics associated with the advertisement campaign. For example, additional metrics may comprise insights on the aggregated received user data (e.g., one or more of user identification information 116 and user preference information 122) and aggregated received user actions 124 for each advertising campaign, and insights, impressions, events, and metrics, as described further below with reference to
[0068] The aspects outlined in system 100 may be combined in any suitable combination, taken in part, or as a whole.
[0069]
[0070] In some embodiments, server 102 computes a single value based on multiple inputs. For example, model 200 may receive a plurality of input data for a user engagement campaign and may determine, via the trained neural network, a single output value, such as a score for the user engagement campaign, based on the input data. In some embodiments, server 102 computes multiple output values based on multiple inputs. For example, model 220 may receive a plurality of input data for a user engagement campaign and may determine, via the trained neural network, multiple outputs, such as a score for the user engagement campaign and a recommendation for whether to continue or end a user engagement campaign.
[0071] In some embodiments, server 102 may modify weights applied to at least one of the insights, impressions, events, and/or metrics based on use case of a specific engagement campaign. For example, server 102 may give a click-through rate a higher weight in a first user engagement campaign than the click-through rate for a second user engagement campaign. In some embodiments, server 102 may select the weights based on parameters specific to a client.
[0072] Model 200 is depicted having input nodes 204, hidden nodes 208, and output node 212. Input nodes 204 are connected to hidden nodes 208 via connection 206, and hidden nodes 208 are connected to output node 212 via connection 210. Model 220 is depicted having input nodes 224, hidden nodes 228, and output nodes 232. Input nodes 224 are connected to hidden nodes 228 via connection 226, and hidden nodes 228 are connected to output nodes 232 via connection 230. Although models 200 and 220 are depicted having only three layers, any number of layers may be present, each layer may comprise any number of nodes and each node may have any number of connections to other nodes. Input data elements 202/222 are provided as input to input nodes 204/224, and output data element(s) 214/234 are the output generated by model 200 or 220 from output node 212 or output nodes 232.
[0073] Server 102 may train models 200/220 by first assigning weights to connections 206, 210, 226, and 230. Server 102 may initially assign weights to connections 206, 210, 226, and 230 based on an approximation of the distribution of weights, may randomly assign weights (e.g., a randomly assigned value between zero and one), or may initialize all weights to the same value (e.g., all 0.1). In some embodiments, server 102 may select the weights based on parameters specific to a client (e.g., an expected importance of various engagement campaign data parameters for a client).
[0074] After assigning weights to connections 206, 210, 226, and 230, server 102 may compare the output of the model to determine whether it corresponds to the provided input. For example, for a user engagement campaign where users who provided an email address purchased approximately $100 worth of goods may receive a more positive output (e.g., higher score) than a user engagement campaign where users who provided an email purchased approximately $10 worth of goods. If server 102 determines that the output of model 200/220 was not what server 102 expected (e.g., a higher score is given to the user engagement campaign having a lower revenue), server 102 may update weights 206, 210, 226, and 230 to provide the desired results. For example, a user engagement campaign having a higher revenue is given a higher score and a “monitor” recommendation, whereas a user engagement campaign having a lower revenue is given a lower score and a “stop” recommendation.
[0075] While model 200/220 is depicted having four input nodes 204/224, any number of input nodes may be used without departing from the scope of the present disclosure. In some embodiments, server 102 may select the number of input nodes 204/224 to model 200/220 based on the number of datapoints tracked in a user engagement campaign. For example, the input to input nodes 202/224 may comprise at least one of the insights, impressions, events, and/or metrics of a user engagement campaign. In some embodiments, the input to model 200/220 is a vector comprising insights, impressions, events, and/or metrics of a user engagement campaign, where each element in the vector corresponds to an input node 204/224.
[0076] Server 102 may provide input data elements 202/222 as the input to input nodes 204/224. In some embodiments, server 102 may compute values for hidden nodes 208/228 based in the input applied to input nodes 204/224 and the weights of connections 206/226. As an example, when the weights of connections 206/226 are all 0.1 (e.g., because they were instantiated to initial values of 0.1) and the values of input nodes 204/224 are all 1, server 102 may compute the values for hidden nodes 208/228 to be all 0.4. Although model 200/220 is depicting only having one layer of hidden nodes, any number of layers having hidden nodes may be present in model 200/220. In some instances, hidden nodes 208/228 represent the most compressed version of input data elements 202/222. In some instances, the number of input nodes 204/224 may be larger than the number of hidden nodes 208/228. In such instances, when server 102 computes the values for hidden nodes 208/228 from the values of input nodes 204/224, server 102 encodes the input data to a compressed form (e.g., fewer nodes represent the input data).
[0077] Server 102 may compute the value for output node 212 and/or nodes 232 based on connections 210 between hidden nodes 208 and output node 212 and/or based on connections 230 between hidden nodes 228 and output nodes 232. For example, server 102 may assign all connections 230 weights of 1. Server 102 may compute the value of output nodes 232 to be 0.8. When computing the value for output nodes 232, server 102 may decode input data from a compressed form to a decompressed form.
[0078] In some embodiments, server 102 may compute an error value between input data elements 202/222 and output data element(s) 214/234 to generate an error value and may update the weights between nodes based on the error value. For example, server 102 may compute a first error value corresponding to output data element(s) 214/234 (e.g., having a value of 0.8) by subtracting 0.8 and an expected output value (e.g., an expected output value of 0.9 for the input values applied via input nodes 204/224). In such instances, server 102 may use the error value to tweak the weights for connections 206 and 210/226 and 230 between input nodes 204/224 and output node(s) 212/232. Server 102 may continue an iterative process of updating the weights for various connections in the model until it finds an appropriate fit for the data (e.g., the error value is an acceptable value such that model 200/220 is not overfit to input data nor is it underfit to input data elements).
[0079] In some embodiments, server 102 may compute the output data element(s) 214/234 using weighted averages of the input data elements 202/222. In such embodiments, models 200/220 may comprise one or more input nodes 204/224 connected to output nodes 212/232 without an interstitial hidden node layer (e.g., nodes 208/228). Server 102 may assign the weights between input nodes 204/224 and output node(s) 212/232 such that input nodes having higher importance to an engagement campaign have a higher weight. For example, when subscription rate is a more important metric to an engagement campaign than, for example, a bounce rate, server 102 may assign a higher weight to the subscription rate than to the bounce rate when computing values for output node(s) 212/232.
[0080] The aspects outlined of models 200 and 220 may be combined in any suitable combination, taken in part, or as a whole.
[0081]
[0082] In some embodiments, system 300 outlines further details of action 150 within
[0083] System 300 may include additional servers, devices and/or networks, such as any of the devices described further below with respect to
[0084] Server 302 is connected to cloud network 304, for example, network 504 as described further below with respect to
[0085]
[0086]
[0087] Database 506 may store any data and/or dataset descried herein, such as received user data (e.g., one or more of user identification information 116 and user preference information 122), as described above with reference to
[0088] Client 508 is communicatively coupled to server 502 and/or database 506 via network 504. Client 508 may be implemented on a computing device, such as computing device 600. In some embodiments, client 508 stores (e.g., either locally or remote from client 508) a trained model (e.g., a machine learning model).
[0089]
[0090] I/O path 610 may provide content and data to control circuitry 604 and control circuitry 604 may be used to send and receive commands, requests, and other suitable data using I/O path 610. I/O path 610 may connect control circuitry 604 (and specifically processing circuitry 606) to one or more communications paths (described below). I/O functions may be provided by one or more of these communications paths but are shown as a single path in
[0091] Control circuitry 604 may be based on any suitable processing circuitry such as processing circuitry 606. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), GPUs, etc., and may include a multiple parallel processing cores or redundant hardware. In some embodiments, processing circuitry 606 may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processors or multiple different processors. In some embodiments, control circuitry 604 executes instructions for system 100 stored in memory (i.e., storage 608). Specifically, control circuitry 604 may be instructed by system 100 to perform the functions discussed above and below. For example, system 100 may provide instructions to control circuitry 604 to generate received user data (e.g., one or more of user identification information 116 and user preference information 122), as described above with reference to
[0092] In some embodiments, control circuitry 604 may include communications circuitry 614 suitable for communicating with other networks (e.g., network 616) or servers (e.g., server 502 or database 506). The instructions for carrying out the above-mentioned functionality may be stored on database 506. Communications circuitry 614 may include a modem, a fiber optic communications device, an Ethernet card, or a wireless communications device for communicating with other devices. Such communications may involve the Internet or any other suitable communications networks or paths (e.g., via network 616/504). In addition, communications circuitry 614 may include circuitry that enables peer-to-peer communication between devices.
[0093] Memory may be an electronic storage device provided as storage 608 that is part of control circuitry 604. As referred to herein, the phrase “electronic storage device” or “storage device” should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, optical drives, solid state devices, quantum storage devices, or any other suitable fixed or removable storage devices, and/or any combination of the same. Storage 608 may be used to store various types of data herein, such as user data Nonvolatile memory may also be used (e.g., to launch a boot-up routine and other instructions). Cloud-based storage (e.g., database 506 when connected to server 502 communicatively coupled to server 502 via the Internet) may be used to supplement storage circuitry 608 or instead of storage 608.
[0094] A user may send instructions to control circuitry 604 using I/O path 610 using an external device such as a remote control, mouse, keyboard, touch screen, etc. In some embodiments, control circuitry 604 correlates a user input with a location of a user interface element and performs an action based on the selected user interface element. Display 612 may be provided as a stand-alone device or integrated with other elements of computing device 600. For example, display 612 may be a touchscreen or touch-sensitive display and may be combined with I/O path 610.
[0095] System 100 may be implemented using any suitable architecture. For example, it may comprise a stand-alone application wholly implemented on computing device 600. In such an approach, instructions of the application are stored locally (e.g., in storage 608). In some embodiments, system 600 comprises a client-server-based application. Data for use by a thick or thin client implemented on computing device 600 is retrieved on-demand by issuing requests to a server remote from the computing device 600. In some embodiments, system 100 comprises instructions that are downloaded and interpreted or otherwise run by an interpreter or virtual machine (e.g., run by control circuitry 604).
[0096]
[0097] In some embodiments, the process outlined within exemplary data format 700 is performed by server 102 of
[0098] In some embodiments, server 102 causes form 704 to be displayed on webpage 702 on client device 104. In some embodiments, form 704 contains initial prompt 706 and initial user-interactive response fields 708. For example, the prompt may contain the text, “What are you interested in?” and the initial user-interactive response fields 708 may be selectable options with the text “Apparel,” “Swimwear,” and “Both.” In some embodiments, when server 102 receives user response option one 710A, for example, a user selection of “Apparel,” server 102 populates form iteration one 704A. Iteration one 704A may contains prompt 712A, for example, the text “What matters most to you?” and user-interactive response fields iteration one 714A, for example, selectable options with the text “Fit,” “Materials,” and “Cost.”
[0099] In some embodiments, when server 102 receives user response option two 710B, for example, a user selection of “Swimwear,” server 102 populates form iteration two 704B. Form iteration two 704B may contain prompt 712B, for example, the text “What type of suits do you prefer?” and user-interactive response fields iteration two 714B, for example, selectable options with the text “One Piece,” “Two Piece,” and “Trunks.”
[0100] In this way, form 704 is a multi-action form that uses responses to prompts to generate or select subsequent prompts, based on a progression of a logic mapping. For example, server 102 chooses to populate on client device 104 form iteration 704B, which contains a prompt and user-interactive response fields that are related to swimwear, because server 102 received user response option two 710B, indicating a user interest in swimwear. In some embodiments, when server 102 receives user response option one 710A indicating an interest in apparel, server 102 populates form iteration 704A on client device 104.
[0101]
[0102] In some examples, the actions outlined within system 800 are performed by server 802, or any other servers, devices and/or networks, such as any of the devices described above with respect to
[0103] In some embodiments, server 802 generates webpage 804 for display, at a client device with client ID 808. At action 820, server 802 stores user data and user actions 810 and client ID 808 in user profile 806. For example, a user has been browsing swimwear.com, has indicated a preference for swimwear, and has bought a women's suit. In this example, server 802 stores this information in a profile associated with the user's client device even though server 802 has not yet received user identification information for the client device. However, in some embodiments, user identification information 816, e.g., an email address, is provided to server 802 through form 812 in user-interactive response field 814. In some embodiments, at action 822, server 802 then updates user profile 806 to include user identification information 816 provided to server 802. For example, server 802 uses client ID 808 stored in a file on client device 104 to find user profile 806 that contains client ID 808 in a database on server 802. In this example, because user profile 806 contains client ID 808, server 802 updates user profile 806 to contain user identification information 816.
[0104]
[0105] In some examples, the actions outlined within system 900 are performed by server 902, or any other servers, devices and/or networks, such as any of the devices described above with respect to
[0106] In some embodiments, at action 930, server 902 generates dynamic coupon code 922 in response to receiving user identification information 910 inputted within user-interactive response field 908 through form 906 on webpage 904 on the client device associated with client ID 920. For example, server 902 receives an email address that a user has inputted on the form, and creates a coupon code, BOGO, in order for the user to get 15$ off of a purchase.
[0107] In some embodiments, at action 932, server 902 generates required user action 912 for display on form 906 on webpage 904 on the client device associated with client ID 920. For example, server 902 displays a user selectable option with text saying, “Show me my cart!” on the form. In this instance, in order to view the code, the user must select the button to show their cart. In another example, server 902 displays a user selectable option with text saying, “Add gift card to cart!” on the form. In this instance, the user must select the button to add the gift card to their cart.
[0108] In some embodiments, at action 934, in response to receiving user selection of required user action 912, server 902 generates for display the user shopping cart 914 and generates the gift card 916, containing dynamic coupon code 922 and gift card amount 924, for display on the webpage with user shopping cart 914 on the client device associated with client ID 920. For example, the browser on the client device navigates from webpage “swimwear.com” to webpage “swimwear.com/cart,” and, along with any other items that may be in the user's shopping cart, there is a dynamic coupon code, e.g., BOGO, and an indication of the gift card amount, e.g., $15, that the user will receive off of their purchase.
[0109] In some embodiments, at action 936, server 902 stores the dynamic coupon code 922, the gift card amount 924, and the gift card remaining uses 926, e.g., four uses, in user profile 918, which also contains the client ID 920 associated with the client device (e.g., client device 104) that server 902 is implementing system 900 on and the user identification information 910 that the user provided in order to receive the dynamic coupon code 922. In some embodiments, server 902 may keep track of gift card remaining uses 926, as described further below with respect to
[0110] The aspects outlined in system 900 may be combined in any suitable combination, taken in part, or as a whole.
[0111]
[0112] In some examples, the actions outlined within system 1000 are performed by server 1002, or any other servers, devices and/or networks, such as any of the devices described above with respect to
[0113] In some embodiments, at action 1030, server 1002 generates dynamic coupon code 1022 in response to receiving user identification information 1010 inputted within user-interactive response field 1008 through form 1006 on webpage 1004. For example, server 1002 receives an email address that a user has inputted on the form, and creates a coupon code, BOGO, in order for the user to get 15$ off of a purchase.
[0114] In some embodiments, at action 1032, in response to receiving user identification information 1010, server 1002 adds dynamic coupon code 1022 to the user's shopping cart 1014 without generating a required user action and continues to generate form 1006 for display on webpage 1004 on the client device associated with client ID 1020. For example, server 1002 may display a prompt and user selectable response fields without any further mention of the dynamic coupon code. In some embodiments, at action 1034, server 1002 generates for display the user shopping cart 1014 and generates the gift card 1016, containing dynamic coupon code 1022 and gift card amount 1024, for display on the webpage with user shopping cart 1014 on the client device associated with client ID 1020. For example, the browser on the client device navigates from webpage “swimwear.com” to webpage “swimwear.com/cart,” and along with any other items that may be in the user's shopping cart, there is a dynamic coupon code, e.g., BOGO, and an indication of the gift card amount, e.g., $15, that the user will receive off of their purchase.
[0115] In some embodiments, at action 1036, server 1002 stores the dynamic coupon code 1022, the gift card amount 1024, and the gift card remaining uses 1026, e.g., four uses, in user profile 1018. User profile 1018 also contains the client ID 1020 associated with the client device (e.g., client device 104 within
[0116] The aspects outlined in system 1000 may be combined in any suitable combination, taken in part, or as a whole.
[0117]
[0118] In some embodiments, at 1102, server 102 receives via input/output circuitry, for example, I/O path 610, a request for a webpage from a client device (e.g., client device 104). Server 102 may transmit the received request via any suitable input (e.g., textual or voice input within a browser search bar indicating an interest in the webpage) over a network (e.g., network 504).
[0119] In some embodiments, at 1104, after receiving the request for a webpage, server 102, through control circuitry 604, causes a form (e.g., form 110) comprising one or more user-interactive response fields (e.g., user-interactive response fields 120) to be displayed on the webpage on the client device (e.g., client device 104).
[0120] In some embodiments, at 1106, after control circuitry 604 causes the form to be displayed, control circuitry 604 begins to monitor the user profile (e.g., user profile 126 within
[0121] In some embodiments, at 1110, after detecting that the amount of received user data and received user actions are below the predetermined thresholds, control circuitry 604 begins to monitor the webpage for data inputted into the one or more user-interactive response fields (e.g., user-interactive response fields 114 and 120 within
[0122] In some embodiments, at 1114, after detecting that the user inputted data into the one or more user-interactive response fields, control circuitry 604 receives the user data that the user inputted into the user-interactive response fields. Client device 104 may transmit user data from client device 104 to server 102 via a network, such as network 504.
[0123] In some embodiments, at 1116, after control circuitry 604 receives the user data, storage circuitry, for example, storage circuitry 608, causes the received user data to be stored on server 102 in user profile 126, which is one user profile of a plurality of profiles associated with a plurality of clients. For example, storage circuitry stores the user's email address and their user selection of a preference for swimwear in a profile with an identifier for the client device 104.
[0124] In some embodiments, at 1118, if control circuitry 604 detects that a user performed user actions on the webpage, for example, that a user has purchased a swimsuit, or added a pair of flip-flops to their cart, process 1100 proceeds to 1120. If control circuitry 604 detects that the user has not performed any user actions on the webpage, process 1100 returns to 1110 and continues monitoring the webpage for data inputted into the one or more user-interactive response fields and user actions performed on the webpage.
[0125] In some embodiments, at 1120, after detecting that the user has performed user actions on the webpage, control circuitry 604 receives the user actions. Client device 104 may transmit user actions to server 102 via a network, such as network 504.
[0126] In some embodiments, at 1122, after control circuitry 604 receives the user actions, storage circuitry, for example, storage circuitry 608, causes the received user actions to be stored on server 102 in user profile 126, which is one user profile of a plurality of profiles associated with a plurality of clients. For example, storage circuitry stores the user's purchase of a swimsuit in a profile with an identifier for the client device 104. In some embodiments, in response to causing the received user actions to be stored on the server, process 1100 returns to 1106, and control circuitry 604 continues to monitor the user profile stored on the server for an amount of received user data and received user actions. At 1108, if control circuitry 604 detects that the amount of received user data and received user actions are above certain predetermined thresholds, e.g., thresholds set by the administrative device 106 within
[0127] In some embodiments, at 1124, after control circuitry 604 detects that there are sufficient received user data and received user actions stored in the profile associated with the client to generate a score. Control circuitry 604 may then generate aggregated received user data and received user actions from a plurality of stored profiles associated with the plurality of client devices inputting user data and performing user actions on webpages. For example, control circuitry 604 groups the received user data and user actions corresponding to each advertising campaign by similarities, e.g., ten users indicated a preference for swimwear and bought a swimsuit, five users indicated a preference for apparel and bought flip-flops.
[0128] In some embodiments, at 1126, after control circuitry 604 generates aggregated received user data and received user actions, control circuitry 604 generates an output corresponding to user engagement. In some instances, the output is a score for the advertising campaign associated with the form, e.g., the advertising campaign associated with advertising campaign ID 130 within
[0129]
[0130] In some embodiments, at 1202, server 102 receives via input/output circuitry, for example, I/O path 610, a request for a webpage from a client device (e.g., client device 104). Client device 104 may transmit the received request via any suitable input (e.g., textual or voice input within a browser search bar indicating an interest in the webpage) over a network (e.g., network 504).
[0131] In some embodiments, at 1204, after receiving the request for a webpage, server 102, through control circuitry, for example, control circuitry 604, detects whether the webpage contains a file with a unique identifier, for example, a file in the example data format of system 400 within
[0132] In some embodiments, at 1206, after detecting that the webpage does contain a file with a unique identifier, control circuitry 604 identifies the user profile (e.g., user profile 126 of
[0133] In some embodiments, at 1208, after determining that the webpage does not contain a file with a unique identifier, control circuitry 604 generates a file on the webpage with a unique identifier, for example, by embedding a cookie in the webpage with a client ID of an auto-generated alphanumerical string, e.g., “abc123.”
[0134] In some embodiments, at 1210, after generating a file on the webpage with the unique identifier, control circuitry 604 creates a user profile containing the unique identifier as the client ID for the client device on the server. For example, control circuitry 604 creates a user profile with the client ID “abc123” corresponding to the unique identifier of “abc123” on the webpage.
[0135] In some embodiments, at 1212, after creating the user profile, storage circuitry, for example, storage circuitry 608, causes the user profile to be stored on the server. For example, the storage circuitry 608 stores user profile with the client ID “abc123” on server 102.
[0136]
[0137] In some embodiments, at 1302, server 102, through control circuitry, for example, control circuitry 604, detects an instance of attempted usage of a unique coupon code, e.g., dynamic coupon code 922 in
[0138] In some embodiments, at 1304, control circuitry 604 determines whether there are zero remaining uses of the code stored in the profile of the server. For example, control circuitry 604 detects the number of remaining uses in the user profile stored on the server, for example, the gift card remaining uses 926 in user profile 918 within
[0139] In some embodiments, at 1310, control circuitry 604 blocks the instance of attempted usage of the coupon code by the client, for example, by not allowing the attempted purchase to go through while using the coupon code and notifying the user that there are no remaining uses of the coupon code.
[0140] In some embodiments, at 1306, control circuitry 604 allows the instance of attempted usage of the coupon code by the client, for example, by completing the attempted purchase using the coupon code. In some embodiments, in response to allowing the instance of the attempted usage of the coupon code, process 1300 proceeds to 1308.
[0141] In some embodiments, at 1308, control circuitry 604 decreases the number of gift card remaining uses in the user profile stored on the server, e.g., the gift card remaining uses 926 in user profile 918 within
[0142]
[0143] In some embodiments, process 1400 is an embodiment of 1126 in process 1100 within
[0144] In some embodiments, at 1402, control circuitry 604 collects insights, impressions, events, and/or metrics of a user engagement campaign, for example, from remote servers over a network, as described in system 300 within
[0145] In some embodiments, at 1404, control circuitry 604 trains a machine learning model based on the insights, impressions, events, and/or metrics of a user engagement campaign. For example, control circuitry 604 trains the machine learning model by inputting at least one of the insights, impressions, events, and/or metrics and computing the output for the campaign. Control circuitry 604 may update weights between nodes in the model when the output does not correspond to an expected output for the inputted insights, impressions, events, and/or metrics. After training the machine learning model, process 1400 proceeds to 1406.
[0146] In some embodiments, at 1406, control circuitry 604 inputs aggregated received user data (e.g., form responses indicating user preferences, such as preferences for swimwear or apparel) and aggregated received user actions (e.g., purchases or additions to a shopping cart) into the machine learning model. For example, control circuitry 604 may generate a vector comprising the aggregated received user data and aggregated received user actions and may apply each element of the vector to a distinct input node (e.g., input nodes 204/224). After inputting aggregated received user data and aggregated received user actions into the machine learning model, process 1400 proceeds to 1408.
[0147] In some embodiments, at 1408, control circuitry 604 computes the output of the machine learning model, for example, output 132 from
[0148] The foregoing is merely illustrative of the principles of this disclosure and its various embodiments. The processes described above are intended to be illustrative and not limiting. Various modifications may be made by those skilled in the art without departing from the scope of this disclosure, and those skilled in the art would appreciate that the actions of the processes discussed herein may be omitted, modified, combined, and/or rearranged, and any additional actions may be performed without departing from the scope of the disclosure. The above-described embodiments are presented for purposes of illustration and not of limitation. The present disclosure also can take many forms other than those explicitly described herein. Accordingly, it is emphasized that this disclosure is not limited to the explicitly disclosed methods, systems, and apparatuses, but is intended to include variations and modifications thereof, which are within the spirit of the following claims. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.