InstantSearchInsights 2.3.2

InstantSearchInsights 2.3.2

Robert Mogosvladislav 维护。



Carthage compatible SwiftPM Compatible CocoaPods CocoaPods Swift 4.2 Objective-C compatible

Algolia 提供。

Algolia Swift 和 Objective-C InstantSearch Insights

InstantSearch Insights iOS 库允许开发者捕获与搜索相关的事件。这些事件可能与搜索查询(如用于点击分析或 A/B 测试的点击或转化事件)相关。它是通过将事件与搜索 API 在设置查询参数 clickAnalytics=true 时生成的 queryIDs 关联来实现的。此外,库还允许捕获与搜索无关的事件,这些事件可用于搜索体验个性化。目前支持三种此类事件:点击、转化和查看。

入门

支持的平台

InstantSearch Insights iOS 支持在 iOSmacOStvOSwatchOS 上使用,可以通过 SwiftObjective-C 进行使用。

安装

  1. 添加 InstantSearchInsights 依赖项
  • CocoaPods:将 pod 'InstantSearchInsights', '~> 2.3' 添加到您的 Podfile 中。
  • Carthage: 将 github "algolia/instantsearch-ios-insights" ~> 2.3.1 添加到您的 Cartfile 中。
  1. import InstantSearchInsights 添加到您的源代码文件中。

快速开始

初始化 Insights 客户端

首先,您需要初始化 Insights 客户端。为此,您需要您的 应用程序 IDAPI 密钥。您可以在您的 Algolia 帐户中找到它们。此外,为了个性化,还可以通过相应的可选参数指定应用程序的 用户令牌。如果未指定用户令牌,将使用自动生成的应用程序级用户令牌。

// Swift
Insights.register(appId: "testApp", apiKey: "testKey", userToken: "testToken")
// ObjC
[Insights registerWithAppId:@"testApp"
                     apiKey:@"testKey"
                  userToken:@"testToken"];

发送指标

一旦注册了您的 应用程序 IDAPI 密钥,您就可以轻松地开始发送指标。

// 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]]];

为了获得更有意义的搜索体验,请参阅我们的入门指南

获取帮助

参与其中

许可证

InstantSearch iOS Insights是MIT许可