Show Menu
主题×

迁移至 4.x iOS 库

此信息可帮助您从 3.x 或 2.x 版本的 iOS 库迁移至 4.x 版本的 iOS 库。
SDK 使用 NSUserDefaults 来存储计算独特用户数所需的数据、生命周期量度以及与 SDK 核心功能相关的其他数据。如果您修改或删除了 NSUserDefaults 中 SDK 所预期的值,则可能会出现意外行为,从而导致出现数据不一致的情况。
在 4.x 版本的 iOS SDK 库中,公共方法都整合到一个标头中。此外,功能现在可通过类级别方法访问,因此您无需跟踪指针、实例或单例。

Event、Prop 和 eVar

在版本 4 中,您不能再在应用程序中直接分配变量,例如 event、eVar、prop、heir 和 list。SDK 而是会使用上下文数据和处理规则将您的应用程序数据映射到 Analytics 变量以供报告。
处理规则具备以下优势:
  • 您无需向应用商店提交更新即可更改数据映射。
  • 您可以对数据使用有意义的名称,而不是设置特定于报表包的变量。
  • 对发送额外数据的影响甚微。
    这些值在使用处理规则映射后才会显示在报表中。
现在,应当将您直接分配到变量的值添加到 data NSDictionary 中。

删除未使用的属性

新的 ADBMobileConfig.json 文件包含特定于应用程序的全局设置,并会替换在之前版本中使用的大部分配置变量。以下是 ADBMobileConfig.json 文件的示例:
{ 
    "version" : "1.0", 
    "analytics" : { 
        "rsids" : "coolApp", 
        "server" : "my.CoolApp.com", 
        "charset" : "UTF-8", 
        "ssl" : true, 
        "offlineEnabled" : true, 
        "lifecycleTimeout" : 5, 
        "privacyDefault" : "optedin", 
        "poi" : [ 
                    ["san francisco",37.757144,-122.44812,7000], 
                    ["santa cruz",36.972935,-122.01725,600] 
                ] 
    }, 
 "target" : { 
  "clientCode" : "myTargetClientCode", 
  "timeout" : 5 
 }, 
 "audienceManager" : { 
  "server" : "myServer.demdex.com" 
 } 
}

移动配置文件

要移动配置文件,请执行以下操作:
  1. 将为第一列中的变量设置的值移到第二列中的变量。
  2. 从您的代码中删除旧配置变量。

迁移信息

下表列出了需要移到配置文件的配置变量。

从版本 3.x 迁移

将第一列中的值移到第二列中的变量。
配置变量
ADBMobileConfig.json 文件中的变量
offlineTrackingEnabled
"offlineEnabled"
offlineHitLimit
"batchLimit"
reportSuiteIDs
"rsids"
trackingServer
"server"
charSet
"charset"
currencyCode
"currency"
ssl
"ssl"
linkTrackVars
删除,不再使用。
linkTrackEvents
删除,不再使用。

从版本 2.x 迁移

将第一列中的值移到第二列中的变量。
配置变量
ADBMobileConfig.json 文件中的变量
trackOffline
"offlineEnabled"
offlineLimit
"batchLimit"
account
"rsids"
trackingServer
"server",删除 "https://" 前缀。协议前缀将根据 "ssl" 设置自动添加。
trackingServerSecure
删除。为确保安全连接,请定义 "server",然后启用 "ssl"。
charSet
"charset"
currencyCode
"currency"
ssl
"ssl"
linkTrackVars
删除,不再使用。
linkTrackEvents
删除,不再使用。
timestamp
删除,不再可配置。
dc
删除,不再使用。
userAgent
删除,不再可配置。
dynamicVariablePrefix
删除,不再使用。
visitorNamespace
删除,不再使用。
usePlugins
删除,不再使用。
useBestPractices 所有对流失测量 (getChurnInstance) 的调用
删除,替换为生命周期量度。有关更多信息,请参阅 生命周期量度

更新跟踪调用和跟踪变量

SDK 版本 4 不使用以 Web 为主的 track trackLink 调用,而是使用以下方法:
  • trackState:data: 状态是您的应用程序中可用的一些视图,例如 home dashboard app settings cart 等等。
    这些状态与网站中的页面类似,而且 trackState 调用会使页面查看次数递增。
  • trackAction:data: 操作,跟踪您的应用程序中发生的要测量的操作,例如 logons banner taps feed subscriptions 和其他量度。
用于这两种方法的 data 参数是 NSDictionary ,其中包含作为上下文数据发送的名称值对。

Event、Prop、eVar

在版本 4 中,您不能再在应用程序中直接分配变量,例如 event、eVar、prop、heir 和 list。SDK 现在会使用上下文数据和处理规则将您的应用程序数据映射到 Analytics 变量以供报告。
处理规则具备以下优势:
  • 您无需向应用商店提交更新即可更改数据映射。
  • 您可以对数据使用有意义的名称,而不是设置特定于报表包的变量。
  • 对发送额外数据的影响甚微。
    这些值在使用处理规则映射后才会显示在报表中。有关更多信息,请参阅 处理规则和上下文数据
您直接分配到变量的值应当添加到 data NSDictionary 中。这意味着应全部删除对 setProp setEvar 的调用和对永久性上下文数据的分配,并将值添加到 data 参数中。

AppSection/服务器、GeoZip、交易 ID、促销活动和其他标准变量

您在测量对象(包括上面列出的变量)中设置的数据应当添加到 data NSDictionary 中。随 trackState trackAction 调用发送的唯一数据是 data 参数中的有效负荷。

替换跟踪调用

在您的代码中,将以下方法替换为对 trackState trackAction 的调用:

从版本 3.x 迁移

  • trackAppState (trackState)
  • trackEvents (trackAction)
  • track (trackAction)
  • trackWithContextData (trackAction)
  • trackLinkURL (trackAction)

从版本 2.x 迁移

  • track (trackState)
  • trackLink (trackAction)

自定义访客 ID

visitorID 变量替换为对 setUserIdentifier: 的调用。

离线跟踪

离线跟踪在 ADBMobileConfig.json 文件中已启用,并且所有其他离线配置均已自动完成。
在您的代码中,删除对以下方法的调用:

版本 3.x

  • setOnline
  • setOffline

版本 2.x

  • forceOffline
  • forceOnline

产品变量

由于产品变量在处理规则中不可用,因此可以使用以下语法设置 products
//create a processing rule to set the corresponding product event. 
// for example, set prodView event when context data a.action = "product view" 
[ADBMobile trackAction:@"LikeButtonClicked"  
                  data:@{@"&&products" : @";Cool Shoe"}];