サーバー間連携 - EVENT エンドポイント API リファレンス

EVENT エンドポイント API リファレンス

Singular の REST API を使用してサーバー間連携でアプリ内イベントと収益を追跡し、 SDK 実装の代替手段としてアトリビューション分析とキャンペーン最適化に活用します。


概要

サーバー間連携のユースケース

EVENT API はアプリ内イベントの追跡を可能にします。アプリはユーザーの操作データを バックエンドに転送し、バックエンドがそれを Singular のサーバーに送信することで、 イベントアトリビューションと収益分析のレポーティングを実現します。

サポートされる機能:

  • イベントアトリビューション: ユーザーのアクションをマーケティング キャンペーンに関連付けます
  • 収益追跡: アプリ内課金やトランザクションを測定し、アトリビューションします
  • カスタムイベント: 登録からレベルクリアまで、あらゆるユーザー操作を 追跡します
  • イベントプロパティ: より詳細な分析のために、イベントにコンテキスト データを付加します

データフローアーキテクチャ

サーバー間連携によるイベント追跡は、4 ステップのデータ送信プロセスに従います。

  1. クライアントでの収集: アプリがイベントデータとデバイス識別子を 収集します
  2. サーバーへの送信: アプリがイベントデータを自社のバックエンド サーバーに転送します
  3. デバイスグラフの照会: サーバーが Singular のデバイスグラフから デバイス詳細を取得または更新します
  4. Event API 呼び出し: サーバーが Singular の REST API エンドポイントにイベントを送信します

イベントデータフロー図


重要な要件

前提条件:

  • イベントの前に SESSION: イベント追跡を行う前に、必ず SESSION を 確立する必要があります
  • 送信順序: セッションの順序が正しくないと、データの不整合や アトリビューションエラーが発生します

連携における制約:

  • リアルタイム処理: リクエストは個別に処理されます。バッチ処理は サポートされていません
  • 時系列順のイベント: イベントは発生した順序で送信する必要があります
  • 重複排除なし: Singular はデータの重複排除を行いません。重複を 防ぐには、サーバー側で重複排除を実装してください
  • データの永続性: デバイスレベルのデータは取り込み後に削除できません。 送信前に必ず検証してください

イベント追跡のガイドライン

命名規則とデータ構造に関する Singular のベストプラクティスに従って、イベント追跡を 実装します。

イベントの定義

イベントの定義

S2S 連携を実装する前に、キャンペーンのパフォーマンス分析のために自社が追跡したい イベントの完全なリストを定義してください。

イベント計画ガイド: アプリ内イベントの定義

イベント命名の影響: Singular に渡されるイベント名は、レポート、 エクスポート、ポストバックにおけるイベントの表示方法を直接決定します。


標準イベントの命名

ベストプラクティス:

  • 標準イベント: パートナー連携のマッピングを効率化するため、 Singular の標準イベント命名規則 を使用してください
  • 英語表記: サードパーティのパートナーや分析ソリューションとの 互換性のため、イベント名は英語で渡してください
  • 標準属性: イベントプロパティには 標準イベント属性名 を使用してください

文字数の制限

長さの制限:

  • イベント名: 最大 32 ASCII 文字(非 ASCII の場合、UTF-8 に 変換した際に 32 バイト)
  • イベント属性: 属性のキーと値それぞれにつき最大 500 ASCII 文字

API エンドポイントの選択

Singular は、異なる連携アーキテクチャに最適化された 2 つの EVENT エンドポイントの バージョンを提供しています。

エンドポイントの選択: 連携アーキテクチャとデバイス識別子の戦略に 基づいてエンドポイントを選択してください。ユースケースによって正しい エンドポイントが決まります。

Event エンドポイント V1

V1 のユースケース

プラットフォーム固有のデバイス識別子(IDFA、IDFV、AIFA、ASID など)に依存する連携には、 Event エンドポイント V1 を使用してください。

推奨される用途:

  • 純粋なサーバーサイド: Singular SDK を実装しないサーバーサイド連携
  • ハイブリッド(非 SDID): Singular SDK が Singular Device ID (SDID) を使用しないハイブリッド連携

エンドポイント URL:

GET https://s2s.singular.net/api/v1/evt

Event エンドポイント V2

V2 のユースケース

Singular SDK が SDID を使用してセッションを追跡し、サーバーが同じ SDID を使用して イベントを送信するハイブリッド連携には、Event エンドポイント V2 を使用してください。

推奨される用途:

  • ハイブリッド(SDID ベース): Singular SDK が SDID でセッションを 追跡し、サーバーサイドのイベントが同じ SDID を使用する場合
  • 識別子の簡素化: プラットフォーム固有のデバイス識別子(IDFA、AIFA など)を使用しない実装

エンドポイント URL:

GET https://s2s.singular.net/api/v2/evt

アカウントの有効化: V2 エンドポイントを使用するには、SDID 利用のための Singular アカウント設定が必要です。有効化については、担当の Solution Engineer または CSM にお問い合わせください。


Web (p=Web) バリアント

Web 連携では、この同じ EVENT エンドポイントを p=Web と共に使用します。Web の SESSION 呼び出しはありません。 conversion_event=true を伴う最初の __PAGE_VISIT__ イベントが、起動の代わりにアトリビューションの タッチポイントを確立します。

完全ガイド: ブラウザ支援パターン全体(SDID の永続化、 __PAGE_VISIT__ のシーケンス、Web からアプリへの遷移、 クリップボードによるディファードディープリンク)については、 Web S2S 実装ガイド を参照してください。

Web 固有のパラメーター

これらのパラメーターは p=Web の場合に適用されます。共有パラメーター ( a , i , ip , sdid , custom_user_id ) は S2S の基礎 で定義されています。

パラメーター 詳細
conversion_event

boolean

true __PAGE_VISIT__ のアトリビューションイベントにのみ設定し、他のすべての Web イベントには false を設定します。非コンバージョン イベントがそのコンバージョンイベントより前に到着した場合、マッチを待つために短時間だけ保留されます。

例: true

attribution_data

JSON

ランディング URL から解析されたキャンペーンデータの URL エンコードされた JSON で、 __PAGE_VISIT__ イベントで送信されます。フィールドのマッピングについては、 attribution_data と Web クリック ID を参照してください。

例: %7B%22partner_name%22%3A%22Snapchat%22%2C%22is_attributed%22%3A%22true%22%7D

web_url

string

マーケティングパラメーター(UTM / wp* / pc* )を含んでいたキャンペーンのランディング URL。 アトリビューション(タッチポイントの作成)に使用されます。

例: http://my.landing.page/?utm_campaign=test&utm_source=test

web_page_referrer

string

リファラー ( document.referrer )。オーガニックの ソース/タイプの分類に使用されます。

例: https://www.google.com/

Web クリック ID: パートナーのクリック ID ( ScCid , ttclid , gclid / gbraid / wbraid , dclid , fbclid , rdt_uuid ) を、イベントの e パラメーター内で渡します。


必須のデバイス識別子

デバイス識別子の要件は、エンドポイントのバージョンとプラットフォームによって異なります。 以下のプラットフォーム固有の要件を確認してください。

V1 エンドポイントの識別子

プラットフォーム固有の識別子

Event エンドポイント V1 では、デバイスのオペレーティングシステムとアプリの配布方法に 基づいたプラットフォーム固有の広告識別子が必要です。

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


V2 エンドポイントの識別子

SDID のみの要件

Event エンドポイント V2 では、すべてのプラットフォームで Singular Device ID (SDID) のみが 必要となり、デバイスの識別が簡素化されます。

パラメーター 詳細
sdid

プラットフォーム: iOS、Android、Web、PC、Xbox、 PlayStation、Nintendo、MetaQuest、CTV

Singular SDK から取得するか、クライアント側で生成される Singular Device ID。

  • iOS/Android: SDID の利用にはアカウントの有効化が 必要です。SDK のコールバックメソッドが初期化後に SDID を 提供します
  • 識別子の簡素化: AIFA、ASID、IDFA、IDFV パラメーターが不要になります
  • Web: Singular Web SDK から取得します
  • PC/コンソール/CTV: 一意のアプリインストールを 表す、クライアント生成の UUIDv4
  • SDID の取得

例: 40009df0-d618-4d81-9da1-cbb3337b8dec


必須パラメーター

すべての EVENT リクエストには、デバイス識別子に加えて、これらの必須パラメーターを 含める必要があります。

パラメーターの形式: すべてのパラメーターは、GET メソッドを使用して URL クエリパラメーターとして渡す必要があります。パラメーターを JSON リクエストボディで送信しないでください。

API 認証

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


デバイスパラメーター

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


アプリケーションパラメーター

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


イベントパラメーター

パラメーター 詳細
n

string

追跡対象のイベント名。

例: sng_add_to_cart


オプションパラメーター

オプションパラメーターは、追加のコンテキストと機能でイベント追跡を強化します。

タイムスタンプパラメーター

パラメーター 詳細
utime

integer

イベントの 10 桁の Unix タイムスタンプ。

例: 1483228800

umilisec

integer

ミリ秒を含む 13 桁の Unix タイムスタンプ。

例: 1483228800000


イベント属性

パートナー Conversion API のサポート: SingularのConversion API連携を通じてこれらのイベントを広告ネットワークパートナーに転送するには、標準のオプションイベント属性(eventIdehashなどのハッシュ化されたファーストパーティデータ)を含めてください。Conversion API連携のための標準イベント属性を参照してください。

パラメーター 詳細
e

JSON

カスタムイベント属性を指定する JSON URL エンコード文字列。

JSON 構造:

{
  "sng_attr_content_id": 5581,
  "sng_attr_content": "XBox",
  "sng_attr_content_type": "electronics"
}

URL エンコードの例:

%7B%22sng_attr_content_id%22%3A5581%2C%22sng_attr_content%22%3A%22XBox%22%2C%22sng_attr_content_type%22%3A%22electronics%22%7D
global_properties

JSON

イベントにグローバルに適用されるカスタムのキーと値のペアを含む JSON URL エンコードオブジェクト。

制限:

  • 最大 5 つのキーと値のペア
  • キーと値それぞれにつき最大 200 文字

JSON: {"key1":"value1","key2":"value2"}

URL エンコード: %7B%22key1%22%3A%22value1%22%2C%22key2%22%3A%22value2%22%7D


ネットワークパラメーター

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


データプライバシー

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


クロスデバイスサポート

これらは S2S の基礎 で一度だけ定義されている共有 S2S パラメーターです。


SKAdNetwork サポート

パラメーター 詳細
skan_conversion_value
iOS

integer

イベント発生時点での最新の SKAdNetwork コンバージョン値。

詳細: SKAdNetwork の実装

例: 7

skan_first_call_timestamp
iOS

integer

SKAdNetwork API への最初の呼び出しの Unix タイムスタンプ。

例: 1483228800

skan_last_call_timestamp
iOS

integer

イベント発生時点での SKAdNetwork API への最新の呼び出しの Unix タイムスタンプ。

例: 1483228800


収益追跡

適切な検証と通貨処理により、アプリ内課金と収益イベントを追跡します。

必須の収益パラメーター

基本的な収益追跡

自社で収益の検証を行う場合の、収益イベント追跡に最低限必要なパラメーター。

ベストプラクティス: イベントリクエストを Singular に送信する前に、 サーバー側で App Store と収益イベントを検証してください。 自社で検証を行う場合は、これらのパラメーターのみが必要です。

パラメーター 詳細
is_revenue_event

boolean

イベントが収益イベントであるかどうかを指定します。

  • イベント名が __iap__ の場合、または 0 以外の amt が指定されている場合は省略可能です

例: true

amt

number

トランザクションの通貨金額。

  • cur パラメーターと併用してください

例: 2.51

cur

string

ISO 4217 の 3 文字の大文字通貨コード。

  • amt パラメーターと併用してください

例: USD


収益検証パラメーター

Singular による収益検証

Singular が App Store とサーバー側で収益検証を実行するためのオプションパラメーター。

検証の要件:

  • App Store との収益検証を Singular に依存する場合は必須です
  • 購入レシートと署名の値の構文が正しいことを確認してください
  • 形式が正しくないと、Singular は収益をブロックし、 __iapinvalid__ イベントを生成します
パラメーター 詳細
purchase_receipt
iOS, Android

JSON

購入トランザクションから受け取ったレシート。

例(iOS):

MIISqwYJKoZI...cNqts0jvcNvPcK7yuj0KhJ9nTTQ54kDKfReihzc6aw==

例(Android、URL エンコード):

%7B%22orderId%22%3A%22GPA.1234%22%2C%22packageName%22%3A%22com.example%22%2C%22productId%22%3A%22com.example.product%22...
receipt_signature
Android

string

購入レシートの署名に使用される署名(Android のみ)。

例:

TyVJfHg8OAoW7W4wuJt...5agEDMnNXvhfrw==
purchase_product_id

string

製品 SKU 識別子。

例: com.example.product

purchase_transaction_id

string

トランザクション識別子。

例(iOS): 380000123004321

例(Android): GPA.1234-1234-1234-12345


リクエストの例

サンプルコードは、複数のプログラミング言語における EVENT エンドポイント連携を 示しています。

例に関する免責事項: コードサンプルには、すべての必須パラメーターが 含まれていない場合があります。本番環境での実装前に、完全なパラメーターリストを 検証してください。開発/テスト用には一意の i (アプリ識別子) を使用してください。

PYTHON CURL HTTP JAVA

Python の例

import requests

params = {
    'a': 'sdk_key_here',
    'p': 'Android',
    'i': 'com.singular.app',
    'ip': '10.1.2.3',
    've': '9.2',
    'ma': 'samsung',
    'mo': 'SM-G935F',
    'lc': 'en_US',
    'bd': 'Build/13D15',
    'aifa': '8ecd7512-2864-440c-93f3-a3cabe62525b',
    'asid': 'edee92a2-7b2f-45f4-a509-840f170fc6d9',
    'n': 'sng_add_to_cart'
}

response = requests.get('https://s2s.singular.net/api/v1/evt', params=params)
print(response.json())

レスポンスコードとエラー

EVENT エンドポイントは、リクエストの成功または失敗を示す HTTP ステータスコードと JSON レスポンスを返します。

エラーに関する完全なドキュメント: S2S レスポンスコードとエラー処理


テストと検証

本番環境へのデプロイ前に、Singular SDK コンソールを使用してリアルタイムでの データ検証を行い、S2S イベント連携を確認します。

テスト手順

エンドツーエンドの検証

  1. テストデバイスの登録: デバイスの広告 ID を取得し、 Singular SDK コンソール に追加します
  2. コンソールロギングの有効化: テストデータを取得するために、 SDK コンソールにデバイス識別子を追加します
  3. 開発用アプリ ID の使用: テストデータを本番データから分離するため、 アプリ識別子を開発版(例: com.singular.app.dev )で 上書きします
  4. ビルドと起動: アプリをビルドするか、終了状態から開きます
  5. クライアントデータの検証: アプリが必要なすべての Singular データポイントを自社のサーバーに送信していることを確認します
  6. セッションの確認: 自社のサーバーが、必要なすべてのパラメーターを含む SESSION リクエストを https://s2s.singular.net/api/v1/launch に送信していることを確認します
  7. SDK コンソールの確認(セッション): 数秒以内に、SESSION イベントが SDK コンソールに表示されるはずです

SDK コンソールのセッションイベント


イベントのテスト

  1. イベントのトリガー: アプリ内でイベントをトリガーします
  2. イベントデータの検証: 必要なすべての Singular データポイントを 含むイベントが自社のサーバーに送信されたことを確認します
  3. サーバーリクエストの確認: 自社のサーバーが、必要なすべての パラメーターを含む EVENT リクエストを https://s2s.singular.net/api/v1/evt に送信していることを確認します
  4. SDK コンソールの確認(イベント): 数秒以内に、EVENT が SDK コンソールに表示されるはずです
  5. テストの繰り返し: すべてのイベントが期待どおりの値で 送信されていることを検証します

SDK コンソールのイベント

重要な確認事項:

  • EVENT を受信する前に、アプリの起動/フォアグラウンド化時に SESSION イベントが発生していることを確認してください
  • EVENT の必須データポイントが SESSION のデータポイントと一致することを 確認してください

成功の指標: イベントが SDK コンソールに表示されれば、 エンドツーエンドのイベント連携テストが正常に完了しています!


追加リソース

テストに関するドキュメント

包括的なテストガイド: S2S 連携テストガイド