分析了iOS


当前版本:4.1.4

上映日期:2021年5月3日

使用iOS的分析,您可以将您的数据发送到分析或营销工具,而无需使用每次更新或添加来学习,测试或实现新API。


注意:Segment目前不支持Apple Watch的watchkit扩展跟踪。电子邮件我们如果你对Watchkit SDK感兴趣。现在我们建议使用iPhone应用程序代码来跟踪手表的交互。

Analytics-Swift飞行员

analytics-swift库的试点版本可以在Analytics-Swift存储库。这个库由Segment的管理首次访问和测试条款,不应该在生产方案中使用。

分析- ios和唯一标识符

任何分析平台最重要的部分之一就是能够一致且准确地识别用户。要做到这一点,平台必须在设备上分配并保存某种形式的身份识别,这样你才能有效地分析用户行为。这对于漏斗转换分析和留存率分析尤为重要。

当然,Analytics SDK需要为每个用户提供唯一的ID。为了保护终端用户的隐私,苹果对这些id的生成和使用方式进行了限制。本节解释苹果的政策,以及Segment如何生成符合这些政策的id。

在iOS 5之前,开发者可以使用唯一标识符,这是一个特定于硬件的序列号,在不同的应用程序、供应商和安装中是一致的。不过,从iOS 5开始,苹果不赞成访问这个标识符.在iOS 6中,苹果引入了identifierForVendor这保护了来自跨应用程序标识的最终用户。在ios 7苹果限制访问设备的MAC地址,许多开发人员将其作为一种变通方法,以获得类似的特定于设备的序列号来替换唯一标识符

段的IOS库通过生成UUID并将其存储在磁盘上,支持iOS 7+。这符合Apple所需的隐私策略,维护兼容性,并且还可以在多个人使用相同设备的情况下正确跟踪,因为可以重新生成UUID。

API在Analytics-iOS中呼叫队列

Segment SDK将API调用队列,而不是为跟踪的每个事件发出网络请求,以帮助提高用户的电池寿命。

打包或“设备模式”目的地(如果段使用目标集成SDK直接从用户的设备发送数据),则可能具有自己的队列行为。有关详细信息,请选中目的地供应商的文档。

对于云模式目的地,当你进行一个API调用(跟踪,页面等)时,Segment库将该调用添加到队列中,并将事件批量发送到Segment服务器。缺省情况下,批处理大小为One hundred.

批量发送:

  • 当队列中有20个或更多事件时
  • 在预定的计时器上,每30秒
  • 当应用程序进入后台

要限制内存和磁盘使用情况,则段仅队列最多可征收1000个事件。当应用程序终止时,段将队列保存到磁盘,并在应用程序启动时再次加载该数据,因此没有数据丢失。

开始

关于移动连接方式

段默认为基于云的默认值连接模式(“云模式”),因为这可以帮助任何连接到移动源的目的地减小最终应用程序包的大小.当您使用云模式时,Segment将消息发送到Segment服务器,然后将该数据转换并转发到下游工具。通过这种方式,你只能将Segment移动库与你的应用程序打包。

然而,许多专门处理移动交互的目标工具要求您使用基于设备的连接模式(“设备模式”),以便它们可以直接在移动设备上收集信息。(你可以查看完整的目的地列表和它们支持哪些连接模式.)

如果您计划使用需要设备模式的目的地,则必须打包该工具SDK的Segment-integration版本与您的应用中的段源库一起。段集成SDK允许您仍然使用段收集数据,但也可以实现任何基于设备的功能,并且仍然可以为您节省空间。

将工具的设备模式SDK与段SDK打包后,段将数据直接发送到工具的API端点。然后段也添加了该工具集成对象设置为,这样数据就不会从Segment服务器第二次发送。

例如,如果您捆绑了段SDK和段对讲库,则会在您的有效载荷中看到它:

“集成”“对讲机”

当您包装段和段集成SDK时,您必须使用依赖管理器(如Cocoapods或Gradle)来确保所有sdk都是兼容的,并且包含了它们的所有依赖项。Segment不支持在没有依赖管理器的情况下捆绑移动sdk。

安装SDK

iOS上安装Analytics的推荐方法是使用Cocoapods,因为它意味着您可以创建具有特定目标的构建,而且它使安装和升级变得简单。

首先,添加分析依赖你的Podfile,如下所示:

圆荚体“分析”~ > 4.1的

然后在你的应用委托中-应用程序:didFinishLaunchingWithOptions:方法,像这样设置SDK:

配置分析配置writeKey“YOUR_WRITE_KEY”配置TrackApplicationLifecycleEvents.真正的//自动记录特定的应用程序事件配置recordScreenViews真正的//启用这个记录屏幕视图自动!分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];配置TrackApplicationLifecycleEvents.是的//自动记录特定的应用程序事件配置recordScreenViews是的//启用这个记录屏幕视图自动!SEGAnalyticssetupWithConfiguration配置];

注意:自动跟踪生命周期事件(应用程序打开应用程序安装应用程序更新)和屏幕视图是可选的使用初始化配置参数,但强烈建议击中地面运行核心事件!看到下面更多信息!

当然,在您使用它的文件中导入SDK:

进口
# <段/进口SEGAnalytics.h >

包括使用设备模式的目的地的SDK

为了保持Analytics- ios SDK的轻量级,Analytics pod只安装Segment目的地。这意味着您的所有数据都通过Segment的服务器发送到您使用默认云模式启用的任何工具。

一些旅游目的地要求或提供设备模式连接万博水晶宫.对于那些目的地,您必须采取一些额外的步骤打包设备模式sdk

现在Segment Analytics-iOS SDK已经安装和设置好了,你准备好了…

配置和设置SDK

SEGAnalyticsConfiguration类提供一组属性,这些属性控制SEGAnalytics实例。你用一个初始化它writeKey如下面的例子所示:

分析设置分析配置writeKey“YOUR_WRITE_KEY”))
SEGAnalyticssetupWithConfiguration:[SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”]];
writeKeynsstring * 你的部分来源写关键

应用程序生命周期跟踪

Segment Analytics-iOS SDK可以自动测试常见的应用程序生命周期事件如“安装的应用程序”,“应用程序更新”和“打开的应用程序”。初始化SDK时,只需启用此选项。

配置分析配置writeKey“YOUR_WRITE_KEY”配置TrackApplicationLifecycleEvents.真正的分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];配置TrackApplicationLifecycleEvents.是的SEGAnalyticssetupWithConfiguration配置];

屏幕自动跟踪

Segment Analytics-iOS SDK可以自动检测屏幕呼叫。它使用混合方法检测何时ViewController.S被加载,并使用视图控制器的标签(或者类名,如果标签不可用)作为屏幕名。它从名称中删除字符串“ViewController”,如果存在。

配置分析配置writeKey“YOUR_WRITE_KEY”配置recordScreenViews真正的分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];配置recordScreenViews是的SEGAnalyticssetupWithConfiguration配置];

自动推送通知跟踪

当您设置TrackPushNotifications.是的,SDK会自动发送轨道事件推送式通知收到了推送式通知了

配置分析配置writeKey“YOUR_WRITE_KEY”配置TrackPushNotifications.真正的分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];配置TrackPushNotifications.是的SEGAnalyticssetupWithConfiguration配置];

当您设置trackDeepLinks是的,SDK会自动发送轨道事件深度链接打开

配置分析配置writeKey“YOUR_WRITE_KEY”配置trackDeepLinks真正的分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];配置trackDeepLinks是的SEGAnalyticssetupWithConfiguration配置];

冲洗

您可以在刷新前设置应队列的事件数。将此设置为1将发送事件,因为他们来(即不发送批处理事件),并将使用更多的电池。20.默认。

配置分析配置writeKey“YOUR_WRITE_KEY”配置flushAt1分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];配置flushAt1SEGAnalyticssetupWithConfiguration配置];

你也可以手动冲洗队列:

分析共享()别名“glenncoco”分析共享()冲洗()
[[SEGAnalyticssharedAnalytics别名@“glenncoco”];[[SEGAnalyticssharedAnalytics冲洗

数据收集

现在Segment SDK和任何附带的打包SDK都安装好了,您就可以收新万博app2.0下载集一些数据了!

很高兴知道对于本文档中描述的任何方法,您可以用代表所收集数据的变量替换代码示例中的属性和特征。

识别

段的标识方法允许您将用户绑定到他们的行动和记录其关于它们的特征。它包括一个唯一的用户ID和您对其了解的任何可选性状。

段建议您首次创建用户帐户时函数识别,并且只有在更新其特征时稍后再调用它或更改它们。

注意:段自动分配一个anonymousId在您识别用户之前。的用户标识是连接跨设备(例如,iPhone和iPad)的匿名活动。

例子识别称呼:

分析共享()识别“用户的id”特征“电子邮件”“用户的电子邮件地址”])
[[SEGAnalyticssharedAnalytics识别@”用户的id”特征:@ {@“电子邮件”@“用户的电子邮件地址”});
用户标识NSString *,可选 此用户的数据库ID。如果还不知道用户是谁,可以省略用户标识并记录特征.你可以在确定参考
特征NSDictionary *,可选 一本你了解用户特点的字典,比如他们的电子邮件名称.你可以在确定参考
选项NSDictionary *,可选 一本额外的字典选项呼叫。

iOS的分析工作在自己的后台线程上,所以它永远不会阻塞UI或调用线程的主线程。

打电话-识别:与A.用户标识将该ID写入磁盘,以便在后续调用中使用。该ID可以通过卸载应用程序或调用来删除重启

中找到关于标识方法有效负载的详细信息识别规格文档

跟踪

段的曲目方法允许您录制用户执行的操作。每个动作都触发了我们所谓的“事件”,它也可以具有关联属性。

首先,Segment iOS SDK可以自动跟踪一些关键的常见事件细分原生手机规格,例如应用程序安装应用程序更新应用程序打开.在初始化期间启用此选项。

你可能还想要追踪能够指示你的手机应用成功的事件签约物品购买书签条.细分建议只需几个重要事件即可开始。你可以随时添加更多!示例跟踪呼叫可能如下所示:

分析共享()跟踪“项目购买”属性“物品”“赫拉克勒斯的剑”“收入”2.95])
[[SEGAnalyticssharedAnalytics跟踪@“项目购买”属性:@ {@“项目”@“赫拉克勒斯的剑”@“收入”@2.95});

上面的示例跟踪调用告诉您,您的用户刚刚触发了物品购买事件,并记录物品"赫拉克勒斯之剑"的名字收入2.95。

跟踪事件属性可以是您想要记录的任何内容。在这种情况下,项目和收入。

曲目调用有以下字段:

事件nsstring * 活动的名称。我们建议人类可读名称歌曲播放状态更新
属性NSDictionary *,可选 事件属性字典。如果事件是产品添加到购物车,它可能有属性价格productType
选项NSDictionary *,可选 一本额外的字典选项呼叫。

屏幕

屏幕方法允许您记录每当用户看到您的移动应用程序的屏幕时,以及关于正在查看的页面的可选额外信息。

你会想记录一个屏幕事件一个事件每当用户在你的应用程序中打开一个屏幕。这可能是一个视图,片段,对话框或活动取决于你的应用程序。

示例屏幕电话:

分析共享()屏幕“照片食”属性“喂类型”“私人的”])
[[SEGAnalyticssharedAnalytics屏幕@“照片食”属性:@ {@“饲料类型”@“私人”});

屏幕Call包含以下字段:

名称nsstring * 例如,屏幕的名称注册首页
属性NSDictionary *,可选 用于屏幕的属性字典。一个屏幕照片给可能有像提要类型排序顺序
选项NSDictionary *,可选 一本额外的字典选项呼叫。

中的Screen有效负载的详细信息屏幕规格文档

集团

段组方法允许您关联识别用户用户组。一个组可以是一个公司,组织,帐户,项目新万博app2.0下载或团队!它还允许您记录关于该团体的自定义特征,如行业或雇员数量。

这对工具有用对讲机提前Totango,因为它将用户绑定到团体其他的用户。

示例组调用可能如下所示:

分析共享()团体“Group123”特征“名称”“Initech”“描述”“会计软件”])
[[SEGAnalyticssharedAnalytics团体@“group123”特征:@ {@“名称”@“Initech”@“描述”@“会计软件”});

组调用具有以下字段:

用户标识字符串 数据库中此用户的ID。
Groupid.字符串 数据库中此组的ID。
特征特征,可选 一本你所了解的群体特征的字典。喜欢的东西:名称网站
选项选择,可选 一个选项对象允许您启用或禁用目的地,或发送其他上下文

浏览有关团体包括团体有效载荷在我们的规格

别名

分段别名方法是您如何将一个身份与另一个身份相关联。这是一种高级方法,但是需要它来成功地管理某些目的地的用户身份。

Mixpanel年它用于将一个匿名用户与一个已确认的用户在注册后关联起来。为亲吻,如果您的用户切换id,您可以使用' alias '来重命名' userId '。

示例别名调用:

分析共享()别名“一些新的id”
[[SEGAnalyticssharedAnalytics别名@”一些新的id”];

Alias调用有以下字段:

newIdnsstring * 要映射到的用户的newId。
选项NSDictionary *,可选 一本额外的字典选项呼叫。

有关别名方法的更多详细信息,包括别名呼叫有效载荷,请查看别名规范文档

AnonymousId

你可以检索anonymousId使用库设置:

分析共享()getAnonymousId
[[SEGAnalyticssharedAnalyticsgetAnonymousId];

设置anonymousId属性设置为自定义值选项范围:

分析共享()识别特征“电子邮件”“用户的电子邮件地址”],选项“anonymousId”“test_anonymousId”]);
[[SEGAnalyticssharedAnalytics识别特征: @ {@“电子邮件”@“用户的电子邮件地址”选项@ {@“anonymousId”@“test_anonymousId”});

重置

——重置方法清除SDK的电流内部存储器用户团体.这对于用户可以随着时间的推移以不同身份登录和退出的应用程序很有用。

下面的示例代码清除了有关用户的所有信息。

分析共享()重启()
[[SEGAnalyticssharedAnalytics重启];

重置不会清除队列中的事件此外,下次应用程序开始时,队列中的任何剩余事件都会发送。你可能想打电话冲洗在你调用Reset之前。

笔记:每次打电话重启,下一次打开应用程序时,会生成一个新的anonymmousid,这可能会影响你处理的每月跟踪用户(MTUs)的数量。

为退出的用户禁用数据收集

根据您的应用程序(例如,儿童)或您销售您的应用程序的国家(例如,欧盟)的国家,您可能需要提供用户从您的应用程序内选择退出分析数据集的能力.您可以使用以下代码关闭向所有目的地转移到包括段本身的所有目的地:

[[SEGAnalyticssharedAnalytics禁用];
分析共享()。禁用()

或者如果用户选择返回,你可以重新启用数据收集:

分析共享()启用()
[[SEGAnalyticssharedAnalytics启用];

如果你禁用Segment SDK响应用户选择退出,所有的Segment方法调用(跟踪,屏幕,识别等)被忽略。但是,这并不会禁用与Segment捆绑的任何目的地sdk。您应该查阅这些目的地的供应商文档,并调用相应的禁用用于每个打包SDK的方法,以确保任何自动数据收集停止。

选择目的地

你可以通过一个集成对象的页面,跟踪,别名,组和识别调用,以打开或关闭特定的目的地。默认情况下,所有目的地都是启用的。

您可以通过指定指定启用或禁用目的地nsdictionary *选项参数分段方法如下所示:

选项“集成”“Enablex_Integration_name”真正的“DISABLED_INTEGRATION_NAME”
选项:@ {@“集成”@ {@“ENABLED_INTEGRATION_NAME”@YES@”DISABLED_INTEGRATION_NAME: @NO

下面的例子显示了一个跟踪调用,它被发送到除了Mixpanel之外的所有启用的目的地:

分析共享()跟踪“产品评为“属性选项“集成”“全部”真正的“mixpanel”]])
[[SEGAnalyticssharedAnalytics跟踪@“产品评为“属性:选项:@ {@“集成”@ {@“全部”@YES@“Mixpanel年”@NO}}];

目的地标志是区分大小写的和匹配docs中的目的地名称(例如“Adlearn开放平台”,“AWE.SM”,“MailChimp”等)。

注意:商业级客户可以从源模式页面过滤manbetx客户端应用下载从段应用程序的跟踪呼叫。段建议您在可能的情况下使用此方法,因为更简单,并且可以在您的应用程序中更改任何代码更改。

在调试器中禁用的目标

中查看原始有效负载数据时段调试器,你可能会看到集成有效载荷中的对象表示您的某些目的地已关闭,即使您没有特定关闭它们。您可能会看到一个有效载荷,如下图所示:

集成段.IO.谷歌分析LocalyticsMixpanel年

当段发送数据在设备模式(直接从用户的设备),它设置的目的地集成对象发送给Segment服务器的数据。这表明数据直接从用户的设备发送到目的端点,并防止Segment服务器再次发送相同的数据到目的地。

记录

要查看数据通过SDK的跟踪,可以使用调试:

分析调试真正的
SEGAnalytics调试是的];

或者像这样禁用它:

分析调试
SEGAnalytics调试没有];

默认情况下,调试日志记录是禁用的。

代理http(s)呼叫

你可以将iOS SDK指向你自己的主机代理人Segment API的。

它通过代理运行Segment API的HTTP流量。

配置分析配置writeKey“YOUR_WRITE_KEY”//设置自定义请求出厂,允许您修改库创建HTTP请求的方式。//在本例中,我们将URL转换为指向我们自己的自定义非segment主机。配置requestFactoryurlURL->URLRequestvar结果URLRequesturlurl如果var组件URLComponentsurlurlresolvingAgainstBaseURL组件宿主“your_proxy_host”如果transformedURL组件url结果URLRequesturltransformedURL返回结果//设置任何其他自定义配置选项。......//使用配置初始化SDK。分析设置配置
SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];//设置自定义请求出厂,允许您修改库创建HTTP请求的方式。//在本例中,我们将URL转换为指向我们自己的自定义非segment主机。配置requestFactoryNSURLurlnsurlcomponents.组件nsurlcomponents.componentsWithURLurlresolvingAgainstBaseURL没有];//用代理地址替换your_proxy_host,例如,aba64da6.ngrok.io。组件宿主@“YOUR_PROXY_HOST”NSURLtransformedURL组件URL返回NSMutableURLRequestRequestWithurl.transformedURL];};//设置任何其他自定义配置选项。......//使用配置初始化SDK。SEGAnalyticssetupWithConfiguration配置];

广告跟踪和IDFA

启动iOS 14,应用程序必须提示用户如果该应用程序需要收集广告商(IDFA)的标识符。使用Analytics-IOS-4.1及更高版本,段不会自动收集IDFA。如果您的应用或任何集成需要使用IDFA,则需要:

  1. 进口AdSupport应用跟踪透明度框架由苹果
  2. 将下面的代码片段传递到Segment config并开始跟踪事件
  3. 提示用户同意并收集IDFA

可以使用以下闭包片段将值传递给Analytics-iOS.作为配置:

进口AdSupport......配置分析配置writeKey“YOUR_WRITE_KEY”//启用广告收集配置enableAdvertisingTracking真正的//设置需要advertisingID时调用的block//注意:在iOS 14中,你需要手动在其他地方进行授权,只有当它已经被授权时,返回广告标识符通过下面的块分段配置adSupportBlock()->字符串返回Asidentifiermanager.共享()advertisingIdentifier分析设置配置
@ importAdSupport......SEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];//启用广告收集配置enableAdvertisingTracking是的//设置需要advertisingID时调用的block//注意:在iOS 14中,你需要手动在其他地方进行授权,只有当它已经被授权时,返回广告标识符通过下面的块分段配置adSupportBlock返回[[Asidentifiermanager.sharedManageradvertisingIdentifier];SEGAnalyticssetupWithConfiguration配置];

在某些情况下,如果你使用的是XCode 12或更高版本,构建可能会以以下错误失败:块指针类型分配给'segadsupportblock _nullable'(aka'nsstring * _nonnull(^)(void)')来自'nsuuid * _nonnull(^)(void)'

如果看到此错误,请更改以下内容行39seagnalyticsconfiguration.h.班级:

从这个:typedef NSString *_Nonnull (^SEGAdSupportBlock)(无效);

:typedef nsuuid * _nonnull(^ segadsupportblock)(void);

IDFA的相同值将用于所有(设备和云模式)集成。

注意:analytics-ios可以在没有IDFA的情况下继续收集事件,直到提示用户,并且只有在用户同意advertisingId字段添加到事件有效负载

广告跟踪影响了两个键上下文每个事件的对象:

device.adTrackingEnabled 真正的如果使用Closure和用户同意,则SDK设置,除此以外
Device.AdvertIsingid. idfa_value如果用户选择,否则将从事件有效负载跳过此键

如果您的用例不需要IDFA收集,您可以跳过此设置,并且在您的事件上下文中您将看不到device.adTrackingEnabledDevice.AdvertIsingid.您的事件有效载荷中的键/值。

出血边缘释放

细分发布稳定的发布每两个星期三标记和发布分支。

发布后,Segment也合并发布开发分支成.通常,代码是可用的在它被标记为稳定版本之前的两周。在此期间,代码可以通过Cocoapods和Carthage(相当于我们的前沿版本)获得。Segment建议您使用这个版本来尝试尚未发布的即将到来的功能和修复程序。

使用分支机构,使用以下一种方法:

Cocoapods.

将这一行添加到Podfile

圆荚体“分析”: git=>'https://github.com/segingio/analytics- os.git':分支=>'掌握'

打包设备模式目标sdk

缺省情况下,分段分析POD不会打包任何目标SDK。

圆荚体“分析”“~ > 4.1.0”

要使用Device-mode添加目标,首先添加所需的依赖项。当你打开目标表时,你可以在片段应用中找到这些任何带有设备模式选项的移动目的地

圆荚体“Segment-Bugsnag”圆荚体“Segment-Branch”圆荚体“Segment-GoogleAnalytics”......

添加依赖后,必须向Segment SDK注册目标:

进口进口-GoogleAnalytics进口-分支分析配置配置分析配置writeKey“YOUR_WRITE_KEY”//添加任何设备模式的目标。配置使用SEGGoogleAnalyticsIntegrationFactory实例())配置使用bncbranchintegrationFactory.实例())......Analyitcs设置配置
#import  #import  #import  .hSEGAnalyticsConfiguration配置SEGAnalyticsConfigurationconfigurationWithWriteKey@“YOUR_WRITE_KEY”];//添加任何设备模式的目标。配置使用:[SEGGoogleAnalyticsIntegrationFactory实例]];配置使用:[bncbranchintegrationFactory.实例]];......SEGAnalyticssetupWithConfiguration配置];

段建议您谨慎地使用设备模式目的地,以减少应用程序的大小。

此页面上次修改:2021年6月8日



开始分段

段是将网站和移动应用程序数据集成到超过300个分析和增长工具的最简单方法。
创建免费帐户