分析了iOS


当前版本:4.1.5

发布日期:7月09,2021

在iOS Analytics中,你可以将数据发送给分析或营销工具,而无需学习、测试或执行每一次更新或添加的新API。


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

分析 - 快速飞行员

可以在分析 - SWIFT图书馆的试验版本Analytics-Swift存储库。该图书馆受到细分的管辖首先访问和β术语,不应在生产场景中使用。

Analytics-iOS和唯一标识符

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

当然,Analytics SDK需要每个用户的唯一ID。为了保护最终用户的隐私,Apple会限制这些ID如何生成和使用。本节介绍Apple的策略,以及段如何符合这些策略的ID。

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

Segment的iOS库通过生成UUID并将其存储在磁盘上来支持iOS 7+。这符合苹果要求的隐私政策,保持兼容性,还能在多人使用同一设备的情况下进行正确跟踪,因为UUID可以重新生成。

在Analytics-iOS中的API调用排队

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

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

对于云模式目的地,当您制作API调用(曲目,页面等)时,段库会将调用队列的调用,并以批处理发送到段服务器。默认情况下,批量大小是100.

批次发送:

  • 当队列中有20个或更多事件时
  • 定时,每30秒一次
  • 当应用程序进入后台

为了限制内存和磁盘的使用,Segment只队列最多1000个事件。当应用程序终止时,Segment将队列保存到磁盘,并在应用程序启动时再次加载数据,这样就不会有数据丢失。

入门

关于移动连接模式

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

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

如果您计划使用需要设备模式的目的地,则必须这样做打包该工具的SDK的分段集成版本Segment-integration SDK允许你仍然用Segment收集数据,但也支持任何基于设备的功能,仍然节省你的空间。

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

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

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

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

安装SDK.

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

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

'分析''〜> 4.1'

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

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

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

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

进口
#import 

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

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

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

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

配置和搭建SDK

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

分析设置AnalyticsConfigurationwriteKey“your_write_key”)))
[塞纳利斯setupwithconfiguration.:[SeagnalyticsConfiguration.configurationWithWriteKey.@“your_write_key”]];
writeKeyNSString * 你的细分源写钥匙

应用程序生命周期跟踪

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

配置=AnalyticsConfigurationwriteKey“your_write_key”配置trackApplicationLifecycleEvents=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“your_write_key”];配置trackApplicationLifecycleEvents=是的;[塞纳利斯setupwithconfiguration.配置];

自动屏幕跟踪

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

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

自动推送通知跟踪

当你设置时trackPushNotifications是的时,SDK自动发送Track事件推送通知收到推送通知拍打

配置=AnalyticsConfigurationwriteKey“your_write_key”配置trackPushNotifications=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“your_write_key”];配置trackPushNotifications=是的;[塞纳利斯setupwithconfiguration.配置];

当你设置时trackdeeplinks.是的时,SDK自动发送Track事件深纽带打开了

配置=AnalyticsConfigurationwriteKey“your_write_key”配置trackdeeplinks.=真的分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“your_write_key”];配置trackdeeplinks.=是的;[塞纳利斯setupwithconfiguration.配置];

冲洗

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

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

你也可以手动fl队列:

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

数据采集

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

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

确认

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

Segment建议,当你第一次创建用户的账户时,你可以给Identify打一次电话,之后当他们更新他们的特征或你改变他们时再打一次电话。

笔记:段自动分配匿名在识别它们之前给用户。这用户身份是在设备上连接匿名活动的原因(例如,iPhone和iPad)。

例子确认电话:

分析共享()确认“用户的ID”特征[“电子邮件”“用户的电子邮件地址”])
[[塞纳利斯SharedAnalytics.]确认@“用户的ID”特质:@ {@“电子邮件”@"用户的电子邮件地址"}];
用户身份nsstring *,可选 此用户的数据库ID。如果你不知道用户谁,你可以省略用户身份只是记录特征.你可以阅读更多确定参考
特征nsdictionary *,可选 你对用户了解的特征词典电子邮件要么的名字.您可以阅读更多关于特征的信息确定参考
选项nsdictionary *,可选 额外的字典选项的电话。

iOS的Analytics在其自己的后台线程上工作,因此它永远不会阻止UI或呼叫线程的主线程。

调用- 确认:与一个用户身份将该ID写入磁盘以便在后续调用中使用。可以通过卸载应用程序或通过调用来删除该ID重置

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

追踪

Segment的Track方法允许您记录用户执行的操作。每个动作都会触发一个我们称之为“事件”的东西,它还可以有相关的属性。

要开始,段IOS SDK可以自动跟踪一些关键的常见事件分段本机移动规范, 如那个安装应用程序申请更新应用程序打开.在初始化期间启用此选项。

您可能还想跟踪对您的移动应用程序成功指标的事件,如注册商品购买要么文章书签.Segment建议从几个重要的事件开始。你可以随时添加更多内容!一个跟踪调用示例如下:

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

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

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

Track调用有以下字段:

事件NSString * 事件的名称。我们推荐人们可以读懂的名字,比如歌曲播放要么状态已更新
特性nsdictionary *,可选 事件的属性词典。如果事件是加产品对于cart,它可能有如下属性价钱productType
选项nsdictionary *,可选 额外的字典选项的电话。

屏幕

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

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

示例屏幕调用:

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

屏幕呼叫有以下字段:

的名字NSString * 例如,屏幕的名称注册要么
特性nsdictionary *,可选 屏幕的属性词典。屏幕照片饲料可能有这样的属性饲料类型要么排序
选项nsdictionary *,可选 额外的字典选项的电话。

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

团体

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

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

Group调用的示例如下:

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

Group调用有以下字段:

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

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

别名

段别名方法是将一个身份与另一个身份关联的方式。这是一种高级方法,但需要在某些目的地中成功管理用户身份。

mixpanel.它用于将匿名用户与识别的用户联系起来,一旦注册。为了只有如果您的用户切换ID,则可以使用“别名”重命名'userid'。

别名调用示例:

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

别名调用有以下字段:

NSString * 您要映射到的用户的新内行。
选项nsdictionary *,可选 额外的字典选项的电话。

有关Alias方法(包括Alias调用有效负载)的详细信息,请查看别名规范文档

匿名

您可以检索匿名由库通过使用:

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

设置匿名要自定义值,您可以通过该价值通过选项参数:

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

重置

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

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

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

重置不会清除队列中的事件,队列中剩余的事件将在应用程序下次启动时发送。你也许该打个电话fl在呼叫重置之前。

请注意:每次你打电话来重置,下次将应用程序打开时生成一个新的匿名,它会影响您处理的月度跟踪用户(MTU)的数量。

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

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

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

或者如果用户选择重新入住,则可以重新启用数据收集:

分析共享()使能够()
[[塞纳利斯SharedAnalytics.]使能够];

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

选择目的地

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

您可以通过指定NSDictionary *选项段方法的参数如下示例:

选项[“集成”[“ENABLED_INTEGRATION_NAME”真的“disabled_integration_name”错误的]]
选项:@ {@“集成”@ {@“ENABLED_INTEGRATION_NAME”@是的@“disabled_integration_name:@no}}

下面的示例显示了除MixPanel之外,发送给所有已启用的目标的曲目调用:

分析共享()跟踪“产品评分”特性选项[“集成”[“所有”真的“Mixpanel年”错误的]])
[[塞纳利斯SharedAnalytics.]跟踪@“产品评分”特性:选项:@ {@“集成”@ {@“所有”@是的@“mixpanel”@不}});

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

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

调试器中的残疾目的地

的原始有效负载数据时段调试器,你可能会看到一个一体化对象,该对象指示您的某些目的地已关闭,即使您没有明确关闭它们。你可能会看到下面这个例子:

一体化{Segment.io错误的谷歌分析错误的localytics.错误的mixpanel.错误的}

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

日志记录

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

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

或者这样禁用它:

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

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

代理HTTP (S)调用

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

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

配置=AnalyticsConfigurationwriteKey“your_write_key”//设置一个自定义请求工厂,允许您修改库创建HTTP请求的方式。//在这种情况下,我们正在将URL转换为指向自己的自定义非段主机。配置请求={URL.URL.- >URLRequestvar.结果=URLRequestURL.URL.如果var.组件=urlcomponents.URL.URL.soldingagainstbaseurl.错误的{组件主持人=“YOUR_PROXY_HOST”如果变换杜尔尔=组件URL.{结果=URLRequestURL.变换杜尔尔}}返回结果}//设置其他自定义配置选项。...//使用配置初始化SDK分析设置配置
SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“your_write_key”];//设置一个自定义请求工厂,允许您修改库创建HTTP请求的方式。//在这种情况下,我们正在将URL转换为指向自己的自定义非段主机。配置请求=^NSURL.*URL.{NSURLComponents*组件=[NSURLComponentsComponentsWithurl.URL.soldingagainstbaseurl.];//将YOUR_PROXY_HOST替换为你的代理的地址,例如aba64da6.ngrok.io。组件主持人=@“your_proxy_host”;NSURL.*变换杜尔尔=组件URL.;返回[NSMutableURLRequestrequestWithURL变换杜尔尔];};//设置其他自定义配置选项。...//使用配置初始化SDK[塞纳利斯setupwithconfiguration.配置];

广告跟踪和IDFA

从iOS 14开始,应用程序必须提示用户,如果该应用程序需要收集他们的广告商标识符(IDFA)。在ios-4.1及以后版本中,Segment并不会自动收集IDFA。如果你的应用或任何集成需要使用IDFA,你需要:

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

您可以使用以下Closure Scippet将值传递给analytics-ios配置:

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

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

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

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

device.adtrackingEnabled. 真的如果SDK是在用户同意的情况下关闭的,错误的否则
device.advertisingId idfa_value.如果用户选择否则此密钥会跳过事件有效载荷

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

出血边缘释放

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

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

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

CocoaPods

在您的中添加此行Podfile.

'分析':git=>“https://github.com/segmentio/analytics-ios.git”:分支=>“大师”

包装设备模式目的地SDK

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

'分析''〜> 4.1.0'

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

'段 -  bugsnag''分段分支''semment-googleanalytics'...

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

进口进口-谷歌分析进口-分支AnalyticsConfiguration*配置=AnalyticsConfigurationwriteKey“your_write_key”//添加任何您的设备模式目的地。配置采用seggoogleanalyticsIntegrationFactory.实例())配置采用BNCBranchIntegrationFactory实例())...分析性设置配置
#import  #import  #import <段 - 分支/ bncbranchintegrationfactory.h>SeagnalyticsConfiguration.*配置=[SeagnalyticsConfiguration.configurationWithWriteKey.@“your_write_key”];//添加任何您的设备模式目的地。[配置采用:[seggoogleanalyticsIntegrationFactory.实例]];[配置采用:[BNCBranchIntegrationFactory实例]];...[塞纳利斯setupwithconfiguration.配置];

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

最后更改:2021年7月28日



开始使用细分

细分是将你的网站和手机应用数据整合到300多个分析和增长工具中的最简单方法。
要么
创建免费帐户