需求
- Xcode 9.0+
- iOS 9.0+
安装
UserReport iOS SDK可以以多种方式安装。
CocoaPods
CocoaPods是一个面向Objective-C和Swift的集中式依赖关系管理器。您可以在这里了解更多。
-
将项目添加到您的Podfile中。
pod 'UserReport'
-
运行
pod install
,然后打开.xcworkspace
文件以启动Xcode。 -
导入UserReport框架。
import UserReport
Swift Package Manager
Swift Package Manager是用于管理Swift代码分发的工具
- 转到文件 > Swift 包 > 添加包依赖...
- 将UserReport SDK的Github URL放进去
- 选择“Branch: ‘master’
- 选择合适的目标
手动
要手动安装它,请将 UserReport 项目拖入您的 Xcode 应用项目或将其作为 git 子模块添加。在您的项目文件夹中输入
$ git submodule add [email protected]:AudienceProject/userreport-ios-sdk.git
配置 Info.plist
更新您的 Info.plist
中的消息,以便告知用户 app 请求使用数据用于跟踪的原因
<plist ...>
<dict ...>
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
</dict>
</plist>
用于屏幕/部分跟踪的应用
配置
使用您的 PUBLISHER_ID
和 MEDIA_ID
配置 UserReport iOS SDK。
您可以在 UserReport 的媒体设置页面找到 PUBLISHER_ID
和 MEDIA_ID
。
// Configure
UserReport.configure(sakId: "PUBLISHER_ID", mediaId: "MEDIA_ID")
屏幕跟踪
自动跟踪
如果您想自动测量所有屏幕视图,您的应用程序的 ViewController
应继承自 UserReportViewController
类。
自动跟踪示例
class ViewController: UserReportViewController {
...
}
手动跟踪
跟踪有两种类型
- 屏幕视图跟踪(《UserReport.trackScreenView()`)
- 章节视图跟踪(《UserReport.trackSectionScreenView()`)
如果一个媒体(网站)有一个单一的主题,可以使用《UserReport.trackScreenView()`》进行跟踪。
如果网站有不同章节,例如《健康》、《国际新闻》和《本地新闻》,则应同时使用《UserReport.trackScreenView()`》和《UserReport.trackSectionScreenView(sectionId)》进行跟踪。在UserReport中的媒体设置页面上可以找到特定章节的“sectionId”。
手动屏幕跟踪示例
class ViewController: UIViewController {
override open func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// Tracking screen view
UserReport.trackScreenView()
}
}
手动章节跟踪示例
class ViewController: UIViewController {
override open func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// Tracking section view (use both functions)
UserReport.trackScreenView()
UserReport.trackSectionScreenView(sectionId)
}
}
不要混合自动和手动跟踪
如果你使用《UserReport.trackSectionScreenView》和/或《UserReport.trackScreenView()`》方法,应禁用自动跟踪。正如您在手动跟踪示例中看到的那样,`ViewController`并不从《UserReport ViewController》继承。
调查用途
配置
使用您的《SAK_ID》、您的《MEDIA_ID》以及用户信息来配置UserReport iOS SDK。
您的《SAK_ID》和《MEDIA_ID》可以在UserReport中的媒体设置页面上找到。
// Create user object (optional)
let user = UserReportUser()
user.email = "[email protected]"
// You can also specify a email hash
user.emailMd5 = "MD5_EMAIL_HASH"
user.emailSha1 = "SHA1_EMAIL_HASH"
user.emailSha256 = "SHA256_EMAIL_HASH"
// Provide additional social network information
user.facebookId = "FACEBOOK_ID"
//It is possible to override the default rules for when a survey will appear.
//However, the settings parameter is optional.
let settings = UserReportSettings()
settings.sessionScreensView = 5
settings.inviteAfterNSecondsInApp = 20
// Configure
UserReport.configure(sakId: "YOUR_SAK_ID", mediaId: "YOUR_MEDIA_ID", user: user, settings: settings)
显示模式
调查可以以两种方式显示
.alert
- 以警告视图的方式显示调查(默认).fullScreen
- 以全屏模式显示调查,类似于模态视图控制器
要更改显示模式,请指定以下内容:
UserReport.setDisplayMode(.fullscreen)
更改设置
要更新显示调查的默认规则,请使用以下方法:尽管建议通过配置方法传递 UserReportSettings
,但仅当您想更改已启动应用的规则时才使用此方法。
let settings = UserReportSettings()
settings.sessionScreensView = 5
settings.inviteAfterNSecondsInApp = 20
UserReport.updateSettings(settings)
静音
要防止调查出现在重要屏幕上,可以使用一个 mute
变量。
UserReport.mute = true
不要忘记将值恢复到
false
。
更新用户信息
当更改用户数据时,还应将更新后的数据发送到 UserReport iOS SDK。
let user = UserReportUser()
user.email = "[email protected]"
UserReport.updateUser(user)
会话信息
UserReport SDK 根据屏幕查看次数和应用程序的使用时间保存数据。如果需要,您可以从 session
变量中获取这些数据。会话包含以下值:
screenView
- 当前会话中查看的屏幕数量totalScreenView
- 所有会话中查看的屏幕总数sessionSeconds
- 当前会话中在应用中花费的秒数totalSecondsInApp
- 应用中花费的所有时间的秒数localQuarantineDate
- 调查下次不会再次显示的日期settings
- 调查出现的当前设置
// Session information about the running time of the application and screen views
let session = UserReport.session
// Get current settings for appear survey
let currentSetting = session?.settings
手动操作
如果您决定亲自进行问卷调查,可以使用以下方法
UserReport.tryInvite()
匿名跟踪模式
如果启用了匿名跟踪:所有请求都将发送到“禁止跟踪”域名,IDFA将永远不会发送。要启用匿名模式,可以使用以下方法
UserReport.setAnonymousTracking(true)
IDFA
SDK依赖于IDFA,因此发布应用程序时请务必勾选相应的复选框。
许可证
用户报告iOS SDK采用Apache许可证2.0发布。查看LICENSE以获取详细信息。