SEND TIME OPTIMIZATION FOR ELECTRONIC COMMUNICATIONS CAMPAIGN

Information

  • Patent Application
  • 20210065034
  • Publication Number
    20210065034
  • Date Filed
    August 27, 2020
    3 years ago
  • Date Published
    March 04, 2021
    3 years ago
Abstract
Disclosed are systems and methods for determining the best time to send an electronic communication from a sender to a recipient. In one aspect, a method is disclosed that includes selecting a time window from a series of candidate time windows based on a corresponding first value for each candidate time window, wherein each first value is representative of a likelihood of receiving an event notification within a specified first delay after the candidate time window. The method further includes selecting a time period from a plurality of time periods within the selected time window based on a corresponding second value for each time period representative of the likelihood of receiving the event notification within a specified second delay after the time period. The method further includes generating a signal indicative of a time within the selected time period at which an electronic communication should be sent.
Description
TECHNICAL FIELD

The disclosed subject matter relates to the delivery of electronic communications such as email and text messages.


BACKGROUND

Electronic communications such as emails and text messages are broadly used throughout society for business use as well as personal use. Messages are usually sent at a time that is convenient for the sender such as just after a message is composed or sent in batches when a full contact list is complete and the message is ready to send. These approaches do not optimize the time at which an electronic communication is sent so that each recipient is more likely to read the communication.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 depicts an example of an electronic communications delivery system.



FIG. 2 depicts an example of a backend server.



FIG. 3A depicts examples of message exchanges between the hardware elements of FIG. 2.



FIG. 3B depicts examples of additional message exchanges between the hardware elements of FIG. 2.



FIG. 4 depicts an example of a method for selecting a time to send an electronic communication.



FIG. 5 depicts an example of a computing system.





DETAILED DESCRIPTION

Headings are used in the following description only to aid understanding without limiting the features described.


Introduced here are systems and methods for determining the best time to send an electronic communication from a sender to a recipient based on the times that previous communications were sent and information about when the recipient attended to the communication. Each communication sent may be referred to as a campaign which may be sent to any number of recipients, and information about when the recipient attends to the communication may be referred to as an open event. A system such as disclosed herein learns send time preferences for individual contacts over the course of multiple campaigns. Using the observed open events, a response model is constructed for each contact that characterizes both the likelihood of observing an open event when sending communications within different send time windows and individual day-hour combinations during the week. A day-hour send time corresponds to a particular day of the week and an hour, or other time period, during each particular day. For example, a day-hour send time can be Mondays at 9:00 A.M. There are 7 days×24 hours=168 day-hour send times in a given week. Other day-hour send times can also be used with more than 168 send times or fewer than 168 send times. Each time window corresponds to multiple day-hour time periods. For example, a send time window can be between 8:00 A.M. and 5:00 P.M. on Fridays.


This technique of response modeling using two levels of time resolution, i.e., day-hour response modeling and time window response modeling, accelerates the rate at which the optimization system discovers reasonable send time solutions in the earliest stages of learning while supporting longer-term identification of day-hour combinations that work best for a contact's schedule. In the following sections, a specific approach for modeling response rates for both of these two levels of resolution is described, the methods for estimating the model parameters, and the overall approach for selecting a send time using the two estimated response models.



FIG. 1 depicts an electronic communications delivery system 100 that delivers electronic communications from one node to another node. System 100 includes nodes such as wireless devices including smartphone/cell phone 150, wireless enabled laptop 152, and tablet 155, each served by access points / base stations 140 and 145 and connected through the Internet/network/cloud 120 to backend server 110. Other example nodes include laptop 130, and computer 135 that may have wired connectivity to Internet/network/cloud 120. The communications delivery system can deliver electronic messages from one node to another via the Internet 120 and the backend server 110. Included in backend server 110 is the email send time optimization system and methods for implementing the system. In FIGS. 2-6 and the description below, email may be referred to as one specific example of electronic communications, but the following system and methods also can be applied to other types of electronic communications, including text messages such as SMS or MMS messages, etc.



FIG. 2 depicts a backend server 200 that can be used to implement the techniques introduced here, in accordance with some example embodiments. Backend server 200 can be or represent backend server 110 in FIG. 1. Backend server 200 includes a backend storage and control unit 210, an open event processor 220, a send time optimizer 230, an API controller 240 and an electronic communications module 250. The backend storage and control unit 210 manages email campaigns by determining active campaigns, updating active campaigns, maintaining a database of open events, determining email batches ready to process, requesting optimized send times from send time optimizer 230, and sending emails. The send time optimizer 230 is detailed below, and the features of backend server 200 are further detailed with respect to FIGS. 3A and 3B. Open event processor 220 is responsible for processing open events of messages including a open time for each recipient of an email campaign. Application programming interface (API) controller 240 serves as a control mechanism between the send time optimizer 230 and electronic communications module 250, which sends the emails in the campaign. Send time optimizer 230 optimizes the send time for each recipient in an email campaign based on the open event times and the two-stage model of each recipient. The send time optimizer 230 is described next.


Characterizing a Contact's Response

Contact-level send time optimization is the custom optimization of send times for each contact within a list of multiple contacts. The objective of contact-level send time optimization is to uncover the best day-hour combinations to communicate with a given contact so that the probability is maximized of the contact opening the electronic communication such as email or text. Each time an email is sent to a contact, that action in effect initiates an experiment that could yield additional information about whether a particular day-hour time slot is preferred. In the following description, an experiment is the sending of a particular email to a particular contact during a day-hour time slot and observing the response, which is an email open event. An email open event includes an identification of the email and a time in which it was accessed. An email open event can be a return receipt that the recipient must approve or can be any other mechanism for providing open events, some mechanisms of which the recipient may be unaware. For the purpose of send time optimization, the email open event of interest for a particular email is one that may follow the sending of the particular email which can be characterized as the time delay between the send and open events. If the average delay steadily decreases over time, there is a regularity in the contact's response pattern that the system is incrementally leveraging to deliver emails in a timelier fashion.


Adaptive Online Experimentation

In some example embodiments, the contact-level send time optimization can be understood in terms of a so-called “multi-armed bandit” (MAB) problem, which is a type of reinforcement learning where policies for selecting an action are learned that maximize the average reward for a single time step, as opposed to considering a set of possible futures over a finite or infinite time horizon. The disclosed process for solving the multi-armed bandit problem for email send time optimization selects a day-hour send time, receives feedback about the effectiveness of that choice, updates the underlying model, and repeats the process.


MAB algorithms fall into two broad classes: deterministic and stochastic processes. A deterministic MAB process produces the same prediction when queried repeatedly with a fixed model. A stochastic MAB process, on the other hand, exhibits a degree of randomness in the predictions when a fixed model is queried repeatedly. The send time optimization process described below is based on Thompson sampling which is a stochastic MAB learning process.


Thompson sampling is a Bayesian approach to solving the MAB problem that estimates the posterior distribution of the reward for each potential action conditional on the history of (action, reward) pairs observed up to the present time. When a prediction of the next best action is required, a single sample is drawn from each posterior action reward distribution and the action corresponding to the maximum over the reward samples is returned as the prediction.


Thompson sampling handles an exploration-exploitation tradeoff elegantly due to its stochastic nature. The exploration-exploitation tradeoff refers to the inherent tension between maximizing reward and selecting actions that are poorly understood. In the earliest stages of learning, a greater degree of exploration is used as very little information is available to support predictions. As confidence builds, more actions will be selected that exploit the accumulated evidence to maximize reward.


Modeling the Timely Response Rate

In some example embodiments, the reward, r(τ), for an email send event that yields a delay, τ, between the email send event and open event. To simplify the definition of r(τ), a binary reward function is selected that yields a constant reward for open events that arrive within a listening period, τlp,










r


(
τ
)


=

{




1




if





τ



τ
lp






0


otherwise



.






Equation





1







When specifying candidate send times, continuous time over the course of a week is discretized into a set of send time periods that cover the week. The response rate modeling performed at the two levels of resolution described above earlier have different candidate send time periods.


In some example embodiments, contact response patterns vary within the context of a week but are assumed to be stable across weeks. This ignores the impact of holidays and other special events, but these can easily be handled by further constraining the set of candidate send time intervals under consideration at prediction time. The disclosed system can automatically respond to similar send time constraints specified by users.


The timely response rate modeling problem is now described. For a general send time period,






S={h: h∈{0, 1, . . . , 167}}   Equation 2.


spanning a subset of the 168-hour weekly time intervals, the objective is to estimate the timely response rate distribution p(oS) for period S from observed delays,






T
S={τ1, τ2, τ3, . . . , τm},   Equation 3.


for emails sent within period S . Note that for all emails without an observed open, τ=∞. Additionally, delays are expressed in continuous time.


The first step in the estimation process is to compute the set of rewards,






R
S
={r1),r2),r3), . . . , rm)},   Equation 4.


for all observed delays. This produces a set of binary outcomes indicating whether or not each email sent in the send time period produced a timely response arriving within the listening period.


Due to the binary nature of the response and the assumption that the experiments are independent and identically distributed, the timely response rate oS is a Beta-distributed random variable where











o
S



(


α
+

α
0


,

β
+

β
0



)


,
.




Equation





5







α
=




m
=
1

m



r


(

τ
i

)




,

and
.





Equation





6






β
=


m
-
α

..





Equation





7







α0 and β0 are parameters defining the Beta prior for oS. α00=⅓ in order to specify a neutral Beta prior.


Modeling Candidate Send Time Period Response Rates

One of the challenges that marketing professionals continually wrestle with is timezone estimation for contacts in a given segment. In the best of circumstances, additional context is available that allows the system to infer a particular timezone or set of candidate timezones for every contact. Yet often that information is incomplete, leaving one with a set of contacts that could be anywhere. To address this routine scenario, we will assume at first that we have no prior context about the contact's timezone. Later it will be shown how to leverage additional information when it is available.


An assumption of the model is periodicity in patterns of life. Regardless of where someone is located on the planet, particular time intervals in the day where the response rate is highest are expected due to business activity occurring during daylight hours. A first order estimation task is to discern the time interval in the day of Ω hours with an offset of γ hours from midnight GMT (or any reference timezone) that yields the maximum response rate when emails are sent anytime within that daily time interval throughout the week.


For clarity, define a single candidate period Sγ(Ω) as the subset of hours covering the daily interval of w hours, offset γ hours from midnight,






S
γ(Ω)={(24d+i+γ) mod 168∀d∈{0,1, . . . , 6}, i∈{0, . . . , Ω−1}},   Equation 8.


where 0<Ω≤12 and 0≤γ<24. The resulting hours in Sγ(Ω) will include 7 batches of contiguous hours covering Ω hour periods each day of the week. The 168 hours of the week are indexed on the interval {0,1, . . . , 167}.


Estimation of the candidate send time period for the contact amounts to selecting one subset from a defined set of options,






S={S
γ

1
1), Sγ22), . . . , Sγnn)}   Equation 9.


For simplicity, Ω is set to a constant Ω* and a candidate send time period is selected from the set,






S={S
γ(Ω*) ∀γ⊂{0,1,2, . . . , 23}}.   Equation 10.


In some example embodiments, Ω*=6 hours and γ offsets are spaced every 3 hours so that the contiguous daily send time intervals overlap by 3 hours.


To simplify notation below, a candidate send time period Sγ(Ω*) is referred to as simply Sγwith the understanding that there is an underlying constant period Ω* for all the candidate send time periods under consideration.


Modeling the response rate distribution for each candidate send time period Sγ now follows the blueprint from the previous section. Observed delays






T
S

γ
1, τ2, τ3, . . . , τm},   Equation 11.


are aggregated for emails sent within period Sγ. Then the set of rewards,






R
S

γ

={r1), r2),r3), . . . , rm)},   Equation 12.


is computed for all observed delays. The timely response rate oSγ is a Beta-distributed random variable with distribution parameters computed as indicated in the previous section.


Modeling Hourly Response Rates

In addition to the above models that characterize response rates for various candidate send time periods, models for the 168 day-hour combinations throughout the week are also generated. Models at this resolution allow the accumulation of information in a form that supports the final step in selecting a particular day-hour send time.


Each candidate period Sd,h is defined as,





Sd,h={24d+h},   Equation 13.


and the overall set of candidate periods is






S={S
d,h
∀d∈{0,1, . . . , 6}, h∈{0,1, . . . , 23}}.   Equation 14.


The observed delays,






T
s

d,h
={τ1, τ2, τ3, . . . , τm},   Equation 15.


are aggregated for emails sent within period Sd,h. Then the set of rewards,











R

S

d
,
h



=

{


r


(

τ
1

)


,

r


(

τ
2

)


,

r


(

τ
3

)


,





,

r


(

τ
m

)



}


,
.




Equation





16







is computed for all observed delays. The timely response rate oSd,h is Beta-distributed random variable with distribution parameters computed as indicated above.


Putting the Pieces Together: Prediction and Model Updates

With the response rate distributions specified for both the candidate send time periods and the hours throughout the week, the procedure by which a send time is generated for a given contact can be defined. This is a two-step process by which first a candidate send time period is selected that constrains the hours under consideration for the week. Then a particular day-hour combination is selected from among the hours that fall in the candidate send time period throughout the week.


Each selection process follows the standard Thompson sampling procedure: draw a single sample from each posterior action reward distribution and select the action corresponding to the maximum over the reward samples. The reward associated with all the options under consideration is the response rate.


For the first step, a single sample is drawn from each candidate send time period response rate distribution and select the offset,











γ
*

=

arg





max


{



o
^


S

y
1



,


o
^


S

γ
2



,





,


o
^


S

γ
n




}



,
.




Equation





17







that corresponds to the maximum sampled rate.


For the second step, a single sample is drawn from each day-hour response rate distribution for the hours in the selected candidate send time period and select the day-hour combination,





(d, h)*=arg max {ôSd,h∀d∈{0,1, . . . , 6}, h∈{γ*, γ*+1, . . . , γ*+Ω*−1}},   Equation 18.


that corresponds to the maximum sampled rate.


At the start of the campaign, for all contacts in the campaign population, the corresponding send times for the contacts are computed in this manner leveraging all the available response history. At the conclusion of the campaign, additional responses that occur become part of the overall contact response history that then leads to corresponding updates in the response distribution parameters. Since contacts are assumed to be contacted only once during the course of a single campaign, distribution parameter updates can occur in batch at the conclusion of a particular campaign.



FIG. 3A depicts message exchanges between the elements of FIG. 2, in accordance with some example embodiments. FIG. 3A shows collecting historical activity for the modeling process. At 310, backend storage and control 210 receives a wake-up signal also referred to as a heart beat ping. At 312, backend storage and control 210 scans for active campaigns. At 314, backend storage and control 210 sends an asynchronous request to API controller 240 updating activities. At 316, API controller 240 exports transient campaign activities to electronic communications module 250. At 318, the electronics communications module 250 returns activity data to API controller 240. At 320. API controller 240 asynchronously responds indicating that the updating activities have finished. At 322, backend storage and control 210 updates online analytical processing (OLAP) tables for reporting. At 324, the open event processor events source table is updated from individual message activities. At 326, the backend storage and control 210 requests an update to the open event processor 220 and at 329, the open event processor responds. At 330, backend storage and control 210 requests an update from the send time optimizer and at 332, the send time optimizer responds.



FIG. 3B depicts additional message exchanges between the elements of FIG. 2, in accordance with some example embodiments. FIG. 3B shows constructing batches resulting from the latest modeling and sending the communications instructions with recipients to an external system for sending. A batch is a group of contact recipients, grouped by day/hour. At 310, backend storage and control 210 receives a wake-up signal also referred to as a heartbeat ping. At 340, backend storage and control 210 scans for batches ready to process. At 342, backend storage and control 210 sends a batch. At 344, backend storage and control 210 requests treatment assignments from the send time optimizer 230. In a campaign where the system has all the email recipients, the backend storage and control 210 requests treatment assignments for all of the recipients. In a campaign where contacts flow into the campaign over time, the backend storage and control 210 requests treatment assignments for contacts as they flow in where the system is in a “drip” mode where contacts flow into the system dynamically. At 346, the send time optimizer responds with treatment assignments. At 348, the backend storage and control 210 records the treatment assignments. At 350, the backend storage and control 210 sends the treatments to the API controller 240. At 352, the backend storage and control 210 marks the batch status complete. At 354, the API controller 240 sends the emails to the electronic communications module 250 and at 356, the electronic communications module responds OK. At 358, a request to sync contact action service status is sent to the electronic communications module 250 and at 360, the electronic communications module 250 responds OK. At 362, the backend storage and control 210 exports contact attributes and at 364, the electronic communications module responds OK. FIG. 4 depicts a method for selecting a time to send an electronic communication, in accordance with some example embodiments. At 410, the method includes selecting, by a computer system, a time window from a series of candidate time windows based on a corresponding first value for each candidate time window, wherein each first value is representative of a likelihood of receiving an event notification within a specified first delay after the candidate time window. At 420, the method includes selecting, by the computer system, a time period from a plurality of time periods within the selected time window based on a corresponding second value for each time period representative of the likelihood of receiving the event notification within a specified second delay after the time period. At 430, the method includes generating, by the computer system, a signal indicative of a time within the selected time period at which an electronic communication should be sent.


Platform Implementation


FIG. 5 depicts a computing system 500 (e.g., node) on which the above-described system and/or methods may be implemented. The computing system 500 may include a desktop computer, a laptop, a tablet, an e-reader, a personal digital assistant, a smartphone, a gaming device, a server, and so on. Computing system 500 may include a central processing unit or processor 510, input devices 530, output devices 550 (e.g., display devices and speakers), storage devices 520 (e.g., memory and disk drives), network interfaces 540, graphics processing units, cellular radio link interfaces, global positioning system devices, and so on. The input devices 530 may include keyboards, pointing devices, touch screens, gesture recognition devices (e.g., for air gestures), head and eye tracking devices, microphones for voice recognition, and so on. The computing systems may access storage devices 520 including computer-readable media that include computer-readable storage media and data transmission media. The computer-readable storage media are tangible storage means that do not include a transitory, propagating signal. Examples of computer-readable storage media include memory such as primary memory, cache memory, and secondary memory (e.g., DVD) and other storage. The computer-readable storage media may have recorded on it or may be encoded with computer-executable instructions or logic that implements the platform. The data transmission media is used for transmitting data via transitory, propagating signals or carrier waves (e.g., electromagnetism) via a wired or wireless connection. The computing systems may include a secure cryptoprocessor as part of a central processing unit for generating and securely storing keys and for encrypting and decrypting data using the keys.


The disclosed and other embodiments, modules and the functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.


A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.


Many of the processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).


Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random-access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.


While this patent document contains many specifics, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.


Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.


Only a few implementations and examples are described, and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.

Claims
  • 1. A method comprising: selecting, by a computer system, a time window from a series of candidate time windows based on a corresponding first value for each candidate time window, wherein each first value is representative of a likelihood of receiving an event notification within a specified first delay after the candidate time window;selecting, by the computer system, a time period from a plurality of time periods within the selected time window based on a corresponding second value for each time period representative of the likelihood of receiving the event notification within a specified second delay after the time period; andgenerating, by the computer system, a signal indicative of a time within the selected time period at which an electronic communication should be sent.
  • 2. The method of claim 1, further comprising: causing, by the computer system, the electronic communication to be sent based on the signal.
  • 3. The method of claim 2, further comprising: receiving an open event notification indicative of an opening day and time of the electronic communication being opened by a recipient.
  • 4. The method of claim 3, further comprising: updating a first model that determines the first random value of the first random variable based on the open event notification; andupdating a second model that determines the second random value of the second random variable based on the open event notification.
  • 5. The method of claim 1, wherein the electronic communication is a text based electronic communication comprising an email or a text message.
  • 6. The method of claim 3, wherein the open event comprises a return receipt for the email.
  • 7. The method of claim 1, wherein the first value is random according to a first continuous probability distribution function and the second value is random according to a second continuous probability distribution function.
  • 8. The method of claim 7, wherein the first continuous probability distribution function is a Beta distribution and the second continuous probability distribution function is a same Beta distribution as the first continuous probability distribution function or a different Beta distribution from the first continuous probability distribution function.
  • 9. The method of claim 1, wherein the corresponding first value of the selected time window corresponds to a first maximum value of the corresponding first values indicating a first greatest likelihood of generating an open event in the selected time window, and wherein the corresponding second value of the selected time period corresponds to a second maximum value of the corresponding second values indicating a second greatest likelihood of generating an open event in the selected time period.
  • 10. The method of claim 1, wherein the selected time period corresponding to a particular day and time has a greatest likelihood of receipt of an open event notification compared to other days and times.
  • 11. The method of claim 1, wherein each candidate time window in the series of time windows is offset by a predetermined amount of time from another candidate time window in the series of time windows, wherein each candidate time window extends for six hours and the predetermined amount of time is three hours.
  • 12. The method of claim 1, wherein each of the plurality of time periods does not overlap any other of the plurality of time periods.
  • 13. The method of claim 1, wherein the selected time window is selected based on at least a time-zone of a recipient or estimated working hours of a recipient.
  • 14. The method of claim 1, wherein the specified first delay and the specified second delay are each within the range of two hours to six hours.
  • 15. A non-transitory machine-readable storage medium including instructions, execution of which by at least one processor in a computer system causes the computer system to perform operations comprising: selecting a time window from a series of candidate time windows based on a corresponding first value for each candidate time window, wherein each first value is representative of a likelihood of receiving an event notification within a specified first delay after the candidate time window;selecting a time period from a plurality of time periods within the selected time window based on a corresponding second value for each time period representative of the likelihood of receiving the event notification within a specified second delay after the time period; andcausing the electronic communication to be sent at a time within the selected time period.
  • 16. The non-transitory machine-readable storage medium of claim 19, wherein the executable instructions further cause the at least one processor to perform: outputting, by the computer system, an indication of the time within the selected period as a time at which the electronic communication should be sent.
  • 17. The non-transitory machine-readable storage medium of claim 16, wherein the executable instructions further cause the at least one processor to perform: receiving an open event notification indicative of an opening day and time of the electronic communication being opened by a recipient.
  • 18. The non-transitory machine-readable storage medium of claim 16, wherein the executable instructions further cause the at least one processor to perform: updating a first model that determines the first random value of the first random variable based on the open event notification; andupdating a second model that determines the second random value of the second random variable based on the open event notification.
  • 19. The non-transitory machine-readable storage medium of claim 16, wherein the electronic communication is a text based electronic communication.
  • 20. The non-transitory machine-readable storage medium of claim 16, wherein the first value is random according to a first continuous probability distribution function and the second value is random according to a second continuous probability distribution function, and wherein the first continuous probability distribution function is a Beta distribution and the second continuous probability distribution function is a same Beta distribution as the first continuous probability distribution function or a different Beta distribution from the first continuous probability distribution function.
  • 21. The non-transitory machine-readable storage medium of claim 16, wherein the corresponding first value of the selected time window corresponds to a first maximum value of the corresponding first values indicating a first greatest likelihood of generating an open event in the selected time window, and wherein the corresponding second value of the selected time period corresponds to a second maximum value of the corresponding second values indicating a second greatest likelihood of generating an open event in the selected time period.
  • 22. The non-transitory machine-readable storage medium of claim 16, wherein each candidate time window in the series of time windows is offset by a predetermined amount of time from another candidate time window in the series of time windows.
  • 23. An apparatus comprising: at least one processor; andat least one memory storing instructions that when executed, cause the apparatus to perform operations comprising: selecting a time window from a series of candidate time windows based on a corresponding first value for each candidate time window, wherein each first value is representative of a likelihood of receiving an event notification within a specified first delay after the candidate time window;selecting a time period from a plurality of time periods within the selected time window based on a corresponding second value for each time period representative of the likelihood of receiving the event notification within a specified second delay after the time period; andcausing the electronic communication to be sent at a time within the selected time period.
  • 24. The apparatus of claim 23, wherein the operations further include: outputting, by the computer system, an indication of the time within the selected period as a time at which the electronic communication should be sent.
  • 25. The apparatus of claim 23, wherein the first value is random according to a first continuous probability distribution function and the second value is random according to a second continuous probability distribution function, and wherein the first continuous probability distribution function is a Beta distribution and the second continuous probability distribution function is a same Beta distribution as the first continuous probability distribution function or a different Beta distribution from the first continuous probability distribution function.
  • 26. The apparatus of claim 23, wherein the corresponding first value of the selected time window corresponds to a first maximum value of the corresponding first values indicating a first greatest likelihood of generating an open event in the selected time window, and wherein the corresponding second value of the selected time period corresponds to a second maximum value of the corresponding second values indicating a second greatest likelihood of generating an open event in the selected time period.
  • 27. A method comprising: acquiring, by a computer system, data indicative of open events related to electronic communications received by a contact;constructing, by the computer system and based on the acquired data, a first response model that represents a likelihood of observing an open event when sending communications to the contact within different send time windows and a second response model that represents a likelihood of observing an open event when sending communications to the contact within individual day-hour combinations;determining a preferred time at which to send an electronic communication to the contact, based on the first response model and the second response model; andgenerating a signal indicative of the preferred time at which to send an electronic communication to the contact.
  • 28. The method of claim 27, further comprising: causing, by the computer system, the electronic communication to be sent to the contact at a time determined based on the signal.
  • 29. The method of claim 27, wherein the electronic communication is an email, text message, or a short message service (SMS) text message.
  • 30. The method of claim 29, wherein the first response model and the second response model are stochastic models.
CROSS-REFERENCE TO RELATED APPLICATION

This patent document claims the benefit of U.S. Provisional Patent Application No. 62/892,404, titled, “Send Time Optimization for Email Campaigns,” filed on Aug. 27, 2019. The entire content of the above-mentioned patent application is incorporated by reference as part of the disclosure of this patent document

Provisional Applications (1)
Number Date Country
62892404 Aug 2019 US