Facebook 小游戏小技巧:统计事件发送失败的原因总结
Facebook Instant Game(也就是国内俗称的"小游戏"),提供了自带的统计接口,可以统计自定义事件,然后在Facebook的统计后台查看。
1. 统计事件接口文档
https://developers.facebook.com/docs/games/instant-games/sdk/fbinstant6.3/
- 接口: FBInstant.logEvent
- 参数列表:
- eventName 类型 string, 只允许数字、字母、下划线和连字符(减号)组合,长度2-40个字符
- valueToSum 类型 number
- parameters 类型 object, 不超过25组的键值对
示例代码
var logged = FBInstant.logEvent(
'my_custom_event',
42,
{custom_property: 'custom_value'}
);
2. 发送事件失败的可能原因
2.1. 定位
每次调用Facebook的统计接口时,游戏都会向Facebook发送一个请求。所以,我们可以利用浏览器自带的开发者工具来查看请求的情况。
打开开发工具的network页,可以看到很多activities请求,这些就是我们向Facebook发送的请求了。
注意 activities还包含了其他的请求,并不全都是统计事件,比如,还有广告请求。
2.2. 事件失败原因
如上图所示,失败的请求,会在列表中显示为红色,并提示原因。上图中,就提示了错误原因是不符合字符串的规则(用正则表达式表示)。
常见的失败原因:
-
1). 网络问题
由于国内的网络情况,由于网络原因失败,是很常见的一个情况。 -
2). 类型错误
注意看文档,如果调用接口时,传入的参数的类型不对,也会报错。
最常见的是,第二个参数valueToSum,如果传入空字符 "" 或者 字符"0",都会报错。
这个参数如果没有值,可以填0,或者干脆不填(undefined) -
3). 格式错误
文档中除了定义了参数的类型,还注明了格式。比如
eventName 就只允许包含- 数字: 0到9
- 字母: a到z,A到Z
- 下划线: _
- 连接符(或者减号): -
而其他字符都是不允许的。特别注意是否有全角字符,以及tab等。
- 4). 长度错误
参数eventName的合法长度是 2-40
参数parameters的属性名也只允许2-40个字符,并且只允许最多25组键值对(key-value pair)
事实上 Facebook小游戏的Api中,string类型的参数的要求都是一样的。
以上。
扫一扫关注微信公众号:耿直的IT男阿斌
聊一聊IT男眼中的世界