1. 自定义事件

1.1. 功能介绍


自定义事件可以统计某些用户自定义埋点的发生次数、时间、变化趋势,例如广告点击、短信数量等等,通常event_id用于表示某种行为或功能的统计(如统计“点击”按钮被触发多少次),而参数则用于标识统计的具体对象(如名称为“OK”的按钮),由“event_id”和“参数”唯一标识一个事件。

自定义事件主要用于2种场景:

(1)统计次数:统计指定行为被触发的次数

(2)统计时长:统计指定行为消耗的时间,单位为秒。需要begin接口与end接口成对使用才生效。

其中每类事件都有Key-Value参数类型和不定长字符串参数类型,由于Key-Value参数类型的接口能表达更丰富的内容,我们推荐优先使用Key-Value类参数接口。另外,如果代码同时使用了这2种参数类型,event_id最好不一样。

注意:event_id需要先在腾讯移动分析网站上面配置,才能参与正常的数据统计。event_id不能包含空格或转义字符。


1.2. Android自定义事件使用指南


1.2.1. 注册自定义事件

自定义事件的注册(配置)包括事件id的注册和事件id下参数信息的注册。

(1)登陆mta前台,选择左边选择“自定义事件”。

(2)选择“新增事件”,按照需求填写事件id、key、value等信息。

(3)可以在查看详情下的“参数”查看事件id下所有参数上报的明细。

1.2.2. 【次数统计】Key-Value参数的事件

void StatService.trackCustomKVEvent(Context ctx, String event_id, 
Properties properties)

(1)参数:

Ctx 页面的设备上下文

event_id 事件标识

properties Key-Value参数对,key和value都是String类型

(2)调用位置: 代码任意处

public void onOKBtnClick(View v) {
// 统计按钮被点击次数,统计对象:OK按钮
Properties prop = new Properties();
    prop.setProperty("name", " OK ");
    StatService.trackCustomKVEvent(this, " button_click", prop);
}
public void onBackBtnClick(View v) {
// 统计按钮被点击次数,统计对象:back按钮
Properties prop = new Properties();
    prop.setProperty("name", " back ");
    StatService.trackCustomKVEvent(this, " button_click", prop);
}

1.2.3. 【次数统计】带任意参数的事件

(1)参数:

Ctx 页面的设备上下文

event_id 事件标识

args 事件参数

(2)调用位置:

代码任意处

public void onClick(View v) {
// 统计按钮被点击次数,统计对象:OK按钮
    StatService.trackCustomEvent(this, "button_click", "OK ");
}

1.2.4. 【时长统计】Key-Value参数事件

可以指定事件的开始和结束时间,来上报一个带有统计时长的事件。

void StatService.trackCustomBeginKVEvent(
Context ctx, String event_id, Properties properties)
void StatService.trackCustomEndKVEvent(
Context ctx, String event_id, Properties properties)

(1)参数:

Ctx 页面的设备上下文

event_id 事件标识

properties Key-Value参数对,key和value都是String类型

(2)调用位置:

代码任意处

public void onClick(View v) {
Properties prop = new Properties();
    prop.setProperty("level", "5");
// 统计用户通关所花时长,关卡等级: 5
// 用户通关前
StatService.trackCustomBeginKVEvent(this, " playTime", prop);
    // 用户正在游戏中….
    // …….
    // 用户通关完成时
StatService.trackCustomEndKVEvent(this, " playTime", prop);
}

1.2.5. 【时长统计】带有统计时长的自定义参数事件

可以指定事件的开始和结束时间,来上报一个带有统计时长的事件。

void StatService.trackCustomBeginEvent(
Context ctx, String event_id, String... args)
void StatService.trackCustomEndEvent(
Context ctx, String event_id, String... args)

(1)参数:

Ctx 页面的设备上下文

event_id 事件标识

args 事件参数

(2)调用位置:

代码任意处

public void onClick(View v) {
    // 统计用户通关所花时长
// 用户通关前
StatService.trackCustomBeginEvent(this, " playTime", "level5");
    // 用户正在游戏中….
    // …….
    // 用户通关完成时
StatService.trackCustomEndEvent(this, " playTime", " level5");

注意:trackCustomBeginEvent和trackCustomEndKvent必须成对出现,且参数列表完全相同,才能正常上报事件。

1.3. iOS自定义事件使用指南


1.3.1. NSDictionary为参数的自定义事件

/**
 上报自定义事件

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
 */
+ (void)trackCustomKeyValueEvent:(NSString *)event_id props:(NSDictionary *)kvs;

/**
 上报自定义事件
 并且指定上报方式

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 @param isRealTime 是否实时上报,若传入YES,则忽略全局上报策略实时上报。否则按照全局策略上报。
 */
+ (void)trackCustomKeyValueEvent:(NSString *)event_id
    props:(NSDictionary *)kvs
    appkey:(NSString *)appkey
    isRealTime:(BOOL)isRealTime;

/**
 开始统计自定义时长事件
 此接口需要跟trackCustomKeyValueEventEnd配对使用
 多次调用以第一次开始时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
 */
+ (void)trackCustomKeyValueEventBegin:(NSString *)event_id props:(NSDictionary *)kvs;

/**
 开始统计自定义时长事件
 并指定上报方式
 此接口需要跟trackCustomKeyValueEventEnd配对使用
 多次调用以第一次开始时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 */
+ (void)trackCustomKeyValueEventBegin:(NSString *)event_id
    props:(NSDictionary *)kvs
    appkey:(NSString *)appkey;

/**
 结束统计自定义时长事件
 此接口需要跟trackCustomKeyValueEventBegin配对使用
 多次调用以第一次结束时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
             参数中的key和value必须跟开始统计时传入的参数一样才能正常配对
 */
+ (void)trackCustomKeyValueEventEnd:(NSString *)event_id props:(NSDictionary *)kvs;

/**
 结束上报自定义时长事件
 并指定上报方式
 此接口需要跟trackCustomKeyValueEventBegin配对使用
 多次调用以第一次结束时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
             参数中的key和value必须跟开始统计时传入的参数一样才能正常配对
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 @param isRealTime 是否实时上报,若传入YES,则忽略全局上报策略实时上报。否则按照全局策略上报。
 */
+ (void)trackCustomKeyValueEventEnd:(NSString *)event_id
    props:(NSDictionary *)kvs
    appkey:(NSString *)appkey
    isRealTime:(BOOL)isRealTime;


/**
 直接统计自定义时长事件
 这个方法用于上报统计好的时长事件

 @param seconds 自定义事件的时长,单位秒
 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
 */
+ (void)trackCustomKeyValueEventDuration:(uint32_t)seconds
    withEventid:(NSString *)event_id
    props:(NSDictionary *)kvs;

/**
 直接上报自定义时长事件
 并指定上报方式
 这个方法用于上报统计好的时长事件

 @param seconds 自定义事件的时长,单位秒
 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param kvs 事件的参数,参数需要先在MTA前台配置好才能生效
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 @param isRealTime 是否实时上报,若传入YES,则忽略全局上报策略实时上报。否则按照全局策略上报。
 */
+ (void)trackCustomKeyValueEventDuration:(uint32_t)seconds
    withEventid:(NSString *)event_id
    props:(NSDictionary *)kvs
    appKey:(NSString *)appkey
    isRealTime:(BOOL)isRealTime;

示例

// 次数统计
- (IBAction)clickKVButton:(id)sender {
    [MTA trackCustomKeyValueEvent:@"KVEvent"
        props:[NSDictionary dictionaryWithObject:@"Value" forKey:@"Key"]];
}

// 时长统计
- (IBAction)clickStartKvButton:(id)sender {
    [MTA trackCustomKeyValueEventBegin:@"KVEvent"
        props:[NSDictionary dictionaryWithObject:@"Value" forKey:@"TimeKey"]];
}

- (IBAction)clickEndKvButton:(id)sender {
    [MTA trackCustomKeyValueEventEnd:@"KVEvent"
        props:[NSDictionary dictionaryWithObject:@"Value" forKey:@"TimeKey"]];
}

1.3.2. NSArray为参数的自定义事件

接口

/**
 上报自定义事件

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param array 事件的参数,参数需要先在MTA前台配置好才能生效
 */
+ (void)trackCustomEvent:(NSString *)event_id args:(NSArray *)array;


/**
 上报自定义事件
 并指定上报方式

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param array 事件的参数,参数需要先在MTA前台配置好才能生效
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 @param isRealTime 是否实时上报,若传入YES,则忽略全局上报策略实时上报。否则按照全局策略上报。
 */
+ (void)trackCustomEvent:(NSString *)event_id
    args:(NSArray *)array
    appkey:(NSString *)appkey
    isRealTime:(BOOL)isRealTime;

/**
 开始统计自定义时长事件
 此接口需要跟trackCustomEventEnd配对使用
 多次调用以第一次开始时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param array 事件的参数,参数需要先在MTA前台配置好才能生效
 */
+ (void)trackCustomEventBegin:(NSString *)event_id args:(NSArray *)array;

/**
 开始统计自定义时长事件
 并指定上报方式
 此接口需要跟trackCustomEventEnd配对使用
 多次调用以第一次开始时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param array 事件的参数,参数需要先在MTA前台配置好才能生效
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 */
+ (void)trackCustomEventBegin:(NSString *)event_id
    args:(NSArray *)array
    appkey:(NSString *)appkey;

/**
 结束统计自定义时长事件
 此接口需要跟trackCustomKeyValueEventBegin配对使用
 多次调用以第一次结束时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param array 事件的参数,参数需要先在MTA前台配置好才能生效
                 参数中的各项必须跟开始统计时传入的参数一样才能正常配对
 */
+ (void)trackCustomEventEnd:(NSString *)event_id args:(NSArray *)array;

/**
 结束统计自定义时长事件
 并指定上报方式
 此接口需要跟trackCustomKeyValueEventBegin配对使用
 多次调用以第一次结束时间为准

 @param event_id 事件的ID,ID需要先在MTA前台配置好才能生效
 @param array 事件的参数,参数需要先在MTA前台配置好才能生效
                 参数中的各项必须跟开始统计时传入的参数一样才能正常配对
 @param appkey 需要上报的appKey,若传入nil,则上报到启动函数中的appkey
 @param isRealTime 是否实时上报,若传入YES,则忽略全局上报策略实时上报。否则按照全局策略上报。
 */
+ (void)trackCustomEventEnd:(NSString *)event_id
    args:(NSArray *)array
    appkey:(NSString *)appkey
    isRealTime:(BOOL)isRealTime;

示例

// 次数统计
- (IBAction)clickNormaltButton:(id)sender {
    [MTA trackCustomEvent:@"NormalEvent" args:[NSArray arrayWithObject:@"arg0"]];
}

// 时长统计
- (IBAction)clickStartButton:(id)sender {
    [MTA trackCustomEventBegin:@"TimeEvent" args:[NSArray arrayWithObject:@"arg0"]];
}

- (IBAction)clickEndButton:(id)sender {
    [MTA trackCustomEventEnd:@"TimeEvent" args:[NSArray arrayWithObject:@"arg0"]];
}

1.3.3. 上报当前缓存的事件

接口

/**
 上报当前缓存的数据
 若当前有缓存的事件(比如上报策略不为实时上报,或者有事件上报失败)时
 调用此方法可以上报缓存的事件

 @param maxStatCount 最大上报事件的条数
 */
+ (void)commitCachedStats:(int32_t)maxStatCount;

results matching ""

    No results matching ""