---
title: "Unity SDKのObserverモードでトランザクションを報告する"
description: "Unity SDKのAdapty Observerモードで購入トランザクションを報告し、ユーザーインサイトと収益トラッキングを実現します。"
---

<Tabs groupId="sdk-version" queryString> 

<TabItem value="current" label="Adapty SDK v3.4+（現行版）" default> 
Observerモードでは、Adapty SDKは既存の購入システムを通じて行われた購入を自動的に追跡できません。アプリストアからトランザクションを報告する必要があります。アナリティクスのエラーを防ぐため、アプリのリリース**前**にこの設定を行うことが重要です。

`reportTransaction`を使用して、各トランザクションをAdaptyに明示的に報告してください。

:::warning

**トランザクションの報告を省略しないでください！**
`ReportTransaction`を呼び出さないと、Adaptyはトランザクションを認識できず、アナリティクスに表示されず、インテグレーションにも送信されません。

:::

Adaptyのペイウォールを使用している場合は、トランザクションを報告する際に`variationId`を含めてください。これにより、購入がトリガーしたペイウォールと関連付けられ、正確なペイウォールアナリティクスが確保されます。

```csharp showLineNumbers
Adapty.ReportTransaction(
  "YOUR_TRANSACTION_ID", 
  "PAYWALL_VARIATION_ID", // optional
  (error) => {
  // handle the error
});
```

パラメーター：

| パラメーター  | 必須／任意 | 説明                                                                                                                                                                                                                                                                                                   |
| ------------- | -------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| transactionId | 必須 | <ul><li> iOS の場合：トランザクションの識別子。</li><li> Android の場合：購入の文字列識別子 `purchase.getOrderId`。ここで purchase は billing library の [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) クラスのインスタンスです。</li></ul> |
| variationId   | 任意 | バリアントの文字列識別子。[AdaptyPaywall](https://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html) オブジェクトの `variationId` プロパティを使用して取得できます。                                                                                                                                                                                                                                                  |

</TabItem>
<TabItem value="old" label="Adapty SDK 3.3.x（レガシー）" default> 

Observerモードでは、Adapty SDKは既存の購入システムを通じて行われた購入を自動的に追跡できません。アプリストアからトランザクションを報告するか、リストアする必要があります。アナリティクスのエラーを防ぐため、アプリのリリース**前**にこの設定を行うことが重要です。

両プラットフォームで`reportTransaction`を使用して各トランザクションを明示的に報告し、Androidでは追加のステップとして`restorePurchases`を使用してAdaptyに認識させてください。

:::warning

**トランザクションの報告と購入のリストアを省略しないでください！**
これらのメソッドを呼び出さないと、Adaptyはトランザクションを認識できず、アナリティクスに表示されず、インテグレーションにも送信されません。

:::

Adaptyのペイウォールを使用している場合は、トランザクションを報告する際に`PAYWALL_VARIATION_ID`を含めてください。これにより、購入がトリガーしたペイウォールと関連付けられ、正確なペイウォールアナリティクスが確保されます。

```csharp showLineNumbers
// every time when calling transasction.finish()

#if UNITY_ANDROID && !UNITY_EDITOR
  Adapty.RestorePurchases((profile, error) => {
    // handle the error
  });
#endif

Adapty.ReportTransaction(
  "YOUR_TRANSACTION_ID", 
  "PAYWALL_VARIATION_ID", // optional
  (error) => {
  // handle the error
});
```

パラメーター：

| パラメーター  | 必須／任意 | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------- | -------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| transactionId | 必須 | <ul><li> iOS、StoreKit 1 の場合：[SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction) オブジェクト。</li><li> iOS、StoreKit 2 の場合：[Transaction](https://developer.apple.com/documentation/storekit/transaction) オブジェクト。</li><li> Android の場合：購入の文字列識別子（`purchase.getOrderId`）。ここで purchase は billing library の [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) クラスのインスタンスです。</li></ul> |
| variationId   | 任意 | バリアントの文字列識別子。[AdaptyPaywall](https://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html) オブジェクトの `variationId` プロパティを使用して取得できます。                                                                                                                                                                                                                                                                                                                                                                |

</TabItem>
<TabItem value="old2" label="Adapty SDK 3.2.x 以前（レガシー）" default> 

<Tabs groupId="current-os" queryString> 
<TabItem value="swift" label="iOS" default> 

**トランザクションの報告**

- バージョン 3.1.x 以前は App Store のトランザクションを自動的に監視するため、手動での報告は不要です。
- バージョン 3.2 は Observer モードをサポートしていません。

</TabItem> 
<TabItem value="kotlin" label="Android および Android ベースのクロスプラットフォーム" default> 

**トランザクションの報告**

Observerモードで Adapty にトランザクションを報告するには、[モバイルコードでの購入リストア](unity-restore-purchase)ページで説明されているように `restorePurchases` を使用してください。

:::warning
**トランザクションの報告を省略しないでください！**
`restorePurchases` を呼び出さないと、Adapty はトランザクションを認識できず、アナリティクスに表示されず、インテグレーションにも送信されません。
::: 

</TabItem>
</Tabs>

**トランザクションへのペイウォールの関連付け**

Adapty SDK は購入の発生元を判断できません。購入の処理はお客様が行っているためです。そのため、Observerモードでペイウォールや A/B テストを使用する場合は、アプリストアから来たトランザクションをモバイルアプリのコード内で対応するペイウォールと関連付ける必要があります。アプリのリリース前に正しく設定することが重要です。設定を誤るとアナリティクスにエラーが発生します。

```csharp 
Adapty.SetVariationForTransaction("<variationId>", "<transactionId>", (error) => { 
    if(error != null) {
        // handle the error
        return;
    }

    // successful binding
});
```

| パラメーター                                              | 必須／任意 | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------ | -------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| transactionId                                          | 必須 | <p>iOS、StoreKit 1 の場合：[SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction) オブジェクト。</p><p>iOS、StoreKit 2 の場合：[Transaction](https://developer.apple.com/documentation/storekit/transaction) オブジェクト。</p><p>Android の場合：購入の文字列識別子（purchase.getOrderId）。ここで purchase は billing library の [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) クラスのインスタンスです。</p> |
| variationId                                            | 必須 | バリアントの文字列識別子。[AdaptyPaywall](https://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html) オブジェクトの `variationId` プロパティを使用して取得できます。                                                                                                                                                                                                                                                                                                                                                              |

</TabItem> 
</Tabs>