---
title: "iOS SDKのObserverモードでトランザクションをレポートする"
description: "iOS 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`を含めてください。これにより、購入がトリガーとなったペイウォールとリンクされ、正確なペイウォールアナリティクスが確保されます。

```swift showLineNumbers
do {
    // every time when calling transasction.finish()
    try await Adapty.reportTransaction(transaction, withVariationId: <YOUR_PAYWALL_VARIATION_ID>)
} catch {
    // handle the error
}
```

パラメーター：

| パラメーター    | 必須/任意 | 説明                                                         |
| --------------- | --------- | ------------------------------------------------------------ |
| **transaction** | 必須      | <ul><li> StoreKit 1の場合：SKPaymentTransaction。</li><li> StoreKit 2の場合：Transaction。</li></ul> |
| **variationId** | 任意      | ペイウォールバリアントの一意のID。[AdaptyPaywall](https://swift.adapty.io/documentation/adapty/adaptypaywall)オブジェクトの`variationId`プロパティから取得できます。 |

</TabItem>
<TabItem value="old" label="Adapty SDK 3.3.x（旧バージョン）" default> 

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

`reportTransaction`を使用して、トランザクションデータをAdaptyに送信してください。

:::warning

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

:::

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

```swift showLineNumbers
do {
    // every time when calling transasction.finish()
    try await Adapty.reportTransaction(transaction, withVariationId: <YOUR_PAYWALL_VARIATION_ID>)
} catch {
    // handle the error
}
```

パラメーター：

| パラメーター    | 必須/任意 | 説明                                                         |
| --------------- | --------- | ------------------------------------------------------------ |
| **transaction** | 必須      | <ul><li> StoreKit 1の場合：SKPaymentTransaction。</li><li> StoreKit 2の場合：Transaction。</li></ul> |
| **variationId** | 任意      | ペイウォールバリアントの一意のID。[AdaptyPaywall](https://swift.adapty.io/documentation/adapty/adaptypaywall)オブジェクトの`variationId`プロパティから取得できます。 |

</TabItem>
<TabItem value="old2" label="Adapty SDK 3.2.x以前（旧バージョン）" default> 

**トランザクションのレポート**

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

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

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

```swift 
let variationId = paywall.variationId
// There are two overloads: for StoreKit 1 and StoreKit 2
Adapty.setVariationId(variationId, forPurchasedTransaction: transactionId) { error in
    if error == nil {
        // successful binding
    }    
}
```

リクエストパラメーター：

| パラメーター  | 必須/任意 | 説明                                                         |
| ------------- | --------- | ------------------------------------------------------------ |
| variationId   | 必須      | バリアントの文字列識別子。[AdaptyPaywall](https://swift.adapty.io/documentation/adapty/adaptypaywall)オブジェクトの`variationId`プロパティを使用して取得できます。 |
| transactionId | 必須      | <p>StoreKit 1の場合：[SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction)オブジェクト。</p><p>StoreKit 2の場合：[Transaction](https://developer.apple.com/documentation/storekit/transaction)オブジェクト。</p> |

</TabItem> 
</Tabs>