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

RudderStack 是一个开源的客户数据平台(CDP) 它使企业能够收集、统一客户数据并将其路由到各种目的地。它提供了一个用于管理客户数据管道的集中式平台,使组织能够轻松地从网站、移动应用、服务器和云服务等各种来源收集数据。

Singular SDK 提供了许多通过标准 "Device-Mode" "Cloud-Mode" 集成选项无法获得的功能。

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

混合方法包括:

  1. 独立于 Rudderstack 实现 Singular SDK ,让 Singular SDK 处理会话跟踪、对 SDK 框架(React Native、Unity 等)的额外支持、SkAdNetwork、深度链接和延迟深度链接,以及高级功能。
  2. 在 Rudderstack 中为 Singular Destination 启用 "Cloud-Mode" 选项。这样可以将所有 Rudderstack 移动端 track 事件发送到 Singular 的 Destination。

以下说明介绍了如何通过 Rudderstack 配置 Singular 混合实现。

适用对象 工程团队
前提条件 本文假设您的应用中 已集成 Rudderstack Mobile SDK。

要使用此集成,您必须使用 Rudderstack 的 Mobile SDK。

支持的功能

Singular SDK 将提供以下支持:

  1. 安装归因
  2. SkAdNetwork 支持
  3. Google Install Referrer 支持
  4. META Install Referrer 支持
  5. Apple Search Ads 归因
  6. 自定义应用内事件跟踪
  7. 收入跟踪
  8. Custom User ID
  9. Global Properties 支持
  10. 隐私选项

Rudderstack "Cloud-Mode" 集成将提供以下支持:

  1. 自定义应用内事件跟踪
  2. 收入跟踪
  3. Custom User ID

混合配置

  1. 集成 Singular SDK

    独立于 Rudderstack 实现 Singular SDK。请参阅 SDK 选项和框架 此处

  2. 启用 Rudderstack - Singular Destination(Cloud-Mode)

    请按照指南操作 此处

避免重复的会话事件: 在混合方法中,Singular SDK 已经管理会话跟踪。在配置 Rudderstack - Singular Destination(Cloud-Mode)时,请 不要 设置 "Session Event Name" 连接设置,也不要通过 Rudderstack 向 Singular 发送 Application Installed Application Opened Application Updated 生命周期事件。否则会导致 Rudderstack 与 Singular SDK 并行发送会话事件,从而在 Singular 中产生重复的会话事件。

建议的其他设置

使用混合方法时,建议将 Rudderstack AnonymousId 和 Rudderstack User ID 传递给 Singular 的 SDK。

请特别注意并谨慎地根据 SDK 文档实现这些可选功能。具体步骤可能会因您使用的框架而略有不同。

实现 Global Properties

将 Rudderstack AnonymousId 传入 Singular Global Property。这会将 Rudderstack AnonymousId 与来自 SDK 的设备级数据关联起来。

在 Singular SDK 初始化时于 Singular Config 对象中向 Singular 提供此值,还可以让 Singular 在 UserId 未知时向 Rudderstack 发送安装 postback。

Singular 只能使用 Rudderstack AnonymousId 和/或 Rudderstack UserId 值向 Rudderstack 提供来自 应用安装 的归因信息。请参阅 Singular 的 Global Properties [ iOS ][ Android ] 作为其配置方式的示例。

在初始化 Singular SDK 时,应使用以下键配置该 Global Property: rudderstack_anonymous_id ,其值为从 Rudderstack SDK 检索到的 Rudderstack anonymousId 。可以使用此方法从 Rudderstack SDK 获取 Rudderstack AnonymousID [iOS] [Android]
[RSClient getInstance].anonymousId;

Singular SDK 配置示例

iOS(Obj-C) Android(Java)

- (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 = @"rudderstack_anonymous_id";
   NSString* thirdPartyValue = [RSClient getInstance].anonymousId;
   
   // 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;}

实现 Custom User ID

将 Rudderstack UserId 传入 Singular Custom User ID 方法。这会将 Rudderstack UserId 与来自 SDK 的设备级数据关联起来。在 Singular SDK 初始化时于 Singular Config 对象中向 Singular 提供此值,还可以让 Singular 在向 Rudderstack 发送的安装 postback 中包含 UserId。请根据您用于 Singular 集成的 SDK 框架阅读更多文档。示例:[ iOS ][ Android ]

此外,该 UserID 还将与从 Singular SDK 原生触发的任何应用内事件相关联。

对于接收到的 "Cloud-Mode" 事件,Singular 已将 Custom User ID 映射到 Rudderstack User ID 值。