REES46 3.6.30

REES46 3.6.30

Michael KechinovREES46 GitHub Actionpavelbowiepavelbowie 维护。




REES46 3.6.30

REES46 SDK for iOS

CI Status Version License Platform

REES46

安装

REES46 SDK 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中

pod 'REES46'

Swift Package Manager

如果您正在使用 Xcode 11 或更高版本

  1. 点击 文件
  2. Swift 包
  3. 添加包依赖...
  4. 指定 REES46 SDK 仓库的 git URL。
https://github.com/rees46/ios-sdk.git

使用

SDK 用于多个任务

  1. 初始化 SDK 和用户会话
  2. 事件跟踪
  3. 产品推荐
  4. 产品搜索
  5. 用新数据填充用户资料
  6. 发送移动推送令牌
  7. 工具

初始化

初始化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")
}

同步购物车

此方法用于覆盖用户购物车的当前状态。与使用 productAddedToCartproductRemovedFromCart 方法相比,这种方法更容易使用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")
}

产品推荐

您可以以两种方式使用推荐引擎

  1. 简单块请求
  2. 带额外数据的请求

简单请求

sdk.recommend(blockId: "BLOCK_ID") { recommendResult in
  print("Callback")
}

带额外数据的请求

例如,您可以提供当前产品ID(当用户查看此产品详情页时不推荐此产品)

sdk.recommend(blockId: "block_id", currentProductId: "PRODUCT_ID") { recommendResult in
  print("Callback")
}

产品搜索

我们有两种搜索类型

  1. 建议(或自动完成)
  2. 完全搜索

建议

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 排序参数: popularpricediscount
排序方向 false 排序方向: ascdesc(默认)
位置 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 文件。