分析的雪花插件
安装
安装 analytics 财务报告和审定财务报表 @analytics/snowplow 软件包
npm install analytics
npm install @analytics/snowplow
如何使用
这个 @analytics/snowplow 软件包在 浏览器 财务报告和审定财务报表 在节点.js的服务器侧。要使用、安装软件包,在您的工程中包含并初始化插件 分析。 。 。 .
以下为如何使用浏览器插件的例子.
import Analytics from 'analytics'
import snowplowPlugin from '@analytics/snowplow'
const analytics = Analytics({
app: 'awesome-app',
plugins: [
// Minimal recommended configuration
snowplowPlugin({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
trackerSettings: {
appId: 'myApp'
}
})
]
})
/* Track a page view */
// Enable some automatic tracking before page event
analytics.on('initialize:snowplow', ({ instance }) => {
instance.plugins.snowplow.enableActivityTracking(10, 10)
instance.plugins.snowplow.enableLinkClickTracking()
})
// Track page
analytics.page()
// or Track page view with additional entities
analytics.page({
contexts: [
{
schema: 'iglu:com.acme/blog_post/jsonschema/1-0-0',
data: {
title: 'Re-thinking the structure of event data',
category: 'Data Insights',
author: 'Cara Baestlein',
datePublished: '2020-01-24'
}
}
]
})
/* Track a custom event */
// Track structured event
analytics.track('playedVideo', {
category: 'Videos',
label: 'Fall Campaign',
value: 42
})
// or Track Self Describing event
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign'
}
})
// or Track Self Describing event with additional entities
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign',
videoTimestampInMs: 1104
},
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
// or Track Enchanced Ecommerce event with product context
analytics.track('EnhancedEcommerceProductContext', {
id: 'P12345',
name: 'Android Warhol T-Shirt',
list: 'Search Results',
brand: 'Google',
category: 'Apparel/T-Shirts',
variant: 'Black',
quantity: 1
})
analytics.track('EnhancedEcommerceAction', {
action: 'add'
})
/* Identify a visitor */
analytics.identify('user-id-xyz')
初始化后 analytics 与 snowplowPlugin 插件中, 数据会被传送到雪花分析器中 分析. p, (中文(简体) ), 分析. track,或 分析 识别 被调用.
见 其他执行实例 在您的项目中使用更多细节 .
支持的平台
这个 @analytics/snowplow 软件包在 浏览器 财务报告和审定财务报表 在节点.js的服务器侧
浏览器使用量
Snowplow Analytics客户端浏览器插件与这些分析的api方法合作:
- 分析. p - 将页面视图输入斯诺普洛分析
- 分析. 重置 - 为雪花分析值重置浏览器存储 cookie 和本地存储
- 分析. track - 追踪自定义事件并发送到斯诺普洛分析
- 分析 识别 - 确定来访者的身份,并将详情发送给斯诺普洛分析公司
浏览器 API
import Analytics from 'analytics'
import snowplowPlugin from '@analytics/snowplow'
const analytics = Analytics({
app: 'awesome-app',
plugins: [
// Minimal recommended configuration
snowplowPlugin({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
trackerSettings: {
appId: 'myApp'
}
})
]
})
浏览器配置选项
| 选项 | 说明 |
|---|---|
collectorUrl 所需经费 - 绳子 | 雪花收藏器的 URL |
name 选项 - 绳子 | 用于识别此跟踪器实例的名称, 如果使用多个跟踪器实例( “ snowplow' 默认) 则使用 |
trackerSettings 选项 - 对象 | 传递到雪花追踪器的参数图 |
trackerSettings.appId 选项 - 绳子 | 用于识别此应用程序的应用程序 |
trackerSettings.platform 选项 - 绳子 | 跟踪平台 ("web" 默认) |
trackerSettings.cookieDomain 选项 - 绳子 | 要设置 cookie 的域 |
trackerSettings.discoverRootDomain 选项 - 绳子 | 自动发现根域 |
trackerSettings.cookieName 选项 - 绳子 | 饼干的前缀 (")s (韩语)" 默认) |
trackerSettings.cookieSameSite 选项 - 绳子 | SameSite cookie 设置( “ 无” 默认) |
trackerSettings.cookieSecure 选项 - 布尔 | 安全饼干设置( 真正的默认) |
trackerSettings.encodeBase64 选项 - 布尔 | 将 JSON 对象编码为 Base64( 真默认) |
trackerSettings.respectDoNotTrack 选项 - 布尔 | 尊重不跟踪( 考虑分析- 插入- do- not- track) (假默认) |
trackerSettings.eventMethod 选项 - 绳子 | 发送事件、获取、 POST、 灯塔的方法( POST 默认) |
trackerSettings.bufferSize 选项 - 数目 | 发送前要缓冲的事件数量(1个默认) |
trackerSettings.maxPostBytes 选项 - 数目 | 发送前的最大大小 POST 或 Beacon( 默认 40000 ) |
trackerSettings.crossDomainLinker 选项 - 绳子 | 函数来配置要添加跨域链接的链接 |
trackerSettings.cookieLifetime 选项 - 数目 | Cookie 寿命( 63072000 默认) |
trackerSettings.stateStorageStrategy 选项 - 绳子 | 使用 cookie 和/或本地仓库( “ cookieAnd LocalStorage ” 默认) |
trackerSettings.maxLocalStorageQueueSize 选项 - 数目 | 在本地存储中缓冲以阻止填充本地存储的最大事件数 (1000 默认) |
trackerSettings.resetActivityTrackingOnPageView 选项 - 布尔 | 决定是否在虚拟页面视图上重设页面ping计时器的旗帜( 真实默认) |
trackerSettings.connectionTimeout 选项 - 布尔 | 超时, 以毫秒计, 在 GET 和 POST 请求之前, 将超时( 5000 默认) ( Snowplow JS 2 |
trackerSettings.anonymousTracking 选项 - 对象 | 启用匿名跟踪功能的旗帜( 假默认) |
trackerSettings.anonymousTracking.withSessionTracking 选项 - 布尔 | 标记以允许是否以匿名跟踪模式继续跟踪会话( 假默认) |
trackerSettings.anonymousTracking.withServerAnonymisation 选项 - 布尔 | 防止收藏家返回和捕获 cookie并捕获 ip 地址的旗帜( 假默认) |
trackerSettings.contexts 选项 - 对象 | 每个事件的自动上下文 |
trackerSettings.contexts.webPage 选项 - 布尔 | 网页上下文,包含页面视图id. (真正的默认) |
trackerSettings.contexts.performanceTiming 选项 - 布尔 | 增加业绩时间安排信息 |
trackerSettings.contexts.clientHints 选项 - 对象 | 添加客户提示信息(Snowplow JS 2.1.5.0+) |
trackerSettings.contexts.clientHints.includeHighEntropy 选项 - 布尔 | 捕获高输入客户端提示(Snowplow JS 2.1.5.0+) |
trackerSettings.contexts.gaCookies 选项 - 布尔 | 添加 gaCookie 信息 |
trackerSettings.contexts.geolocation 选项 - 布尔 | 添加浏览器地理定位信息 |
trackerSettings.contexts.optimizelyXSummary 选项 - 布尔 | 添加浏览器地理定位信息 |
trackerSettings.plugins 选项 - 阵列 | 在跟踪器初始化时包含的额外插件 。 见 https://docs.snowplowanalytics.com/docs/collection-data/collection- from-own-applications/javascript-tracker/browser-tracker-v3- reference/plugins/ 互联网档案馆的存檔,存档日期2013-12-12 |
服务器侧用法
Snowplow Analytics 服务器侧节点.js插件与这些分析的api方法合作:
服务器侧 API
import Analytics from 'analytics'
import snowplowPlugin from '@analytics/snowplow'
const analytics = Analytics({
app: 'awesome-app',
plugins: [
snowplowPlugin({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
appId: 'myApp'
})
]
})
服务器侧配置选项
| 选项 | 说明 |
|---|---|
collectorUrl 所需经费 - 绳子 | 雪花收藏器的 URL |
appId 所需经费 - 绳子 | 用于识别此应用程序的应用程序 |
name 选项 - 绳子 | 用于识别此跟踪器实例的名称 (' snowplow' 默认) |
protocol 选项 - 绳子 | “ http” 或“ https” (“ https” 默认) |
port 选项 - 绳子 | 收藏器端口( 80 或 443 默认) |
method 选项 - 绳子 | 发送事件到收集器、 “ post” 或“ get” (“ post” 默认) 的方法 |
bufferSize 选项 - 绳子 | 仅在 N 被缓冲后发送事件 。 GET 请求默认为 1, POST 请求默认为 10 . |
retries 选项 - 绳子 | 追踪器将尝试重发事件的次数 。 默认为 5. |
maxSockets 选项 - 绳子 | 节点.js代理对象 Options 对象调谐性能( 6 默认) |
platform 选项 - 绳子 | 设置平台 https://bit.ly/302dSQy (英语) ('srv' 默认) |
screenResolution 选项 - 对象 | 如果可用, 设置设备屏幕分辨率 |
screenResolution.width 选项 - 数目 | 屏幕宽度正整数 |
screenResolution.height 选项 - 数目 | 屏幕高度正整数 |
viewport 选项 - 对象 | 如果可用, 设置设备视图 |
viewport.width 选项 - 数目 | 视图宽度正整数 |
viewport.height 选项 - 数目 | 查看高度正整数 |
colorDepth 选项 - 数目 | 正整数, 每像素以比特计 |
timezone 选项 - 绳子 | 设置用户的时区, 如“ 欧洲/ 伦敦 ” |
lang 选项 - 绳子 | Ser 用户的名词 e. global This. 'en' |
其他例子
以下是其他执行实例.
服务器侧 ES6
import Analytics from 'analytics'
import snowplowPlugin from '@analytics/snowplow'
const analytics = Analytics({
app: 'awesome-app',
plugins: [
snowplowPlugin({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
appId: 'myApp'
})
// ...other plugins
]
})
/* Track a page view */
// Track page
analytics.page()
// or Track page view with additional entities
analytics.page({
contexts: [
{
schema: 'iglu:com.acme/blog_post/jsonschema/1-0-0',
data: {
title: 'Re-thinking the structure of event data',
url:
'https://snowplowanalytics.com/blog/2020/01/24/re-thinking-the-structure-of-event-data/',
category: 'Data Insights',
author: 'Cara Baestlein',
datePublished: '2020-01-24'
}
}
]
})
/* Track a custom event */
// Track structured event
analytics.track('playedVideo', {
category: 'Videos',
label: 'Fall Campaign',
value: 42
})
// or Track Self Describing event
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign'
}
})
// or Track Self Describing event with additional entities
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign',
videoTimestampInMs: 1104
},
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
// or Track Enchanced Ecommerce event with product context
analytics.track('ScreenView', {
name: 'Product Page',
id: 'p-123',
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
/* Identify a visitor */
analytics.identify('user-id-xyz', {
firstName: 'bill',
lastName: 'murray'
})
具有共同JS的服务器端节点.js
如果使用节点,您将想要导入 .default
const analyticsLib = require('analytics').default
const snowplowPlugin = require('@analytics/snowplow').default
const analytics = analyticsLib({
app: 'my-app-name',
plugins: [
snowplowPlugin({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
appId: 'myApp'
})
]
})
/* Track a page view */
// Track page
analytics.page()
// or Track page view with additional entities
analytics.page({
contexts: [
{
schema: 'iglu:com.acme/blog_post/jsonschema/1-0-0',
data: {
title: 'Re-thinking the structure of event data',
url:
'https://snowplowanalytics.com/blog/2020/01/24/re-thinking-the-structure-of-event-data/',
category: 'Data Insights',
author: 'Cara Baestlein',
datePublished: '2020-01-24'
}
}
]
})
/* Track a custom event */
// Track structured event
analytics.track('playedVideo', {
category: 'Videos',
label: 'Fall Campaign',
value: 42
})
// or Track Self Describing event
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign'
}
})
// or Track Self Describing event with additional entities
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign',
videoTimestampInMs: 1104
},
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
// or Track Enchanced Ecommerce event with product context
analytics.track('ScreenView', {
name: 'Product Page',
id: 'p-123',
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
/* Identify a visitor */
analytics.identify('user-id-xyz', {
firstName: 'bill',
lastName: 'murray'
})
在 HTML 中使用
以下是通过unpkg CDN导入的例子. 请注意,这将拉入该套件的最新版本.
<!DOCTYPE html>
<html>
<head>
<title>Using @analytics/snowplow in HTML</title>
<script src="https://unpkg.com/analytics/dist/analytics.min.js"></script>
<script src="https://unpkg.com/@analytics/snowplow/dist/@analytics/snowplow.min.js"></script>
<script type="text/javascript">
/* Initialize analytics */
var Analytics = _analytics.init({
app: 'my-app-name',
plugins: [
// Minimal recommended configuration
analyticsSnowplow({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
trackerSettings: {
appId: 'myApp'
}
})
]
})
/* Track a page view */
// Enable some automatic tracking before page event
analytics.on('initialize:snowplow', ({ instance }) => {
instance.plugins.snowplow.enableActivityTracking(10, 10)
instance.plugins.snowplow.enableLinkClickTracking()
})
// Track page
analytics.page()
// or Track page view with additional entities
analytics.page({
contexts: [
{
schema: 'iglu:com.acme/blog_post/jsonschema/1-0-0',
data: {
title: 'Re-thinking the structure of event data',
category: 'Data Insights',
author: 'Cara Baestlein',
datePublished: '2020-01-24'
}
}
]
})
/* Track a custom event */
// Track structured event
analytics.track('playedVideo', {
category: 'Videos',
label: 'Fall Campaign',
value: 42
})
// or Track Self Describing event
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign'
}
})
// or Track Self Describing event with additional entities
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign',
videoTimestampInMs: 1104
},
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
// or Track Enchanced Ecommerce event with product context
analytics.track('EnhancedEcommerceProductContext', {
id: 'P12345',
name: 'Android Warhol T-Shirt',
list: 'Search Results',
brand: 'Google',
category: 'Apparel/T-Shirts',
variant: 'Black',
quantity: 1
})
analytics.track('EnhancedEcommerceAction', {
action: 'add'
})
/* Identify a visitor */
analytics.identify('user-id-xyz')
</script>
</head>
<body>
....
</body>
</html>
通过 ES 模块在 HTML 中使用
使用 @analytics/snowplow 在无害环境管理模块中.
<!DOCTYPE html>
<html>
<head>
<title>Using @analytics/snowplow in HTML via ESModules</title>
<script>
// Polyfill process.
// **Note**: Because `import`s are hoisted, we need a separate, prior <script> block.
window.process = window.process || { env: { NODE_ENV: 'production' } }
</script>
<script type="module">
import analytics from 'https://unpkg.com/analytics/lib/analytics.browser.es.js?module'
import analyticsSnowplow from 'https://unpkg.com/@analytics/snowplow/lib/analytics-plugin-snowplow.browser.es.js?module'
/* Initialize analytics */
const Analytics = analytics({
app: 'analytics-html-demo',
debug: true,
plugins: [
// Minimal recommended configuration
analyticsSnowplow({
name: 'snowplow',
collectorUrl: 'collector.mysite.com',
trackerSettings: {
appId: 'myApp'
}
})
// ... add any other third party analytics plugins
]
})
/* Track a page view */
// Enable some automatic tracking before page event
analytics.on('initialize:snowplow', ({ instance }) => {
instance.plugins.snowplow.enableActivityTracking(10, 10)
instance.plugins.snowplow.enableLinkClickTracking()
})
// Track page
analytics.page()
// or Track page view with additional entities
analytics.page({
contexts: [
{
schema: 'iglu:com.acme/blog_post/jsonschema/1-0-0',
data: {
title: 'Re-thinking the structure of event data',
category: 'Data Insights',
author: 'Cara Baestlein',
datePublished: '2020-01-24'
}
}
]
})
/* Track a custom event */
// Track structured event
analytics.track('playedVideo', {
category: 'Videos',
label: 'Fall Campaign',
value: 42
})
// or Track Self Describing event
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign'
}
})
// or Track Self Describing event with additional entities
analytics.track('selfDescribingEvent', {
schema: 'iglu:com.acme/video_played/jsonschema/1-0-0',
data: {
id: 42,
title: 'Fall Campaign',
videoTimestampInMs: 1104
},
contexts: [
{
schema: 'iglu:com.acme/product/jsonschema/1-0-0',
data: {
id: 'f9cb6cb6-5ca8-47a6-9035-d9c6ac13029e',
category: 'clothing',
subCategory: 'socks',
price: 3.99
}
}
]
})
// or Track Enchanced Ecommerce event with product context
analytics.track('EnhancedEcommerceProductContext', {
id: 'P12345',
name: 'Android Warhol T-Shirt',
list: 'Search Results',
brand: 'Google',
category: 'Apparel/T-Shirts',
variant: 'Black',
quantity: 1
})
analytics.track('EnhancedEcommerceAction', {
action: 'add'
})
/* Identify a visitor */
analytics.identify('user-id-xyz')
</script>
</head>
<body>
....
</body>
</html>
见 分析提供者插件的完整列表 在主重播时.