Segment 是一个客户数据基础架构(CDI)平台,可帮助企业收集、清理客户数据并将其发送到不同目的地。与 mParticle 相似,Segment 提供了一个单一的 API,用于从网站、移动应用程序、服务器和云服务等多个来源收集数据。
Singular SDK 提供了许多标准"设备模式 "或"云模式 "集成选项无法提供的功能。
在将 Segment 与 Singular 结合使用时,建议采用混合方法进行集成,以充分利用 Singular 的所有特性和功能。
混合方法包括
- 独立于Segment实施Singular SDK,允许Singular SDK处理会话跟踪,增加对SDK框架(React Native、Unity等)、SkAdNetwork、深度链接和延迟深度链接以及高级功能的支持。
- 在单一目的地的 Segment 中启用"云模式 "选项。这样就可以将所有 Segment 移动跟踪事件发送到 Singular 目的地。
以下说明阐述了如何使用 Segment 配置 Singular 混合实施。
工程团队指南 | 工程团队 |
前提条件 | 本文假定您 的应用程序中已经 集成了Segment移动分析SDK。 |
要使用此集成,您必须使用 Segment 的移动分析 SDK。
Singular SDK 将提供以下支持:
- 安装归因
- 支持 SkAdNetwork
- 支持谷歌安装推荐人
- META 安装推荐人支持
- 苹果搜索广告归因
- 自定义应用内事件跟踪
- 收入跟踪
- 自定义用户 ID
- 全局属性支持
- 隐私选项
分部 "云模式 "集成将支持移动安装后事件(不支持网络事件):
- 自定义应用内事件跟踪
- 收入跟踪
- 自定义用户 ID
- Android AppSetId(更多)
当谷歌广告ID不可用时,Singular的SDK会将Android AppSetId用作追踪SDK活动的后备标识符。虽然该标识符不用于归属目的,但它在识别设备和将应用内事件与所述设备关联方面发挥作用。
Segment 不会捕获 Android AppSetId,因此当用户的设备没有谷歌广告标识符时,Segment 将无法向 Singular "云模式 "目的地发送任何事件。如果 Segment 向 Singular 发送的事件所使用的标识符与 Singular SDK 与同一设备关联的标识符不同,就会产生差异。S2S事件的未知标识符的有机归属和可能的错误归属收入事件。
如果您对此边缘案例有任何疑问,请与 Singular 解决方案工程师联系。
混合配置
建议的附加设置
使用混合方法时,建议将分段匿名ID和分段用户ID传递给Singular的SDK。
请特别注意并小心实施 SDK 文档中的这些可选功能。根据使用的框架不同,步骤可能略有不同。
实现全局属性
将分段匿名用户 ID传递到 Singular 全局属性中。这将把 "AnonymousId 段 "与 SDK 提供的设备级数据关联起来。在 Singular SDK 初始化时,在 Singular 配置对象中向 Singular 提供此值,还能让 Singular 在用户 ID 未知时向 Segment 发送安装回传。
Singular只能使用Segment AnonymousId和/或Segment UserId值从应用程序安装向Segment提供归属信息。请参考 Singular 的全局属性[iOS][Android],作为如何配置的示例。
全局属性应在初始化 Singular SDK 时配置,键值为segment_anonymous_id 和从 Segment SDK 获取的Segment anonymousId值。可以使用此方法从 Segment SDK 获取段匿名 ID。
Analytics.with(context).getAnalyticsContext().traits().anonymousId()
奇异 SDK 配置示例
func getConfig() -> SingularConfig? {
// (Optional) Get 3rd-party identifiers to set in Global Properties:
// If 3rd-party SDKs are providing any identifiers to Singular, the
// respective SDK must be initialized before Singular.
let thirdPartyKey = "segment_anonymous_id"
let thirdPartyValue = SEGAnalytics.shared().getAnonymousId()
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET)
else {
return nil
}
...
// Using Singular Global Properties feature to capture third party identifiers
config.setGlobalProperty(thirdPartyKey,
withValue:thirdPartyValue, overrideExisting: true)
...
return config}
- (SingularConfig *)getConfig {
// Get the 3rd-party identifiers to set in Global Properties:
// If 3rd-party SDKs are providing any identifiers to Singular, the
// respective SDK must be initialized before Singular.
NSString* thirdPartyKey = @"segment_anonymous_id";
NSString* thirdPartyValue = [[SEGAnalytics sharedAnalytics] getAnonymousId];
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc]
initWithApiKey:APIKEY andSecret:SECRET];
...
// Using Singular Global Properties feature to capture 3rd-party identifiers
[config setGlobalProperty:thirdPartyKey
withValue:thirdPartyValue overrideExisting:YES];
...
return config;}
// (Optional) Get 3rd-party identifiers to set in Global Properties:
// If 3rd-party SDKs are providing any identifiers to Singular, the
// respective SDK must be initialized before Singular.
String thirdPartyKey = new String("segment_anonymous_id");
String thirdPartyValue = new String(Analytics.with(context).getAnalyticsContext().traits().anonymousId());
// Singular Config Options
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET")
.withGlobalProperty(thirdPartyKey, thirdPartyValue, true);
实施自定义用户 ID
将分段用户 ID 传入 Singular 自定义用户 ID 方法。这将把段用户 ID 与 SDK 的设备级数据关联起来。在 Singular SDK 初始化时,在 Singular 配置对象(Singular Config object)中向 Singular 提供此值,也将允许 Singular 在安装回传时向 Segment 发送用户 ID。请阅读更多信息,了解用于 Singular 集成的 SDK 框架文档。iOS][Android]示例
此外,用户 ID 将与 Singular SDK 本地触发的任何应用内事件相关联。
对于收到的 "云模式 "事件,Singular 会将自定义用户 ID映射到分段用户 ID值。请务必按照以下步骤进行配置:iOS、Android。
配置 Singular 合作伙伴配置
您需要在 "合作伙伴配置 "页面启用Segment,以便将安装数据传回Segment。
在 Singular Platform:
- 导航至 "属性 > 合作伙伴配置",然后单击 "添加合作伙伴 "按钮。
- 搜索 Segment
- 选择应用程序和网站
- 点击保存