具体实施方式
本发明揭露了一种实现收视率的实时统计的方法,具体实现方法如下:在广播下发的传输流(Transport Stream,TS)的网络信息表(Network Information Table,NIT)的第一层循环中添加一个私有描述符(或称为收视率统计描述符(audience_rating_statistic_descriptor))。该私有描述符给出了收视率统计所需的相关参数信息,包括:立即回传或延迟回传用户和节目相关信息的控制字段、探测节目信息的时间间隔、有效播放的时间间隔、超时时间、统计类型、收视率统计服务器的IP地址、参与收视率统计的机顶盒的序列号范围、各种统计类型下的节目和用户信息具体的数据结构。机顶盒接收到该私有描述符之后,在后台触发收视信息收集过程,该过程不会影响客户的使用,也就是说,在不用客户直接参与的情况下就可以准确及时地完成收视信息的统计。机顶盒根据收视率统计描述符各个字段的要求,收集用户和节目的相关信息,在指定的时间封装成固定的格式回传到前端的收视率统计服务器(rating_server)。收视率统计服务器根据机顶盒回传的信息以及从用户管理系统和节目信息系统获取的信息作统计分析,该统计分析可以基于不同的类型,可以是基于业务群(bouquent)的统计、基于业务(service)的统计、基于事件(event)的统计、基于用户群(user_group)的统计。
其中,收视率统计描述符的语法结构如下:
audience_rating_statistic_descriptor( )
{
descriptor_tag //8bit,描述符标签
descriptor_length //8bit,描述符长度
reserved //7bit,保留
immediate_or_delay //1bit,立即或延迟
detect_temporal_interval //8bit,探测时间间隔
valid_temporal_interval //24bit,有效时间间隔
time_out //24bit,超时时间
rating_server_IP_address //32bit,收视率服务器IP地址
statistic_type //3bit,统计类型
reserved //5bit,保留
start_stb_id //32bit,机顶盒起始序列号
end_stb_id //32bit,机顶盒结束序列号
if(statistic_type=’001’) //基于bouquent的统计
{
bouquent_id //16bit,业务群标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
if(statistic_type=’010’) //基于service的统计
{
transport_stream_id //16bit,传输流标识符
original_network_id //16bit,原始网络标识符
service_id //16bit,业务标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
if(statistic_type=’011’) //基于event的统计
{
transport_stream_id //16bit,传输流标识符
original_network_id //16bit,原始网络标识符
service_id //16bit,业务标识符
event_id //16bit,事件标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
if(statistic_type=’100’) //基于all_information的统计
{
bouquent_id //16bit,业务群标识符
transport_stream_id //16bit,传输流标识符
original_network_id //16bit,原始网络标识符
service_id //16bit,业务标识符
event_id //16bit,事件标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
}
就收视率统计描述符的语法结构中的各个字段作出说明:
descriptor_tag:描述符标签,8bit字段,用于标识不同的描述符。在此定义为0xF0(在SI规范里面,给出0x80-0xFE为用户自行定义的私有描述符标签),表示该描述符为收视率统计描述符,是收视率统计描述符的唯一标识。
descriptor_length:描述符长度,8bit字段,给出描述符的总长度。表示描述符中,从该字段后开始的数据部分的字节数。
immediate_or_delay:立即或延迟,1bit标志位,该标志位为‘1’或‘0’。当该标志位为‘1’时,参与收视率统计的机顶盒在接收到该描述符(收视率统计描述符)之后立即返回正在收看的节目的相关信息;当该标志位为‘0’时,参与收视率统计的机顶盒在接收到该描述符(收视率统计描述符)之后需要延迟一指定的时间再回传用户正在收看的节目的相关信息。延迟的时间也在收视率统计描述符中标明,具体参见valid_temporal_interval字段。
detect_temporal_interval:探测时间间隔,8bit字段,按4位BCD编码,表示2个数字,单位是“秒”。例如:“25秒”,被编码为“0x25”。用于指明机顶盒探测当前正在播放节目的相关信息的时间间隔。注意,该字段的编码值应不能大于valid_temporal_interval字段的编码值。
valid_temporal_interval:有效时间间隔,24bit字段,按4位BCD编码,表示6个数字,用来表示小时、分钟、秒。例如:12:45:37被编码为“0x124537”。当immediate_or_delay字段为‘0’时,该字段有效,用于表示用户收看某一个节目被纳入收视率统计的最短有效时间。当immediate_or_delay字段为‘1’时,该字段的编码值无效,并且被接收机所忽略,一般编码为“0xFFFFFF”。
time_out:超时时间,24bit字段,按4位BCD编码,表示6个数字,用来表示小时、分钟、秒。例如:12:45:37被编码为“0x124537”。用来表示机顶盒从接收到收视率统计描述符到回传节目和用户的相关信息等待的最大时间间隔,如果超过了该时间,则放弃回传。当immediate_or_delay字段为‘0’时,该字段的编码值应不小于valid_temporal_interval字段的编码值。
rating_server_IP_address:收视率服务器IP地址,32bit字段,用于描述收视率统计服务器的IP地址内容。例如:收视率统计服务器IP地址为192.168.16.100,则在该描述符中编码为“0xC0A81064”。
statistic_type:统计类型,3bit字段,用于指明收视率统计的类型。本描述符提供的收视率统计类型可以是基于业务群、基于业务、基于事件、基于全部信息(包括业务群、业务、事件)。statistic_type字段的值和统计类型的对应关系如表一所示:
statistic_type |
统计类型 |
000 |
保留 |
001 |
bouquent |
010 |
service |
011 |
event |
100 |
all_information |
101-111 |
保留扩展用 |
表一 statistic_type值与统计类型
reserved:预留,用于将来扩展功能使用。一般编码为‘1’。
start_stb_id:机顶盒起始序列号,32bit字段,用于标识按序列号范围统计收视率时的起始序列号,当其等于0x0时,表示对所有序列号的机顶盒进行收视率统计,忽略end_stb_id。
end_stb_id:机顶盒结束序列号,32bit字段,用于标识按序列号范围统计收视率时的结束序列号。
bouquent_id:业务群标识符,16bit字段,用于标识业务群。在TS流中传送时,编码为“0xFFFF”,回传时被节目的实际信息所取代。
transport_stream_id:传输流标识符,16bit字段,在一个传输系统中,用于标识唯一的一个传输流。在TS流中传送时,编码为“0xFFFF”,回传时被节目的实际信息所取代。
original_network_id:原始网络标识符,16bit字段,用于给出原始传输系统的网络标识符。在TS流中传送时,编码为“0xFFFF”,回传时被节目的实际信息所取代。
service_id:业务标识符,16bit字段,用于在传输流中标识不同的业务。service_id与program_map_section中的program_number相对应。在TS流中传送时,编码为“0xFFFF”,回传时被节目的实际信息所取代。
event_id:事件标识符,16bit字段,在一个业务定义内唯一分配,用于指示所描述事件的标识号。在TS流中传送时,编码为“0xFFFF”,回传时被节目的实际信息所取代。
stb_id:机顶盒序列号,32bit字段,用于标识机顶盒的序列号。在TS流中传送时,编码为“0xFFFFFFFF”,回传时被机顶盒的序列号所取代。
smartcard_id:智能卡号,40bit字段,用于标识智能卡号。在TS流中传送时,编码为“0xFFFFFFFFFF”,回传时被实际的智能卡号所取代。
基于上述收视率统计描述符提供的参数,可以进行以下任意类型的统计:立即回传基于业务群的统计、立即回传基于业务的统计、立即回传基于事件的统计、立即回传基于所有信息的统计、延迟回传基于业务群的统计、延迟回传基于业务的统计、延迟回传基于事件的统计、延迟回传基于所有信息的统计。
前端系统在传输流(TS)的网络信息表(NIT)的第一层循环中添加收视率统计描述符,机顶盒接收到该描述符后,解析该描述符中包含的各个字段,并且触发收视信息的统计收集,机顶盒解析收视率统计描述符各个字段的流程具体如图1所示:
步骤S11:解析收视率统计描述符。机顶盒接收到描述符标签为0xF0的描述符后,判定该描述符为收视率统计描述符,并且根据该描述符的语法结构解析该描述符的各个字段,为收视信息的统计收集提供相应的参数。
步骤S12:立即或延迟字段,机顶盒接收到收视率统计描述符之后,获取该描述符长度字段之后的第1个字节的最后1bit,该字段即为立即或延迟字段。当该字段为“1”时,机顶盒立即将用户和节目信息封装成IP数据帧通过网络回传到收视率统计服务器。当该字段为“0”时,机顶盒需要等待用户收看某一个节目的时间达到有效时间间隔之后,将用户和节目信息封装成IP数据帧通过网络回传到收视率统计服务器。进行收视信息回传的机顶盒的序列号需要在参与收视率统计的机顶盒序列号范围内,该范围由步骤S18获取;收视率统计服务器的IP地址由步骤S16获取;有效时间间隔由步骤S14获取;用户和节目信息的数据结构由步骤S17获取的统计类型决定。
步骤S13:探测时间间隔字段,机顶盒解析立即或延迟字段之后的1个字节即为探测时间间隔字段,该字段是按4位BCD编码的,具体参见收视率统计描述符关于detect_temporal_interval字段的语义说明。该字段用于指明机顶盒探测节目信息的时间间隔,单位为秒。
步骤S14:有效时间间隔字段,机顶盒解析探测时间间隔之后的3个字节即为有效时间间隔字段,该字段按4位BCD编码,具体参见收视率统计描述符关于valid_temporal_interval字段的语义说明。该字段用于指明用户收看某个节目被纳入收视统计的最短有效时间。
步骤S15:超时时间字段,机顶盒解析有效时间间隔之后的3个字节即为超时时间字段,该字段按4位BCD编码,具体参见收视率统计描述符关于time_out字段的语义说明。该字段用于指明机顶盒从接收到收视率统计描述符到回传用户和节目的相关信息所等待的最大时间间隔,如果超过了该时间,机顶盒将放弃回传。
步骤S16:收视率统计服务器IP地址字段,机顶盒解析超时时间字段之后的4个字节即为收视率统计服务器的IP地址。该字段的编码方法具体参见收视率统计描述符关于rating_server_IP_address字段的语义说明。
步骤S17:统计类型字段,机顶盒解析收视率统计服务器IP地址字段之后的1个字节,取该字节的最高3bit即为统计类型字段。该字段给出统计类型,统计类型可以是基于业务群的统计、基于业务的统计、基于事件的统计、基于全部信息(包括业务群、业务、事件)的统计。不同的统计类型对应着不同的数据结构,具体参见收视率统计描述符的语法结构。对于步骤S12中所述封装进IP数据帧的数据具有特定的结构,具体由响应数据(response_data)的语法结构给定:
response_data( )
{
statistic_type //3bit,统计类型
reserved //5bit,保留
if(statistic_type=’001’) //基于bouquent的统计
{
bouquent_id //16bit,业务群标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
if(statistic_type=’010’) //基于service的统计
{
transport_stream_id //16bit,传输流标识符
original_network_id //16bit,原始网络标识符
service_id //16bit,业务标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
if(statistic_type=’011’) //基于event的统计
{
transport_stream_id //16bit,传输流标识符
original_network_id //16bit,原始网络标识符
service_id //16bit,业务标识符
event_id //16bit,事件标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
if(statistic_type=’100’) //基于all_information的统计
{
bouquent_id //16bit,业务群标识符
transport_stream_id //16bit,传输流标识符
original_network_id //16bit,原始网络标识符
service_id //16bit,业务标识符
event_id //16bit,事件标识符
stb_id //32bit,机顶盒序列号
smartcard_id //40bit,智能卡号
}
}
以上数据结构各字段的语义参见收视率统计描述符相应字段的语义说明。只是封装进IP数据帧中的数据为用户和节目的实际数据,而不是为下发时“0xFF”。也就是说,回传时以下数据都为用户和节目的实际数据:业务群标识符(bouquent_id)、传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)、业务标识符(service_id)、事件标识符(event_id)、机顶盒序列号(stb_id)、智能卡号(smartcard_id)。
步骤S18:序列号范围字段。机顶盒解析统计类型字段所在的那个字节之后的8个字节即为机顶盒序列号范围字段,用于给出参与收视率统计的机顶盒的序列号范围。其中,前4个字节给出机顶盒起始序列号(start_stb_id),后4个字节给出机顶盒结束序列号(end_stb_id),具体语义参见收视率统计描述符关于这两个字段的说明。
根据收视率统计描述符中各字段取值的不同,机顶盒相应的会有不同的处理流程。在此,给出两个典型的具体实施例。一个是立即或延迟字段(immediate_or_delay)编码值为‘0’的情况,另一个是该字段编码值为‘1’的情况。
具体实施例一和实施例二给出了机顶盒的序列号在参与收视率统计的机顶盒序列号范围内或收视率统计是基于所有序列号的情况。对于机顶盒序列号不在参与收视率统计的机顶盒序列号范围内的情况,机顶盒不会进行收集收视信息的过程。
实施例一:
收视率统计描述符中立即或延迟字段(immediate_or_delay)编码值为‘0’,收视率统计类型为基于全部信息(all_information,包括业务群、业务、事件)的统计。在以上条件下,机顶盒收集收视信息的具体实施例。
针对实施例一,典型地,添加在网络信息表(NIT)第一层循环中的收视率统计描述符的实际数据如下:
“0xF0 28 FE 15 00 15 00 01 00 00 C0 A8 10 64 9F 00 00 00 00 FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF”
如图2所示,该实施例具体包括如下步骤:
步骤S21:收到收视率统计描述符并解析。机顶盒接收到来自传输流(TS)的网络信息表(NIT)的第一层循环中描述符标签为0xF0的描述符,可以判定该描述符为收视率统计描述符。机顶盒接收到以上收视率统计描述符之后,解析各个字段,并且根据各个字段提供的参数信息触发收集收视信息。利用上述解析收视率统计描述符各个字段的方法可以得到相关参数信息。具体如下:
立即或延迟(immediate_or_delay):‘0’,表示延迟回传用户和节目信息。
探测时间间隔(detect_temporal_interval):0x15,表示探测节目信息的时间间隔为15秒。
有效时间间隔(valid_temporal_interval):0x001500,表示用户收看节目的最短有效时间是15分钟。当用户收看某一个节目达到15分钟,该节目的相关信息将被纳入收视率统计。
超时时间(time_out):0x010000,表示超时时间为1小时。
收视率统计服务器IP地址(rating_server_IP_address):0xC0A81064,表示收视率统计服务器的IP地址为192.168.16.100。
统计类型(statistic_type):‘100’,表示统计类型是基于全部信息(all_information,包括业务群、业务、事件)的统计。该统计类型决定了收集的节目信息的结构,具体参见收视率统计描述符“基于all_information的统计”部分的语法结构或响应数据(response_data)“基于all_information的统计”部分的语法结构。
序列号范围:机顶盒起始序列号(start_stb_id)字段为0x00000000,表示对所有序列号的机顶盒进行统计,忽略机顶盒结束序列号(end_stb_id)字段。
机顶盒需要有两个时间变量time_out_info和valid_temporal_info,用于记录时间信息,time_out_info用于记录超时时间,valid_temporal_info用于记录用户有效收看时间。机顶盒接收到收视率统计描述符之后,time_out_info就从0开始计时。valid_temporal_info的计时相关信息参见后续步骤说明。
步骤S22:存储当前收看节目信息并启动计时器开始计时。在步骤S21中已经解析了各个字段,获取了统计类型的信息,统计类型为基于全部信息(all_information)的统计,这决定了存储节目信息的数据结构。机顶盒在Flash存储器中开辟一固定内存,专门用于存储收视率统计节目相关的信息。在此,需要在该固定内存中存储当前收看节目的如下信息:业务群标识符(bouquent_id)、传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)、业务标识符(service_id)、事件标识符(event_id)。存储当前收看节目信息的同时,记录用户有效收看时间的变量valid_temporal_info从0开始计时,用于标识用户的有效收看时间。
步骤S23:探测当前节目信息。根据步骤S21中获取的探测时间间隔(detect_temporal_interval)字段,每隔一固定时间探测一次当前节目信息。探测的时间间隔由探测时间间隔字段给定,在本实施例中该时间间隔为15秒。探测的节目信息的数据结构由统计类型字段指明,在此,为基于全部信息(all_information)的统计,也就是说探测的节目信息包括如下内容:业务群标识符(bouquent_id)、传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)、业务标识符(service_id)、事件标识符(event_id)。
步骤S24:节目信息比对。将步骤S22存储的节目相关信息和步骤S23探测到的当前节目的相关信息做比对,比对具体内容如下:业务群标识符(bouquent_id)、传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)、业务标识符(service_id)、事件标识符(event_id)。比对的结果有两种,一种是相等,一种是不等。在节目信息比对的同时还需要探测两个时间,一个是用户收看当前节目的有效时间,一个是超时时间计时。用户收看当前节目的有效时间由valid_temporal_info的计时信息得到,超时时间计时由time_out_info的计时信息得到。探测到以上两个时间之后,将它们与有效时间间隔(valid_temporal_interval,在此为15分钟)和超时时间(time_out,在此为1小时)做比较。
针对以上几种情况,就会有几种不同的结果,机顶盒的处理流程和步骤也就不同。具体分为以下几种情况:(1)当节目信息比对结果相等,时间未超时(time_out_info<time_out),并且在该节目上的播放时间小于有效时间间隔(valid_temporal_info<valid_temporal_interval),那么转入步骤S23探测当前节目信息,探测的时间间隔由探测时间间隔字段指定,在此为15秒。转向步骤S23之后,继续步骤S24,如此反复,直到回传用户和节目信息(节目信息比对相等,并且valid_temporal_info=valid_temporal_interval)或者时间超时(time_out_info≥time_out)放弃回传为止。(2)当节目信息比对结果不等,并且未超时(time_out_info<time_out),就转向步骤S25。(3)节目信息的比对结果相等,并且当前节目的播放时间等于有效时间间隔(valid_temporal_info=valid_temporal_interval,在此为15分钟),就转向步骤S26。(4)在整个过程中如果时间超时(time_out_info≥time_out),就转向步骤S27。
步骤S25:更新节目信息,时间重置。当步骤S24中节目信息比对结果不等,并且没有超时(time_out_info<time_out)时,转向步骤S25,更新节目信息,时间重置。此时,需要更新节目信息,并且将当前节目的收看时间重置为0,重新开始计时当前节目的有效收看时间,也就是valid_temporal_info需要重新从0开始计时。更新节目信息需要在步骤S22所述的固定内存中清除之前的节目信息,存储当前节目信息。更新存储的节目信息之后,机顶盒还是会继续按照指定的时间间隔探测当前节目信息,然后比对。具体方法参照步骤S23和S24。
步骤S26:封装并回传用户和节目信息。当步骤S24节目信息比对结果相等,并且当前节目的有效收看时间达到有效时间间隔指定的时间(valid_temporal_info=valid_temporal_interval,在此为15分钟),机顶盒会将用户和节目信息封装成IP数据帧,通过网络回传到前端的收视率统计服务器,该服务器的IP地址由步骤S21解析的收视率统计服务器IP地址(rating_server_IP_address)字段指定,在此为192.168.16.100。封装进IP数据帧中的用户和节目信息的数据结构由响应数据(response_data)的语法结构给定。本实施例中,统计类型为基于全部信息(all_information)的统计,根据响应数据(response_data)的语法结构,回传的数据中需要包括以下内容:统计类型(statistic_type)、业务群标识符(bouquent_id)、传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)、业务标识符(service_id)、事件标识符(event_id)、机顶盒序列号(stb_id)、智能卡号(smartcard_id)。
步骤S27:结束,放弃回传。在收集收视信息的整个过程中,如果出现时间超时(time_out_info≥time_out),机顶盒会立即结束收视信息的收集,并且放弃回传,不给收视率统计服务器回传任何信息。相当于收视信息收集失败。
特别说明:在收视信息收集的整个过程中,机顶盒不会被别的收视率统计描述符打断进程,也就是说在收视信息收集的过程中不会监听传输流(TS)中是否有收视率统计描述符。
实施例二:
收视率统计描述符中立即或延迟字段(immediate_or_delay)编码值为‘1’,收视率统计类型为基于业务(service)的统计。在以上条件下,机顶盒收集收视信息的具体实施例。
由于实施例一已经给出收视率统计描述符实际数据的例子,本实施例将不再给出。在此,只是直接给出用于收集收视信息所需的相关参数的值。具体如下:immediate_or_delay为‘1’;detect_temporal_interval为0x15;time_out为0x001500;rating_server_IP_address为0xC0A81064;statistic_type为‘010’;参与收视率统计的机顶盒序列号范围为1到1000。valid_temporal_interval在此无效,所以不给出编码值。
假设机顶盒的序列号为100。
机顶盒的具体处理流程参见图3所示。
步骤S31:收到收视率统计描述符并解析各个字段。
解析各个字段机顶盒可以获取以下有用信息:(1)需要立即回传用户和节目信息;(2)探测时间间隔为15秒;(3)超时时间为15分钟;(4)收视率统计服务器IP地址为192.168.16.100;(5)统计类型是基于业务的统计;(6)机顶盒序列号在参与收视率统计的机顶盒序列号范围内。
机顶盒需要有一个时间变量time_out_info,用于记录超时时间。机顶盒接收到收视率统计描述符之后,time_out_info就从0开始计时。
解析上述各个字段之后,机顶盒已经获取了收集收视信息所需的参数信息,接下来就触发收视信息的收集过程。
实施例一给出了各个步骤的详细说明,本实施例(实施例二)只是简要的说明各个步骤的处理过程。
步骤S32:获取用户和节目信息。由于是基于业务的统计,机顶盒需要获取以下信息:传输流标识符、原始网络标识符、业务标识符、机顶盒序列号、智能卡号。当获取以上信息成功是转向步骤S33;当获取以上信息失败是转向步骤S34。
步骤S33:封装并回传用户和节目信息。将从步骤S32中获取的用户和节目信息封装成IP数据帧。用户和节目信息的数据结构具体参见响应数据(response_data)的语法结构中“基于service的统计”部分;回传的IP地址为192.168.16.100。
步骤S34:time_out,时间超时。当获取用户和节目信息失败,需要检查时间是否超时。如果超时(time_out_info≥time_out),转向步骤S35;如果未超时(time_out_info<time_out),等待一时间间隔(由探测时间间隔字段指定),转向步骤S32。
步骤S35:如果时间超时(time_out_info≥time_out),则结束收视信息的收集,并且放弃回传。
收视率统计系统接收来自机顶盒回传的用户和节目信息,并且调用前端用户管理系统和节目信息系统的相关信息进行分类统计。
具体如图4所示,对于收视率统计系统统计收视信息的过程说明如下:
机顶盒通过网络(基于TCP/IP网络协议或HTTP网络协议)将用户和节目信息回传给收视率统计服务器,回传的用户和节目信息可能包括以下内容:统计类型、业务群标识符、传输流标识符、原始网络标识符、业务标识符、事件标识符、机顶盒序列号、智能卡号。收视率统计服务器将接收到的用户和节目信息存储进数据库,每一个用户回传的信息形成一条数据记录。机顶盒序列号和智能卡号在用户管理系统中可以唯一标识一个用户,而不同的用户由于收视权限的不同,对应就具有不同的级别,收视率统计服务器从用户管理系统调用用户级别的相关信息,并且将该级别信息与存储进数据库的用户和节目信息关联起来。收视率统计服务器从节目信息系统调用节目相关信息,包括业务群名称(bouquent_name)、业务名称(service_name)、事件名称(event_name)等信息,并以传输流(TS)为单位将这些节目信息存储进收视率统计服务器对应的数据库,供统计收视信息时调用。其中,传输流(TS)由传输流标识符(transport_stream_id)和原始网络标识符(original_network_id)唯一标识。
基于以上获取的信息可以进行不同类型的统计,具体如下:(1)基于业务群(bouquent)的统计;(2)基于业务(service)的统计;(3)基于事件(event)的统计;(4)基于用户群(user_group)的统计。
下面分别进行描述。
(1)基于业务群(bouquent)的统计:根据机顶盒回传的业务群标识符进行分类统计,并形成相应的分布统计曲线。业务群名称从节目信息系统得到,并和业务群标识一一对应。基于业务群的统计可以得到不同的业务群(直观地,用业务群名称来标识)在某一时间段的用户数量。从而可以统计出在某一时间段用户的总体收视情况,比如说集中在某一个或几个业务群。
(2)基于业务(service)的统计:机顶盒回传的传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)和业务标识符(service_id)可以唯一地标识一个业务,并且可以根据以上信息得到业务名称(service_name),业务名称由收视率统计服务器从节目信息系统中获得。根据业务名称(service_name)对机顶盒回传的信息进行分类统计,并形成相应的分布统计曲线。基于业务的统计可以得到不同的业务(直观地,用业务名称来标识)在某一时间段的用户数量。从而可以统计出在某一时间段用户具体的收视情况,比如说大部分用户集中在某一个或几个业务上收看。
(3)基于事件(event)的统计:机顶盒回传的传输流标识符(transport_stream_id)、原始网络标识符(original_network_id)、业务标识符(service_id)和事件标识符(event_id)可以唯一地标识一个事件,并且可以根据以上信息得到事件名称(event_name),事件名称由收视率统计服务器从节目信息系统中获得。根据事件名称(service_name)对机顶盒回传的信息进行分类统计,并形成相应的分布统计曲线。基于事件的统计可以得到不同的事件(直观地,用事件名称来标识)在某一时间段的用户数量。从而可以统计出在某一时间段用户具体的收视情况,比如说大部分用户集中在某一个或几个事件上收看。可以实现很具体的统计。
(4)基于用户群(user_group)的统计:收视率统计服务器从用户管理系统中获得用户级别相关信息,该信息可以通过机顶盒序列号和智能卡号和用户回传的节目相关信息唯一关联。从而可以基于不同的用户级别(也可以说是用户群user_group)进行分类统计,并形成相应的分布统计曲线,该曲线可以基于业务群进行统计、基于业务进行统计,也可以基于事件进行统计。基于用户群的统计可以得到不同级别的用户(直观地,通过用户群来标识)在某一时间段收视节目的情况。
基于以上方法,我们可以实时统计用户的收视情况。不同的统计类型给我们提供了不同的统计方法,以便我们可以从不同的角度把握用户的收视情况。基于业务群的统计可以给出某一时间段用户的总体收视情况;基于业务或事件的统计可以给出某一时间段用户详细的收视情况;基于用户群的统计可以给出不同的用户群在某一时间段的收视情况,该收视情况可以是总体的也可以是详细的,具体要看统计的是业务群、业务还是事件。