Singular SDK 可作为 Segment 的插件使用,被称为 "设备模式 "目的地。下面的说明介绍了如何在 Segment 中添加 Singular 目的地。
工程团队指南 | 工程团队 |
前提条件 | 本文假设您 的应用程序中已经 集成了 Segment iOS 或 Android Analytics SDK。 |
要使用此集成,您必须使用 Segment 的移动分析 SDK:iOS(原生 Obj-C 或 Swift)、Android(Java 或 Kotlin)。此集成不兼容任何其他框架,包括 Unity、Factual Engine、React Native 或 Xamarin 等!
- 基本安装属性
- 支持 SkAdNetwork 3 (SKAN 3.0)
- 苹果搜索广告归因
- 自定义应用内事件跟踪
- 收入跟踪
- 自定义用户 ID
- 支持 SkAdNetwork 4 (SKAN 4.0)
- META 安装推荐人归属
- 深度链接
- 有限的数据共享支持
如果您需要其他框架的支持,或希望获得 Singular SDK 提供的 "完整功能",则必须独立于 Segment 实施 Singular SDK。请点击此处查看 SDK 选项和框架。
开始使用
- 在 Segment 网络应用程序中,点击 "连接 "菜单下的 "目录"。
- 在目录中搜索"Singular",选择它,然后点击 "添加目的地 "按钮。
- 选择要将目的地连接到的源,然后单击 "下一步"。
- 为目的地命名,然后点击 "创建目的地"。
- 在 Singular 控制面板的" 开发工具 > SDK 集成 > SDK 密钥 "下获取 Singular "SD K 密钥",并将其添加到 "连接设置 "部分的 "API 密钥 "和 "密文 "下。
重要: 确保使用 Singular SDK 密钥作为 Segment 中的 API 密钥值。如果使用了错误的密钥,Singular 将无法接收任何数据。
其他设置
要使用本集成的纯本地功能,你需要在依赖关系配置中添加以下几行,以包含 Singular 库:
- 在Link Binary With Libraries(链接二进制库)中添加AdServices.framework,并将其标记为可选(仅适用于 iOS 14.3 及更高版本的设备)。 这是支持 Apple Search Ads 归因所必需的。
- 将 Singular Segment 集成 pod 添加到应用程序的 podfile 中,如下所示:
pod 'Segment-Singular'
- 在文件中导入 Singular 库:
#import <Segment-Singular/SEGSingularIntegrationFactory.h>
- 最后,向 Segment SDK 注册 Singular
SEGAnalyticsConfiguration *configuration = [SEGAnalyticsConfiguration configurationWithWriteKey:@”<SEGMENT_WRITE_KEY>”]; // Enable this to record certain application events automatically!
configuration.trackApplicationLifecycleEvents = YES;
// Enable this to record screen views automatically!
configuration.recordScreenViews = YES;
// Add any of your Device-mode destinations.
configuration use:[SingularIntegrationFactory instance]];
[SEGAnalytics setupWithConfiguration:configuration];let configuration = AnalyticsConfiguration(writeKey: "<SEGMENT_WRITE_KEY>")
// Enable this to record certain application events automatically!
configuration.trackApplicationLifecycleEvents = true
// Enable this to record screen views automatically!
configuration.recordScreenViews = true
// Add any of your Device-mode destinations. configuration.use(SingularIntegrationFactory.instance())
Analytics.setup(with: configuration) - [可选] 实现 SKAN 支持
Singular SDK 可以控制您的 SKAdnetwork 集成。 有关其工作原理的详细信息,请参阅iOS SDK:添加 SKAdNetwork 支持。
要让 Singular 控制您的 SKAdNetwork 集成,请在Segment SDK 初始化之前添加以下代码:
[SingularIntegation setSKANOptions:YES isManualSkanConversionManagementMode: NO withWaitForTrackingAuthorizationWithTimeoutInterval:@0 withConversionValueUpdatedHandler:^(NSInteger conversionValue) { NSLog(@"Your SKAN handler %ld",conversionValue); }];
SingularIntegation.setSKANOptions(
true,
isManualSkanConversionManagementMode: false,
withWaitForTrackingAuthorizationWithTimeoutInterval: NSNumber(value: 0), withConversionValueUpdatedHandler: { conversionValue in print(String(format: "Your SKAN handler %ld", conversionValue)) })
- 在应用程序的 build.gradle文件中添加 Singular Segment 集成依赖项:
compile 'net.singular.segment.integration:singular_segment_sdk:+'
- 在AndroidManifest.xml文件中添加所需的权限。包括以下权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
- 添加依赖关系后,必须导入集成
import net.singular.segment.integration.SingularIntegration;
- 最后,添加代码以初始化 Singular SDK
添加.trackApplicationLifecycleEvents() 向 Singular 发送应用程序打开、应用程序更新和应用程序安装事件。
static final String SEGMENT_WRITE_KEY = "<YOUR_KEY>"; @Override protected void onCreate(Bundle savedInstanceState) {
Analytics analytics = new Analytics.Builder(this , SEGMENT_WRITE_KEY) .use(SingularIntegration.FACTORY .logLevel(Analytics.LogLevel.VERBOSE) .recordScreenViews() .trackApplicationLifecycleEvents() .build(); Analytics.setSingletonInstance(analytics); }
安装归因
使用初始化配置参数(iOS、Android)启用自动跟踪生命周期事件(应用程序已打开、应用程序已安装、应用程序已更新),以便在 Singular 中跟踪安装和会话。只要包含上述事件,Singular "会话 "将通过集成自动发送。
跟踪自定义事件
如果你对 Segment Specs 不熟悉,请看一看了解Track 方法的作用。
使用 Segment 跟踪功能将事件翻译并发送到 Singular:
[[SEGAnalytics sharedAnalytics] track:@"simple event"];
Analytics.with(this).track("event_name");
Segment 会将所有事件属性作为 Singular 事件的回调参数。
这些事件可用于报告和用户级导出。
收入跟踪
当发送包含收入属性(包括零值)的事件时,Singular 将接收收入跟踪。您可以选择传递货币(作为ISO 4217 货币代码)。默认货币为美元。
[[SEGAnalytics sharedAnalytics] track:@"segment revenue event" properties:@{@"currency": @"USD", @"revenue":@20}];
Analytics.with(this).track("purchase", new Properties().putRevenue(2.5).putValue("currency","USD"));
注意:以三个字母的 ISO 4217 货币代码形式传递货币,如 "USD"、"EUR"、"INR"。
自定义用户 ID
您可以使用Segmentidentify方法向Singular发送您的Segment用户ID。
注意:如果使用Singular的跨设备解决方案,必须在所有平台上收集相同的用户ID。
- 用户 ID 可以是任何标识符,但不能暴露 PII(个人身份信息),例如,不能使用用户的电子邮件地址、用户名或电话号码。Singular 建议使用仅对第一方数据唯一的哈希值。
- 传递给Singular的用户ID值也应该是你在所有平台(Web/移动/PC/控制台/离线)上获取的相同的内部用户ID。
- Singular 将在用户级导出、ETL 和内部 BI 回传(如果配置)中包含用户 ID。用户 ID 是第一方数据,Singular 不会与其他方共享。
- 用户 ID 值设置后将一直存在,直到使用 "分段重置"方法取消设置或卸载应用程序为止。关闭或重启应用程序不会取消设置用户 ID。
请按照以下步骤进行配置:iOS、Android。
[[SEGAnalytics sharedAnalytics] identify:@"segment custom user id"];
Analytics.with(context).identify("myUserId");
要取消设置自定义用户 ID,请调用重置方法。
[[SEGAnalytics sharedAnalytics] reset];