---
title: "Android SDKのオブザーバーモードでトランザクションを報告する"
description: "Android SDKのAdaptyオブザーバーモードで購入トランザクションを報告し、ユーザーインサイトと収益トラッキングを行います。"
---

<Tabs groupId="sdk-version" queryString> 

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

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

:::warning

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

:::

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

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
val transactionInfo = TransactionInfo.fromPurchase(purchase)

Adapty.reportTransaction(transactionInfo, variationId) { result ->
    if (result is AdaptyResult.Success) {
        // success
    }
}
```

パラメーター:

| パラメーター    | 必須/任意 | 説明                                                         |
| --------------- | --------- | ------------------------------------------------------------ |
| transactionInfo | 必須      | 購入からのTransactionInfoです。purchaseはBillingライブラリの[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)クラスのインスタンスです。 |
| variationId     | 任意      | バリアントの文字列識別子です。[AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/)オブジェクトの`variationId`プロパティを使用して取得できます。 |

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
TransactionInfo transactionInfo = TransactionInfo.fromPurchase(purchase);

Adapty.reportTransaction(transactionInfo, variationId, result -> {
    if (result instanceof AdaptyResult.Success) {
        // success
    }
});
```

パラメーター:

| パラメーター    | 必須/任意 | 説明                                                         |
| --------------- | --------- | ------------------------------------------------------------ |
| transactionInfo | 必須      | 購入からのTransactionInfoです。purchaseはBillingライブラリの[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)クラスのインスタンスです。 |
| variationId     | 任意      | バリアントの文字列識別子です。[AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/)オブジェクトの`variationId`プロパティを使用して取得できます。 |

</TabItem>
</Tabs>
</TabItem>
<TabItem value="old" label="Adapty SDK 3.3.x (legacy)" default> 

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

トランザクションをAdaptyに報告するには、`restorePurchases`を使用してください。

:::warning

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

:::

Adaptyのペイウォールを使用している場合は、`setVariationId`メソッドを使用して、トランザクションを購入のきっかけとなったペイウォールに紐付けてください。これにより、正確なアナリティクスのために購入がトリガーとなったペイウォールに正しく関連付けられます。この手順は、Adaptyのペイウォールを使用している場合にのみ必要です。

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
Adapty.restorePurchases { result ->
    if (result is AdaptyResult.Success) {
        // success
    }
}

Adapty.setVariationId(transactionId, variationId) { error ->
    if (error == null) {
        // success
    }
}
```

パラメーター:

| パラメーター  | 必須/任意 | 説明                                                         |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | 必須      | 購入の文字列識別子（`purchase.getOrderId`）です。purchaseはBillingライブラリの[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)クラスのインスタンスです。 |
| variationId   | 必須      | バリアントの文字列識別子です。[AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/)オブジェクトの`variationId`プロパティを使用して取得できます。 |

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
Adapty.restorePurchases(result -> {
    if (result instanceof AdaptyResult.Success) {
        // success
    }
});

Adapty.setVariationId(transactionId, variationId, error -> {
    if (error == null) {
        // success
    }
});
```

パラメーター:

| パラメーター  | 必須/任意 | 説明                                                         |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | 必須      | 購入の文字列識別子（`purchase.getOrderId`）です。purchaseはBillingライブラリの[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)クラスのインスタンスです。 |
| variationId   | 必須      | バリアントの文字列識別子です。[AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/)オブジェクトの`variationId`プロパティを使用して取得できます。 |

</TabItem>
</Tabs>
</TabItem>
<TabItem value="old2" label="Adapty SDK up to 3.2.x (legacy)" default> 

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

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

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

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

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

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin 
Adapty.setVariationId(transactionId, variationId) { error ->
    if (error == null) {
        // success
    }
}
```

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

| パラメーター  | 必須/任意 | 説明                                                         |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | 必須      | 購入の文字列識別子（purchase.getOrderId）です。purchaseはBillingライブラリの[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)クラスのインスタンスです。 |
| variationId   | 必須      | バリアントの文字列識別子です。[AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/)オブジェクトの`variationId`プロパティを使用して取得できます。 |

</TabItem>
<TabItem value="java" label="Java" default>

```java 
Adapty.setVariationId(transactionId, variationId, error -> {
    if (error == null) {
        // success
    }
});
```

| パラメーター  | 必須/任意 | 説明                                                         |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | 必須      | 購入の文字列識別子（purchase.getOrderId）です。purchaseはBillingライブラリの[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)クラスのインスタンスです。 |
| variationId   | 必須      | バリアントの文字列識別子です。[AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/)オブジェクトの`variationId`プロパティを使用して取得できます。 |

</TabItem>
</Tabs>
</TabItem> 
</Tabs>