Rudderstack - Singular Destination (クラウドモード)

RudderStack はオープンソースのカスタマーデータプラットフォーム (CDP) です これにより、企業は顧客データを収集、統合し、さまざまなデスティネーションにルーティングできます。顧客データパイプラインを管理するための一元化されたプラットフォームを提供し、組織が Web サイト、モバイルアプリ、サーバー、クラウドサービスなどのさまざまなソースからデータを簡単に収集できるようにします。

Singular は、iOS および Android のモバイルアクティビティについて、Singular Server-to-Server (S2S) REST API 経由で Rudderstack からイベントデータを受信できます。これは 「Cloud-Mode」デスティネーション と呼ばれます。以下の手順では、Rudderstack で Singular デスティネーションを追加する方法を説明します。

対象ガイド エンジニアリングチーム
前提条件 この記事は、すでに Rudderstack の iOS または Android SDK をアプリに統合済みであることを前提としています。

この統合を使用するには、Rudderstack のモバイル SDK を使用している必要があります。 この統合は非モバイルのイベントデータとは互換性がありません。サーバーイベントや Web イベントはサポートされていません。

RudderStack は、「Cloud-Mode」経由で Singular に送信できる 2 種類のトラックイベントをサポートしています:

  • セッションイベント
  • カスタムイベント
サポートされている機能
  1. 基本的なインストールアトリビューション
  2. Google Install Referrer アトリビューション
  3. SkAdNetwork Version 3 サポート (手動モード)
  4. Apple Search Ads アトリビューション
  5. カスタムアプリ内イベントトラッキング
  6. 収益トラッキング
  7. Custom User ID
  8. アンインストールトラッキング
  9. Limited Data Sharing (同意) サポート
  10. API v2 経由の Singular Device ID (SDID)
サポートされていない機能
  1. SkAdNetwork Version 4 サポート
  2. コンバージョンモデル向けの SkAdNetwork マネージドモード
  3. META Install Referrer アトリビューション
  4. ディープリンク

Singular が提供する「フル機能」の S2S サポートが必要な場合は、Rudderstack とは別に Singular S2S REST API を独自に実装する必要があります。 Server-to-Server (S2S) 統合ガイド こちら をご覧ください。

Singular Device ID (SDID) と API バージョン

RudderStack が使用する Singular API バージョンは、イベントに存在する識別子フィールドによって異なります:

  • イベントに Singular Device ID (SDID) が存在する場合、RudderStack は自動的に Singular の API v2 を使用し、従来のプラットフォーム固有の識別子 ( idfa , andi , idfv , aifa ) を無視します。
  • それ以外の場合、RudderStack はプラットフォーム固有の識別子にフォールバックし、Singular の API v1 を使用してイベントを送信します。

Singular Device ID (および、オプションでデータ共有の同意) を送信するには、イベントの integrations.Singular オブジェクト内に singularDeviceIdlimitDataSharing を含めます:

rudderanalytics.track(
  "Order Completed", {
    revenue: 30,
    currency: "USD"
  }, {
    integrations: {
      Singular: {
        singularDeviceId: "SINGULAR_DEVICE_ID",
        limitDataSharing: true  // optional
      }
    }
  }
);

はじめに

  1. RudderStack ダッシュボード から、ソースを追加します。次に、デスティネーションのリストから Singular を選択します。
  2. デスティネーションに名前を割り当て、 Continue をクリックします。

接続設定

Singular をデスティネーションとして正常に構成するには、次の設定を構成する必要があります:



  • API Key: ここに Singular の 「SDK Key」 を入力します。これは必須フィールドです。

    Singular の 「SDK KEY」 は、Singular ダッシュボードの 「Developer Tools > SDK Integration > SDK Keys」 で取得できます。


    注意: 「Cloud-Mode」統合では、 API Key (SDK Key) の値のみを入力します
    「Secret」は空白のままにしてください。

  • Session Event Name: セッションイベントとして使用するイベント名を入力します。この設定は、クラウドモード経由でイベントを送信する場合にのみ適用されます。

    RudderStack は、Singular の launch API 経由でセッションイベントを Singular に送信します。

    RudderStack は、ダッシュボード設定で指定されている場合、または次の 3 つの ライフサイクルイベント のいずれかである場合にのみ、イベントをセッションイベントとみなします:

    • Application Installed
    • Application Opened
    • Application Updated

    ライフサイクルイベントトラッキングが有効になっている場合、RudderStack は上記の 3 つのライフサイクルイベントを自動的にトラッキングします。

  • Use device mode to send events: これらのトグルは 「Cloud Mode」を使用する場合は無効にする必要があります 。Android または iOS プラットフォームを使用する場合、この設定を有効にしてデバイスモード経由でイベントを送信できます。その後、プロジェクトに Singular を追加する手順については Singular Device Mode ガイドに従ってください。
  • クライアントサイドイベントフィルタリング: Singularに送信するイベントのうち、ブロックまたは許可するイベントを指定します。詳細は Client-side Events Filtering ガイドを参照してください。
  • 同意管理設定: ドロップダウンから同意管理プロバイダーを選択し、該当する同意カテゴリIDを入力して、ソースの同意管理設定を構成します。詳細は Consent Management in RudderStack を参照してください。

Unity SDK 設定

次の設定は、Unityをソースとして使用する場合に適用されます:

設定 説明
Match ID mapping この設定を使用して、Singularのmatch IDを次のいずれかのイベントフィールドにマッピングします: context.device.advertisingId または properties.match_id.

セッションイベントの要件

サポートされている SESSION イベントのマッピング

Rudderstack モバイル SDK によって自動的にキャプチャされる属性

このセクションでは、RudderStack のイベントプロパティと関連する Singular フィールドとのマッピングを示します。

次の表は、モバイルプラットフォーム ( Android および iOS ) について RudderStack が自動的にキャプチャする属性のマッピングを示します:

RudderStack プロパティ Singular 属性 必須/任意 説明
context.os.name
p
必須 ソースプラットフォーム (Android または iOS)。
context.app.namespace
i
必須 アプリのパッケージ名 (Android) またはバンドル ID (iOS)。
context.app.version
app_v
必須 アプリのバージョン。
context.ip / request_ip 
(この順序で)
ip
必須 ユーザーの IP アドレス。IP を匿名化する方法については、以下の注意を参照してください。
context.os.version
ve
必須 セッション時のデバイス OS バージョン。
context.device.model
mo
必須 デバイスモデル。このパラメーターは ma パラメーターと併用する必要があります。
context.device.manufacturer
ma
必須 デバイスハードウェアのメーカー。このパラメーターは mo パラメーターと併用する必要があります。
context.locale
lc
必須 2 文字の言語コードと国コードをアンダースコアで区切って使用するデバイスの IETF ローカルタグ。
context.device.id
idfv
必須 ダッシュ付きの大文字で表記された生の IdentifierForVendor これは iOS アプリにのみ適用されます
context.device.id
andi
必須 小文字で表記された生の Android ID これは Android アプリにのみ適用され 、広告 ID (aifa) と App Set ID (asid) が存在しない場合に必須です。詳細については、以下の FAQ を参照してください。
context.app.build
bd
必須 デバイスビルド (URL エンコード)。
context.device.adTrackingEnabled
dnt
必須 do not track (dnt) が無効の場合は true (dnt=0) を渡し、そうでない場合は false (dnt=1) を渡します。広告 ID を SDK に渡すと、これは自動的にキャプチャされます。
context.app.name
n
任意 UI に表示される人間が読めるアプリ名。
timestamp / originalTimestamp
utime
任意 セッション時刻 (UNIX 時間)。
context.network.wifi
c
任意 接続タイプ (WiFi またはキャリア)。
context.network.carrier
cn
任意 インターネットプロバイダーのキャリア名。
integrations.Singular.limitDataSharing
data_sharing_options.limit_data_sharing
任意 JSON URL エンコードされたデータ共有に関するユーザーの同意。これは永続化され、後続のすべてのイベントリクエストで渡される必要があります。

IP を匿名化するには、 context.ip フィールドにプレースホルダー IP を送信できます。RudderStack はバックエンドから自動的にキャプチャする代わりに、それを IP アドレスとして使用します。モバイル SDK の場合、 Transformations 機能を活用してこれを行うことができます - クラウドモード 経由でイベントを送信する場合。

イベントプロパティ経由で渡す必要がある属性

次の表は、 イベントプロパティ経由で渡す必要がある属性: のマッピングを示します。

これらのプロパティは SDK に永続化されないため、すべてのイベントで渡す必要があります。

RudderStack プロパティ Singular 属性 必須/任意 説明
properties.install_ref
install_ref
必須 Google Install Referrer 情報。
properties.referring_application
install_source
必須 Android におけるインストールソースのパッケージ名。これを取得するには getInitiatingPackageName() を使用します。
properties.install_receipt
install_receipt
必須 インストールから受け取ったレシート。これを取得するには、 iOS Install Receipt ガイドに従ってください。
properties.asid
asid
必須 Android v12 以降のデバイス向けの App Set ID。広告 ID (aifa) と Android ID (andi) が存在しない場合に必須です。詳細については、以下の FAQ を参照してください。
properties.url
openui
必須 アプリがディープリンク/ユニバーサルリンク経由で開かれた場合の、エンコードされたディープリンク URL の値。
context.device.attTrackingStatus
att_authorization_status
必須 App Tracking Transparency の認可ステータス
userId
custom_user_id
任意 identify 呼び出しを通じて渡されるユーザー ID。
properties.attribution_token
attribution_token
任意 iOS 14.3 以降で Apple Search Ads をアトリビュートするために使用されます。詳細は こちら
properties.skan_conversion_value
skan_conversion_value
任意 セッション通知時点での最新の SkAdNetwork 値。
properties.skan_first_call_timestamp
skan_first_call_timestamp
任意 SkAdNetwork API への最初の呼び出しの UNIX タイムスタンプ。
properties.skan_last_call_timestamp
skan_last_call_timestamp
任意 セッション通知時点での SkAdNetwork API への最後の呼び出しの UNIX タイムスタンプ。
properties.install
install
任意 インストールフラグ。アプリインストール後の最初のセッションでは true に設定し、それ以外の場合は false に設定します。再インストールトラッキング機能に必須です。
properties.install_time / timestamp / originalTimestamp
install_time
任意 インストール時刻 (UNIX 時間)。
properties.update_time / timestamp / originalTimestamp
update_time
任意 更新時刻 (UNIX 時間)。
イベントプロパティ経由で一度だけ渡す必要がある属性:

次の表は、 イベントプロパティ経由で一度だけ渡す必要がある属性: のマッピングを示します。

これらのプロパティは SDK に永続化されるため、一度だけ渡す必要があります。

RudderStack プロパティ Singular 属性 必須/任意 説明
context.device.token
fcm
任意 Firebase Cloud Messaging デバイストークン。Android でのアンインストールトラッキングに必須です。
context.device.token
apns_token
任意 Apple Push Notification Service デバイストークン。iOS でのアンインストールトラッキングに必須です。
context.device.advertisingId
idfa
必須 ダッシュ付きの大文字で表記された生の 広告 ID これは iOS アプリにのみ適用されます
context.device.advertisingId
aifa
必須 これはダッシュ付きの小文字で表記された生の 広告 ID です。 これは Android アプリにのみ適用されます 。App Set ID (asid) と Android ID (andi) が存在しない場合に必須です。詳細については、以下の FAQ を参照してください。

デバイストークンの設定に関する詳細については、該当する SDK ドキュメントを参照してください:

RudderStack は、デバイストークンのマッピングに fcm のみをサポートしています。

カスタムイベントの要件

RudderStack は、セッションイベント以外のすべてのイベントを、Singular の evt エンドポイント経由でカスタムイベントとして送信します。

サポートされている EVENT マッピング

Rudderstack モバイル SDK によって自動的にキャプチャされる属性

このセクションでは、RudderStack のイベントプロパティと関連する Singular フィールドとのマッピングを示します。

次の表は、モバイルプラットフォーム ( Android および iOS ) について RudderStack が自動的にキャプチャする属性のマッピングを示します:

RudderStack プロパティ Singular 属性 必須/任意 説明
context.os.name
p
必須 ソースプラットフォーム (Android または iOS)。
context.app.namespace
i
必須 アプリのパッケージ名 (Android) またはバンドル ID (iOS)。
context.ip / request_ip 
(同じ順序で)
ip
必須 ユーザーの IP アドレス。
context.device.advertisingId
idfa
必須 ダッシュ付きの大文字で表記された生の IdentifierForVendor これは iOS アプリにのみ適用されます
context.device.advertisingId
aifa
必須 これはダッシュ付きの小文字で表記された生の 広告 ID です。 これは Android アプリにのみ適用されます 。App Set ID (asid) と Android ID (andi) が存在しない場合に必須です。詳細については、以下の FAQ を参照してください。
context.device.id
idfv
必須 ダッシュ付きの大文字で表記された生の IdentifierForVendor これは iOS アプリにのみ適用されます
context.device.id
andi
必須 小文字で表記された生の Android ID これは Android アプリにのみ適用され 、広告 ID (aifa) と App Set ID (asid) が存在しない場合に必須です。詳細については、以下の FAQ を参照してください。
context.os.version
ve
必須 セッション時のデバイス OS バージョン。
timestamp / originalTimestamp
utime
任意 セッション時刻 (UNIX 時間)。
integrations.Singular.limitDataSharing
data_sharing_options.limit_data_sharing
任意 JSON URL エンコードされたデータ共有に関するユーザーの同意。これは永続化され、後続のすべてのイベントリクエストで渡される必要があります。

Singular は、(Android では) asid よりも aifa を、 andi よりも asid を優先し、(iOS では) idfv よりも idfa を優先します。

イベントプロパティ経由で渡す必要がある属性

次の表は、 イベントプロパティ経由で渡す必要がある属性: のマッピングを示します。

これらのプロパティは SDK に永続化されないため、すべてのイベントで渡す必要があります。

RudderStack プロパティ Singular 属性 必須/任意 説明
event
n
必須 イベントの名前。 これはユーザー定義です
context.device.attTrackingStatus
att_authorization_status
必須 App Tracking Transparency の認可ステータス
userId
custom_user_id
任意 identify 呼び出しを通じて渡されるユーザー ID。
properties.skan_conversion_value
skan_conversion_value
任意 セッション通知時点での最新の SkAdNetwork 値。
properties.skan_first_call_timestamp
skan_first_call_timestamp
任意 SkAdNetwork API への最初の呼び出しの UNIX タイムスタンプ。
properties.skan_last_call_timestamp
skan_last_call_timestamp
任意 セッション通知時点での SkAdNetwork API への最後の呼び出しの UNIX タイムスタンプ。
properties.eventAttributes
e
任意 JSON 形式のカスタムイベント属性。これらは SDK に永続化されないため、すべてのイベントで渡す必要があります。
properties.is_revenue_event
is_revenue_event
任意 イベントが収益イベントかどうかを判定します。これは SDK に永続化されないため、すべてのイベントでプロパティを通じて渡す必要があります。
properties.receipt_signature
receipt_signature
任意 レシート署名。
収益イベントに固有のユーザー定義属性

次の表は、 収益イベントに固有のユーザー定義属性: のマッピングを示します。

RudderStack プロパティ Singular 属性 必須/任意 説明
properties.total/ properties.value / properties.revenue
amt
任意 通貨金額。
properties.currency
cur
任意 ISO 4217 の 3 文字の通貨コード。これは amt パラメーターと併用する必要があります。
properties.purchase_receipt
purchase_receipt
任意 購入から受け取ったレシート。
properties.product_id/properties.sku
purchase_product_id
任意 製品 SKU 識別子。
properties.orderId / properties.purchase_transaction_id
(この順序で)
purchase_transaction_id
任意 トランザクション識別子。

value、revenue、または total プロパティのいずれか 1 つを設定すると、 is_revenue_event プロパティで明示的に指定されていない限り、RudderStack はそのイベントを自動的に収益イベントとみなします。

カスタムイベントの場合の重要な考慮事項をいくつか以下に示します:

  • RudderStack は、Android の場合は context.userAgent から、iOS の場合はイベントプロパティからユーザーエージェントを取得します。
  • RudderStack は、カスタムイベントで渡された追加の属性を Singular の e フィールドに格納します。

テスト

イベントが Singular に正常に配信されたかどうかを確認するにはどうすればよいですか?

イベントが Singular に正常に配信されたかどうかを確認するには、RudderStack の Destination live events 機能を使用できます。

また、 Singular ダッシュボード にアクセスして次の手順に従うことで、イベント配信を確認することもできます:

Testing Console の使用方法についての詳細なガイドは Testing Console のこちらに従ってください

  1. 「Developer Tools > Testing Console」 に移動します。

  2. Add Device をクリックし、該当するデバイス識別子を入力します:

  3. Singular に送信されたすべてのイベントのリアルタイムログを確認できるはずです:

FAQ

Android にはどのデバイス ID 属性が必要ですか?

Android のリクエストの場合、Singular は次の属性のいずれか 1 つを、この優先順で要求します:

  1. aifa
  2. asid
  3. andi

いずれも利用できない場合は、(null や undefined ではなく) 空の値で少なくとも 1 つを送信する必要があります。それらすべてを送信した場合、RudderStack は Google のデータポリシーに従って andi 属性を破棄します。