Appbase 分析
一个通用分析库,允许您为 appbase.io 记录搜索、点击和转换 分组。 。 。 .
技选
开始
浏览器
1. 装入库
分析库可以通过 jsDelivr CDN 请检查url=值 (帮助) 或者直接与您的申请捆绑在一起.
您可以在浏览器中使用 UMD 构建, 具体如下:
<script defer src="https://cdn.jsdelivr.net/npm/@appbaseio/[email protected]/dist/@appbaseio/analytics.umd.min.js"
></script>
2. 初始化
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL'
});
节点.js
1. 安装图书馆
按以下命令安装库:
npm install @appbaseio/analytics
# or
yarn add @appbaseio/analytics
2. 初始化
const aa = require('@appbaseio/analytics');
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL'
});
使用大小写
分析库提供了集成应用库的实用方法. io分析分分钟,常见的用例是记录搜索,点击和转换事件.
记录搜索
它帮助您跟踪搜索特定查询术语。 它还原 queryID 返回,用于记录同一搜索事件的点击和转换.
const aa = require('@appbaseio/analytics');
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL'
});
aaInstance.search({
query: 'iphone'
});
说明: queryID 将自动设置在状态中,并可通过使用 getQueryID 方法,一旦搜索事件成功注册.
记录空查询搜索
query 是记录搜索事件所需的密钥,但您可以将其设置为空字符串以注册为空查询搜索.
aaInstance.search({
query: ''
});
记录点击
使用 click 用于记录单击事件的方法。 以下示例记录了该条目的两下 result 键入搜索查询.
const aa = require('@appbaseio/analytics');
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL'
});
aaInstance.click({
query: 'iphone',
objects: {
iphoneX_19348: 1,
iphone7_19348: 3
},
meta: {
key1: 'value1'
}
});
记录建议点击
设定 isSuggestionClick 属性改为 true 以建议点击方式记录.
aaInstance.click({
query: 'iphone',
isSuggestionClick: true,
objects: {
iphoneX_19348: 1,
iphone7_19348: 3
}
});
特定搜索事件的记录点击
使用 queryID 改为 query 以记录特定搜索事件的点击.
// Record a search
aaInstance.search({
query: 'iphone'
});
// Record a click for the last search made
aaInstance.click({
queryID: aaInstance.getQueryID(),
objects: {
iphoneX_19348: 1,
iphone7_19348: 3
}
});
记录特定事件的点击
附加自定义事件以区分点击事件.
aaInstance.click({
query: 'iphone',
objects: {
iphoneX_19348: 1,
iphone7_19348: 3
},
customEvents: {
click_source: 'promoted_collections'
}
});
记录转换
转换必须记录特定搜索事件,以便它定义一个 queryID 用于记录转换.
// Record a search
aaInstance.search({
query: 'iphone'
});
// Record a conversion for the last search made
aaInstance.conversion({
queryID: aaInstance.getQueryID(),
objects: ['iphoneX_19348', 'iphone7_19348'],
meta: {
key1: value1
}
});
保存搜索
为了保存搜索状态, queryID 必须在场.
// Save search state
aaInstance.saveSearch({
queryID: 'cf600405-d4ed-42b0-8b09-08b594fa88d2',
saveSearchID: 'analytics-js-test',
saveSearchMeta: {
key1: 'value1'
},
userID: '[email protected]',
customEvents: { platform: 'mac' }
});
删除已保存的搜索
要删除 Id 保存的搜索状态 .
// Save search state
aaInstance.deleteSavedSearch('analytics-js-test');
获取已保存的搜索
要获取已保存的搜索, 我们在此获取已保存的搜索, 用户代号为 [email protected]。 。 。 .
aa.getSavedSearches(
{
user_id: '[email protected]'
},
(err, res) => {
if (err) {
console.error(err);
} else {
res
.json()
.then(savedSearches => {
// saved searches list
})
.catch(err => {
console.error(err);
});
}
}
);
最喜欢
记录一个最喜欢的文档
aa.favorite({
favoriteOn: '1jftXXEBdEU4aeo6Gdqs',
queryID: 'cf600405-d4ed-42b0-8b09-08b594fa88d2',
source: {
authors: 'John Milton, John Leonard',
average_rating: 3.8,
average_rating_rounded: 4,
books_count: 819,
id: 984,
image: 'https://images.gr-assets.com/books/1455618673l/15997.jpg',
image_medium: 'https://images.gr-assets.com/books/1455618673m/15997.jpg',
isbn: '140424393',
language_code: 'eng',
original_publication_year: 1667,
original_series: '',
original_title: 'Paradise Lost',
ratings_count: 96316,
title: 'Paradise Lost'
},
id: 'analytics-js-test',
userID: '[email protected]',
customEvents: { platform: 'mac' },
meta: {
key1: 'value1'
}
});
获取爱好
为了检索最喜爱的文档,我们在此为用户获取最喜爱的文档,用户代号为: [email protected]。 。 。 .
aa.getFavorites(
{
user_id: '[email protected]'
},
(err, res) => {
if (err) {
console.error(err);
} else {
res
.json()
.then(favorites => {
// list of favorite document
})
.catch(err => {
console.error(err);
});
}
}
);
设定用户
它允许你设置 userID。 。 。 .
const aa = require('@appbaseio/analytics');
// Set during initialization
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL',
userID: '[email protected]'
});
// or set by using method
aaInstance.setUserID('[email protected]');
设定全球事件
设置实例记录的每个事件的自定义事件 .
例如:
const aa = require('@appbaseio/analytics');
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL'
});
// or set by using method
aaInstance.setGlobalCustomEvents({
platform: 'ios'
});
API 参考
初始化
const aa = require('@appbaseio/analytics');
const aaInstance = aa.init({
index: 'INDEX_NAME',
credentials: 'AUTH_CREDENTIALS',
url: 'CLUSTER_URL',
userID: 'USER_ID',
globalCustomEvents: 'GLOBAL_CUSTOM_EVENTS'
headers?: 'CUSTOM_HEADERS'
});
可选配置选项 :
| 选项 | 类型 | 说明 |
|---|---|---|
index | string (必须) | 弹性搜索索引名. |
credentials | string (必须) | 证书载于Appbaseio仪表板。 它应该是格式的一串 用户名: 密码字 用于认证应用程序. |
url | string (必须) | Appbaseio 集群 URL . |
userID | string | 用户ID允许您为特定用户记录事件. 例如,您可能想知道有多少不同的用户正在使用搜索. |
globalCustomEvents | Object | 它允许你设置 全球 自定义事件可用于在 appbase.io 分析器上建起自己的分析器. 更多信息 |
headers | Object | 有时它可能需要为分析API设置额外的信头. 例如,您正在使用代理的中间软件,它增加了一个额外的安全层. |
所有可能选项的示例:
const aa = require('@appbaseio/analytics');
const aaInstance = aa.init({
index: 'books',
credentials: 'foo:bar',
url: 'http://localhost:8000',
userID: '[email protected]',
globalCustomEvents: {
platform: 'mac'
},
headers: {
'X-auth-token': 'XYZ'
}
});
实例方法
记录搜索
search(searchConfig: Object, callback: Function)
搜索配置选项 :
| 选项 | 类型 | 说明 |
|---|---|---|
query | string | 搜索查询,设置为空字符串以注册为空查询搜索. |
queryID | string | 从 Appbase 返回搜索查询ID . |
customEvents | Object | 设置自定义事件, 例如 { "platform": mac } |
filters | Object | 它允许在搜索查询中记录应用的方面, 例如 { "year": 2018 } |
hits | Array | 为了设定搜索命中点,一个命中对象可以拥有 id, (中文(简体) ), type 打开 source 属性 . |
impressions | Array | 要设定印象,一个被击中的物体可以拥有 id 打开 index 属性. |
说明:
query 或者说 queryID 必须在场.
所有可能选项的示例:
search(
{
query: 'iphone',
// or
queryID: 'cf827a07-60a6-43ef-ab93-e1f8e1e3e1a8',
customEvents: {
source: 'promoted_results'
},
filters: {
year: 2019
},
hits: [
{
id: '12345678',
source: {
title: 'iphoneX'
},
type: '_doc'
}
]
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
// handle response
}
}
);
获取查询ID
以下方法返回 queryID 从上次搜索.
getQueryID(): string
点击
要记录点击事件
click(clickConfig: Object, callback: Function)
单击配置选项 :
| 选项 | 类型 | 说明 |
|---|---|---|
query | string | 搜索查询,设置为空字符串以注册为空查询搜索. |
queryID | string | 从 Appbase 返回搜索查询ID . |
objects | {[key: string]: number} (必须) | 设定点击对象 ID , 然后点击位置, 例如 { "iphoneX_1234": 2 }。 。 。 . |
isSuggestionClick | boolean | 设定为 true 登记为建议. |
customEvents | Object | 设置自定义事件, 例如 { "platform": mac } |
meta | Object | 元数据 |
说明:
query 或者说 queryID 必须在场.
所有可能选项的示例:
click(
{
query: 'iphone',
// or
queryID: 'cf827a07-60a6-43ef-ab93-e1f8e1e3e1a8',
customEvents: {
source: 'promoted_results'
},
objects: {
iphone_1234: 2
},
isSuggestionClick: true,
meta: {
key1: value1
}
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
// handle response
}
}
);
记录转换
记录转换事件
conversion(conversionConfig: Object, callback: Function)
转换配置选项 :
| 选项 | 类型 | 说明 |
|---|---|---|
queryID | string (必须) | 从 Appbase 返回搜索查询ID . |
objects | Array<string> (必须) | 要设置已转换对象标识符, 例如 : ["iphoneX_1234"]。 。 。 . |
meta | Object | 元数据 |
说明:
queryID 必须在场.
所有可能选项的示例:
conversion(
{
queryID: 'cf827a07-60a6-43ef-ab93-e1f8e1e3e1a8',
objects: ['iphone_1234'],
meta: {
key1: value1
}
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
// handle response
}
}
);
保存搜索
要保存搜索状态
saveSearch(config: Object, callback: Function)
配置选项 :
| 选项 | 类型 | 说明 |
|---|---|---|
queryID | string (必须) | 从 Appbase 返回搜索查询ID . |
saveSearchID | string | 已保存搜索身份 . |
saveSearchMeta | Object | 元数据 |
userID | string | 用户编号. |
customEvents | Object | 设置自定义事件, 例如 { "platform": mac } |
说明:
queryID 必须在场.
所有可能选项的示例:
saveSearch(
{
queryID: 'cf600405-d4ed-42b0-8b09-08b594fa88d2',
saveSearchID: 'analytics-js-test',
saveSearchMeta: {
key1: 'value1'
},
userID: '[email protected]',
customEvents: { platform: 'mac' }
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
// handle response
}
}
);
删除已保存的搜索
由 ID 删除搜索状态
deleteSavedSearch(savedSearchId: string, callback: Function)
所有可能选项的示例:
deleteSavedSearch('analytics-js-test', (err, res) => {
if (err) {
// handle error
} else if (res) {
// handle response
}
});
获取保存的搜索
检索已保存的搜索
getSavedSearches(queryParams: Object, callback: Function)
您可以在 这里。 。 。 .
getSavedSearches(
{
user_id: '[email protected]'
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
res
.json()
.then(favorites => {
// list of saved searches
})
.catch(err => {});
// handle response
}
}
);
最喜欢
记录一个最喜欢的文档
favorite(config: Object, callback: Function)
配置选项 :
| 选项 | 类型 | 说明 |
|---|---|---|
queryID | string (必须) | 从 Appbase 返回搜索查询ID . |
favoriteOn | string (必须) | 最爱文档ID. |
source | Object (必须) | 最爱文档源对象数据 |
id | string | 最喜欢的ID. |
meta | Object | 元数据 |
userID | string | 用户编号. |
customEvents | Object | 设置自定义事件, 例如 { "platform": mac } |
说明:
queryID, (中文(简体) ), favoriteOn 财务报告和审定财务报表 source 必须在场.
所有可能选项的示例:
favorite(
{
favoriteOn: '1jftXXEBdEU4aeo6Gdqs',
queryID: 'cf600405-d4ed-42b0-8b09-08b594fa88d2',
source: {
authors: 'John Milton, John Leonard',
average_rating: 3.8,
average_rating_rounded: 4,
books_count: 819,
id: 984,
image: 'https://images.gr-assets.com/books/1455618673l/15997.jpg',
image_medium: 'https://images.gr-assets.com/books/1455618673m/15997.jpg',
isbn: '140424393',
language_code: 'eng',
original_publication_year: 1667,
original_series: '',
original_title: 'Paradise Lost',
ratings_count: 96316,
title: 'Paradise Lost'
},
id: 'analytics-js-test',
userID: '[email protected]',
customEvents: { platform: 'mac' },
meta: {
key1: 'value1'
}
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
// handle response
}
}
);
获得最爱
获取保存的最爱
getFavorites(queryParams: Object, callback: Function)
您可以在 这里。 。 。 .
getFavorites(
{
user_id: '[email protected]'
},
(err, res) => {
if (err) {
// handle error
} else if (res) {
res
.json()
.then(favorites => {
// list of favorites
})
.catch(err => {});
// handle response
}
}
);
设置信头
它允许您在分析端点设置自定义标题 .
setHeaders(headers: Object)
设定用户
设置用户ID。 用户身份帮助记录该特定用户的事件.
setUserID(userID: string)
设定全球事件
设置全局事件数据。 这将补充到法院提出的所有分析请求中.
setGlobalCustomEvents(globalEvents: Object)
捐款
叉出还原并运行以下命令以本地运行测试( T) .
yarn && yarn test
您可能喜欢的其他项目
-
弧形 API ElasticSearch 的网关(出箱安全,速率限制功能,记录分析与请求日志).
-
反应搜索 ReactiveSearch是一个用于React,React Introduct和Vue的Elasticsearch UI组件库. 它有25+组件,由Lists, Ranges,Search UI,Result shows组成,并有将任何已存在的UI组件带入库的方法.
-
搜索框 一个轻量级和注重性能的搜索框UI库,用于查询和显示来自您 ElasticSearch app(aka索引)的结果.
-
德贾武 允许在 appbase.io (或 Elasticsearch) app 内查看原始数据. 即将发布功能 : 能够从 CSV 和 JSON 文件导入自定义数据,同时在应用数据映射上进行有指引的行走.
-
幻影 反应Search组件可以使用自定义的弹性搜索查询来扩展. 对于这些新到"弹性搜索"(Elasticsearch),幻影提供了一种直观的图形界面来编译查询.
-
反应映射 是一个类似 Reactive Search 的工程,可以轻松构建实时地图.
-
应用程序js 虽然构建搜索 UI 具有反活性搜索的可达性,但您可能需要添加一些输入窗体 . 应用程序js 在那里有帮助.
许可证
这个图书馆是 Apache 许可。 。 。 .