分析了iOS


iOS的分析使其简单地将您的数据发送到任何分析或营销工具,而无需每次学习,测试或实现新API。

所有段的图书馆都是开源的,所以你可以在GitHub上查看Analytics for iOS,或看看细分浏览器和服务器端库了。

想在发布会上保持更新?订阅释放饲料

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

Analytics-iOS和唯一标识符

任何分析平台的最重要部分之一是能够始终如一地识别用户。为此,平台必须在设备上分配和持续某种形式的标识,因此您可以有效地分析用户操作。这对于漏斗转换分析和保留分析尤为重要。

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

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

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

API在Analytics-iOS中呼叫队列

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

打包或“设备模式”目的地(Segment使用目的地集成SDK直接从用户的设备发送数据)可能有自己的队列行为。查看目标供应商的详细文档。

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

批次发送:

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

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

入门

关于移动连接模式

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

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

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

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

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

“集成”{“对讲机”错误的}

当您包装段和段集成SDK时,您必须使用依赖性管理器(如CocoApods或Gradle),以确保所有SDK都兼容,并且所有依赖项都包含在内。没有依赖关系管理器,段不支持捆绑移动SDK。

安装SDK

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

首先,添加分析依赖你的Podfile.,如此:

圆荚体“分析”'〜> 4.1'

然后在您的申请委托的- 应用程序:DidfinishLaunchingWithOptions:方法,设置SDK:

配置=分析配置writeKey“your_write_key”配置TrackApplicationLifecycleEvents.=真的//启用此操作以自动记录某些应用程序事件!配置RecordScreenViews.=真的//使其自动录制屏幕视图!分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];配置TrackApplicationLifecycleEvents.=是的;//启用此操作以自动记录某些应用程序事件!配置RecordScreenViews.=是的;//使其自动录制屏幕视图![塞纳利斯setupWithConfiguration配置];

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

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

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

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

为了保持分析 - IOS SDK轻量级,分析POD仅安装段目的地。这意味着您的所有数据都会通过段的服务器发送到使用默认云模式的任何工具。

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

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

配置和设置SDK

SeagnalyticsConfiguration.类提供了一组控制各种策略的属性塞纳利斯实例。你用一个初始化它writeKey如下面的实施例中:

分析设置分析配置writeKey“your_write_key”)))
[塞纳利斯setupWithConfiguration:【SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”]];
writeKeynsstring * 你的细分源写关键

应用程序生命周期跟踪

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

配置=分析配置writeKey“your_write_key”配置TrackApplicationLifecycleEvents.=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];配置TrackApplicationLifecycleEvents.=是的;[塞纳利斯setupWithConfiguration配置];

自动屏幕跟踪

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

配置=分析配置writeKey“your_write_key”配置RecordScreenViews.=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];配置RecordScreenViews.=是的;[塞纳利斯setupWithConfiguration配置];

自动推送通知跟踪

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

配置=分析配置writeKey“your_write_key”配置TrackPushNotifications.=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];配置TrackPushNotifications.=是的;[塞纳利斯setupWithConfiguration配置];

当您设置trackDeepLinks是的,SDK会自动发送轨道事件深纽带打开了

配置=分析配置writeKey“your_write_key”配置trackDeepLinks=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];配置trackDeepLinks=是的;[塞纳利斯setupWithConfiguration配置];

冲洗

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

配置=分析配置writeKey“your_write_key”配置Flushat.=1分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];配置Flushat.=1;[塞纳利斯setupWithConfiguration配置];

你也可以手动冲洗队列:

分析共享()别名“glenncoco”分析共享()冲洗()
[[塞纳利斯sharedAnalytics]别名@“glenncoco”];[[塞纳利斯sharedAnalytics]冲洗]

数据采集

既然安装了段SDK和任何伴随的打包SDK,您就可以收集一些数据!新万博app2.0下载

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

确认

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

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

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

例子确认称呼:

分析共享()确认“用户的ID”特征[“电子邮件”“用户的电子邮件地址”])
[[塞纳利斯sharedAnalytics]确认@”用户的id”特质:@ {@“电子邮件”@“用户的电子邮件地址”}];
用户身份nsstring *,可选 此用户的数据库ID。如果还不知道用户是谁,可以省略用户身份并记录特征。你可以在确定参考
特征nsdictionary *,可选 一本你了解用户特点的字典,比如他们的电子邮件或者名称。你可以在确定参考
选项nsdictionary *,可选 一本额外的字典选项呼叫。

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

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

查找有关识别方法有效载荷的详细信息识别规格文档

追踪

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

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

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

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

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

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

曲目调用有以下字段:

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

屏幕

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

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

示例屏幕调用:

分析共享()屏幕“照片饲料”特性[“饲料类型”“私人的”])
[[塞纳利斯sharedAnalytics]屏幕@“照片饲料”属性:@ {@“饲料类型”@“私人”}];

屏幕Call包含以下字段:

名称nsstring * 例如,屏幕的名称注册或者
特性nsdictionary *,可选 屏幕的属性词典。屏幕照片给可能有像提要类型或者排序
选项nsdictionary *,可选 一本额外的字典选项呼叫。

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

集团

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

这对工具有用对讲机罚款totango,因为它将用户联系在一起团体其他用户。

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

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

组调用具有以下字段:

用户身份细绳 数据库中此用户的ID。
Groupid.细绳 数据库中此组的ID。
特征特征,可选 您了解该组织的特征词典。像:名称或者网站
选项选项,可选 一个选项对象让你启用或禁用目的地, 或者发送其他上下文

有关的更多细节有关团体包括团体有效载荷在我们的规格

别名

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

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

示例别名调用:

分析共享()别名“一些新的身份证”
[[塞纳利斯sharedAnalytics]别名@“一些新ID”];

别名调用有以下字段:

nsstring * 您要映射到的用户的新内行。
选项nsdictionary *,可选 一本额外的字典选项呼叫。

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

匿名

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

分析共享()getAnonymousid.
[[塞纳利斯sharedAnalytics]getAnonymousid.];

设置anonymousId要自定义值,您可以通过该价值通过选项范围:

分析共享()确认特征[“电子邮件”“用户的电子邮件地址”],选项[“匿名”“test_anonymousId”]);
[[塞纳利斯sharedAnalytics]确认特征: @ {@“电子邮件”@“用户的电子邮件地址”}选项@ {@“Anonymousid”@“test_anonymousId”}];

重置

——重置方法清除SDK的电流内部存储器用户团体。这对于用户可以随着时间的推移使用不同的标识来登录和脱离的应用。

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

分析共享()重启()
[[塞纳利斯sharedAnalytics]重启];

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

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

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

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

[[塞纳利斯sharedAnalytics]禁用];
分析共享()。禁用()

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

分析共享()启用()
[[塞纳利斯sharedAnalytics]启用];

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

选择目的地

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

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

选项[“集成”[“Enablex_Integration_name”真的“disabled_integration_name”错误的]]
选项:@ {@“集成”@ {@“ENABLED_INTEGRATION_NAME”@YES@”DISABLED_INTEGRATION_NAME: @NO}}

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

分析共享()跟踪“产品评分”特性选项[“集成”[“全部”真的“mixpanel”错误的]])
[[塞纳利斯sharedAnalytics]跟踪@“产品评分”属性:选项:@ {@“集成”@ {@“全部”@YES@“mixpanel”@NO}}];

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

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

调试器中的残疾目的地

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

一体化{段.IO.错误的谷歌分析错误的localytics.错误的mixpanel.错误的}

当段以设备模式发送数据(直接来自用户的设备),它将目的地设置为错误的一体化对象发送给Segment服务器的数据。这表明数据直接从用户的设备发送到目的端点,并防止Segment服务器再次发送相同的数据到目的地。

记录

要查看通过SDK进行的痕迹,您可以启用调试日志记录- 调试:

分析调试真的
[塞纳利斯调试是的];

或者这样禁用它:

分析调试错误的
[塞纳利斯调试没有];

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

代理http(s)呼叫

您可以将iOS SDK指向您自己的托管代理人Segment API的。

这通过代理运行了段API的HTTP流量。

配置=分析配置writeKey“your_write_key”//设置自定义请求出厂,允许您修改库创建HTTP请求的方式。//在本例中,我们将URL转换为指向我们自己的自定义非segment主机。配置requestFactory={URL.URL.- >URLRequestvar结果=URLRequestURL.URL.如果var组件=URLComponentsURL.URL.resolvingAgainstBaseURL错误的{组件主持人=“your_proxy_host”如果变换杜尔尔=组件URL.{结果=URLRequestURL.变换杜尔尔}}返回结果}//设置任何其他自定义配置选项。......//使用配置初始化SDK。分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];//设置自定义请求出厂,允许您修改库创建HTTP请求的方式。//在本例中,我们将URL转换为指向我们自己的自定义非segment主机。配置requestFactory=^NSURL.*URL.{nsurlcomponents.*组件=[nsurlcomponents.ComponentsWithurl.URL.resolvingAgainstBaseURL没有];//用代理地址替换your_proxy_host,例如,aba64da6.ngrok.io。组件主持人=@“your_proxy_host”;NSURL.*变换杜尔尔=组件URL.;返回[NSMutableURLRequestRequestWithurl.变换杜尔尔];};//设置任何其他自定义配置选项。......//使用配置初始化SDK。[塞纳利斯setupWithConfiguration配置];

广告跟踪和IDFA

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

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

您可以使用以下Closure Scippet将值传递给Analytics-iOS.作为配置:

进口adsupport.......配置=分析配置writeKey“your_write_key”//启用广告集合配置EnableAdvertIsingTracking.=真的//在需要广告内部时设置要调用的块//注意:在iOS 14中,您需要在其他地方手动进行授权,只有在被授权时,才会通过下面的块将广告涅斯蒂返回到段配置adsupportblock.={()- >细绳返回Asidentifiermanager.共享()广告identifier}分析设置配置
@进口adsupport.;......SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];//启用广告集合配置EnableAdvertIsingTracking.=是的;//在需要广告内部时设置要调用的块//注意:在iOS 14中,您需要在其他地方手动进行授权,只有在被授权时,才会通过下面的块将广告涅斯蒂返回到段配置adsupportblock.=^{返回[[Asidentifiermanager.sharedManager]广告identifier];}[塞纳利斯setupWithConfiguration配置];

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

注意:Analytics-iOS可以继续收集没有IDFA的事件,直到提示用户,只有在用户同意时才advertisingId字段被添加到事件有效载荷

广告跟踪影响了两个键语境每个活动的对象:

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

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

出血边缘释放

段通过标记和释放,每隔一秒发布稳定的释放掌握分支。

发布后,Segment也合并发布开发分支成掌握。通常,代码可用掌握在标记为稳定的释放之前两周。在此期间,代码可使用Cocoapods和Carthage - 我们的相当于出血边缘版本。段建议您使用此版本尝试尚未发布的即将发布的功能和修复。

用来掌握分支,使用以下方法之一:

Cocoapods.

在您的中添加此行Podfile.

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

打包设备模式目标sdk

默认情况下,该段分析POD不会打包任何目标SDK。

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

要使用设备模式添加目标,请首先添加所需的依赖项。打开目标表时,您可以在段应用程序中找到它们任何带有设备模式选项的移动目的地

圆荚体“Segment-Bugsnag”圆荚体“Segment-Branch”圆荚体'semment-googleanalytics'......

添加依赖项后,必须使用段SDK注册目标:

进口进口-GoogleAnalytics进口-分支分析配置*配置=分析配置writeKey“your_write_key”//添加任何您的设备模式目的地。配置SEGGoogleAnalyticsIntegrationFactory实例())配置bncbranchintegrationFactory.实例())......分析性设置配置
#import  #import  #import  .hSeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“YOUR_WRITE_KEY”];//添加任何您的设备模式目的地。[配置:【SEGGoogleAnalyticsIntegrationFactory实例]];[配置:【bncbranchintegrationFactory.实例]];......[塞纳利斯setupWithConfiguration配置];

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

此页面的最后修改:1月15日2021年



开始使用细分

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