PC・コンソール ゲーム連携ガイド

PC・コンソール ゲーム連携ガイド

Singular で PC およびコンソールゲームのアトリビューションを実装するための総合ガイドです。デスクトップおよびゲームプラットフォーム全体で正確なキャンペーン測定と分析を実現できます。

エンタープライズ機能: PC およびコンソールゲームのアトリビューションはエンタープライズ機能です。詳細については、 PC およびコンソールゲームアトリビューション FAQ をお読みいただくか、担当のカスタマーサクセスマネージャーにお問い合わせください。

共通の S2S リファレンス: 本ガイドでは PC およびコンソール固有の内容を扱います。共通のサーバー間(S2S)の構成要素(エンドポイント、認証、共通パラメータ)については、 S2S 基礎ハブ をご覧ください。 セッションおよびイベントパラメータの完全なリファレンスについては、 PC・コンソール API エンドポイントリファレンス をご覧ください。


概要

連携オプション

Singular は PC およびコンソールゲームのアトリビューションに 2 つのアプローチを提供しています。実装要件とアトリビューションのニーズに最も適した方法を選択してください。

方法 説明 ユースケース
PC/コンソール Singular Links

推奨: 確率的アトリビューションのために Singular のトラッキングリンクを使用する簡素化された連携方法です。Web SDK は不要です。

アトリビューション方法: 確率的(IP ベースのマッチング)

連携の手間が少なく、最も迅速に実装できます。ユーザーをサードパーティストア(Steam、Epic など)に誘導するキャンペーンや、Web SDK の連携が難しい場合に最適です。

Web SDK + Match ID

高度: ランディングページ上の Singular Web SDK を使用し、Match ID による決定論的マッチングで強化されたアトリビューションです。

アトリビューション方法: 確率的(IP ベース)および決定論的(Match ID)

ユーザーがランディングページで認証する場合に最も高いアトリビューション精度が得られます。Singular Web Attribution 機能および決定論的アトリビューションには必須です。

実装に関する注意: どちらの方法でも、ゲームセッションとイベントを報告するために PC/コンソール サーバー間(S2S)API 連携の実装が必要です。違いは、Web キャンペーンのクリックがどのようにトラッキングされ、ゲームインストールとマッチングされるかにあります。


アトリビューションフローの比較

PC/コンソール Singular Links のフロー:

  1. ユーザーが Singular Link をクリック: ユーザーがマーケティングキャンペーン内の Singular トラッキングリンクをクリックします
  2. ランディングページへのリダイレクト: ユーザーがランディングページまたはストアへリダイレクトされます(Web SDK は不要)
  3. ダウンロードとインストール: ユーザーがゲームをダウンロードしてインストールします
  4. 初回起動: ユーザーがゲームを初めて起動します
  5. S2S 報告: ゲームが S2S API 経由でセッションを報告します
  6. 確率的アトリビューション: Singular が IP アドレスに基づいてゲームインストールを Singular Link のクリックとマッチングします

Web SDK + Match ID のフロー:

  1. ユーザーがキャンペーンリンクをクリック: ユーザーがマーケティングキャンペーンの広告またはリンクをクリックします
  2. Web SDK を実装したランディングページ: ユーザーが Singular Web SDK を実装したランディングページに到達します
  3. クリックのキャプチャ: Web SDK がクリックデータをキャプチャし、Match ID を生成します
  4. ユーザー認証(任意): ユーザーがログインすると、決定論的アトリビューションのために Match ID をゲームに渡すことができます
  5. ダウンロードとインストール: ユーザーがゲームをダウンロードしてインストールします
  6. 初回起動: ユーザーがゲームを起動し、任意で Match ID を取得します
  7. Match ID を含む S2S 報告: ゲームが Match ID の有無にかかわらず S2S API 経由でセッションを報告します
  8. アトリビューションのマッチング: Singular が決定論的マッチング(Match ID が提供されている場合)または確率的マッチング(IP ベース)を実行します

サーバー間連携

選択したアトリビューション方法にかかわらず、すべての PC およびコンソールゲームアトリビューションには S2S API 連携の実装が必要です。

連携機能:

  • ゲームセッションのトラッキング: ゲーム起動全体でユーザーセッションとアクティビティを報告します
  • インストールアトリビューション: 新規のゲームインストールをマーケティングキャンペーンにアトリビュートします
  • イベント分析: ファネル分析のためにゲーム内イベントとユーザーインタラクションをトラッキングします
  • 収益測定: ゲーム内購入とマネタイズのパフォーマンスを測定します
  • クロスプラットフォーム対応: PC、Xbox、PlayStation、Nintendo、Meta Quest 全体で統一されたトラッキングを行います

前提条件

PC・コンソール連携を実装する前に、以下の要件が満たされていることを確認してください。

コンポーネント 要件
SDK Key

Singular SDK Key を Dashboard → Developer Tools → SDK Integration → SDK Keys から取得します

アプリ設定

PC またはコンソールゲームを Singular App Page に追加します。同一タイトルの複数プラットフォームについては、すべて同じ Singular の「App」に追加してください。

アトリビューション方法の選択

実装要件に基づいてアトリビューションのアプローチを選択します:

  • PC/コンソール Singular Links: Web SDK は不要、確率的アトリビューションのみ
  • Web SDK + Match ID: ランディングページに Web SDK が必要、確率的および決定論的アトリビューションの両方に対応

ドキュメントリソース

PC・コンソール連携のための完全な API リファレンスと実装ガイドです。


方法 1: PC/コンソール Singular Links(推奨)

ランディングページに Web SDK を実装することなく、確率的アトリビューションのために Singular のトラッキングリンクを使用する簡素化された連携アプローチです。

推奨される実装: この方法は、最小限の連携の手間で PC/コンソールアトリビューションを最も迅速に実装できます。ほとんどのユースケースに最適です。


概要

仕組み

PC/コンソール Singular Links は、トラッキングリンク内で直接クリックデータをキャプチャすることでアトリビューションを可能にし、ランディングページでの Web SDK の実装を不要にします。

主なメリット:

  • Web SDK 不要: サードパーティストア(Steam、Epic など)を含む任意のランディングページにユーザーをリダイレクトできます
  • 簡素化された連携: ゲーム側での S2S API の実装のみが必要です
  • 迅速な展開: ランディングページを変更することなく、キャンペーンを素早く作成して開始できます
  • 柔軟なリダイレクト先: 任意のリダイレクト先 URL への単一リダイレクトに対応します

アトリビューション方法:

  • 確率的(IP ベース): Singular が IP アドレスとデバイスの特性に基づいてゲームインストールを Singular Link のクリックとマッチングします

実装手順

ステップ 1: 前提条件

PC/コンソール Singular Links を作成する前に、以下の要件が満たされていることを確認してください。

必須: PC/コンソールのアプリサイトが Singular の Apps 画面で設定されている必要があり、アプリサイトが PC/コンソール Singular Link の作成対象となるには、少なくとも 1 件のゲームセッションが S2S API 経由で送信されている必要があります。


ステップ 2: PC/コンソール Singular Link を作成する

Singular ダッシュボードで PC/コンソール Singular Links を作成し、キャンペーンのクリックをトラッキングしてアトリビューションを有効にします。

設定手順:

  1. Manage Links に移動: Singular ダッシュボードで Attribution → Manage Links に移動します
  2. App を選択: PC/コンソールのアプリサイトが設定されている App を選択します
  3. 新規リンクを作成: Create New Link ボタンをクリックします
  4. プラットフォームタイプを選択: Platform Tracking Type フィールドで「PC/Console」を選択します
  5. ターゲットを設定: 特定の PC/コンソールのアプリサイトを選択するか、「Track all app sites under this app」オプションを選択します
  6. リダイレクト先 URL を設定: リダイレクト URL(ランディングページ、ストアページなど)を設定します
  7. アトリビューション設定を構成: 必要に応じてアトリビューションウィンドウとトラッキングパラメータを設定します
  8. リンクを生成: Singular トラッキングリンクを保存して生成します

リンクの種類: PC/コンソール Links は Custom Sources および一部の Partner Integrations に対応しています。クリックリンクとインプレッションリンクの両方に対応しています。


ステップ 3: S2S 連携を実装する

サーバー間 API 連携を実装して、ゲームセッションとイベントを報告します。S2S 実装の詳細については、以下の 連携の概念 セクションをご覧ください。

必要な実装:

  • セッション通知: Session Notification Endpoint を使用してゲームの起動を報告します
  • イベントトラッキング: Event Notification Endpoint を使用してゲーム内イベントと収益を報告します
  • デバイス識別: 一意のデバイス識別子(SDID)を生成して保持します

ステップ 4: キャンペーンを開始する

生成した PC/コンソール Singular Links をマーケティングキャンペーンで使用し、アトリビューショントラッキングを有効にします。

キャンペーンの設定:

  • トラッキングリンクをコピー: Manage Links から生成した Singular Link をコピーします
  • キャンペーンを設定: Singular Link をキャンペーンのリンク先 URL として使用します
  • キャンペーンを開始: Singular Link を用いてキャンペーンを有効化します
  • アトリビューションを監視: ユーザーがリンクをクリックしてゲームを起動するのに応じて、Singular レポートでアトリビューションデータを確認します

アトリビューションのマッチング

アトリビューションの仕組み

PC/コンソール Singular Links を使用する場合、Singular は IP アドレスとタイミングに基づいて確率的アトリビューションのマッチングを実行します。

アトリビューションのプロセス:

  1. ユーザーが Singular Link をクリック: IP アドレスとタイムスタンプを含むクリックデータが Singular によってキャプチャされます
  2. ユーザーがゲームをダウンロード: ユーザーがゲームのダウンロードとインストールに進みます
  3. ゲームの起動: ユーザーがゲームを初めて起動します
  4. S2S 報告: ゲームがユーザーの IP アドレスを含めて S2S API 経由でセッションを Singular に報告します
  5. 確率的マッチング: Singular がアトリビューションウィンドウ内で IP アドレスに基づいてゲームインストールを Singular Link のクリックとマッチングします
  6. アトリビューション完了: インストールがキャンペーンソースにアトリビュートされます

アトリビューション精度: 確率的アトリビューションは、ほとんどのユースケースで信頼性の高いマッチングを提供します。決定論的マッチングによるアトリビューション精度の向上をお求めの場合は、Web SDK + Match ID 方式の実装をご検討ください。


方法 2: Web SDK + Match ID(高度)

ランディングページで Singular Web SDK を使用し、ユーザーが認証する際に任意で Match ID を用いて決定論的アトリビューションを行う高度な連携アプローチです。

高度な機能: この方法にはランディングページでの Web SDK の実装と追加の連携作業が必要です。Singular Web Attribution 機能または Match ID による決定論的アトリビューションが必要な場合は、このアプローチをご検討ください。


概要

この方法を使用する場合

基本的な確率的マッチングを超える強化されたアトリビューション機能がユースケースで必要な場合に、Web SDK + Match ID アプローチを実装します。

ユースケース:

  • Web Attribution: Singular Web Attribution 機能と Web 分析が必要な場合
  • 決定論的アトリビューション: ユーザーがランディングページで認証を行い、最も高いアトリビューション精度が必要な場合
  • クロスデバイストラッキング: ユーザーがランディングページを訪問したデバイスとは別のデバイスでゲームをダウンロードする可能性がある場合
  • 高度な分析: ゲームインストール前の詳細な Web エンゲージメント指標が必要な場合

アトリビューション方法:

  • 確率的(IP ベース): IP アドレスに基づく自動マッチング(PC/コンソール Singular Links と同じ)
  • 決定論的(Match ID): ユーザーが認証する際にランディングページからゲームに渡される一意の識別子を使用した高精度のマッチング

実装手順

ステップ 1: Web SDK を実装する

マーケティングのランディングページに Singular Web SDK を実装し、クリックデータをキャプチャしてアトリビューションを有効にします。

Web SDK 要件: この方法による PC・コンソールアトリビューションには、マーケティングのランディングページへの Singular Web SDK の実装が必要です。Web SDK はクリックデータをキャプチャし、ユーザーがゲームをインストールして起動する際にアトリビューションのマッチングを可能にします。

Web SDK の実装:

  • Web SDK ガイドに従う: Web SDK の概要とはじめに
  • Product ID の設定: Web SDK の Product ID は、S2S 連携で使用するゲーム識別子( i パラメータ)と一致している必要があります
  • ランディングページへの展開: すべてのマーケティングのランディングページに Web SDK を展開します

設定の整合: アトリビューションが機能するには、Web SDK の Product ID が S2S 連携のゲーム識別子と完全に一致している必要があります。この整合により、Singular は Web クリックとゲームインストールを結び付けることができます。


ステップ 2: S2S 連携を実装する

サーバー間 API 連携を実装して、ゲームセッションとイベントを報告します。S2S 実装の詳細については、以下の 連携の概念 セクションをご覧ください。

必要な実装:

  • セッション通知: Session Notification Endpoint を使用してゲームの起動を報告します
  • イベントトラッキング: Event Notification Endpoint を使用してゲーム内イベントと収益を報告します
  • デバイス識別: 一意のデバイス識別子(SDID)を生成して保持します

ステップ 3: Match ID を実装する(任意)

決定論的アトリビューションのために、ユーザーが認証する際にランディングページからゲームへ一意の識別子を渡す Match ID を実装します。

任意の機能: Match ID の実装は、決定論的アトリビューションを行いたい場合にのみ必要です。Web SDK 単体でも、Match ID なしで確率的アトリビューションが提供されます。

Match ID の実装:

  • Match ID を取得: ユーザー認証後に Web SDK の getMatchID() メソッドを使用します
  • ゲームに渡す: Web からゲームへ Match ID を渡す仕組み(クエリパラメータ、API など)を実装します
  • 初回セッションに含める: 最初のゲームセッションで match_id パラメータを介して Match ID を報告します

Match ID 連携の詳細な手順については、以下の Match ID の実装 セクションをご覧ください。


アトリビューションのマッチング

アトリビューションの仕組み

Web SDK を使用する場合、Singular は Match ID が提供されているかどうかに応じて、確率的または決定論的のいずれかの方法でアトリビューションのマッチングを実行します。

確率的アトリビューション(Match ID なし):

  1. ユーザーがキャンペーンをクリック: ユーザーがマーケティングキャンペーンのリンクをクリックします
  2. ランディングページの訪問: Web SDK が IP アドレスを含むクリックデータをキャプチャします
  3. ユーザーがゲームをダウンロード: ユーザーがゲームをダウンロードしてインストールします
  4. ゲームの起動: ユーザーがゲームを初めて起動します
  5. S2S 報告: ゲームが S2S API 経由でセッションを Singular に報告します
  6. IP マッチング: Singular が IP アドレスに基づいてゲームインストールを Web クリックとマッチングします

決定論的アトリビューション(Match ID あり):

  1. ユーザーがキャンペーンをクリック: ユーザーがマーケティングキャンペーンのリンクをクリックします
  2. ランディングページの訪問: Web SDK が一意の Match ID を生成します
  3. ユーザーが認証: ユーザーがランディングページでログインします
  4. Match ID を取得: 実装が Web SDK から Match ID を取得します
  5. Match ID をゲームに渡す: Match ID がクエリパラメータ、API、その他の仕組みを介してゲームに渡されます
  6. ユーザーがゲームをダウンロード: ユーザーがゲームをダウンロードしてインストールします
  7. Match ID を含むゲームの起動: ユーザーがゲームを起動し、保存された Match ID を取得します
  8. Match ID を含む S2S 報告: ゲームが match_id パラメータを含めて最初のセッションを報告します
  9. 決定論的マッチング: Singular が Match ID を使用してゲームインストールを Web クリックとマッチングし、高精度のアトリビューションを行います

連携の概念

Singular で PC・コンソール S2S 連携を実装するための中核となる概念と要件です。これらの概念は両方のアトリビューション方法に適用されます。

認証

Singular の PC・コンソール S2S API へのすべてのリクエストには、 a パラメータでの SDK key 認証が必要です。共通の認証の仕組み(SDK Key の場所と渡し方)については、 S2S 基礎の「認証」 をご覧ください。


ユーザープライバシー

Singular は、エンドユーザーがトラッキングをオプトインまたはオプトアウトできるようにすることを推奨しています。 data_sharing_options や Limit Data Sharing を含む共通のプライバシーパラメータについては、 S2S 基礎の「プライバシーパラメータ」 をご覧ください。


対応プラットフォーム

プラットフォームの定義

プラットフォームはユーザーがゲームをプレイする場所を表し、すべての S2S API リクエストで p パラメータに渡す必要があります。

対応プラットフォーム値:

  • pc - パーソナルコンピューターのプラットフォーム
  • xbox - Microsoft Xbox ゲームコンソール
  • playstation - Sony PlayStation ゲームコンソール
  • nintendo - Nintendo ゲームコンソール
  • metaquest - Meta Quest VR ヘッドセット

オペレーティングシステムとストア

プラットフォームに加えて、 os パラメータでオペレーティング/ゲームシステムを、 install_source パラメータで配信ストアを指定します。

プラットフォーム
( p )
オペレーティング/ゲームシステム
( os )
ストア
( install_source )
pc
  • windows
  • linux
  • macos
  • steamos
  • steam
  • epicgamestore
  • microsoftstore
  • gog
  • humblestore
  • selfdistributed
xbox
  • xbox_one
  • xbox_360
  • xbox_series_s
  • xbox_series_x
  • xbox
playstation
  • playstation_3
  • playstation_4
  • playstation_5
  • playstation
nintendo
  • nintendo_switch
  • nintendo
metaquest
  • metaquest
  • metaquest_2
  • metaquest_pro
  • metaquest

カスタム値: オペレーティングシステムとストアのパラメータにはカスタム値を使用できますが、Singular では一貫性とレポートの明確さのために上記の標準値の使用を推奨しています。


ゲーム識別子

アプリケーションの識別

ゲーム識別子はゲームイベントを特定のゲームに関連付けるもので、すべてのリクエストで i パラメータに渡す必要があります。

識別子の要件:

  • 形式: 任意の値を使用できますが、Singular では逆引き DNS 表記(例: com.singular.game )を推奨しています
  • クロスプラットフォームの一貫性: すべての対応プラットフォームで同じゲームに対して同じゲーム識別子を使用する必要があります
  • Web SDK との整合(方法 2 のみ): Web SDK + Match ID 方式を使用する場合、アトリビューションが機能するには、ゲーム識別子がランディングページに設定した Web SDK の Product ID と一致している必要があります

Web SDK との整合: Web SDK + Match ID アトリビューション方式を使用する場合、S2S 連携で使用するゲーム識別子は、 Singular Web SDK の実装で設定した Product ID と 完全に一致 している必要があります。この整合は、Singular がゲームインストールを Web キャンペーンのクリックにアトリビュートするために不可欠です。この要件は PC/コンソール Singular Links 方式には適用されません。

設定例:

実装 設定
Web SDK(方法 2)
const config = {
  apiKey: 'YOUR_SDK_KEY',
  productId: 'com.singular.game',  // Must match S2S identifier
  // ... other config
};
S2S API(PC)
p=pc&i=com.singular.game
S2S API(Xbox)
p=xbox&i=com.singular.game
S2S API(PlayStation)
p=playstation&i=com.singular.game

デバイス識別

一意のゲームインストールトラッキング

インストール/デバイス識別子は、同じゲームインストールの複数のゲームセッションを通じてゲームイベントを関連付けるもので、すべてのリクエストで sdid パラメータに渡す必要があります。

識別子の仕様:

  • 形式: UUID バージョン 4 形式を推奨
  • 生成: 初回のゲーム起動時(インストール)にゲーム/サーバーによって生成される値
  • 永続性: ゲームインストールの存続期間全体を通じて保持する必要があります
  • 一意性: 各ゲームインストールには一意の識別子が必要です

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


Match ID の実装

Match ID は、Web SDK からゲームインストールへ一意の識別子を渡すことで、Web キャンペーンの決定論的アトリビューションを可能にします。この機能は Web SDK + Match ID アトリビューション方式を使用する場合にのみ利用できます。

任意の高度な機能: Match ID の実装は、Web SDK + Match ID アトリビューション方式を使用しており、決定論的アトリビューションを行いたい場合にのみ必要です。PC/コンソール Singular Links 方式は Match ID に対応していません。

Match ID の仕組み:

  1. Web SDK が Match ID を生成: Singular Web SDK が、ユーザーがランディングページを訪問した際に一意の Match ID を作成します
  2. Match ID を取得: Web SDK のメソッドを使用して、ユーザー認証後にランディングページから Match ID を取得します
  3. ゲームに渡す: 実装がダウンロード/インストールプロセス中に Web ページからゲームへ Match ID を渡します(例: クエリパラメータ、ディープリンク、Cookie)
  4. 初回起動時に報告: ゲームが match_id パラメータを介して最初のセッション通知に Match ID を含めて Singular に送信します
  5. 決定論的マッチング: Singular が Match ID を使用して高精度のアトリビューションマッチングを行います

Web SDK の Match ID メソッド

ネイティブ実装

Singular Web SDK は、ランディングページで Match ID 値を取得、設定、クリアするためのネイティブメソッドを提供します。

利用可能なメソッド:

パラメータ 詳細
getMatchID()

現在の Web セッションに対して Singular Web SDK が生成した一意の Match ID を取得します。

戻り値: Match ID 値を含む文字列

setMatchID(matchId)

Singular が生成した値の代わりに、現在の Web セッションにカスタムの Match ID を設定します。

パラメータ: matchId (string)- カスタム Match ID 値

clearMatchID()

setMatchID() で設定したカスタム Match ID をクリアし、Singular が生成したデフォルト値に戻します。


実装例

NATIVE JAVASCRIPT GOOGLE TAG MANAGER

ネイティブ Web SDK 実装

Singular Web SDK の初期化後に、これらのメソッドを直接使用して Match ID 値を取得および管理します。

Match ID を取得する

// Get the Singular-generated Match ID
const matchId = window.singularSdk.getMatchID();
console.log('Match ID:', matchId);

// Store Match ID for passing to game
localStorage.setItem('singular_match_id', matchId);

カスタム Match ID を設定する

// Set your own Match ID value
const customMatchId = 'your-custom-match-id-123';
window.singularSdk.setMatchID(customMatchId);

console.log('Custom Match ID set:', customMatchId);

Match ID をクリアする

// Clear custom Match ID and revert to default
window.singularSdk.clearMatchID();

// Get the new default Match ID
const defaultMatchId = window.singularSdk.getMatchID();
console.log('Default Match ID restored:', defaultMatchId);

ダウンロードボタンを含む完全な例

// Initialize Web SDK
const config = new SingularConfig(sdkKey, sdkSecret, productId)
  .withInitFinishedCallback(() => {
    console.log('Singular SDK initialized');
  });

singularSdk.init(config);

// Handle download button click
document.getElementById('download-button').addEventListener('click', function() {
  // Get Match ID before redirecting to download
  const matchId = window.singularSdk.getMatchID();

  // Pass Match ID to download page via query parameter
  const downloadUrl = `https://example.com/download?match_id=${matchId}`;

  // Redirect to download page
  window.location.href = downloadUrl;
});

Match ID をゲームに渡す

実装戦略

Web SDK から Match ID を取得した後、ランディングページからゲームインストールへ値を渡す仕組みを実装します。

一般的なアプローチ:

方法 実装 ユースケース
クエリパラメータ

Match ID をクエリパラメータとしてダウンロード URL に付加します。

https://example.com/download?match_id=abc123

ダウンロードページがパラメータを抽出してゲームインストーラーに渡せる直接ダウンロードの場合

Cookie ストレージ

ゲームのダウンロードページからアクセスできるファーストパーティ Cookie に Match ID を保存します。

document.cookie = `match_id=${matchId}; path=/; max-age=86400`;

Match ID をページ遷移をまたいで保持する必要があるマルチページフローの場合

ローカルストレージ

Match ID をブラウザのローカルストレージに保存します。

localStorage.setItem('singular_match_id', matchId);

ランディングページとダウンロードページがストレージを共有する同一ドメインのシナリオの場合

ディープリンク

直接のゲーム起動のために、カスタムディープリンクスキームに Match ID を埋め込みます。

mygame://install?match_id=abc123

カスタムプロトコルハンドラーを備えた高度な実装の場合

サーバーサイド API

Match ID をサーバー API に送信し、ゲームが認証済みリクエストで取得します。

サーバーサイドの検証とユーザー認証を必要とするセキュアな実装の場合


S2S API の実装

Match ID の報告

ゲームが Web 実装から Match ID を取得したら、アトリビューションのマッチングのために最初のセッション通知に含めて Singular に送信します。

重要なタイミング: アトリビューションが機能するには、Match ID を最初のゲームセッション(インストール)通知に含める必要があります。以降のセッションで Match ID を送信しても、アトリビューションのマッチングは有効になりません。

Match ID を含むセッションリクエスト:

PYTHON CURL JAVASCRIPT
import requests

def report_first_session_with_match_id(sdk_key, game_id, device_id, platform, match_id):
    """
    Report first game session with Match ID for attribution
    """
    session_url = "https://s2s.singular.net/api/v1/launch"

    params = {
        'a': sdk_key,
        'i': game_id,
        'sdid': device_id,
        'p': platform,
        'os': 'windows',
        'install_source': 'steam',
        'ip': get_user_ip(),
        'match_id': match_id  # Include Match ID for attribution
    }

    response = requests.get(session_url, params=params)
    return response.json()

# Example: First launch with Match ID
report_first_session_with_match_id(
    sdk_key='your_sdk_key_here',
    game_id='com.singular.game',
    device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
    platform='pc',
    match_id='abc123def456'  # Retrieved from landing page
)

Match ID のベストプラクティス

実装チェックリスト

完全な実装要件:

  • Web SDK 連携: 一致する Product ID を用いて、ランディングページに Singular Web SDK を実装します
  • Match ID の取得: ユーザー認証後に getMatchID() を使用して値を取得します
  • 値の送信: Web からゲームへ Match ID を渡すセキュアな仕組みを実装します
  • ゲームでの保存: 初回起動/セッション報告まで、ゲーム内に Match ID を保存します
  • 初回セッションのみ: match_id パラメータは最初のセッション通知にのみ含めます
  • 値の検証: Match ID 値が Web とゲームの実装間で一致していることを確認します
  • テスト: ランディングページのクリックからゲームのインストール、アトリビューションまでのフロー全体をテストします

アトリビューション手法の詳細とトラブルシューティングについては、 PC およびコンソールゲームアトリビューション FAQ をご覧ください。


ゲームセッションのトラッキング

Singular にゲームセッションを報告することは PC・コンソール連携で必須であり、インストールアトリビューション、リエンゲージメントトラッキング、ユーザーリテンション分析を可能にします。

セッション通知エンドポイント

実装要件

ゲームが起動するたびに Session Notification Endpoint を呼び出し、ゲームセッションについて Singular に通知します。

API リファレンス: 完全なエンドポイント仕様については、 Session Notification Endpoint のドキュメントをご覧ください。


セッション処理

アトリビューションワークフロー

セッション通知により、Singular はセッションのコンテキストに基づいて複数のアトリビューションおよび分析機能を実行できます。

処理ロジック:

  • 初回セッション(インストール): 一意のインストール後の最初のゲームセッションである場合、Singular は新規インストールを認識し、インストールアトリビューションのプロセスをトリガーします
  • リエンゲージメントセッション: セッションがリエンゲージメント(近日提供予定)に該当する場合、Singular はリエンゲージメントアトリビューションのプロセスをトリガーします( リエンゲージメント FAQ を参照)
  • 通常のセッション: それ以外の場合は、ユーザーアクティビティとリテンションのトラッキングのためのゲームセッションとしてマークされます

実装のベストプラクティス

非同期データ収集

ゲームセッションを報告するためのデータを収集する際は、セッション通知を送信する前に、非同期関数が返るのを待ち、さまざまな機能を処理してください。

重要なタイミングに関する考慮事項:

  • Match ID アトリビューション(方法 2): Web SDK + Match ID 方式を使用する場合、Match ID が利用可能になる可能性があった後にのみ、最初のゲームセッションを報告します
  • ユーザー同意: ゲームが Singular のマーケティングと分析へのオプトインを提供している場合、同意が取得されるまでゲームセッションの報告を待ちます
  • デバイス識別子: 最初のセッション通知の前に SDID が生成され保存されていることを確認します

セッションリクエストの例

サンプル実装

PYTHON CURL JAVASCRIPT
import requests

def report_game_session(sdk_key, game_id, device_id, platform, os_version, store):
    """
    Report game session to Singular
    """
    session_url = "https://s2s.singular.net/api/v1/launch"

    params = {
        'a': sdk_key,
        'i': game_id,
        'sdid': device_id,
        'p': platform,
        'os': os_version,
        'install_source': store,
        'ip': get_user_ip()
    }

    try:
        response = requests.get(session_url, params=params, timeout=10)

        if response.status_code == 200:
            data = response.json()
            if data.get('status') == 'ok':
                print("Session reported successfully")
                return True
            else:
                print(f"Session error: {data.get('reason')}")
                return False
        else:
            print(f"HTTP error: {response.status_code}")
            return False

    except Exception as e:
        print(f"Exception reporting session: {e}")
        return False

# Example usage
report_game_session(
    sdk_key='your_sdk_key_here',
    game_id='com.singular.game',
    device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
    platform='pc',
    os_version='windows',
    store='steam'
)

ゲーム内イベントのトラッキング

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

ゲーム内イベントとユーザーインタラクションをトラッキングして、マーケティングキャンペーンのパフォーマンスを分析し、ユーザーファネルを最適化し、プレイヤージャーニー全体のエンゲージメントを測定します。

イベント設計

イベントの定義

S2S 連携を実装する前に、キャンペーン分析とユーザー行動測定のために組織がトラッキングしたいイベントを定義します。

イベント設計ガイド: ゲーム内イベントの定義


イベント通知エンドポイント

イベントの報告

ゲーム内でイベントが発生したときに Event Notification Endpoint を呼び出し、アトリビューション分析とキャンペーン最適化のために Singular に通知します。

API リファレンス: 完全なエンドポイント仕様については、 Event Notification Endpoint のドキュメントをご覧ください。

API 呼び出しに含めるイベント名によって、そのイベントが Singular のレポート、エクスポート、ポストバックでどのように識別されるかが決まります。


イベント命名のベストプラクティス

標準イベント

Singular では、パートナー連携の効率化と分析の互換性のために、標準のイベントおよび属性の命名規則の使用を推奨しています。

実装ガイドライン:

  • 標準イベント: 自動的なパートナーマッピングと連携の効率化のために、 Singular の標準イベント命名規則 を使用します
  • 英語: サードパーティパートナーおよび分析ソリューションとの互換性のために、カスタムイベント名と属性は英語で渡します
  • 文字数制限: イベント名は 32 ASCII 文字に制限されます(UTF-8 変換で 32 バイト)
  • 属性の制限: イベント属性と値は 500 ASCII 文字に制限されます

収益イベントのトラッキング

収益測定

ゲーム内購入からの収益をトラッキングしてキャンペーンのパフォーマンスと ROI を分析します。データはレポート、ログエクスポート、ポストバックで利用できます。

収益イベントの実装: Event Notification Endpoint を追加の収益パラメータとともに使用して、収益イベントとして指定します。

必須の収益パラメータ:

  • is_revenue_event=true - イベントを収益イベントとしてマークします(イベント名が __iap__ の場合、または金額がゼロより大きい場合は任意)
  • amt=1.99 - 収益額
  • cur=USD - ISO 4217 通貨コード

イベントリクエストの例

サンプル実装

PYTHON CURL JAVASCRIPT

標準イベント

import requests

def report_game_event(sdk_key, game_id, device_id, platform, event_name, event_attributes=None):
    """
    Report in-game event to Singular
    """
    event_url = "https://s2s.singular.net/api/v1/evt"

    params = {
        'a': sdk_key,
        'i': game_id,
        'sdid': device_id,
        'p': platform,
        'n': event_name,
        'ip': get_user_ip()
    }

    if event_attributes:
        import json
        params['e'] = json.dumps(event_attributes)

    response = requests.get(event_url, params=params)
    return response.json()

# Example: Level complete event
report_game_event(
    sdk_key='your_sdk_key_here',
    game_id='com.singular.game',
    device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
    platform='pc',
    event_name='sng_level_achieved',
    event_attributes={
        'level': '5',
        'score': '1250'
    }
)

収益イベント

def report_revenue_event(sdk_key, game_id, device_id, platform, amount, currency):
    """
    Report revenue event to Singular
    """
    event_url = "https://s2s.singular.net/api/v1/evt"

    params = {
        'a': sdk_key,
        'i': game_id,
        'sdid': device_id,
        'p': platform,
        'n': '__iap__',
        'is_revenue_event': 'true',
        'amt': amount,
        'cur': currency,
        'ip': get_user_ip()
    }

    response = requests.get(event_url, params=params)
    return response.json()

# Example: $9.99 purchase
report_revenue_event(
    sdk_key='your_sdk_key_here',
    game_id='com.singular.game',
    device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
    platform='pc',
    amount=9.99,
    currency='USD'
)

次のステップ

追加のリソースとサポートを活用して、PC・コンソール連携を完成させましょう。

追加リソース

ドキュメントとサポート


サポートチャネル

ヘルプの入手

実装のサポートと技術支援については、Singular チームにお問い合わせください。

  • ソリューションエンジニア: 高度な機能や連携計画については、Singular のソリューションエンジニアにご相談ください
  • カスタマーサクセスマネージャー: エンタープライズ機能の有効化とアカウント設定については、CSM にお問い合わせください
  • サポートチーム: 技術的な問題やトラブルシューティングの支援については、サポートチケットを送信してください