实现统计邮件中超链接URL点击率的系统及方法
技术领域
[0001] 本发明涉及网络领域,尤其涉及统计邮件中超链接URL(UniformResource Locator,网页地址)点击率的系统及方法。
背景技术
[0002] 电子邮件营销,就是采用电子邮件的形式,把自己的信息传播给自己的目标受众的一种营销方式。长期以来,它以效果明显,费用低廉而受到了绝大多数公司和个人的青睐,并且,随着网络时代的快速发展,越来越多的商家开始采用这种营销邮件来进行公司的宣传。发送端(如营销者或营销者委托的服务方)通常是将营销邮件发送给本端保存的邮件列表中对应的每一用户,对于用户是将其作为垃圾邮件进行删除还是对营销邮件中的营销内容非常感兴趣,是营销者非常关心的事情。目前,一种较为常见的手段是通过统计邮件中每个超链接URL点击率来获知用户对营销邮件的反馈。那么,如何能够获知邮件中每个超链接URL被点击的次数呢?现有的一种做法是在邮件中嵌入现有的跟踪函数,如trace(痕迹),当用户点击某个URL时,该trace函数就被激活,返回用户信息(如用户对应的邮件地址)及被点击的URL地址,发送端对该URL地址的点击次数进行计数,以此获得邮件中每个URL点击率。
[0003] 现有的统计邮件中超链接URL点击率的系统包括发送端和至少一客户端,发送端和客户端通过因特网进行连接。其中,发送端包括第一邮件服务器和至少一台web终端,多台web终端可以组成内部网后与第一邮件服务器连接。并且,发送端还可以包括数据库服务器,数据库服务器主要用于大容量的存储数据,比如存储用户邮件信息的邮件列表。客户端包括第二邮件服务器和若干用户终端。用户终端通过第二邮件服务器来收发邮件。
[0004] 基于上述的系统原理结构,现有的实现统计邮件中超链接URL点击率的方法为:
[0005] 首先:操作者通过手工的方式在营销邮件的源代码中添加入trace函数。通常,操作者会预先通过一web终端连接至第一邮件服务器,在该第一邮件服务器上创建一邮件营销任务,并生成营销任务邮件的模板,其模板通常为html源代码,随后操作者查看其html源代码,用肉眼找出超链接元素。如:
[0006]
中文站[0007] 操作者再通过手工输入方式修改href的值,比如,将其修改为:
中文站[0008] 通常情况下,每一邮件中超链接的URL地址会有多个,因此上述用手工方式在邮件的源代码中添加入trace函数的次数会有多次,对于操作者而言,尤其在邮件中超链接的URL地址很多个的情况下,既要找到邮件模板源代码中所有的超链接,又要保证每一个超链接的href值修改是正确的,是具有相当难度的。
[0009] 然后,第一邮件服务器在该邮件模板任务设定的发送时间点开始向预先保存的邮件列表中的每一邮件地址发送邮件。
[0010] 随后,第二邮件服务器接收至其邮件。
[0011] 随后,用户终端通过访问第二邮件服务器来读出邮件,若邮件中的某一URL被用户点击,则trace函数就被激活,返回用户信息(如memberId)及被点击的URL地址等,发送端对该URL地址的点击计数器进行加1处理。
[0012] 最后,发送端查看本端的各个URL地址点击计数器,获知该邮件中各个URL地址点击次数。当邮件模板源代码中的某一超链接的href值未被修改或修改出现错误时,则该超链接的URL地址的点击次数就不能被统计。
[0013] 也就是说,操作者通过手工的方式在营销邮件的源代码中添加入trace函数,由于手工输入的不可靠,因此写错代码或某一超链接的href值未被修改之事常有发生,从而导致后续不能正常得到需要监控的URL地址点击数。并且,为了尽量防止出错,操作者通常需要多次审核,效率非常低,而且也不能保证添加入的trace函数万无一失。
发明内容
[0014] 本发明的目的在于提供一种实现统计邮件中超链接URL点击率的系统及方法,以解决现有的手工输入时写错代码或某一超链接的href值未被修改之事常有发生,从而导致后续不能正常得到需要监控的URL地址点击数的技术问题。
[0015] 为了达到上述目的,本发明提供了一种实现统计邮件中超链接URL点击率的系统,包括发送端和至少一客户端,其中发送端包括第一邮件服务器,所述客户端包括第二邮件服务器和用户终端,所述第一邮件服务器进一步包括邮件模板处理单元、发邮件处理单元和反馈响应单元,其中:
[0016] 邮件模板处理单元包括:
[0017] 解析器:解析出邮件模板源代码中的所有超链接元素;
[0018] 宏引用加入子单元:对所有超链接元素中的href值进行修改,加入预先设定的宏引用;
[0019] 发邮件处理单元包括:
[0020] 邮件发送队列子单元:在所述加入宏引用的邮件模板源代码中加入预先定义的宏,每发送一邮件时,将所述邮件模板源代码提交至邮件内容生成子单元,当接收到邮件内容生成子单元返回的邮件内容后进行发送;
[0021] 邮件内容生成子单元:通过所述预先定义的宏来替换邮件模板中的宏引用,生成邮件内容;
[0022] 反馈响应单元包括计数子单元:当接收到从客户端返回的包括URL地址在内的反馈信息后,对应的URL地址点击计数器进行加1处理。
[0023] 发送端还包括web终端和数据库,其中,web终端包括邮件模板请求单元和保存单元,
[0024] 所述邮件模板请求单元,用于将邮件模板源代码发送至第一邮件服务器,请求进行在邮件模板源代码中加入宏引用的处理;
[0025] 保存单元:用于将已加入宏引用的邮件模板源代码保存到数据库上。
[0026] 所述数据库进一步包括:
[0027] 邮件模板信息存储单元:用于存储包括邮件模板源代码在内的邮件模板信息;
[0028] 邮件列表信息存储单元:用于存储所述邮件需要发送的所有用户的邮件地址及每一用户对应的用户标识信息。
[0029] 数据库为单独设定的服务器,或者是配属在第一邮件服务器上,所述web终端通过内部网连接至第一邮件服务器或直接连接至第一邮件服务器上。
[0030] 反馈响应单元还包括判断子单元:当从客户端返回的反馈信息中还包括用户标识时,对URL地址点击计数器进行加1计数前,先预先判断该用户标识的该URL地址是否已进行过加1计数处理,若否,才对所述URL地址点击计数器进行加1处理。
[0031] 所述解析器采用java软件自带的html解析器,邮件内容生成子单元采用java开源软件velocity模板引擎。
[0032] 一种实现统计邮件中超链接URL点击率的方法,包括:
[0033] (1)第一邮件服务器解析出邮件模板源代码中的所有超链接元素,并对所有超链接元素中的href值上加入预先设定的宏引用;
[0034] (2)在所述邮件模板源代码中加入预先定义的宏;
[0035] (3)每发送一邮件时,通过所述预先定义的宏来替换邮件模板源代码中的宏引用,生成邮件内容后进行发送;
[0036] (4)当邮件中的URL被用户点击时,返回包括URL地址在内的反馈信息;
[0037] (5)第一邮件服务器对对应的URL地址点击计数器进行加1处理。
[0038] 步骤(3)还包括:所述邮件内容的宏中还包括用户标识,所述用户标识为需要发送的邮件地址或是与需要发送的邮件地址建立对应关系的标识信息;
[0039] 步骤(4)和步骤(5)之间还包括:判断从客户端返回的反馈信息中包含的用户标识的该URL地址是否已进行过加1计数处理,若否,才进行步骤(5)。
[0040] 步骤(1)和步骤(2)之间还包括:第一邮件服务器在所述邮件模板源代码中加入预先定义的宏后,将处理结果返回至web终端;Web终端请求第一邮件服务器保存所述邮件模板源代码;第一邮件服务器将所述邮件模板源代码保存至数据库中。
[0041] 步骤(3)进一步为:第一邮件服务器的邮件发送队列子单元将加入预先定义的宏和包含用户标识的参数发送至第一邮件服务器的velocity模板引擎;velocity模板引擎通过所述预先定义的宏来替换邮件模板源代码中的宏引用,并将包含用户标识的参数替换宏中的变量,生成邮件内容。
[0042] 一种实现统计邮件中超链接URL点击率的系统,包括发送端和至少一客户端,其中发送端包括web终端、第一邮件服务器和数据库,所述客户端包括第二邮件服务器和用户终端,所述第一邮件服务器进一步包括邮件模板处理单元、发邮件处理单元和反馈响应单元,其中:
[0043] 邮件模板处理单元包括:
[0044] 解析器:解析出由web终端发送的邮件模板源代码中的所有超链接元素;
[0045] 宏引用加入子单元:对所有超链接元素中的href值进行修改,加入预先设定的宏引用;
[0046] 交互子单元:用于建立与web终端和数据库的交互,包括当接收到web终端的保存请求后,将加入所述宏引用的邮件模板源代码保存到数据库上;
[0047] 发邮件处理单元包括:
[0048] 邮件发送队列子单元:在所述加入宏引用的邮件模板源代码中加入预先定义的宏,每发送一邮件时,将所述邮件模板源代码和包括用户标识在内的参数提交至邮件内容生成子单元,当接收到邮件内容生成子单元返回的邮件内容后进行发送;
[0049] 邮件内容生成子单元:通过所述预先定义的宏来替换邮件模板中的宏引用,并用所述参数替换宏中的变量,生成邮件内容;
[0050] 反馈响应单元:当接收到从客户端返回的包括URL地址和用户标识在内的反馈信息后,该用户标识的该URL地址点击计数器进行加1处理,或者若该用户标识相应的所述URL地址没有进行计数处理时,所述URL地址点击计数器进行加1处理。
[0051] 一种实现统计邮件中超链接URL点击率的方法,包括:
[0052] (1)第一邮件服务器解析出邮件模板源代码中的所有超链接元素,并对所有超链接元素中的href值上加入预先设定的宏引用后进行保存;
[0053] (2)当该邮件模板需要发送时,在所述邮件模板源代码中加入预先定义的宏;
[0054] (3)每发送一邮件时,通过所述预先定义的宏来替换邮件模板源代码中的宏引用,并用包括用户标识在内的参数替换宏中的变量,生成邮件内容后进行发送;
[0055] (4)当邮件中的URL被用户点击时,返回包括URL地址和用户标识在内的反馈信息;
[0056] (5)该用户标识的该URL地址点击计数器进行加1处理。
[0057] 与现有技术相比,本发明利用现有的html解析器和velocity技术,在第一邮件服务器上新设置了邮件模板处理软件、发邮件处理软件等,实现了统计邮件中超链接URL点击率的目的,避免出现写错代码或某一超链接的href值未被修改之事,提高了统计的准确性和减少手工添加的遗漏。同时,也节省操作者的工作时间,大大提高了工作效率。
附图说明
[0058] 图1为本发明实现统计邮件中超链接URL点击率的系统的一实例原理图;
[0059] 图2为本发明实现统计邮件中超链接URL点击率的一种实现流程图;
[0060] 图3为第一邮件服务器处理追踪所有超链接请求处理子过程的具体流程图;
[0061] 图4为邮件模板发送子过程的具体流程图;
[0062] 图5为本发明的实现统计邮件中超链接URL点击率的系统的另一实例原理图;
[0063] 图6为本发明实现统计邮件中超链接URL点击率的另一种实现流程图。
具体实施方式
[0064] 以下结合附图,具体说明本发明。
[0065] 请参阅图1,其为本发明实现统计邮件中超链接URL点击率的系统的一实例原理图。它包括发送端和至少一客户端,其中发送端包括web终端11、第一邮件服务器12和数据库13。Web终端11、第一邮件服务器12通过内部网连接至第一邮件服务器12。客户端包括第二邮件服务器14和若干用户终端15。用户终端15通过第二邮件服务器14进行邮件收发等操作。
[0066] web终端11至少包括邮件模板请求单元111和保存单元112。操作者通过Web终端11在第一邮件服务器12上创建一个邮件营销任务,即填入邮件模板内容。通过邮件模板请求单元111将邮件模板源代码发送至第一邮件服务器12,请求进行在邮件模板源代码中加入宏引用的处理。保存单元112是用于当第一邮件服务器12返回加入宏引用成功后,向第一邮件服务器12发出保存所述邮件模板源代码等邮件模板信息至数据库13上。邮件模板信息还可以包括操作者设定的该邮件任务发送时间。通常情况下,保存单元112和邮件模板请求单元111是由软件来实现的。
[0067] 所述数据库13主要用于保存数据。它进一步包括:
[0068] 邮件模板信息存储单元131:用于存储包括邮件模板源代码在内的邮件模板信息。邮件模板信息还包括该邮件任务发送的时间,发送的方式等。
[0069] 邮件列表信息存储单元132:用于存储所述邮件需要发送的所有用户的邮件地址及包括用户标识的用户信息。用户标识可以直接是用户的邮件地址,也可以是与用户的邮件地址一一对应的标识。当用户的邮件地址是多个时,用户标识可以只有一个。
[0070] 所述第一邮件服务器12进一步包括邮件模板处理单元121、发邮件处理单元122和反馈响应单元123,其中:
[0071] 邮件模板处理单元121包括:
[0072] 解析器21:解析出由web终端11发送的邮件模板源代码中的所有超链接元素。解析器21可以采用java自带的html解析器,即采用java自带的 ml软
件包中的HTMLEditorKit和HTMLDocument,HTML,SimpleAttributeSet及其相关类做处理来完成解析html功能。
[0073] 所述超级连接是指用文字、图片、动画等做为载体将其它网页的URL超链接于当前网页中。当"超链接"被点击后,就可以跳转至指定的网页。它是HTML语言的一种语法,其属性一般包括herf,target,text三个,如
[0074]
中文站[0075] href和target的值显而易见,而text的值就是”中文战”。
是超链接的标签。
[0076] 该解析器21根据HTML语言规范标签,分解html邮件模板,即分解html源代码,得到整个邮件模板的html结构树,然后根据超链接的标签A得到所有超链接元素。
[0077] 解析器21也可以是自编设的解析器,即查找所述html邮件模板找到超链接的标签A即得到所有超链接元素。
[0078] 宏引用加入子单元22:用于遍历所有超链接元素,将所有超链接元素中的href值进行修改:加入预先设定的宏引用。宏是指自动执行某种操作的命令统称为宏。加入宏引用在本实例中是加入trace函数。比如,
[0079]
[0080] 加入宏引用后为:
[0081]
[0082] 即将href中的URL地址上加入trace函数。宏引用加入子单元可以预先通过编程的方式来设定。
[0083] 交互子单元23:用于建立与web终端11和数据库13的交互,包括当接收到web终端的保存请求后,将加入所述宏引用的邮件模板源代码保存到数据库上。
[0084] 发邮件处理单元122包括:
[0085] 邮件发送队列子单元31:在所述加入宏引用的邮件模板源代码中加入预先定义的宏,每发送一邮件时,将所述邮件模板源代码和包括用户标识在内的参数提交至邮件内容生成子单元32,当接收到邮件内容生成子单元32返回的邮件内容后进行发送。
[0086] 第一邮件服务器12通常会定周期扫描营销邮件任务,当某一邮件任务达到设定的发送时间后。邮件发送队列子单元31从数据库13中取出邮件模板源程序,并加上预先定义的宏。即加上trace函数。比如,
[0087]
[0088] 当宏定义中包含变量时,如memberID。每给用户发送一邮件时,邮件发送队列子单元31还需将变量对应的参数传送至邮件内容生成子单元32。即,该邮件发送的邮件地址对应的用户标识传送至邮件内容生成子单元。
[0089] 邮件内容生成子单元32:通过所述预先定义的宏来替换邮件模板中的宏引用,并用所述参数替换宏中的变量,生成邮件内容。邮件内容生成子单元32通常采用velocity模板引擎。每给一用户发送一邮件时,就将该用户标识传送至velocity模板引擎,并调用一次velocity模板引擎,以生成发送给该用户的邮件内容。
[0090] 反馈响应单元123:当接收到从客户端返回的包括URL地址和用户标识在内的反馈信息后,若该用户标识的该URL地址没有进行计数处理时,所述URL地址点击计数器41进行加1处理。或者,反馈响应单元123对该用户标识的该URL地址点击计数器41进行加
1处理。所有URL地址点击计数器41可以设置在数据库上。
[0091] 反馈响应单元123还包括判断子单元42:当从客户端返回的反馈信息中还包括用户标识时,对URL地址点击计数器进行加1计数前,先预先判断该用户标识的该URL地址是否已进行过加1计数处理,若否,才对所述URL地址点击计数器进行加1处理。
[0092] 上述的单元通常是通过软件编程来实现的。
[0093] 基于上述公开的系统,本发明还提供了一种实现统计邮件中超链接URL点击率的方法。请参阅图2,其为本发明实现统计邮件中超链接URL点击率的一种实现流程图。它包括:
[0094] S110:第一邮件服务器解析出邮件模板源代码中的所有超链接元素,并对所有超链接元素中的href值上加入预先设定的宏引用后进行保存。
[0095] 步骤S110的具体实现可以是如图3所示,包括:
[0096] S11:web终端向第一邮件服务器发出追踪所有超链接的请求;
[0097] S12:第一邮件服务器得到邮件模板html源代码后,用解析器得到所有的超链接,并且遍历所有超链接,修改其herf值:在其上加上宏引用;
[0098] S13:第一邮件服务器追踪所有超链接的请求的响应结果返回至web终端;
[0099] S14:web终端向第一邮件服务器提出保存所述邮件模板源代码的保存请求;
[0100] S15:第一邮件服务器向数据库发出保存请求;
[0101] S16:数据库保存所述邮件模板源代码,并将保存请求的响应返回至第一邮件服务器;
[0102] S17:第一邮件服务器将响应返回至web终端。
[0103] S120:当该邮件模板需要发送时,在所述邮件模板源代码中加入预先定义的宏。
[0104] S130:每发送一邮件时,通过所述预先定义的宏来替换邮件模板源代码中的宏引用,并用包括用户标识在内的参数替换宏中变量,生成邮件内容后进行发送。
[0105] 步骤S120和步骤S130可以通过以下的具体流程来实现,请参照图4,其为步骤S120和步骤S130的一种实现方式。
[0106] S21:第一邮件服务器的邮件发送队列子单元向数据库发出读取邮件模板源代码的请求;
[0107] S22:数据库返回对读取邮件模板源代码请求的响应,所述响应中包含所述邮件模板源代码;
[0108] S23:邮件发送队列子单元在邮件模板源代码中加入预先定义的宏;
[0109] S24:邮件发送队列子单元将加入宏定义的邮件模板源代码和用户标识参数发送至velocity模板引擎;
[0110] S25:velocity模板引擎生成真正的邮件内容,返回;
[0111] S26:邮件发送队列子单元将邮件发送至客户。
[0112] 步骤S24至步骤S25是每发送一邮件,都需要重复进行的。
[0113] S140:当邮件中的URL被用户点击时,返回包括URL地址和用户标识在内的反馈信息;
[0114] S150:当该用户标识的该URL地址未被计数时,第一邮件服务器对对应的URL地址点击计数器进行加1处理。或者,第一邮件服务器对该用户标识的该URL地址点击计数器进行加1处理。
[0115] 如操作者得到的邮件模板的html源代码为:
[0116]
[0117]
[0118] 操作者点击跟踪所有url,web终端将这些html源代码发送给第一邮件服务器处理。第一邮件服务器调用html解析器处理,并修改超链接的属性herf的值,返回web终端,代码如下:
[0119]
[0120] 然后操作者保存模板内容,保存营销邮件任务至数据库服务器,当第一邮件服务器检测到此营销任务,并且时间到的情况下会开通此次任务的发送工作。首先取出模板内容(即关联此任务的邮件模板的html源代码),并且加上宏定义,如下:
[0121]
[0122] 这样就得到了含有宏定义及宏引用并且有parameter的符合velocity规范的模板。调用velocity模板引擎,velocity模板引擎结合patameter的值(调用时同时注入其对应的参数值)渲染出邮件的真正内容.如下:
[0123]
[0124]
[0125] 然后发送给用户;最后,当邮件中的URL被用户点击时,返回包括URL地址和用户标识在内的反馈信息;当该用户标识的该URL地址未被计数时,第一邮件服务器对对应的URL地址点击计数器进行加1处理。
[0126] 通过上述的过程可知,本发明解决了html类型的邮件页面中手工添加trac的繁琐性,最重要的是,有效地防止了出错的发生。
[0127] 上述统计URL时相同用户的同一URL不重复计数,也就是说,当某一用户点击了多次超链接的URL时,只对其进行一次计数,这种方式能够在一定程度上避免了点击欺诈情况的发生。另外,若第一邮件服务器对每一用户标识的该URL地址点击计数器进行加1处理,这样就能统计出每一个用户的每个URL地址的点击情况,不仅能在一定程度上避免点击欺诈,而且也能够获得更准确目标用户信息。
[0128] 另外,本发明中web终端完成的功能可以集成到第一邮件服务器上,并且,数据库也可以是配属到第一邮件服务器上,也就是说,在本发明中web终端和数据库都是可以省略的。而且,本发明也可以对一个用户的多次超链接的URL进行重复计数。
[0129] 请参阅图5,其为本发明一种实现统计邮件中超链接URL点击率的系统的原理结构示意图。包括发送端和至少一客户端,其中发送端包括第一邮件服务器61,所述客户端包括第二邮件服务器14和用户终端15,所述第一邮件服务器61进一步包括邮件模板处理单元121、发邮件处理单元122和反馈响应单元123,其中:
[0130] 邮件模板处理单元121包括:
[0131] 解析器21:解析出邮件模板源代码中的所有超链接元素;
[0132] 宏引用加入子单元22:对所有超链接元素中的href值进行修改,加入预先设定的宏引用;
[0133] 发邮件处理单元122包括:
[0134] 邮件发送队列子单元31:在所述加入宏引用的邮件模板源代码中加入预先定义的宏,每发送一邮件时,将所述邮件模板源代码提交至邮件内容生成子单元,当接收到邮件内容生成子单元返回的邮件内容后进行发送;
[0135] 邮件内容生成子单元32:通过所述预先定义的宏来替换邮件模板中的宏引用,生成邮件内容;
[0136] 反馈响应单元123包括计数子单元41:当接收到从客户端返回的包括URL地址在内的反馈信息后,对应的URL地址点击计数器进行加1处理。
[0137] 反馈响应单元123还包括判断子单元42:当从客户端返回的反馈信息中还包括用户标识时,对URL地址点击计数器进行加1计数前,先预先判断该用户标识对应的所述URL地址是否已进行过加1计数处理,若否,才对所述URL地址点击计数器进行加1处理。
[0138] 所述解析器21采用java软件自带的html解析器,邮件内容生成子单元22采用java开源软件velocity模板引擎。
[0139] 请参阅图6,一种实现统计邮件中超链接URL点击率的方法的流程图,它包括:
[0140] S210:第一邮件服务器解析出邮件模板源代码中的所有超链接元素,并对所有超链接元素中的href值上加入预先设定的宏引用;
[0141] S220:在所述邮件模板源代码中加入预先定义的宏;
[0142] S230:每发送一邮件时,通过所述预先定义的宏来替换邮件模板源代码中的宏引用,生成邮件内容后进行发送;
[0143] S240:当邮件中的URL被用户点击时,返回包括URL地址在内的反馈信息;
[0144] S250:第一邮件服务器对对应的URL地址点击计数器进行加1处理。
[0145] 上述的URL地址统计时,不管是否是相同用户进行点击,URL地址计数器还进行计数处理。
[0146] 步骤S230还包括:所述邮件内容的宏中还包括用户标识,所述用户标识为需要发送的邮件地址或是与需要发送的邮件地址建立对应关系的标识信息;步骤S240和步骤S250之间还包括:判断从客户端返回的反馈信息中包含的用户标识对应的该URL地址是否已进行过加1计数处理,若否,才进行步骤S250。通过上述的步骤,可以实现相同用户相同URL地址仅计数一次的目的,由此降低点击欺诈的情况发生。
[0147] 以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明的保护范围内。