目前正在通过AWS Amplify和Pinpoint实施网络和移动分析。
我注意到JS的Amplify文档的分析部分与iOS和Android的相关部分不同,特别是在事件对象可以包括的额外参数/键/值方面。
JS文档指定了一个attributes
属性,而iOS和Android版本都指定了properties
。请参阅以下片段:
JavaScript
Analytics.record({
name: 'albumVisit',
// Attribute values must be strings
attributes: { genre: '', artist: '' }
});
iOS
func recordEvents() {
let properties: AnalyticsProperties = [
"eventPropertyStringKey": "eventPropertyStringValue",
"eventPropertyIntKey": 123,
"eventPropertyDoubleKey": 12.34,
"eventPropertyBoolKey": true
]
let event = BasicAnalyticsEvent(name: "eventName", properties: properties)
Amplify.Analytics.record(event: event)
}
安卓
val event = AnalyticsEvent.builder()
.name("PasswordReset")
.addProperty("Channel", "SMS")
.addProperty("Successful", true)
.addProperty("ProcessDuration", 792)
.addProperty("UserAge", 120.3)
.build()
Amplify.Analytics.recordEvent(event)
attributes
和properties
可以互换吗?我将使用Amazon QuickLight构建分析仪表板,最终收集的事件数据将在S3上结束,并使用Athena进行查询。我需要在Athena中为表定义一个模式,基于以上内容,我不确定attributes
/properties
的数据格式。亚马逊似乎打算让attributes
和properties
包含相同类型的事件相关信息。但我很困惑为什么不同平台的命名约定不同。
在iOS&安卓,Amplify Analytics的String&布尔属性映射到精确定位属性。Double&Integer属性映射到Pinpoint度量。
或者,用表格表示:
放大属性类型(in( | Pinpoint类型(out( |
---|---|
字符串 | 属性 |
布尔属性 | |
整数 | 度量 |
双倍 | 公制 |
偶尔有人会注意到他们的文档中对此缺乏解释。。。通过移动SDK添加的任何CCD_ 9将出现在记录事件有效载荷中的CCD_。