---
title: "Informar transacciones en Observer Mode en el SDK de iOS"
description: "Informa transacciones de compra en el Observer Mode de Adapty para obtener información sobre usuarios y realizar un seguimiento de ingresos en el SDK de iOS."
---

<Tabs groupId="sdk-version" queryString> 

<TabItem value="current" label="Adapty SDK v3.4+ (current)" default> 
En el modo Observer, el SDK de Adapty no puede rastrear por sí solo las compras realizadas a través de tu sistema de compras existente. Necesitas informar las transacciones desde tu app store. Es fundamental configurar esto **antes** de publicar tu app para evitar errores en los análisis.

Usa `reportTransaction` para informar explícitamente cada transacción y que Adapty pueda reconocerla.

:::warning

**¡No omitas el reporte de transacciones!**
Si no llamas a `reportTransaction`, Adapty no reconocerá la transacción, no aparecerá en los análisis y no se enviará a las integraciones.

:::

Si usas paywalls de Adapty, incluye el `variationId` al informar una transacción. Esto vincula la compra con el paywall que la originó, garantizando un análisis preciso del paywall.

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

Parámetros:

| Parámetro       | Presencia | Descripción                                                  |
| --------------- | --------- | ------------------------------------------------------------ |
| **transaction** | requerido | <ul><li> Para StoreKit 1: SKPaymentTransaction.</li><li> Para StoreKit 2: Transaction.</li></ul> |
| **variationId** | opcional  | El ID único de la variante del paywall. Obtenlo desde la propiedad `variationId` del objeto [AdaptyPaywall](https://swift.adapty.io/documentation/adapty/adaptypaywall). |

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

En el modo Observer, el SDK de Adapty no puede rastrear por sí solo las compras realizadas a través de tu sistema de compras existente. Necesitas informar las transacciones desde tu app store o restaurarlas. Es fundamental configurar esto **antes** de publicar tu app para evitar errores en los análisis.

Usa `reportTransaction` para enviar los datos de la transacción a Adapty.

:::warning

**¡No omitas el reporte de transacciones!**
Si no llamas a `reportTransaction`, Adapty no reconocerá la transacción, no aparecerá en los análisis y no se enviará a las integraciones.

:::

Si usas paywalls de Adapty, incluye el `withVariationId` al informar una transacción. Esto vincula la compra con el paywall que la originó, garantizando un análisis preciso del paywall.

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

Parámetros:

| Parámetro       | Presencia | Descripción                                                  |
| --------------- | --------- | ------------------------------------------------------------ |
| **transaction** | requerido | <ul><li> Para StoreKit 1: SKPaymentTransaction.</li><li> Para StoreKit 2: Transaction.</li></ul> |
| **variationId** | opcional  | El ID único de la variante del paywall. Obtenlo desde la propiedad `variationId` del objeto [AdaptyPaywall](https://swift.adapty.io/documentation/adapty/adaptypaywall). |

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

**Reporte de transacciones**

- Las versiones hasta la 3.1.x escuchan automáticamente las transacciones en el App Store, por lo que no se requiere reporte manual.
- La versión 3.2 no es compatible con el Observer Mode.

**Asociar paywalls a transacciones**

El SDK de Adapty no puede determinar el origen de las compras, ya que eres tú quien las procesa. Por ello, si planeas usar paywalls y/o pruebas A/B en el modo Observer, debes asociar la transacción proveniente de tu app store con el paywall correspondiente en el código de tu app. Es importante hacerlo correctamente antes de publicar tu app; de lo contrario, generará errores en los análisis.

```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
    }    
}
```

Parámetros de la solicitud:

| Parámetro     | Presencia | Descripción                                                  |
| ------------- | --------- | ------------------------------------------------------------ |
| variationId   | requerido | El identificador de cadena de la variante. Puedes obtenerlo usando la propiedad `variationId` del objeto [AdaptyPaywall](https://swift.adapty.io/documentation/adapty/adaptypaywall). |
| transactionId | requerido | <p>Para StoreKit 1: un objeto [SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction).</p><p>Para StoreKit 2: objeto [Transaction](https://developer.apple.com/documentation/storekit/transaction).</p> |

</TabItem> 
</Tabs>