Singular SDKはSegmentのプラグインとして利用でき、「デバイスモード」デスティネーションと呼ばれます。以下に、SegmentにSingular Destinationを追加する方法を説明します。
ガイド | エンジニアリングチーム |
前提条件 | この記事では、 Segment iOS または Android Analytics SDKがすでに アプリに統合されていることを前提としています。 |
このインテグレーションを使用するには、SegmentのMobile Analytics SDK for iOS (Native Obj-CまたはSwift)、Android (JavaまたはKotlin)を使用している必要があります。このインテグレーションは、Unity、Factual Engine、React Native、Xamarinなどの他のフレームワークとは互換性がありません!
- 基本インストール
- SkAdNetwork 3 サポート (SKAN 3.0)
- Apple検索広告アトリビューション
- カスタムアプリ内イベントトラッキング
- 収益トラッキング
- カスタムユーザーID
- SkAdNetwork 4 サポート (SKAN 4.0)
- METAインストールのリファラー帰属
- ディープリンク
- 限定的なデータ共有サポート
他のフレームワークのサポートが必要な場合、またはSingular SDKが提供する「フルフィーチャー機能」をご希望の場合は、Segmentとは別にSingular SDKを実装する必要があります。SDKオプションとフレームワークについてはこちらをご覧ください。
はじめに
- Segmentウェブアプリから、"Connections "メニューの下にある "Catalog "をクリックします。
- カタログで"Singular "を検索して選択し、"Add Destination "ボタンをクリックします。
- デスティネーションに接続するソースを選択し、"Next "をクリックします。
- 接続先に名前を付け、"接続先を作成 "をクリックします。
- Singularダッシュボードの"Developer Tools > SDK Integration > SDK Keys "からSingularの"SDK KEY "を取得し、セグメントの "Connection Settings "の "API Key "と "Secret "に追加します。
重要: SegmentのAPI Key値には必ずSingular SDK Keyを使用してください。間違ったキーを使用すると、Singularはデータを受信できません。
追加セットアップ
この統合のネイティブ専用機能を使用するには、依存関係設定に以下の行を追加してSingularライブラリをインクルードする必要があります:
- Link Binary With Librariesに AdServices.frameworkを追加し、Optional(iOS 14.3以上のデバイスでのみ利用可能)とマークします。 これは、Apple Search Adsのアトリビューションをサポートするために必要です。
- 以下のように、Singular Segment統合ポッドをアプリのポッドファイルに追加します:
pod 'Segment-Singular'
- ファイルにSingularライブラリをインポートします:
#import <Segment-Singular/SEGSingularIntegrationFactory.h>
- 最後に、SingularをSegment SDKに登録します。
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の仕様に慣れていない方は、Trackメソッドが何をするのかを理解するためにご覧ください。
イベントを翻訳してSingularに送信するには、Segmentのトラック機能を使います:
[[SEGAnalytics sharedAnalytics] track:@"simple event"];
Analytics.with(this).track("event_name");
SegmentはすべてのイベントプロパティをSingularイベントのコールバックパラメータとして含みます。
イベントはレポートやユーザーレベルのエクスポートで利用できます。
収益トラッキング
収益プロパティを含むイベントが送信されると、Singularは収益トラッキングを受け取ります(ゼロ値を含む)。オプションで通貨を(ISO 4217通貨コードコードとして)渡すことができます。デフォルトの通貨はUSDです。
[[SEGAnalytics sharedAnalytics] track:@"segment revenue event" properties:@{@"currency": @"USD", @"revenue":@20}];
Analytics.with(this).track("purchase", new Properties().putRevenue(2.5).putValue("currency","USD"));
注:通貨は3文字のISO 4217通貨コードとして渡します(例:"USD"、"EUR"、"INR")。
カスタムユーザーID
セグメントユーザーIDをSingularに送信するには、Segmentidentifyメソッドを使用します。
注: SingularのCross-Deviceソリューションをご利用の場合は、すべてのプラットフォームで同じUserIDを収集する必要があります。
- ユーザーIDはどのような識別子でもかまいませんが、PII(個人を特定できる情報)を公開するものではありません。 例えば、ユーザーのメールアドレス、ユーザー名、電話番号は使用しないでください。Singularは、お客様のファーストパーティデータにのみユニークなハッシュ値を使用することを推奨します。
- Singularに渡すユーザーIDは、すべてのプラットフォーム(ウェブ/モバイル/PC/コンソール/オフライン)で同じ内部ユーザーIDを使用する必要があります。
- Singularはユーザーレベルのエクスポート、ETL、内部BIポストバック(設定されている場合)にユーザーIDを含めます。ユーザーIDはファーストパーティデータであり、Singularが他者と共有することはありません。
- 設定されたユーザーIDの値は、Segmentresetメソッドを使用して設定が解除されるか、アプリがアンインストールされるまで保持されます。アプリを終了または再起動しても、ユーザーIDは解除されません。
iOS、Androidの設定方法は以下の通りです。
[[SEGAnalytics sharedAnalytics] identify:@"segment custom user id"];
Analytics.with(context).identify("myUserId");
カスタムユーザーIDの設定を解除するには、リセットメソッドを呼び出します。
[[SEGAnalytics sharedAnalytics] reset];