PersonaClick 3.6.30

PersonaClick 3.6.30

由以下人员维护: Michael KeppMichael KechinovpersonaClickpavelbowie



PersonaClick SDK

Version License Platform

安装

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

pod 'PersonaClick'

Swift Package Manager

如果您使用的是 Xcode 11 或更高版本

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

用法

SDK 用于多个任务

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

初始化

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

同步购物车

此方法用于覆盖用户购物车的当前状态。使用此方法比使用 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")
}

参数列表

参数 必需 描述
query true 搜索查询
limit false 结果数量限制
offset false 结果偏移量
categoryLimit false 侧边栏过滤器返回的分类数量
categories false 按字典列表过滤产品
extended false 对于全文搜索结果,最好使用true
sortBy false 排序参数:popularpricediscount
sortDir false 排序方向:ascdesc(默认)
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 文件。