Kantar Sifo Mobile Analytics SDK for iOS
此框架将允许您的组织执行移动分析并跟踪您应用程序中的用户行为。只有当您的组织在Kantar Sifo拥有移动分析账户时,该框架才可使用
https://www.kantarsifo.se/kontakt.
目前仅供瑞典客户使用。
如果您不想使用cocoapods,此框架也可以作为zip文件手动安装
https://github.com/kantarsifo/SifoInternetSDK
本说明假设您已安装Cocoapods并熟悉它。否则请参阅以下说明:https://cocoapods.org.cn/
您还需要在测试设备上安装'Sifo Internet'调查员应用。"Sifo Internet"应用程序保存您的Sifo ID详细信息。否则请参考以下内容:https://apps.apple.com/se/app/sifo-internet/id1015394138
背景
此框架通过向后端发起格式化的url调用('SendTag')并带有cookie来跟踪用户。注册用户通过Sifo账户和密钥chain中的UUID(或如果没有跨应用UUID共享的需要,则为NSUserDefaults)进行识别。后端通过cookie识别用户,并由url跟踪资源。有两种类型的用户:匿名用户和已选择参与跟踪并使用单独的调查员应用程序(称为'Sifo Internet')的Orvesto调查员。可以选择跟踪所有用户或仅跟踪调查员用户。
如果已安装,此框架将首次运行时打开'Sifo Internet'应用程序。如果'Sifo Internet'应用程序配置正确,则'Sifo Internet'应用程序将连续打开您的应用程序,并在应用程序URL中携带cookie。此cookie将被框架存储。它还将创建一个在keychain/NSUserDefaults中的UUID。此UUID可以在使用共享密钥chain或NSUserDefaults的应用程序之间共享。初始化成功后,框架准备好将您的跟踪标记发送到分析后端。您可以使用从Kantar Sifo注册获得的工具来跟踪这些标记。
为了实现此功能,需要做一些事情
- 允许您的应用程序在Info.plist中打开"Sifo Internet"应用程序
- 将一个共享密钥库名称添加到Entitlements文件中(可选)
- 将下面的代码添加以集成框架
- 根据您的跟踪需求添加SendTags
权限
Sifo SDK需要哪些权限?
Sifo SDK对您的应用程序使用的任何权限都很满意。
- 如果您的应用程序通过App Tracking Transparency框架请求访问IDFA,Sifo SDK也将获得访问IDFA的权限。
- 如果您的应用程序不请求访问IDFA,Sifo SDK将使用IDFV来跟踪受访者。
- 您可以通过设置参数
enableSystemIdentifierTracking
来控制Sifo SDK是否尝试使用系统标识符(IDFA/IDFV),详情请见下文。如果未使用系统标识符,则仅使用Kantar Sifo参与者ID。
release-notes.txt
)
版本说明(最新;有关更多信息请参阅5.1.0
- 新增可选设置(enableSystemIdentifierTracking),让应用程序开发者控制是否可以使用系统标识符。
- 错误修复
5.0.4
- SDK不再使用AppTrackingTransparency框架。
5.0.3
- 为应用程序发送启动标签。
5.0.2
- SDK现在在iOS 14上要求对受访者进行跟踪权限。
- 增加对多个WebView的支持。
5.0.1
- 增加对iOS 14的支持。
- Sifo参与者现在与IDFA和IDFV同步。
- SDK现在可以检测错误的集成,并发出警告。
- 错误修复和改进。
集成 - 框架
最小iOS部署目标:9.0
1. 将库添加到项目中
Cocoapods
source 'https://github.com/kantarsifo/kantar-sifo-mobile-analytics-podspec.git'
pod 'TSMobileAnalytics'
手动
- 将MobileAnalytics.framework添加到您的项目和目标中。
- 在构建阶段 -> 链接二进制与库中,添加Security框架。
2. 初始化框架
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
TSMobileAnalytics.initialize(withCPID: ...,
applicationName: ...,
trackingType: ...,
enableSystemIdentifierTracking: ...,
isWebViewBased: ...,
keychainAccessGroup: ...,
additionals: [
"comscore_client_id": ...
])
return true
}
}
CPID
- 您的Kantar Sifo分析ID。ApplicationName
- 您的应用程序名称,可以是任何您喜欢的有意义的内容。TrackingType
- 可选为TrackPanelistsOnly
或TrackUsersAndPanelists
。enableSystemIdentifierTracking
- 确定SDK是否尝试使用系统标识符。true
-此设置对于Orvesto Internet测量足够,测量将仅使用Kantar Sifo参与者ID。true
- 此设置是强制性的,如果您参与MMS测量。Sifo SDK将使用您应用从用户处获得同意的标识符(SDK永远不会激活应用程序跟踪透明度弹窗,这由您的应用负责)。
IsWebViewBased
- 如果应用的界面主要通过一个或多个webview显示,请设置为true
。KeychainAccessGroup
-(可选)您的应用ID或多个应用共享同一个keychain时的共享应用ID,如果您希望在多个应用之间跟踪用户。如果不需要使用共享密钥链功能,则将其设置为nil
。additionals
comscore_client_id
-(对于MMS测量强制性的)请联系Kantar Sifo获取详细信息(见下文联系方式)。
集成 - 面板支持
此集成目的是将用户识别为特定的面板参与者。为了允许框架与面板应用集成,您需要遵循以下额外集成步骤。
1. 添加URL方案、查询方案和用户跟踪使用。
更新您的info.plist
以包括。添加查询方案
<key>LSApplicationQueriesSchemes</key>
<array>
<string>se.tns-sifo.internetpanelen</string>
</array>
使用<your_bundle_id>.tsmobileanalytics
添加URL方案
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>None</string>
<key>CFBundleURLSchemes</key>
<array>
<string>my.example.id.tsmobileanalytics</string>
</array>
</dict>
</array>
2. 更新场景或应用委托。
为了让此自定义URL方案被框架识别,您必须实现相关的方法。如果您应用有AppDelegate和SceneDelegate,则实现SceneDelegate版本。如果您的应用只有AppDelegate,则实现AppDelegate版本。
SceneDelegate
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
for ctx in URLContexts {
TSMobileAnalytics.application(UIApplication.shared, open: ctx.url, options: [:])
}
}
AppDelegate
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any] = [:]) -> Bool {
return TSMobileAnalytics.application(app, open: url, options: options)
}
3. 设置webview(仅用于混合应用)。
如果您的应用是基于webview的,您需要通过添加它们来告诉框架跟踪哪个webview
TSMobileAnalytics.addWebview(webView)
如果您将其完全从视图层次结构中移除,则停止跟踪它
TSMobileAnalytics.removeWebview(webView)
4. 共享Keychain(可选)。
如果您提供了共享密钥链访问组,请在目标的“功能设置”中将“密钥链共享”设置为“开”。
发送标记
为了获得良好的使用测量,您的应用应该在用户查看新视图或内容页时发送一个标记。这个标记应该包含有关用户正在查看内容的信息。例如,当用户打开应用并显示其主视图时,应发送一个标记。当用户显示列表、文章、视频或应用中的其他页面时,应发送另一个标记,依此类推。
流式内容与常规内容页的测量方式不同。“开始流”定义为实际内容开始播放后,任何可能 precede its pre-roll material。
您需要为“流开始”使用一个唯一值,并在整个应用中保持一致。我们建议您将其与您在网页上跟踪“流开始”的值同步。我们建议您使用以下值之一:play
、stream
或 webbtv
。
框架可以帮助您完成向服务器发送它们的整个过程。它需要您做的唯一一件事就是告诉它在何时显示了一个视图以及它包含什么内容。
发送一个标记
TSMobileAnalytics.sendTag(withCategories: ...,
contentID: ...) { (success, error) in }
- 类别是一个字符串数组。
- ID是一个字符串,包含当前内容的标识符。
编码
所有发送到Sifo后端的字符串都使用utf-8进行编码。
实现检查
在将应用程序提交到App Store之前,需要根据Kantar Sifo提供的说明进行测试。为了验证SDK正确收集调查员数据。请联系Kantar Sifo。
联系方式
请将任何问题或反馈发送至
[email protected] +46 (0)701 842 372
[email protected] +46 (0)8 507 420 00