---
title: "在 Kotlin Multiplatform SDK 中实现观察者模式"
description: "在 Adapty 中实现观察者模式，以便在 Kotlin Multiplatform SDK 中追踪用户订阅事件。"
---

如果您已有自己的购买基础设施，暂时不打算完全切换到 Adapty，可以了解[观察者模式](observer-vs-full-mode)。在基本形态下，观察者模式提供高级数据分析功能，以及与归因和分析系统的无缝集成。

如果这满足您的需求，您只需：
1. 在配置 Adapty SDK 时，将 `observerMode` 参数设置为 `true` 以启用该功能。请按照 [Kotlin Multiplatform](sdk-installation-kotlin-multiplatform) 的设置说明进行操作。
2. 从现有购买基础设施向 Adapty [上报交易记录](report-transactions-observer-mode-kmp)。

:::tip
在 SDK v4 中，你也可以在观察者模式下呈现 Adapty 渲染的流程和付费墙：当用户点击购买或恢复按钮时，SDK 会将操作交给你的代码，由你自行处理购买或恢复逻辑。详见[在观察者模式下呈现流程](kmp-present-flows-in-observer-mode)。
:::

## Observer 模式设置 \{#observer-mode-setup\}

如果你自行处理购买和订阅状态，并使用 Adapty 发送订阅事件和分析数据，请开启 Observer 模式。

:::important
在 Observer 模式下运行时，Adapty SDK 不会关闭任何交易，请确保你自行处理。
:::

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

参数：

| 参数                   | 描述                                                  |
| --------------------------- | ------------------------------------------------------------ |
| observerMode                | 布尔值，用于控制[观察者模式](observer-vs-full-mode)。默认值为 `false`。 |

## 在观察者模式下使用 Adapty 付费墙 \{#using-adapty-paywalls-in-observer-mode\}

如果您还想使用 Adapty 的付费墙和 A/B 测试功能，也是可以的——但在观察者模式下需要一些额外的设置。除上述步骤外，您还需要：

1. 按照[远程配置付费墙](present-remote-config-paywalls-kmp)的常规方式展示付费墙。
3. 将付费墙与购买交易[关联](report-transactions-observer-mode-kmp)。