REES46 SDK for iOS
安装
REES46 SDK 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod 'REES46'
Swift Package Manager
如果您正在使用 Xcode 11 或更高版本
- 点击
文件
Swift 包
添加包依赖...
- 指定 REES46 SDK 仓库的 git URL。
https://github.com/rees46/ios-sdk.git
使用
SDK 用于多个任务
- 初始化 SDK 和用户会话
- 事件跟踪
- 产品推荐
- 产品搜索
- 用新数据填充用户资料
- 发送移动推送令牌
- 工具
初始化
初始化SDK对象并在应用程序的任何地方使用它。(!)请记住,在应用程序启动时只初始化SDK一次。
import REES46
.....
var sdk = createPersonalizationSDK(shopId: "API_KEY")
或者带完成处理问题
import REES46
.....
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")
}
参数列表
参数 | 必需的 | 描述 |
---|---|---|
查询 | true | 搜索查询 |
限制 | false | 结果限制 |
偏移 | false | 结果偏移 |
类别限制 | false | 为侧边栏过滤器返回多少类别 |
类别 | false | 用于按产品过滤的字典类别列表 |
扩展 | false | 最好为全文搜索结果使用 true |
排序 | false | 排序参数: popular 、price 、discount |
排序方向 | false | 排序方向: asc 或 desc (默认) |
位置 | false | 位置ID的字典列表 |
品牌 | false | 用于过滤的品牌的字典列表 |
过滤器 | false | 包含过滤参数的JSON对象。例如:["bluetooth":["yes"],"offers":["15% cashback"],"weight":["1.6"]] |
最低价格 | false | 最小价格 |
最高价格 | false | 最大价格 |
颜色 | false | 颜色字典列表 |
排除 | 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")
}
保存评价
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 | 可选的后续问题答案 |
orderId | false | 订单ID,与当前调查相关 |
实用工具
这些方法用于调试任务。您不需要在进行常规任务时使用它。
获取会话ID
let deviceID = sdk.getDeviceID()
作者
REES46, [email protected]
许可证
REES46 SDK 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。