iOS的分析


iOS Analytics让你可以轻松地将数据发送到任何分析或营销工具,而无需每次都学习、测试或执行新的API。

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

想要保持发布的更新吗?订阅释放饲料

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

Analytics-iOS和唯一标识符

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

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

在iOS 5开发人员访问之前uniqueIdentifier,这是一个特定于硬件的序列号,在不同的应用程序、供应商和安装之间都是一致的。然而,从iOS 5开始,Apple弃用访问此标识符。在iOS 6苹果介绍了identifierForVendor保护终端用户不受跨应用识别的影响。在iOS 7中,苹果限制访问设备的MAC地址,许多开发人员将其作为一种变通方法,以获得类似的特定于设备的序列号来替换uniqueIdentifier

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

API在Analytics-iOS中呼叫队列

段SDK队列API调用而不是对每个事件进行跟踪的网络请求,以帮助改善用户的电池寿命。

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

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

批次发送:

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

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

开始

关于移动连接模式

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

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

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

将工具的设备模式SDK与段SDK打包后,段将数据直接发送到工具的API端点。然后段也添加了该工具一体化对象并设置为,因此不会从段服务器第二次发送数据。

例如,如果你捆绑了Segment SDK和Segment- intercom库,你会在你的有效载荷中看到:

“集成”:{“对讲机”:},

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

安装SDK.

建议为iOS安装分析的方法正在使用Cocoapods,因为它意味着您可以使用特定目的地创建构建,并且因为它使其易于安装和升级。

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

'分析',~ > 4.1的

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

配置=分析配置(写作:“your_write_key”)配置TrackApplicationLifecycleEvents.=真的//启用此操作以自动记录某些应用程序事件!配置RecordScreenViews.=真的//自动记录屏幕视图!分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];配置TrackApplicationLifecycleEvents.=是的;//启用此操作以自动记录某些应用程序事件!配置RecordScreenViews.=是的;//自动记录屏幕视图!(塞纳利斯setupwithconfiguration.:配置];

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

当然,要将SDK导入到你使用它的文件中:

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

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

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

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

既然安装并设置了段分析器-IOS SDK,那么您就可以了...

配置和设置SDK

SEGAnalyticsConfiguration类的各种策略提供了一组属性塞纳利斯实例。你用a初始化它写作如下面的例子所示:

分析设置(:分析配置(写作:“your_write_key”)))
(塞纳利斯setupwithconfiguration.:【SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”]];
写作NSString * 你的细分源写钥匙

应用程序生命周期跟踪

段分析 - IOS SDK可以自动仪器常见应用程序生命周期事件如“安装的应用程序”,“应用程序更新”和“打开的应用程序”。初始化SDK时,只需启用此选项。

配置=分析配置(写作:“your_write_key”)配置TrackApplicationLifecycleEvents.=真的分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];配置TrackApplicationLifecycleEvents.=是的;(塞纳利斯setupwithconfiguration.:配置];

自动屏幕跟踪

Segment Analytics-iOS SDK可以自动检测屏幕调用。它使用方法调酒来检测何时ViewControllers被加载,并使用视图控制器的标签(如果标签不可用,则使用类名)作为屏幕名。它从名称中移除字符串“ViewController”,如果有的话。

配置=分析配置(写作:“your_write_key”)配置RecordScreenViews.=真的分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];配置RecordScreenViews.=是的;(塞纳利斯setupwithconfiguration.:配置];

自动推送通知跟踪

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

配置=分析配置(写作:“your_write_key”)配置TrackPushNotifications.=真的分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];配置TrackPushNotifications.=是的;(塞纳利斯setupwithconfiguration.:配置];

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

配置=分析配置(写作:“your_write_key”)配置trackdeeplinks.=真的分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];配置trackdeeplinks.=是的;(塞纳利斯setupwithconfiguration.:配置];

冲洗

您可以设置刷新之前应该排队的事件数量。设置这个1将发送事件时,他们进来(即不发送批处理事件),并将使用更多的电池。20.默认情况下。

配置=分析配置(写作:“your_write_key”)配置flushAt=1分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];配置flushAt=1;(塞纳利斯setupwithconfiguration.:配置];

你也可以手动冲洗队列:

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

数据收集

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

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

识别

Segment的Identify方法可以让你将用户与他们的行为联系起来,并记录他们的特征。它包括一个唯一的用户ID和任何您所知道的可选特征。

Segment建议,当你第一次创建用户的帐户时,你要调用Identify一次,然后在他们更新他们的特征或你改变他们时再调用它。

笔记:段自动分配一个匿名在识别它们之前给用户。的用户标识是连接跨设备(如iPhone和iPad)匿名活动的工具。

例子识别电话:

分析共享()识别(“用户的id”,特征:(“电子邮件”:“用户的电邮地址”])
[[塞纳利斯SharedAnalytics.]识别:@“用户的ID”特征:@ {@“电子邮件”:@“用户的电子邮件地址”});
用户标识nsstring *,可选 此用户的数据库ID。如果你不知道用户谁,你可以省略用户标识只是记录特征。你可以在确定参考
特征NSDictionary *,可选 一本关于你所知道的用户特征的字典,比如他们的电子邮件或者姓名。你可以在确定参考
选项NSDictionary *,可选 一本额外的字典选项的电话。

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

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

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

追踪

Segment的跟踪方法允许您记录用户执行的操作。每个动作都会触发我们所谓的“事件”,它也可以有关联的属性。

首先,Segment iOS SDK可以自动跟踪一些关键的常见事件本地移动规范, 如那个安装应用程序,申请更新申请已打开。在初始化期间启用此选项。

您可能还想跟踪对您的移动应用程序成功指标的事件,如注册,商品购买或者书签条。Segment建议从跟踪一些重要的事件开始。您可以在以后添加更多!一个示例跟踪调用可能如下所示:

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

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

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

曲目调用有以下字段:

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

屏幕

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

每当用户在应用程序中打开屏幕时,都会录制屏幕事件。这可能是视图,片段,对话框或活动,具体取决于您的应用程序。

示例屏幕调用:

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

屏幕呼叫有以下字段:

姓名NSString * 例如,屏幕的名称注册或者首页
特性NSDictionary *,可选 屏幕的属性词典。屏幕照片饲料可能有像饲料类型或者排序
选项NSDictionary *,可选 一本额外的字典选项的电话。

查找有关屏幕有效载荷的详细信息屏幕规格文档

团体

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

这对于像这样的工具很有用对讲机,罚款Totango,因为它将用户联系在一起集团其他用户。

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

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

组呼包括以下字段:

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

了解更多关于集团包括集团有效载荷在我们的规范

别名

段别名方法是你如何将一个单位与另一个。这是一种高级方法,但在某些目的地成功管理用户身份时需要使用它。

mixpanel.它用于在匿名用户注册后将其与身份确认的用户联系起来。为只有,如果您的用户切换了id,则可以使用“alias”重命名“userId”。

别名调用示例:

分析共享()别名(“一些新的id”)
[[塞纳利斯SharedAnalytics.]别名:@”一些新的id”];

Alias调用有以下字段:

newIdNSString * 您想要映射到的用户的新id。
选项NSDictionary *,可选 一本额外的字典选项的电话。

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

匿名

你可以检索匿名库通过以下方式设置:

分析共享()getAnonymousId
[[塞纳利斯SharedAnalytics.]getAnonymousId];

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

分析共享()识别(,特征:(“电子邮件”:“用户的电邮地址”],选项:(“匿名”:“test_anonymousid”]);
[[塞纳利斯SharedAnalytics.]识别:特征:@ {@“电子邮件”:@“用户的电子邮件地址”}选项:@ {@“Anonymousid”:@“test_anonyousid”});

重置

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

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

分析共享()重置()
[[塞纳利斯SharedAnalytics.]重置];

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

请注意:每次打电话重置这将会影响你处理的月度跟踪用户(mtu)数量。

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

取决于观众对你的应用程序(例如,儿童)或国家,你卖你的应用(例如,欧盟),您可能需要提供用户选择退出的能力分析数据收集从你的应用,你可以关闭转发所有的目的地包括段本身使用下面的代码:

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

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

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

如果禁用段SDK响应用户选择选择,则忽略所有段方法调用(轨道,屏幕,识别等)。但是,这不会禁用您与段捆绑在一起的任何目标SDK。您应该为那些目的地咨询供应商文档,并调用相应的禁用用于每个打包SDK的方法,以确保任何自动数据收集停止。

选择目的地

你可以通过考试一体化对象,跟踪、别名、分组和识别呼叫,以打开或关闭特定目的地。所有目的地默认为启用状态。

您可以通过指定指定启用或禁用目的地nsdictionary *在里面选项如下面的例子所示:

选项:(“集成”:(“ENABLED_INTEGRATION_NAME”:真的,“DISABLED_INTEGRATION_NAME”:]]
选项:@ {@“集成”:@ {@“enabled_integration_name”:@YES,@“disabled_integration_name:@no}}

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

分析共享()追踪(“产品评为“,特性:,选项:(“集成”:(“所有”:真的,“Mixpanel年”:]])
[[塞纳利斯SharedAnalytics.]追踪:@“产品评为“特性:选项:@ {@“集成”:@ {@“全部”:@YES,@“Mixpanel年”:@不}}];

目的地标志是区分大小写和匹配目的地的名称在文档中(例如“AdLearn开放平台”、“awe”。sm”、“MailChimp的”,等等)。

笔记:业务级客户可以从源模式页面过滤manbetx客户端应用下载来自段应用程序的跟踪调用。Segment建议你尽可能使用这种方法,因为它更简单,可以在不改变应用代码的情况下进行更新。

在调试器中禁用目标

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

一体化:{段.IO.:,谷歌分析:,Localytics:,mixpanel.:}

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

日志记录

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

分析调试(真的)
(塞纳利斯调试:是的];

或者像这样禁用它:

分析调试()
(塞纳利斯调试:];

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

代理HTTP (S)调用

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

这将通过代理运行段API的HTTP通信。

配置=分析配置(写作:“your_write_key”)//设置自定义请求出厂,允许您修改库创建HTTP请求的方式。//在这种情况下,我们正在将URL转换为指向自己的自定义非段主机。配置requestFactory={(URL.:URL)- >urlrequestvar结果=urlrequest(URL.:URL.)如果var成分=urlcomponents.(URL.:URL.,resolvingAgainstBaseURL:){成分主持人=“YOUR_PROXY_HOST”如果transformedURL=成分URL.{结果=urlrequest(URL.:transformedURL)}}返回结果}//设置任何其他自定义配置选项。......//使用配置初始化SDK分析设置(:配置)
SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];//设置自定义请求出厂,允许您修改库创建HTTP请求的方式。//在这种情况下,我们正在将URL转换为指向自己的自定义非段主机。配置requestFactory=^(NSURL*URL.){NSURLComponents*成分=(NSURLComponentsComponentsWithurl.:URL.resolvingAgainstBaseURL:];//将YOUR_PROXY_HOST替换为你的代理的地址,例如aba64da6.ngrok.io。成分主持人=@“YOUR_PROXY_HOST”;NSURL*transformedURL=成分URL;返回(nsmutableurlrequest.RequestWithurl.:transformedURL];};//设置任何其他自定义配置选项。......//使用配置初始化SDK(塞纳利斯setupwithconfiguration.:配置];

广告跟踪和IDFA

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

  1. 导入AdSupport应用跟踪透明度框架由苹果
  2. 将以下代码片段传递给段配置并开始跟踪事件
  3. 提示用户同意并收集IDFA

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

进口AdSupport......配置=分析配置(写作:“your_write_key”)//启用广告收集配置enableAdvertisingTracking=真的//在需要广告内部时设置要调用的块//注意:在iOS 14中,你需要手动在其他地方进行授权,只有当它被授权时,返回advertisingIdentifier通过下面的块分段配置adsupportblock.={()- >字符串返回ASIdentifierManager共享()广告identifier}分析设置(:配置)
@ importAdSupport;......SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];//启用广告收集配置enableAdvertisingTracking=是的;//在需要广告内部时设置要调用的块//注意:在iOS 14中,你需要手动在其他地方进行授权,只有当它被授权时,返回advertisingIdentifier通过下面的块分段配置adsupportblock.=^{返回[[ASIdentifierManagerSharedManager.]广告identifier];}(塞纳利斯setupwithconfiguration.:配置];

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

笔记:ios可以在没有IDFA的情况下继续收集事件,直到提示用户,并且只有在用户同意的情况下advertisingid.字段被添加到事件有效载荷

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

device.adtrackingEnabled. 真的如果使用Closure和用户同意,则SDK设置,否则
device.advertisingId idfa_value如果用户选择否则此密钥会跳过事件有效载荷

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

出血边缘释放

Segment通过标记和发布,在每个第二周的星期三发布稳定版本掌握分支。

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

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

CocoaPods

在您的中添加此行Podfile.:

'分析',:git= >'https://github.com/segingio/analytics- os.git',:分支= >'掌握'

包装设备模式目的地SDK

默认情况下,该段分析pod不打包任何目的地sdk。

'分析',“~ > 4.1.0”

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

“Segment-Bugsnag”“Segment-Branch”“Segment-GoogleAnalytics”......

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

进口部分进口部分-GoogleAnalytics进口部分-分支分析配置*配置=分析配置(写作:“your_write_key”)//添加任何您的设备模式目的地。配置使用(SEGGoogleAnalyticsIntegrationFactory实例())配置使用(BNCBranchIntegrationFactory实例())......分析性设置(:配置)
#import  #import  #import <段 - 分支/ bncbranchintegrationfactory.h>SEGAnalyticsConfiguration*配置=(SEGAnalyticsConfigurationconfigurationWithWriteKey.:@“YOUR_WRITE_KEY”];//添加任何您的设备模式目的地。(配置使用:【SEGGoogleAnalyticsIntegrationFactory实例]];(配置使用:【BNCBranchIntegrationFactory实例]];......(塞纳利斯setupwithconfiguration.:配置];

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

最后更改:2021年1月15日



开始使用细分

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