Segment - Singular 混合集成(Singular SDK + Segment 云模式)

Singular SDK 提供了许多标准"设备模式"或"云模式 "集成选项无法提供的功能。

在将 Segment 与 Singular 结合使用时,建议采用混合方法进行集成,以充分利用 Singular 的所有特性和功能。

混合方法包括

  1. 独立于Segment实施Singular SDK,允许Singular SDK处理会话跟踪,增加对SDK框架(React Native、Unity等)、SkAdNetwork、深度链接和延迟深度链接以及高级功能的支持。
  2. 在单一目的地的 Segment 中启用"云模式 "选项。这样就可以将所有 Segment 移动跟踪事件发送到 Singular 目的地。

以下说明阐述了如何使用 Segment 配置 Singular 混合实施。

工程团队指南 工程团队
前提条件 本文假定您 的应用程序中已经 集成了Segment移动分析SDK

要使用此集成,您必须使用 Segment 的移动分析 SDK。

支持内容

Singular SDK 将提供以下支持:

  1. 安装归因
  2. 支持 SkAdNetwork
  3. 支持谷歌安装推荐人
  4. META 安装推荐人支持
  5. 苹果搜索广告归因
  6. 自定义应用内事件跟踪
  7. 收入跟踪
  8. 自定义用户 ID
  9. 全局属性支持
  10. 隐私选项

分部 "云模式 "集成将支持

  1. 自定义应用内事件跟踪
  2. 收入跟踪
  3. 自定义用户 ID
不支持的功能
  1. Android AppSetId(更多)

    当谷歌广告ID不可用时,Singular的SDK会将Android AppSetId用作追踪SDK活动的后备标识符。虽然该标识符不用于归属目的,但它在识别设备和将应用内事件与所述设备关联方面发挥作用。
    Segment 不会捕获 Android AppSetId,因此当用户的设备没有谷歌广告标识符时,Segment 将无法向 Singular"云模式 "目的地发送任何事件。

    如果 Segment 向 Singular 发送的事件所使用的标识符与 Singular SDK 与同一设备关联的标识符不同,就会产生差异。S2S事件的未知标识符的有机归属和可能的错误归属收入事件。

    如果您对此边缘案例有任何疑问,请与 Singular 解决方案工程师联系。

混合配置

  1. 集成 Singular SDK

    独立于Segment实施Singular SDK。请点击此处查看 SDK 选项和框架。

  2. 启用 Segment - Singular 目的地(云模式)

    按照此处的指南操作。

建议的附加设置

使用混合方法时,建议将分段匿名ID和分段用户ID传递给Singular的SDK。

请特别注意并小心实施 SDK 文档中的这些可选功能。根据使用的框架不同,步骤可能略有不同。

实现全局属性

将SegmentAnonymousId传入Singular全局属性。 这将把Segment 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 配置示例

iOS(Swift)iOS(Obj-C)Android(Java)

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}

实现自定义用户 ID

将 Segment UserId 传入 Singular Custom User ID 方法。这将把 Segment UserId 与 SDK 提供的设备级数据关联起来。在 Singular SDK 初始化时,在 Singular 配置对象(Singular Config object)中向 Singular 提供此值,也将允许 Singular 在安装回传时向 Segment 发送用户 ID。请阅读更多有关SIngular集成所使用的SDK框架文档。[iOS][Android]示例

此外,用户 ID 将与 Singular SDK 本地触发的任何应用内事件相关联。

对于收到的 "云模式 "事件,Singular 会将自定义用户 ID映射到分段用户 ID值。请务必按照以下步骤进行配置:iOSAndroid

配置 Singular 合作伙伴配置

您需要在 "合作伙伴配置 "页面启用Segment,以便将安装数据传回Segment。

在 Singular Platform:

  1. 导航至 "属性 > 合作伙伴配置",然后单击 "添加合作伙伴 "按钮。
  2. 搜索细分市场
  3. 选择应用程序和网站
  4. 单击 "保存
segment_partner_config.png

常见问题和故障排除

为什么来自 Meta(Facebook)广告的安装在 Singular 的报告中归属正确,但在 Segment 集成中却显示为 "未归属"?

Facebook 对数据访问和用户级数据施加了限制,这可能会妨碍将归属数据准确传输到 Segment。

当安装通过 "安装 "事件发送到Segment时,Facebook的限制可能会阻碍用户级数据的准确传递。您可以在此处查看他们的数据政策。因此,虽然在 Singular 的汇总报告中,这些安装可能归属于 Facebook,但在 Segment 中却可能被归类为 "未归属"。