---
title: "Implement Observer mode in Kotlin Multiplatform SDK"
description: "Implement observer mode in Adapty to track user subscription events in Kotlin Multiplatform SDK."
---

If you already have your own purchase infrastructure and aren't ready to fully switch to Adapty, you can explore [Observer mode](observer-vs-full-mode). In its basic form, Observer Mode offers advanced analytics and seamless integration with attribution and analytics systems.

If this meets your needs, you only need to:
1. Turn it on when configuring the Adapty SDK by setting the `observerMode` parameter to `true`. Follow the setup instructions for [Kotlin Multiplatform](sdk-installation-kotlin-multiplatform).
2. [Report transactions](report-transactions-observer-mode-kmp) from your existing purchase infrastructure to Adapty.

:::tip
In SDK v4, you can also present Adapty-rendered flows and paywalls in Observer mode: when a user taps the purchase or restore button, the SDK hands the action over to your code so you can perform the purchase or restore yourself. See [Present flows in Observer mode](kmp-present-flows-in-observer-mode).
:::

## Observer mode setup

Turn on the Observer mode if you handle purchases and subscription status yourself and use Adapty for sending subscription events and analytics.

:::important
When running in Observer mode, Adapty SDK won't close any transactions, so make sure you're handling it.
:::

```kotlin showLineNumbers

val config = AdaptyConfig
    .Builder("PUBLIC_SDK_KEY")
    .withObserverMode(true)     // default false
    .build()

Adapty.activate(configuration = config)
    .onSuccess {
        Log.d("Adapty", "SDK initialised in observer mode")
    }
    .onError { error ->
        Log.e("Adapty", "Adapty init error: ${error.message}")
    }
```

Parameters:

| Parameter                   | Description                                                  |
| --------------------------- | ------------------------------------------------------------ |
| observerMode                | A boolean value that controls [Observer mode](observer-vs-full-mode). The default value is `false`. |

## Using Adapty paywalls in Observer Mode

If you also want to use Adapty's paywalls and A/B testing features, you can — but it requires some extra setup in Observer mode. Here's what you'll need to do in addition to the steps above:

1. Display paywalls as usual for [remote config paywalls](present-remote-config-paywalls-kmp).
3. [Associate paywalls](report-transactions-observer-mode-kmp) with purchase transactions.