PersonaClick SDK
安装
PersonaClick SDK 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:
pod 'PersonaClick'
Swift Package Manager
如果您使用的是 Xcode 11 或更高版本
- 点击
文件
Swift 包
添加包依赖...
- 指定 PersonaClick SDK 仓库的 git URL。
https://github.com/PersonaClick/ios-sdk.git
用法
SDK 用于多个任务
- 初始化 SDK 和用户会话
- 事件跟踪
- 产品推荐
- 产品搜索
- 用新数据填充用户配置文件
- 发送移动推送令牌
- 工具
初始化
初始化 SDK 对象,并在您的应用程序的任何地方使用它。(!)请记住,在应用程序启动时仅初始化 SDK 一次。
import PersonaClick
.....
var sdk = createPersonalizationSDK(shopId: "API_KEY")
或者用完成来处理问题
import PersonaClick
.....
sdk = createPersonalizationSDK(shopId: "API_KEY", { (error) in
print(error)
})
事件跟踪
跟踪用户行为以收集数据。有几种类型的事件
用户查看产品
// Common view
sdk.track(event: .productView(id: "PRODUCT_ID")) { _ in
print("Product view callback")
}
// From instant search
sdk.track(event: .productView(id: "PRODUCT_ID"), recommendedBy: 'instant_search') { _ in
print("Product view callback")
}
// From full search
sdk.track(event: .productView(id: "PRODUCT_ID"), recommendedBy: 'full_search') { _ in
print("Product view callback")
}
// From recommender block - use block ID for recommendedBy parameter
sdk.track(event: .productView(id: "PRODUCT_ID"), recommendedBy: 'WTJc23B2pTBsgc0e') { _ in
print("Product view callback")
}
用户查看分类
sdk.track(event: .categoryView(id: "CATEGORY_ID")) { _ in
print("Category view callback")
}
用户将商品添加到愿望清单
sdk.track(event: .productAddedToFavorities(id: "PRODUCT_ID")) { _ in
print("Product is added to wish list callback")
}
用户从愿望清单移除商品
sdk.track(event: .productRemovedToFavorities(id: "PRODUCT_ID")) { _ in
print("Product is removed from wish list callback")
}
用户将商品添加到购物车
sdk.track(event: .productAddedToCart(id: "PRODUCT_ID")) { _ in
print("Product is added to cart callback")
}
还支持
recommendedBy
参数
用户从购物车移除商品
sdk.track(event: .productRemovedFromCart(id: "PRODUCT_ID")) { _ in
print("Product is removed from cart callback")
}
同步购物车
此方法用于覆盖用户购物车的当前状态。使用此方法比使用 productAddedToCart
和 productRemovedFromCart
方法更容易同步购物车与API。
sdk.track(event: .synchronizeCart(items: [CartItem(productId: "784"), CartItem(productId: "785", quantity: 3)] )) { _ in
print("Cart is synced callback")
}
用户进行了购买
sdk.track(event: .orderCreated(orderId: "ORDER_ID", totalValue: 33.3, products: [(id: "PRODUCT_1_ID", amount: 3), (id: "PRODUCT_2_ID", amount: 1)])) { _ in
print("Order is created callback")
}
产品推荐
您可以使用推荐引擎的两种方式
- 简单块请求
- 带额外数据的请求
简单请求
sdk.recommend(blockId: "BLOCK_ID") { recommendResult in
print("Callback")
}
带额外数据的请求
例如,您可以提供当前产品ID(当用户查看此产品的详细页面时从推荐产品中排除它)
sdk.recommend(blockId: "block_id", currentProductId: "PRODUCT_ID") { recommendResult in
print("Callback")
}
产品搜索
我们有两种搜索类型
- 建议(或自动完成)
- 全文搜索
建议
sdk.suggest(query: "ipho") { searchResult in
print("Suggest callback")
}
全文搜索
全文搜索可以以简单查询和带过滤参数的查询方式执行。
简单全文搜索
sdk.search(query: "iphone") { searchResult in
print("Full search callback")
}
带额外过滤参数的全文搜索
sdk.search(query: "laptop", limit: nil, offset: nil, categoryLimit: nil, categories: nil, extended: nil, sortBy: nil, sortDir: nil, locations: nil, brands: nil, filters: nil, priceMin: nil, priceMax: nil, colors: nil, exclude: nil) { searchResult in
print("Full search callback")
}
参数列表
参数 | 必需 | 描述 |
---|---|---|
query | true | 搜索查询 |
limit | false | 结果数量限制 |
offset | false | 结果偏移量 |
categoryLimit | false | 侧边栏过滤器返回的分类数量 |
categories | false | 按字典列表过滤产品 |
extended | false | 对于全文搜索结果,最好使用true |
sortBy | false | 排序参数:popular 、price 、discount |
sortDir | false | 排序方向:asc 或desc (默认) |
locations | false | 位置ID的字典列表 |
brands | false | 按品牌过滤的字典列表 |
filters | false | 带有过滤参数的JSON对象。例如:["bluetooth":["yes"],"offers":["15% cashback"],"weight":["1.6"]] |
priceMin | false | 最小价格 |
priceMax | false | 最大价格 |
colors | false | 颜色字典列表 |
exclude | false | 排除搜索结果的商品ID的字典列表 |
输出
categories = [Category];
products = [Product];
productsTotal = Int;
queries = [Query];
用新数据更新用户配置文件
您可以使用附加数据更新用户配置文件。
例如,将电子邮件保存到用户配置文件
sdk.setProfileData(userEmail: "[email protected]") { (profileDataResp) in
print("Profile data callback")
}
或者您可以提供更多数据
sdk.setProfileData(userEmail: "[email protected]", userPhone: "+111111111111", userLoyaltyId: "LOYALTY_CARD_ID", birthday: nil, age: nil, firstName: "Johny", lastName: "Cash", location: nil, gender: .male) { (profileDataResp) in
print("Profile data callback")
}
发送移动推送令牌
sdk.setPushTokenNotification(token: "TOKEN_STRING") { (tokenResponse) in
print("Token set response")
}
保存NPS评价
sdk.review(rate: 5, channel: "ios_app", category: "delivery", comment: "Nice application, thank you!") { (reviewResponse) in
print("Review is saved")
}
参数列表
参数 | 必需 | 描述 |
---|---|---|
评分 | true | 评分流程的分数。分数范围1-10 |
渠道 | true | NPS渠道代码 |
分类 | true | NPS流程分类代码 |
评论 | false | optional answer to the follow-up question |
orderId | false | 订单ID,与当前调查相关 |
实用工具
这些方法用于调试任务。在常规任务中不需要它。
获取会话ID
let deviceID = sdk.getDeviceID()
作者
PersonaClick, «[email protected]»
许可协议
PersonaClick SDK 在 MIT 许可下提供。更多信息请见 LICENSE 文件。