由 Algolia 提供。
Algolia Swift 和 Objective-C InstantSearch Insights
InstantSearch Insights iOS 库允许开发者捕获与搜索相关的事件。这些事件可能与搜索查询(如用于点击分析或 A/B 测试的点击或转化事件)相关。它是通过将事件与搜索 API 在设置查询参数 clickAnalytics=true 时生成的 queryIDs 关联来实现的。此外,库还允许捕获与搜索无关的事件,这些事件可用于搜索体验个性化。目前支持三种此类事件:点击、转化和查看。
入门
支持的平台
InstantSearch Insights iOS 支持在 iOS、macOS、tvOS 和 watchOS 上使用,可以通过 Swift 和 Objective-C 进行使用。
安装
- 添加 InstantSearchInsights 依赖项
- CocoaPods:将
pod 'InstantSearchInsights', '~> 2.3'
添加到您的Podfile
中。 - Carthage: 将
github "algolia/instantsearch-ios-insights" ~> 2.3.1
添加到您的Cartfile
中。
- 将
import InstantSearchInsights
添加到您的源代码文件中。
快速开始
初始化 Insights 客户端
首先,您需要初始化 Insights 客户端。为此,您需要您的 应用程序 ID 和 API 密钥。您可以在您的 Algolia 帐户中找到它们。此外,为了个性化,还可以通过相应的可选参数指定应用程序的 用户令牌。如果未指定用户令牌,将使用自动生成的应用程序级用户令牌。
// Swift
Insights.register(appId: "testApp", apiKey: "testKey", userToken: "testToken")
// ObjC
[Insights registerWithAppId:@"testApp"
apiKey:@"testKey"
userToken:@"testToken"];
发送指标
一旦注册了您的 应用程序 ID 和 API 密钥,您就可以轻松地开始发送指标。
// Swift
Insights.shared?.clickedAfterSearch(eventName: "click event",
indexName: "index name",
objectID: "object id",
position: 1,
queryID: "query id")
Insights.shared?.convertedAfterSearch(eventName: "conversion event",
indexName: "index name",
objectIDs: ["obj1", "obj2"],
queryID: "query id")
Insights.shared?.viewed(eventName: "view event",
indexName: "index name",
filters: ["brand:apple"])
// ObjC
[[Insights shared] clickedAfterSearchWithEventName:@"click event"
indexName:@"index name"
objectID:@"object id"
position:1
queryID:@"query id"
userToken:nil];
[[Insights shared] convertedAfterSearchWithEventName:@"conversion event"
indexName:@"index name"
objectID:@"object id"
queryID:@"query id"
userToken:nil];
[[Insights shared] viewedWithEventName:@"view event"
indexName:@"index name"
filters:@[@"brand:apple"]
userToken:nil];
日志记录和调试
如果您想检查指标是否发送正确,需要先启用日志记录
// Swift
Insights.shared(appId: "appId")?.isLoggingEnabled = true
启用后,您可以检查输出以寻找成功或错误信息
// Success
[Algolia Insights - appName] Sync succeded for EventsPackage(id: "37E9A093-8F86-4049-9937-23E99E4E4B33", events: [{
eventName = "search result click";
eventType = click;
index = "my index";
objectIDs = (
1234567
);
positions = (
3
);
queryID = 08a76asda34fl30b7d06b7aa19a9e0;
timestamp = 1545069313405;
userToken = "C1D1322E-8CBF-432F-9875-BE3B5AFDA498";
}], region: nil)
//Error
[Algolia Insights - appName] The objectID field is missing (Code: 422)
事件刷新延迟
默认情况下,客户端每 30 秒传输一次跟踪事件。您可以通过更改 flushDelay
的值(以秒为单位)来自定义此延迟,如下所示
// Swift
Insights.flushDelay = 60
// ObjC
[Insights setFlushDelay: 60];
设置API区域
默认情况下,每个分析API调用都是地理路由的,以便每个调用都针对最近的API。今天,分析API支持两个区域:美国和德国。您可以通过以下方式指定您想要的区域:
// Swift
Insights.region = .de
// ObjC
[Insights setRegion: [Region de]]];
为了获得更有意义的搜索体验,请参阅我们的入门指南。
获取帮助
- 需要帮助?请在Algolia社区或Stack Overflow上提问。
- 发现错误?您可以在GitHub问题中提交。
- 有关Algolia的疑问?您可以在我们网站上搜索我们常见问题解答。
参与其中
许可证
InstantSearch iOS Insights是MIT许可。